DC-9
这是DC系列的最后一个靶机,难度中等,思路比较清晰容易上手
记得设置NAT,然后获取到MAC地址
主机发现与端口扫描
因为靶机与kali处于同一个网段先使用nmap发现地址,然后在对地址进行详细的端口探测
1 | nmap 192.168.1.0/24 |
靶机地址为192.168.1.106
对该地址进行端口扫描
1 | nmap -sV -p- -A -O 192.168.1.106 |
开放了22与80端口
进入80端口发现可以输入信息,但是页面上看不到输入的内容判断使用的是POST方式
可以使用burp抓包尝试修改参数
查看是否存在SQL注入
使用 ‘ or 1=1 – 进行尝试
发现存在SQL注入
直接使用sqlmap进行暴库
1 | sqlmap -u "http://192.168.1.106/results.php" --dbs --data "search=1" --batch |
将两个数据库的内容都爆出来
1 | 第一个库 |
获得第一个库的账号密码,通过解密获得密码
账号:admin
密码:transorbital1
第二个库
获取shell
因为开放了22端口尝试进行远程登录
登录被拒绝
换一种思路进行尝试
使用第一个库爆出的账号密码在页面中进行登录
看看是否能获得一些有用的信息
发现页面最下面显示文件不存在,看看是不是文件包含
1 | http://192.168.1.106/welcome.php?file=../../../../../../../etc/passwd |
命令可以执行
最终通过爆破发现knockd.conf,通过查找资料发现这个文件是端口敲门服务,用于将服务隐藏,需要将它开放的端口进行逐个敲门才能够开启ssh远程连接端口
1 | http://192.168.1.106/welcome.php?file=../../../../../../../etc/knockd.conf |
使用nc逐一敲击三个端口
再次扫描端口之后发现22端口已被打开
连接ssh远程端口需要密码
我们可以使用之前爬取数据库获得的账号与密码生成两个字典
使用hydra进行爆破
因为这是复现,这里直接进入有敏感信息的账号
账号:janitor
密码:Ilovepeepee
登录成功后,ls -al 查看所有文件
发现.secrets-for-putin,这是一个储存密码的文件
将获取的密码写入之前的字典重新进行爆破
账号:fredf
密码:B4-Tru3-001
提权
sudo -l查看是否有可利用信息
进入/opt/devstuff/目录下发现test.py
查看test.py内容
1 | #!/usr/bin/python |
sys.argv[1]是输入的第一个参数:r是read读,output是输出,将读的内容输出
sys.argv[2]是输入的第二个参数:a是append增加,w是写,output是sys.argv[1]里的输入的内容。
这段代码的意思是将输入的第一个文件名的内容,增加到第二个输入的文件名内容里面去
我们可以构造一个root权限的文件,并将这个文件写入到/etc/passwd文件中
passwd格式:
用户名:密码(hash值):uid:gid:注释性描述:宿主目录:命令解释器
首先进入/tmp目录下,因为在这个目录下我们有写权限
第一次尝试失败,因为设置密码时设置的密码为空在提权时直接身份验证失败
使用openssl生成一个新用户和新密码
1 | openssl passwd -1 -salt 123 123 用户:123 密码:123 salt是撒盐加密 |
切换用户 获得flag