psexec.py規避殺軟

  前言

  在內網滲透中,當獲取到一個賬號密碼後,經常會使用impacket套件中的psexec.py進行遠程連接並執行命令,但是因爲用的人多了,殺軟也對psexec.py特徵進行了攔截,也就導致瞭如果使用默認的psexec.py進行執行命令時會失敗。

  原理分析

  psexec.py的原理是通過smb上傳一個服務程序到c:\windows(ADMIN$)目錄,服務程序通過管道進行後續的命令執行的輸入輸出。

  服務程序來自於remcomsvc.py:

image-20220202154142470.png

  服務安裝通過serviceinstall.py進行:

image-20220202154257907.png

  服務和服務文件的名字默認是隨機的:

image-20220202154435362.png

  直接psexec.py不帶任何參數,上傳過去的服務文件名就長這樣:

image-20220202154531337.png

  因此爲了防止奇奇怪怪的名字很容易被機器負責人發現,psexec.py也是提供了相應的參數用來自定義:

image-20220202154745539.png

  這裏要提一嘴的是,因爲UAC的緣故,如果RID不是500,就算賬號是管理員也是沒權限上傳文件到ADMIN$目錄,程序報錯如下:

image-20220202152542982.png

  改造

  默認情況下,使用psexec.py會被攔截:

image-20220202155144783.png

image-20220202155118856.png

image-20220202155601814.png

  根據上面的殺軟截圖能看到是服務程序被攔截,因此我們需要對服務程序進行修改來嘗試繞過殺軟,源碼在這:

  https://github.com/kavika13/RemCom

  這裏可以嘗試修改print的輸出:

image-20220202160926347.png

  或者修改管道名稱:

image-20220202161001349.png

  然後重新生成RemComSvc,然後轉成hex:

import binascii
filename = 'RemComSvc.exe'
with open(filename, 'rb') as f:
  content = f.read()
print(binascii.hexlify(content))

  最終可以規避殺軟進行命令執行:

image-20220202161206479.png

  總結

  本文介紹了通過修改服務程序來繞過殺軟,讓psexec.py再次大放異彩。

  更多靶場實驗練習、網安學習資料,請點擊這裏>>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章