下载地址:DC: 9 ~ VulnHub
扫描靶机地址
靶机:192.168.85.150
kali:192.168.85.128
扫描靶机的开放端口,看到开放了 22 和 80 端口
访问一下 80 端口
在 manage 处发现了可以登录的地方,但是不知道账号和密码
在 search 处发现了一个搜索框,尝试了一下 SQL 注入
发现爆出了敏感信息,存在 SQL 注入
用 burp 抓包一下,把注入点用 * 标注,用 sqlmap 的 -r 参数跑一下
然后开始常规操作,找需要的数据
-dbs 找到了三个库名
先查看 Staff
-D Staff --tables
看到了 Users 表
使用 --dump 爆出表中的信息,发现了 admin 用户和 md5 密码
-D Staff -T Users --dump
在网上找 md5 解密工具解密出密码为 transorbital1
用这个账号密码登录一下看看
admin:transorbital1
成功登录
显示的没有文件,试一试文件包含
发现存在文件包含,里面有很多账号,但是密码不知道
还是看看数据库里有什么其他的东西(还有一个库没有看)
-D users --tables
发现就一个表,--dump 下来
-D users -T UserDetails --dump
找到了用户名和密码,把用户名和密码都保存下来
前面还扫出来了一个 ssh
用 hydra 爆破 ssh 的账户密码
大概意思是连接失败了,看一下 ssh 服务,发现端口是 filtered (过滤)
这里需要一个敲门的过程,意思就是存在 knockd 服务
这个服务通过动态的添加规则来隐藏开启的服务,使用自定义系列序列号来敲门,使系统开启服务端口。在不使用的时候,再使用自定义序列号来关门,将端口关闭。
这个服务的配置路径是 /etc/knockd.conf ,利用刚才的文件包含漏洞去查看配置信息
发现了三个端口 7469,8475,9842 使用 namp -p 端口号 ip 分别去敲门
再看一个端口的情况,发现状态改变了,为 open(如果没有开,就按顺序再敲一次)
再使用 hydra 爆破,出了三个用户(如果用户少了,看看是不是 0 和 O 的问题)
chandlerb:UrAG0D!
joeyt:Passw0rd
janitor:Ilovepeepee
分别用这三个用户 ssh 远程登录
发现 janitor 用户比别的用户多了一个 .secrets-for-putin,那就查看一下
看到一个密码文件
把得到的密码复制下来,粘贴到之前的密码文件中
BamBam01
Passw0rd
smellycats
P0Lic#10-4
B4-Tru3-001
4uGU5T-NiGHts
然后再使用 hydra 进行账户密码的爆破
看到多了一个用户
fredf:B4-Tru3-001
用这个用户进行远程连接
sudo -l 查看 root 运行文件
发现一个目录 /opt/devstuff/dist/test/
再目录遍历,在 /opt/devstuff 下发现了一个 py 文件
查看一下 test.py 文件
意思读取参数1,将参数1的内容写入到参数2
然后就可以进行构造/etc/passwd文件当中的信息
使用openssl生成密码
admin:admin
$1$admin$1kgWpnZpUx.vTroWPXPIB0
按照格式输出保存到新建文件中
echo 'admin:$1$admin$1kgWpnZpUx.vTroWPXPIB0:0:0::/root:/bin/bash' >> /tmp/test1
使用 test 文件进行写入
sudo /opt/devstuff/dist/test/test /tmp/test1 /etc/passwd
发现已经写入
使用 admin 登录,拥有 root 权限
cd 到 /root 下,发现 theflag.txt 文件,找到了 flag