记一次PowerShell免杀实战
最近在玩免殺,發現了一些免殺思路,今天來給大家做個分享,希望可以幫到大家。
0x01 powershell 加載 shellcode 介紹
UNIX 系統一直有著功能強大的殼程序(shell),Windows PowerShell的誕生就是要提供功能相當于UNIX系統的命令行殼程序(例如: sh、bash或csh),同時也內置腳本語言以及輔助腳本程序的工具,使命令行用戶和腳本編寫者可以利用.NET Framework的強大功能。
powershell具有在硬盤中易繞過,內存中難查殺的特點。一般在后滲透中,攻擊者可以在計算機上執行代碼時,會下載powershell腳本來執行,ps1腳本文件無需寫入到硬盤中,直接可以在內存中執行。
0x02 前戲
常見的 powershell 攻擊工具有 powersploit、nishang、empire、powercat,試了試這些免殺腳本,發現都不太理想,大部分都被檢測到了,想著要不自己嘗試嘗試?
cs,上號!
首先生成一個自帶的 powershell 腳本
看一下自帶的,是把shellcode加載到內存中的代碼放到字符串中然后字符串然后IEX執行代碼:
查殺效果:
?
并不是很理想,畢竟大家都在用,很多殺軟都有了特征和指紋
0x03 開始嘗試混淆
既然是把字符串進行加載,不如整個編一個base64?然后在解碼后加載,開始嘗試:
首先把字符串全部給 base64,我這里先用 burp base64
然后扔進去在加載之前 base64 還原
?
解密后變量=[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String(加密后變量))把編碼后的代碼解碼后加載,順便搞一個 UTF-8
執行執行一下看看是否可以上線:
Powershell -ExecutionPolicy Bypass -File .\payload.ps1
查看 cs 是否上線:
發現 cs 成功上線,去查看一下免殺效果:
https://www.virustotal.com
...這就把殺軟干懵逼了 ?
嘗試修改變量的名稱來繞過
發現沒什么太大的用處,還剩兩個
嘗試把base64編碼后的字符串拆開看看:
把上面的 base64 的字符串猜開來在 base64 的時候組合一下
查看 cs 是否上線:
查看免殺效果:
這就完事了,不過只是靜態免殺
0x04 實戰
這一次測試一下,某絨,某 60,(這兩個殺軟一裝,我虛擬機都有點扛不住)
全部更新到最新,先靜態掃描試試?
激動人心的時候到了,試試運行?
發現他們一點反應都沒有
查看 cs 是否上線:
成功上線
沒想到這么順利
0x05 結語
在測試過程中的一些發現:
如果是沒有改證書的話貌似hi被某絨給檢測到
改證書參考:
Cobalt Strike繞過流量審計
https://paper.seebug.org/1349/
根據base64加密的方法還可以推斷出使用其他加密比如ascii碼加密也有同樣的效果
大家可以根據我的方法變形,比如可以拆成很多段,在配合其他的加密和解密手段進行免殺,制作屬于自己的免殺
?
總結
以上是生活随笔為你收集整理的记一次PowerShell免杀实战的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 偶然的一次渗透从弱口令->docker逃
- 下一篇: MetInfo最新版代码审计漏洞合集