信息收集
输入命令:arp-scan 192.168.239.0/24,探测存活主机,发现192.168.239.185
对存活主机进行端口扫描,发现:22、80、81端口
浏览器访问http://192.168.239.185:81是一个登录界面
浏览器访问http://192.168.239.185,发现如下。
对http://192.168.239.185进行端口扫描,发现robots.txt、graffiti.txt、/graffiti.php目录
访问http://192.168.239.185/graffiti.php,发现有一个输入框
输入之后,使用Burp抓包,发现存在file字段,猜测可能存在文件读取漏洞,【此外,输入框还存在存储型XSS漏洞】
漏洞利用
使用php伪协议读取源码,并进行base64解码
<h1>
<center>
Nebuchadnezzar Graffiti Wall
</center>
</h1>
<p>
<?php
$file="graffiti.txt";
if($_SERVER['REQUEST_METHOD'] == 'POST') {
if (isset($_POST['file'])) {
$file=$_POST['file'];
}
if (isset($_POST['message'])) {
$handle = fopen($file, 'a+') or die('Cannot open file: ' . $file);
fwrite($handle, $_POST['message']);
fwrite($handle, "\n");
fclose($file);
}
}
// Display file
$handle = fopen($file,"r");
while (!feof($handle)) {
echo fgets($handle);
echo "<br>\n";
}
fclose($handle);
?>
<p>
Enter message:
<p>
<form method="post">
<label>Message</label><div><input type="text" name="message"></div>
<input type="hidden" name="file" value="graffiti.txt">
<div><button type="submit">Post</button></div>
</form>
发现存在任意文件写入漏洞,file字段为文件名,message字段为文件内容,故构造payload写入一句话木马
利用蚁件进行链接,并上传php-reverse-shell.php
漏洞提权
本地监听1234端口,浏览器访问http://192.168.239.185/php-reverse-shell.php,反弹成功
输入python3 -c “import pty;pty.spawn(‘/bin/bash’);”,模拟交互式页面,查看home目录下的用户目录,未发现可疑信息。
上传linpeas.sh和pspy64s【GitHub上下载】,至目标服务器
对linpeas.sh和pspy64s使用chmod +x linpeas.sh、chmod +x pspy64s赋权,并执行。pspy64s未发现可疑信息。linpeas.sh发现存在CVE-2022-0847【DirtyPipe提权漏洞】
从GitHub上下载漏洞exp,并上传到目标服务器,之后使用chmod +x 文件名进行赋权。最后提权成功。