【技術分享】滲透利器之Powershell
前言
Powershell是Microsoft Windows命令列shell程式和腳本環境,它提供了令人難以置信的靈活性和功能來管理Windows系統,現在Windows系統上基本上都有它的存在。正因為它的強大,才能被我們所利用,幫助我們進行滲透測試。
Powershell的優秀之處
1. 代碼運行在記憶體中可以不去接觸磁片
2. 從另一個系統中下載代碼並執行
3. 很多安全產品並不能監測到powershell的活動
4. cmd.exe通常被阻止運行,但是powershell不會
各個Windows下powershell版本
Powershell運行選項
以下介紹了滲透測試過程中我們經常要使用到的powershell運行選項
1 2 |
|
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到伺服器
2. 啟動Apache
3. 查看是否成功搭建
實際運用
由於篇幅問題,我們不可能針對每一個腳本都進行詳細的介紹,所以這裡我們來介紹一下實戰中最常用到的腳本。
IEX遠端下載腳本執行:
1 |
|
取得Shell:
1. Invoke-DllInjection
將DLL檔注入到當前進程中
我們首先來生成一個DLL反彈碼
在目的機上保存msf.dll到本地
我們下載Invoke-DllInjection腳本
運行一個隱藏進程並注入DLL反彈木馬
可以看見Meterpreter會話成功建立了
2. Invoke-Shellcode
在當前進程中注入Shellcode
Powershell調用Windows API非常方便,所以也可以直接來執行Shellcode。PowerSploit也提供了一些Shellcode,看下圖:
擴大成果–內網端口掃描
1. 我們先下載Invoke-Portscan
2. 结果
獲取主機密碼
為了不讓管理員發現,我們不能再目的機上添加任何帳戶,這時候我們就需要來獲取管理員密碼來維持訪問。這裡我們就需要使用到腳本Invoke-Mimikatz,注意需要管理員許可權。
1. 下載腳本
2. dump密碼
1 |
|
再來一個大殺器-鍵盤記錄
這樣它就進行鍵盤記錄,不僅有鍵盤輸入記錄還有滑鼠輸入記錄,而且還有很詳細的時間,實戰使用的時候,我們就要在放入後臺運行。
漏洞探測-攻擊進行時
下載腳本:
1 |
|
Invoke-AllChecks:輸出可識別的漏洞
自学指南-Get Help
腳本很多,很難一一介紹,剩下就要自己來嘗試了,但是網上基本上找不到使用教程,所以就需要來獲取説明資訊,來説明自己學習。
比如Invoke-DllInjection
下載腳本:
1 |
|
獲取説明資訊:
1 |
|
查看事例:
1 |
|
查看詳細資訊:
1 |
|
結語
Powershell實在是太強大了,可以說是內網滲透利器,繼續深入研究,下一篇文章我們就不再是使用別人的腳本了,本篇文章的作用主要還是在於引導,大家還是要多用多練,才能在實踐中靈活的運用。
文章來源: http://bobao.360.cn/learning/detail/3104.html
圖片來源: https://pixabay.com/