Metasploit用戶接口 msfconsole Armitage: KaliGUI啟動(dòng);armitage命令啟動(dòng) Metasploit功能程序 msfvenom 集成了載荷生成器、載荷編碼器、空指令生成器的功能 查看詳細(xì)指令選項(xiàng):msfvenom-h
服務(wù)器消息塊協(xié)議掃描 msf>useauxiliary/scanner/smb/smb_version
搜尋配置不當(dāng)?shù)腗icrosoftSQLServer msf>useauxiliary/scanner/mssql/mssql_ping
SSH服務(wù)器掃描 msf>useauxiliary/scanner/ssh/ssh_version
FTP掃描 msf>useauxiliary/scanner/ftp/ftp_version,發(fā)現(xiàn)ftp服務(wù)器 msf>useauxiliary/scanner/ftp/anonymous,檢查是否允許匿名登錄
簡(jiǎn)單網(wǎng)管協(xié)議掃描 msf>useauxiliary/scanner/snmp/snmp_login
滲透攻擊基礎(chǔ) msf>showexploits msf>showauxiliary msf>showoptions msf>showpayloads msf>showtargets info set和unset setg和unsetg save
你的第一次滲透攻擊 操作機(jī):KaliLinux 靶機(jī):WindowsXPSP2 Step1:Nmap腳本掃描發(fā)現(xiàn)漏洞 Nmap腳本掃描:nmap--script=SCRIPT-NAME(腳本名) Nmap腳本路徑:/usr/share/nmap/scripts/SCRIPT-NAME.nse Step2:使用msf,根據(jù)漏洞選擇攻擊模塊 msf>searchMODULE_KEYWORD(模塊名) 關(guān)鍵字通常為:漏洞編號(hào),漏洞軟件名稱(chēng),msf模塊名稱(chēng) Step3:根據(jù)信息搜集結(jié)果,配置攻擊模塊,完成攻擊 msf>showoptions 攻擊Metasploitable主機(jī) 操作機(jī):KaliLinux 靶機(jī):Metasploitable2(Ubuntu8.04) Step1:Nmap掃描發(fā)現(xiàn)漏洞 Nmap腳本掃描:nmap–sT–A–P0 Nmap腳本路徑:/usr/share/nmap/scripts/SCRIPT-NAME.nse Step2:使用msf,根據(jù)漏洞選擇攻擊模塊 根據(jù)服務(wù)或軟件信息,使用搜索引擎查找相關(guān)漏洞信息 msf>searchMODULE_KEYWORD 關(guān)鍵字通常為:漏洞編號(hào),漏洞軟件名稱(chēng),msf模塊名稱(chēng) Step3:根據(jù)信息搜集結(jié)果,配置攻擊模塊,完成攻擊 msf>showoptions Metasploitable2有很多漏洞,嘗試對(duì)多個(gè)漏洞進(jìn)行利用 全端口攻擊載荷:暴力猜解目標(biāo)開(kāi)放的端口 全端口攻擊載荷是為了應(yīng)對(duì)防火墻 當(dāng)然,我們可以使用Nmap達(dá)到同樣的目的,這樣的載荷是為了提高自動(dòng)化程度 msf>search allports 攻陷WindowsXP虛擬機(jī) 攻擊路徑: 使用nmap掃描端口 攻擊MSSQL 暴力破解MSSQL服務(wù) xp_cmdshell Meterpreter基本命令 獲取鍵盤(pán)記錄 挖掘用戶名和密碼 提取密碼哈希值 Windows系統(tǒng)存儲(chǔ)哈希值的方式一般為L(zhǎng)ANManager(LM)、NTLANManager(NTLM),或NTLANManagerv2(NTLMv2)。 使用Meterpreter命令獲取密碼哈希值 meterpreter>usepriv meterpreter>runpost/windows/gather/hashdump 彩虹表
傳遞哈希值 smb/psexec模塊 使用密碼哈希值進(jìn)行認(rèn)證,繞過(guò)密碼破解
權(quán)限提升 利用低權(quán)限用戶建立反向shell連接,獲得Meterpreter會(huì)話 利用Meterpreter的priv擴(kuò)展 meterpreter>usepriv meterpreter>getsystem meterpreter>getuid 這樣的方法是否奏效,取決于低權(quán)限用戶具有的權(quán)限 MSF會(huì)話管理 CTRL-Z sessions–l sessions–iSESSION_ID
令牌假冒 令牌假冒是Meterpreter最強(qiáng)大的功能之一,對(duì)滲透測(cè)試非常有幫助。 示例場(chǎng)景:你正在對(duì)某個(gè)組織進(jìn)行滲透測(cè)試,成功地入侵了系統(tǒng)并建立了一個(gè)Meterpreter的終端, 而域管理員用戶在13小時(shí)內(nèi)登錄過(guò)這臺(tái)機(jī)器。在該用戶登入這臺(tái)機(jī)器的時(shí)候, 一個(gè)Kerberos令牌將會(huì)發(fā)送到服務(wù)器上(進(jìn)行單點(diǎn)登錄)并將在隨后的一段時(shí)間之內(nèi)有效。 你可以使用這個(gè)活動(dòng)令牌來(lái)入侵系統(tǒng),通過(guò)Meterpreter你可以假冒成域管理員的角色, 而不需要破解他的密碼,然后你就可以去攻擊域管理員賬號(hào),甚至是域控制器。 示例體現(xiàn)了令牌假冒的強(qiáng)大,也描述了使用的前置條件, 如:建立Meterpreter,啟用域,受控機(jī)器上有域管理員的有效令牌,等
使用PS 盜取令牌的兩種方式:1.steal_tokenPID meterpreter>ps,獲取PID steal_tokenPID,盜取令牌2.incognito模塊 有些情況下ps命令不能列出域管理員賬號(hào) meterpreter>useincognito meterpreter>list_tokens–u meterpreter>impersonate_tokenDOMAIN\\USERNAME
通過(guò)跳板攻擊其他機(jī)器 Meterpreter進(jìn)行跳板攻擊 meterpreter>runget_local_subnets msf>routeadd 通過(guò)添加路由實(shí)現(xiàn)跳板,依賴(lài)于攻擊機(jī)與跳板機(jī)之間的Meterpreter會(huì)話,一旦會(huì)話斷開(kāi),跳板將失效 使用MetasploitPro的VPN跳板 商業(yè)版本功能 接入目標(biāo)內(nèi)網(wǎng),擴(kuò)大了攻擊面和可選攻擊方式
使用Meterpreter腳本 遷移進(jìn)程 關(guān)閉殺毒軟件 獲取系統(tǒng)密碼哈希值 查看目標(biāo)機(jī)上的所有流量 攫取系統(tǒng)信息 控制持久化
向后滲透攻擊模塊轉(zhuǎn)變 如果想列舉所有的后滲透攻擊模塊,可以這樣輸入然后在末尾按TAB鍵: meterpreter>runpost/ Displayall199possibilities (yorn 將命令行shell升級(jí)為Meterpreter sessions–u setg命令將LPORT和LHOST參數(shù)設(shè)置為Metasploit的全局變量,而不是局限在這一個(gè)模塊之內(nèi)。 在使用sessions-u命令升級(jí)為Meterpreter的時(shí)候是必需的。 exploit–z,CTRL-Z
通過(guò)附加的Railgun組件操作WindowsAPI meterpreter>irb irbshell允許使用Ruby的語(yǔ)法與Meterpreter直接交互 Railgun能為你提供與Win32本地應(yīng)用程序一樣訪問(wèn)WindowsAPI的能力
msfvenom:載荷生成,載荷編碼 msfvenom--help 常用參數(shù): msfvenom-pPAYLOADNAME--payload-options,查看載荷參數(shù) msfvenom–f,指定載荷輸出格式 msfvenom–e,指定載荷編碼方式 msfvenom–l MODULENAME,列出指定類(lèi)型的模塊清單 隱秘地啟動(dòng)一個(gè)攻擊載荷 msfvenom–k,配置攻擊載荷在一個(gè)獨(dú)立的線程中啟動(dòng) 這種模式下,當(dāng)包含載荷的程序被啟動(dòng),宿主程序也會(huì)正常運(yùn)行,避免被用戶察覺(jué) -k選項(xiàng)不一定能用在所有的可執(zhí)行程序上,在實(shí)際攻擊前請(qǐng)確保你已經(jīng)在實(shí)驗(yàn)環(huán)境中進(jìn)行了測(cè)試
加殼軟件 UPX加殼 加密,壓縮 與MSF編碼器的情況類(lèi)似,目前,僅使用加殼,免殺效果不明顯
基于瀏覽器的滲透攻擊 基于瀏覽器的滲透攻擊原理 HeapSpraying(堆噴/堆噴射) 關(guān)于空指令 X86:\x90 空指令滑行區(qū)+Payload 內(nèi)存保護(hù)機(jī)制日益完善,單一技術(shù)手段已經(jīng)不足以完成漏洞利用,但是仍可以作為漏洞利用的組成部分,其思路也值得借鑒
使用調(diào)試器揭秘空指令 目的:搞清楚空指令和匯編指令是如何執(zhí)行的 OllyDbg動(dòng)態(tài)調(diào)試 在Shellcode尾部設(shè)置斷點(diǎn) 在攻擊機(jī)開(kāi)啟監(jiān)聽(tīng)
IE瀏覽器極光漏洞的利用 msf>usewindows/browser/ms10_002_aurora 載荷執(zhí)行過(guò)程中,目標(biāo)用戶機(jī)器會(huì)變遲鈍,為了防止用戶關(guān)閉瀏覽器,導(dǎo)致滲透攻擊中斷,Meterpreter提供了一些指令 手動(dòng)遷移進(jìn)程:meterpreter>run migrate –f 模塊高級(jí)選項(xiàng):msf exploit(ms10_002_aurora)>show advanced
文件格式漏洞滲透攻擊 MS11-006,在微軟Windows系統(tǒng)函數(shù)CreateSizedDIBSECTION中存在的一個(gè)棧溢出漏洞 msf>use windows/fileformat/ms11_006_createsizeddibsection 確認(rèn)攻擊模塊的目標(biāo)系統(tǒng)版本: msf exploit(ms11_006_createsizeddibsection)>show targets 此類(lèi)攻擊方式載荷是文檔,往往需要與釣魚(yú)攻擊結(jié)合起來(lái)
發(fā)送攻擊負(fù)載 郵件,下載鏈接 開(kāi)啟多線程監(jiān)聽(tīng) 如果用戶在文件夾中設(shè)置了使用縮略圖(thumbnails)方式查看文件,當(dāng)用戶打開(kāi)payload文件所在的文件夾,即可觸發(fā)攻擊
Metasploit輔助模塊(auxiliary module) 輔助模塊不使用payload,但提供了端口掃描、指紋識(shí)別、暴力猜解、Fuzz測(cè)試等很多類(lèi)型的工具 msf>show auxiliary
輔助模塊剖析 FoursquareAPI和自定義輔助模塊 目的:查看輔助模塊的內(nèi)部結(jié)構(gòu),這是一個(gè)和滲透測(cè)試無(wú)關(guān)的簽到工具 查看FousquareAPI文檔,了解如何使用API 通過(guò)調(diào)用Metasploit框架提供的方法,使用FoursquareAPI,完成自定義模塊 使用Metasploit框架進(jìn)行開(kāi)發(fā)能讓我們將注意力集中在模塊功能細(xì)節(jié)上,而不是處理大量重復(fù)的代碼 配置SET工具包 項(xiàng)目地址:https://github.com/trustedsec/social-engineer-toolkit 配置文件:config/core/set_config 修改metasploit目錄為實(shí)際目錄:METASPLOIT_PATH=/usr/share/metasploit-framework 開(kāi)啟郵件釣魚(yú):WEBATTACK_EMAIL=ON 關(guān)閉自動(dòng)檢測(cè):AUTO_DETECT=OFF 開(kāi)啟Apache攻擊:APACHE_SERVER=ON
針對(duì)性釣魚(yú)攻擊向量 Spear-Phishing Attack Vectors Abobe PDF 的Collab.collectEmailInfo漏洞 設(shè)置發(fā)件郵箱時(shí)需注意,常見(jiàn)郵箱的安全防護(hù)措施,如附件檢測(cè)、第三方郵件客戶端認(rèn)證等 Web攻擊向量 JavaApplet 客戶端Web攻擊 用戶名和密碼獲取 標(biāo)簽頁(yè)劫持攻擊(Tabnabbing) 中間人攻擊 網(wǎng)頁(yè)劫持 綜合多重攻擊方法
SET的其他特性 SET的交互式shell:該交互式shell可以替換Meterpreter作為一個(gè)攻擊載荷 RATTE:一個(gè)基于HTTP隧道攻擊載荷,它依賴(lài)于HTTP協(xié)議進(jìn)行通信,并利用了目標(biāo)主機(jī)的代理設(shè)置 Web圖形界面:一個(gè)完整的Web應(yīng)用攻擊程序,能夠自動(dòng)化實(shí)施上述討論的攻擊過(guò)程 無(wú)線攻擊向量:在目標(biāo)主機(jī)上創(chuàng)建一個(gè)假冒的無(wú)線熱點(diǎn)
在MSSQL上進(jìn)行命令執(zhí)行 突破口:MSSQL弱口令 調(diào)用系統(tǒng)管理員權(quán)限的擴(kuò)展存儲(chǔ)過(guò)程xp_cmdshell,這個(gè)存儲(chǔ)過(guò)程使得你可以在MSSQL服務(wù)的運(yùn)行賬戶環(huán)境(通常是Local System)下執(zhí)行底層操作系統(tǒng)命令 xp_cmdshell的激活 msf>use auxiliary/admin/mssql/mssql_exec
分析mssql_exec模塊 調(diào)用Metasploit核心庫(kù)的MS SQL協(xié)議模塊:include Msf::Exploit::Remote::MSSQL 激活xp_cmdshell存儲(chǔ)過(guò)程:mssql_xpcmdshell_enable 調(diào)用mssql_xpcmdshell執(zhí)行操作系統(tǒng)命令
編寫(xiě)一個(gè)新的模塊 PowerShell 運(yùn)行Shell滲透攻擊 編寫(xiě)Powershell_upload_exec函數(shù) 從十六進(jìn)制轉(zhuǎn)換回二進(jìn)制程序 計(jì)數(shù)器 運(yùn)行滲透攻擊模塊 Fuzz測(cè)試器模塊 目標(biāo):使服務(wù)器端崩潰 使用Ollydbg對(duì)服務(wù)器端進(jìn)行調(diào)試 根據(jù)調(diào)試結(jié)果對(duì)Fuzz字符串長(zhǎng)度進(jìn)行調(diào)整
控制結(jié)構(gòu)化異常處理鏈 查看SEH鏈內(nèi)容 查看導(dǎo)致SEH改寫(xiě)的堆棧內(nèi)容 計(jì)算SEH覆蓋發(fā)生位置:tools/pattern_offset.rb 調(diào)整Fuzz長(zhǎng)度字符串長(zhǎng)度
繞過(guò)SEH限制 一段任意的緩沖區(qū)填充 NOP空指令滑行區(qū) Shellcode 近跳轉(zhuǎn) 短跳轉(zhuǎn) POP-POP-RETN
獲取返回地址 定位POP-POP-RETN指令序列 使用工具查找:msfpescan –p TARGETAPP.exe 用于調(diào)試攻擊載荷(發(fā)送中斷指令):generic/debug_trap 調(diào)整初始緩沖區(qū)長(zhǎng)度
壞字符和遠(yuǎn)程代碼執(zhí)行 壞字符:導(dǎo)致shellcode被截?cái)嗟淖址?br> 壞字符取決于攻擊目標(biāo),最快的方法是從攻擊目標(biāo)相同/相似的滲透代碼中找壞字符 http://en./wiki/Metasploit/WritingWindowsExploit#Dealing_with_badchars
分析multi_meter_inject腳本 查看命令行選項(xiàng)和配置語(yǔ)法格式 變量和函數(shù)定義,命令行選項(xiàng) host_process.memory.allocate調(diào)用 隱藏啟動(dòng)遠(yuǎn)程進(jìn)程 Meterpreter API 打印輸出 基本API調(diào)用 Meterpreter Mixins
編寫(xiě)Meterpreter腳本的規(guī)則 只使用臨時(shí)、本地和常數(shù)變量,永遠(yuǎn)不要使用全局或者類(lèi)變量,因?yàn)樗麄兛赡芘c框架內(nèi)的變量相互沖突。 使用tab鍵進(jìn)行縮進(jìn),不要使用空格鍵。 對(duì)程序塊來(lái)說(shuō),不要使用大括號(hào){},使用do和end語(yǔ)法模式。 當(dāng)聲明函數(shù)時(shí),養(yǎng)成在聲明前進(jìn)行注釋?zhuān)峁┖瘮?shù)用途簡(jiǎn)要介紹的習(xí)慣。 不要使用sleep函數(shù),使用'select(nil,nil,nil,<time>)'。 不要使用puts等其他標(biāo)準(zhǔn)的輸出函數(shù),使用print,print_line、print_status、print_error、和print_good函數(shù)。 總是包含-h選項(xiàng),該選項(xiàng)將對(duì)腳本進(jìn)行簡(jiǎn)要的功能說(shuō)明,并列出所有的命令行選項(xiàng)。 如果你的腳本需要在特定操作系統(tǒng)或者M(jìn)eterpreter平臺(tái)運(yùn)行,確保他們只能在所支持的平臺(tái)上運(yùn)行,并在不支持的操作系統(tǒng)和平臺(tái)運(yùn)行時(shí)報(bào)錯(cuò)。
創(chuàng)建自己的Meterpreter腳本 自定義Meterpreter腳本:execute_upload 繞過(guò)Windows用戶賬戶控制(UAC)防護(hù)功能 msf>use exploit/windows/local/bypassuac 對(duì)已經(jīng)建立的、受UAC限制的Meterpreter會(huì)話使用,建立繞過(guò)UAC限制的會(huì)話,達(dá)到提權(quán)的目的
********************************************************************************************** *****一次模擬的滲透測(cè)試過(guò)程***** **********************************************************************************************
*****前期交互目標(biāo)信息 Windows XP 網(wǎng)絡(luò)環(huán)境:互聯(lián)網(wǎng)+內(nèi)網(wǎng) 開(kāi)放端口:80 Metasploitable Linux 網(wǎng)絡(luò)環(huán)境:內(nèi)網(wǎng) 在內(nèi)網(wǎng)開(kāi)發(fā)大量端口 目標(biāo): 控制內(nèi)網(wǎng)中的Metasploitable主機(jī) *****情報(bào)搜集 Nmap掃描:nmap–sT–P0 發(fā)現(xiàn)80端口的http服務(wù) 確認(rèn)為Web服務(wù)器 *****威脅建模 手動(dòng)測(cè)試/工具測(cè)試 手動(dòng)測(cè)試是否存在SQL注入漏洞 確定攻擊路徑 *****滲透攻擊 根據(jù)攻擊建模結(jié)果選擇方式或工具 Sqlmap利用MSSQL注入漏洞 獲取注入點(diǎn),用于MSF終端中的滲透攻擊 *****MSF終端中的滲透攻擊過(guò)程 msf>use exploit/windows/mssql/mssql_payload_sqli 完成Meterpreter Shell植入 *****后滲透攻擊 掃描Metasploitable靶機(jī) 在跳板機(jī)上使用nmap掃描內(nèi)網(wǎng) 識(shí)別存有漏洞的服務(wù) 根據(jù)端口掃描結(jié)果,使用msf輔助模塊中針對(duì)特定服務(wù)的掃描器 *****攻擊Postgresql數(shù)據(jù)庫(kù)服務(wù) 根據(jù)掃描結(jié)果,確認(rèn)存在Postresql服務(wù)及端口號(hào) 搜索msf中與Postgresql相關(guān)的模塊 選擇合適的模塊進(jìn)行滲透攻擊,這一過(guò)程需要嘗試,并不是每一個(gè)查找到的模塊都能成功利用 弱口令字典: Wordlists *****攻擊一個(gè)偏門(mén)的服務(wù) 根據(jù)掃描結(jié)果,目標(biāo)提供IRC服務(wù) 遇到不熟悉的應(yīng)用或服務(wù),在攻擊前需要更多的時(shí)間進(jìn)行深入研究 通過(guò)MSF的攻擊模塊查找、exploit-db、搜索引擎等對(duì)目標(biāo)服務(wù)的進(jìn)行研究,查找可能存在的漏洞信息 *****隱藏你的蹤跡 修改時(shí)間戳:meterpreter>timestomp 修改事件日志:meterpreter>runevent_manager 流行的取證分析工具:Encase 記錄下攻擊過(guò)程對(duì)目標(biāo)系統(tǒng)進(jìn)行了哪些修改,可以更容易地隱藏蹤跡
|