前言
在內網滲透中,當獲取到一個賬號密碼後,經常會使用impacket套件中的psexec.py進行遠程連接並執行命令,但是因爲用的人多了,殺軟也對psexec.py特徵進行了攔截,也就導致瞭如果使用默認的psexec.py進行執行命令時會失敗。
原理分析
psexec.py的原理是通過smb上傳一個服務程序到c:\windows(ADMIN$)目錄,服務程序通過管道進行後續的命令執行的輸入輸出。
服務程序來自於remcomsvc.py:
服務安裝通過serviceinstall.py進行:
服務和服務文件的名字默認是隨機的:
直接psexec.py不帶任何參數,上傳過去的服務文件名就長這樣:
因此爲了防止奇奇怪怪的名字很容易被機器負責人發現,psexec.py也是提供了相應的參數用來自定義:
這裏要提一嘴的是,因爲UAC的緣故,如果RID不是500,就算賬號是管理員也是沒權限上傳文件到ADMIN$目錄,程序報錯如下:
改造
默認情況下,使用psexec.py會被攔截:
根據上面的殺軟截圖能看到是服務程序被攔截,因此我們需要對服務程序進行修改來嘗試繞過殺軟,源碼在這:
https://github.com/kavika13/RemCom
這裏可以嘗試修改print的輸出:
或者修改管道名稱:
然後重新生成RemComSvc,然後轉成hex:
import binascii
filename = 'RemComSvc.exe'
with open(filename, 'rb') as f:
content = f.read()
print(binascii.hexlify(content))
最終可以規避殺軟進行命令執行:
總結
本文介紹了通過修改服務程序來繞過殺軟,讓psexec.py再次大放異彩。
更多靶場實驗練習、網安學習資料,請點擊這裏>>