玄机靶场 | blueteam的小心思
前言
玄机靶场日常刷题记录,练练手
索引
玄机题目
步骤#1
攻击者通过什么密码成功登录了网站的后台?提交密码字符串的小写md5值,格式flag{md5}。
在根目录发现wireshark.pcap文件,可以用wireshark进行流量分析
将文件通过SFTP传到本地,过滤出http流量
一个一个分析,发现可疑流量,直接得到账号密码
md5加密得
1 | flag{d63edb0e9df4cf411398e3658c0237e0} |
步骤#2
攻击者在哪个PHP页面中成功上传了后门文件?例如upload.php页面,上传字符串”upload.php”的小写md5值,格式flag{md5}。
继续往下分析,发现可疑流量
发现这里上传了一个zip压缩包,追踪TCP流
发现一句话木马,确定攻击者是通过该页面上传木马文件,加密pluginmgr.php字符得到
1 | flag{b05c0be368ffa72e6cb2df7e1e1b27be} |
步骤#3
找到攻击者上传的webshell文件,提交该文件的小写md5值,格式flag{md5}。
直接查找关键字
1 | grep -r --include="*.php" 'eval($_POST' / |
加密文件得到flag
1 | flag{a097b773ced57bb7d51c6719fe8fe5f5} |
步骤#4
攻击者后续又下载了一个可执行的后门程序,提交该文件的小写md5值,格式flag{md5}。
继续分析流量,发现可疑流量
发现这个木马文件在尝试下载一个文件,直接搜索这个文件
1 | find / -name "is.world" |
这里有个坑,不能直接加密文件,要用引号括起来再加密,不然中间的空格会分隔指令
1 | md5sum "/var/www/html/plugins/. /is.world" |
得到flag
1 | flag{ee279c39bf3dcb225093bdbafeb9a439} |
步骤#5
攻击者创建了后门用户的名称是?例如attack恶意用户,上传字符串”attack”的小写md5值,格式flag{md5}。
查看用户列表
1 | cat /etc/passwd |
发现有个用户的用户ID和组ID都为0,权限很高,一般情况下只有管理员的UID和GID为0,说明这个是后门用户,直接加密得到flag
1 | flag{4cda3461543c9a770a3349760594facd} |
步骤#6
攻击者创建了一个持久化的配置项,导致任意用户登录就会触发后门的连接。提交该配置项对应配置文件的小写md5值,格式flag{md5}。
一般这种情况是修改了shell配置文件,常见的配置文件包括
1 | 用户级别 |
一般情况执行顺序,可以用作参考
1 | 1.登录 Shell |
这里一个一个尝试即可,发现/etc/profile有问题
直接md5sum加密得到flag
1 | md5sum /etc/profile |
步骤#7
攻击者创建了一个持久化的配置项,导致只有root用户登录才会触发后门的连接。提交该配置项对应配置文件的小写md5值,格式flag{md5}。
搜索后门触发命令,这里搜索的是用户目录下的可疑配置文件
1 | grep -r -E '(nc|curl|wget|bash|python|eval|base64)' ~/ |
发现有个配置文件尝试外联恶意网址
直接加密得到flag
1 | flag{4acc9c465eeeb139c194893ec0a8bcbc} |
步骤#8
攻击者加密了哪个数据库?提交数据库的文件夹名,例如user数据库对应存放位置为user文件夹,上传字符串”user”的小写md5值,格式flag{md5}。
确定数据库类型
1 | systemctl list-units --type=service | grep -E '(mysql|mariadb|postgresql|mongodb|redis)' |
查看数据库的登录信息,一般放在配置文件“config.inc.php”里面
1 | find / -name config.inc.php |
得到数据库账号密码,用 Premium连接,一个一个尝试,发现有个数据库无法查看,说明被加密了,这里用的大佬的图
查找对应文件,可以得到文件所在路径
1 | find / -name JPMorgan@0020Chase |
加密文件夹名得到flag
1 | flag{0928a5424aa6126e5923980ca103560e} |
步骤#9
解密数据库,提交Harper用户对应Areer的值。提交Areer值的小写md5值,格式flag{md5}。
查看mysql文件夹,发现有个可疑文件
直接抓取内容看看,发现是个加密脚本
这里要写一个逆推脚本,参考网上的文章
1 |
|
这里的时间是JPMorgan@0020Chase的创建时间
1 | stat JPMorgan@0020Chase #查看详细信息 |
把脚本写进/var/www/mysql/目录
1 | vim 1.php |
先按i
插入代码,然后按一下Esc
,再按住shift + :
,然后输入wq
保存
运行代码
1 | php 1.php |
重启数据库
1 | systemctl restart mysql |
这时再返回Premium,可以发现数据库解密了,Harper用户对应Areer为Chef,加密即可
1 | flag{8fd82b8864d71ed7fa12b59e6e34cd1c} |
步骤#10
因为什么文件中的漏洞配置,导致了攻击者成功执行命令并提权。提交该文件的小写md5值,格式flag{md5}。
这里攻击者用到提权,可以查找以 root 用户身份拥有并设置了 SUID(Set User ID)权限的文件。
1 | find / -user root -perm -4000 2>/dev/null #4000 代表文件权限中的 SUID 位。 |
当一个文件被设置了 SUID 位,并且用户执行该文件时,该程序会以文件拥有者(通常是 root)的权限运行,而不是以当前用户的权限运行
发现/usr/bin/sudo,sudo 被广泛用于权限提升,估计攻击者通过这个提权,/etc/sudoers 包含了系统上 sudo 的配置和权限设置,这里抓取内容看一下
1 | cat /etc/sudoers |
www-data用户被赋予了root权限,而且不需要输入密码,到这里已经可以确认漏洞配置了,就是/etc/sudoers ,加密文件得到flag
1 | flag{6585817513b0ea96707ebb0d04d6aeff} |
参考
特别鸣谢
Peterpan.exe:https://blog.csdn.net/administratorlws/article/details/140471298
玄机靶场 | blueteam的小心思
https://waynejoon.github.io/posts/Xuanji-CTF-Blue-Team-Forensics/