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