Windows應急響應和系統加固(4)——Windows帳號角色權限的安全檢查分析以及PowerShell的使用介紹


Windows帳號角色權限的安全檢查分析以及PowerShell的使用介紹

一、Windows帳號角色權限的安全檢查分析

  1.net user:檢查用戶情況;

    net user X:檢查某個特定的用戶X。

  2.lusrmgr.msc --> local user manger縮寫:本地用戶和組管理器。

  3.whoami /all :查看所有有效用戶名;

    whoami  /user :查看當前的用戶信息。  

  4.net  localgroup :檢查用戶組情況;

    net localgroup X:查看X用戶組的情況。

  5.eventvwr.msc:日志查看器。

  6.權限檢查的幾個工具:SubInACL(查看更多:https://www.microsoft.com/en-us/download/details.aspx?id=23510)、accesschk64、ProcessExplorer:procexp、ProcessMonitor、ProcessMonitor、icacls,Windows自帶的文件/進程權限檢查:icacls "C:\Windows\System32\winlogon.exe"

    secpol.msc:用戶權限分配檢查。

 

二、Windows PowerShell的使用介紹

  1.PowerShell簡介:

    <1>.PowerShell(Include:PowerShell Core)是Windows任務自動化和配置管理的命令行腳本環境,有.NET Framework、.NET Core;是構建命令行界面殼層(Comand Shell Line)相關腳本語言組成;最初只是Windows組

件,后來,2016年8月18日開源並跨平台支持。

    <2>.PowerShell管理任務通常由cmdlets(command-lets,小命令 )執行,是執行特定操作的專用.NET類。可將cmdlet集合至腳本、可執行文件中,或通過常規.NET類、WMI/COM對象實例化。面向對象、完全支持對象的強大

Shell管理工具。

    <3>.當前PowerShell有4個版本,分別為:v1,v2、v3、v4、v5:

      Window 7 或 Server 2008,默認內置v2;

      Windows 8 或 Server 2012,內置v3;

      Windows 8.1 或 Server 2012 R2,內置v4;

      Windows 10 或 Server 2016/R2,內置v5。

    <4>.文件擴展名:

      .ps1,腳本文件;

      .ps1xml,XML文檔;

      .psc1,控制台文件;

      .psd1,數據文件;

      .psm1,腳本模塊;

      .pssc,會話配置文件;

      .cdxml ,Cmdlet定義的XML文檔。

    <5>.官方參考資料:

      https://docs.microsoft.com/zh-cn/powershell/

    <6>.獲取源代碼和安裝包:

      https://github.com/PowerShell/PowerShell

  2.PowerShell攻擊頻頻:

    <1>.以PowerShell作為攻擊平台的概念,首次在2010年Dave Kennedy & Josh Kelley的Def Con18演講,演示了PowerShell編寫的綁定和反向shell進行攻擊。

      2012 年,Matt Graeber開發了PowerSploit並發表博文,從此,PowerShell利用率大幅提升!

      2013年,Mimikatz開始支持PowerShell調用(aka Invoke-Mimikatz)。PowerShell徹底流行起來!

      成熟的PowerShell工具,如:Nishang、PowerSploit、Empire。

      Empire,可實現無需powershell.exe就可運行PowerShell代理功能,快速部署后期漏洞利用模塊,從Key Logger到Mimikatz,且能夠躲避多種安全檢測。

    <2>.使用過PowerShell攻擊技術的APT組織:

      “海蓮花”(APT-TOCS);

      “白象”(White Elephant);

      “方程式”(Equation);

      “綠斑”(GreenSpot);

      Fub7;

      APT-C-01:針對中國政務/科技/教育/國防等機構。

      PowerShell開源,跨平台支持,攻擊將會越來越常見!

    <3>.為什么PowerShell會成為黑客攻擊的最愛?

      對Network Socket訪問簡單、高效、直接;

      可動態地在內存組裝惡意的二進制文件,直接運行在內存,殺毒軟件極難檢測;PowerShell結合 .NET 實施“無文件”攻擊(攻擊代碼下載、執行均在內存實現,無需在系統創建攻擊文件,可有效逃避安全軟件檢測攔截),混

合在正常網絡流量,難以追蹤。攻擊行為便捷、有效、隱蔽;

      直接訪問Win32應用程序編程接口(API);

      使用Windows管理工具的簡單接口(WMI);

      強大的腳本環境;

      動態的調用運行時間方法;

      輕而易舉地訪問密碼庫,例如:IPSec、哈希算法;

      能夠鈎住托管代碼;

      完全綁定組件對象模型(COM)。

    <4>.PowerShell危害分析:

      對企業而言,服務器被攻擊,拉取PowerShell進程,遠程執行惡意代碼,多數情況下是由於企業自身安全意識不足防御有破綻,對爆出的系統漏洞、應用程序漏洞未及時修復,導致服務器被入侵,影響企業信息安全。

      統計表明,攻擊者通常利用高危漏洞進行攻擊:永恆之藍、Weblogic反序列化、MS17-010、Struts2系列漏洞,備受青睞!

      

      弱口令”也給企業帶來約51%的安全隱患。該漏洞攻擊成本低,結合社工、釣魚方式,利用惡意郵件( Foxmail),結合Office宏執行惡意代碼,實施深層次攻擊。

      統計表明,攻擊者入侵成功后,最喜歡投放:挖礦木馬、勒索病毒。都與數字貨幣直接相關。竊密木馬、遠控木馬,實施對目標企業定向攻擊。給企業帶來嚴重安全威脅!

    

  3.PowerShell開發工具:

    <1>.Windows系統自帶的工具:PowerShell ISE;

      啟動方式:輸入powershell,進入powershell界面,輸入ise即可打開。

    <2>.其他工具:PowerShell Studio & Visual Studio;

      查看更多:https://www.sapien.com/software/powershell_studio

  4.PowerShell腳本調用的方法:

    如果腳本是直接寫的代碼而不是只定義了函數,則直接執行腳本.script.ps1即可;

    如果載入了函數,則需要:+空格+.script.ps1;

    或使用Import-Module .script.ps1,直接使用有腳本的函數。

  5.PowerShell執行的可選參數:

    PowerShell[.exe] [-PSConsoleFile <file> | -Version <version>] [-EncodedCommand <Base64EncodedCommand>] [-ExecutionPolicy<ExecutionPolicy>] [-File <filePath> <args>] [-InputFormat {Text | XML}] [-NoExit] [-NoLogo] [-

NonInteractive] [-NoProfile] [-OutputFormat {Text | XML}] [-Sta] [-WindowStyle <style>] [-Command { - | <script-block> [-args <arg-array>] | <string>[<CommandParameters>] } ]PowerShell[.exe] -Help | -? | /?

      <1>.-Command,需要執行的代碼;

      <2>.-ExecutionPolicy,設置默認的執行策略,一般使用Bypass;

      <3>.-EncodedCommand,執行Base64代碼;

      <4>.-File,需要執行的腳本名;

      <5>.-NoExit,執行完成命令之后不會立即退PS會話;

      <6>.-NoLogo,不輸出PS的Banner信息;

      <7>.-Noninteractive,不開啟交互式的會話;

      <8>.-NoProfile,不使用當前用戶使用的配置文件;

      <9>.-Sta,以單線程模式啟動PS;

      <10>.-WindowStyle,設置Powershell的執行窗口:Normal、Minimized、Maximized、Hidden;

      <11>.-Version,設置用什么版本去執行代碼。

     Powershell混淆框架nvoke-Obfuscation,下載地址:https://github.com/danielbohannon/Invoke-Obfuscation

  6.PowerShell執行策略:

    PowerShell提供:Restricted、AllSigned、RemoteSigned、Unrestricted、Bypass、Undefined,六種執行策略。

      <1>.Restricted:

        受限制。可執行單個命令。不能執行腳本。Windows 8/8.1/10、Server 2012默認策略,執行會報錯。

        可通過:Set-ExecutionPolicy -ExecutionPolicy Bypass,即可設置策略為Bypass,即可執行腳本。

        Get-ExecutionPolicy,獲取當前的執行策略:

      <2>.AllSigned::

        允許執行所有具有數字簽名的腳本。

      <3>.RemoteSigned:

        執行從網上下載的腳本,需要腳本具備數字簽名,否則,腳本運行失敗。

        如果在本地創建的腳本,可直接執行,不要求數字簽名。

      <4>.Unrestricted:

        比較寬容的策略,允許運行未簽名的腳本。從網上下載的腳本,運行前安全提示,需確認是否執行。

      <5>.Bypass:

        腳本執行不設任何限制,任何腳本都可執行,並且不會有安全提示。最寬松!

      <6>:Undefined:

        沒有設置腳本策略。當然,此時會發生繼承或應用默認的腳本策略。

  7.PowerShell的語法:

    變量、數組、哈希表(Hash table)、條件判斷、循環語句、函數、對象、

  8.PowerShell命令舉例:

    獲取所有命令:Get-Command;

    停止所有當前運行中的以"p"字符開頭命名的程序:get-process p* | stop-process;

    停止所有當前運行中的所有使用大於1000MB存儲器的程序:get-process | where { $_.WS -gt 1000MB } | stop-process;

    計算一個目錄下文件內的字節大小:get-childitem | measure-object -property length -sum;

    等待一個叫做"notepad"的程序運行結束:

      $processToWatch = get-process notepad;

      $processToWatch.WaitForExit();

    把"$UserProfile"設置成數值"UserProfile"的環境變量:$UserProfile = $env:UserProfile;

  9.PoshC2:

    基於PowerShell和C#的命令控制工具-PoshC2,不僅實現了各種各樣攻擊技術,還能夠繞過目標主機中部署的各種安全檢查。

    https://github.com/nettitude/PoshC2

    

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM