目录
1. 请提交攻击者的ip与系统版本
2. 攻击者通过某个组件漏洞获得服务器权限,请提交该组件的名称
3. 请提交攻击者首次攻击成功的时间
4. 请提交攻击者上传的webshell文件绝对路径
5. 请提交攻击者使用的webshell管理工具
6. 攻击者进一步留下的免杀的webshell在网站中,请提交该shell的原文内容
7. 攻击者修改了某文件,导致webshell删除后,攻击者仍然拥有服务器权限,请提交该文件的绝对路径
8. 请提交网站服务连接数据库使用的数据库账号和密码
9. 请提交攻击者在数据库中留下的信息,格式为:flag{...}
10. 请分析攻击者的入侵行为与过程
练习环境: Linux localhost 3.10.0-1160.el7.x86_64
到文件根目录看到有www目录
查看www的web日志
www/wwwlogs/172.16.24.128-access_log
(如果实在是找不到web日志就通过find查找find -name '*access*log*' -type f)
cat ./172.16.24.128-access_log
单独筛选出POST数据
cat www/wwwlogs/172.16.24.128-access_log | grep POST
这里能看到172.16.24.1这个ip多次访问tt1.php这个文件,很可疑
单独查找tt1.php
cat www/wwwlogs/172.16.24.128-access_log | grep tt1.php
这里能看到黑客执行了phpinfo()获取了网站配置信息
黑客ip:172.16.24.1
系统:Windows NT 10.0; Win64; x64
这里先略过,先把web日志分析完再来做
这里先去看用户配置文件passwd里的ront用户
cat etc/passwd | grep 0:0
这里发现除了root用户还有一个www用户和msf用户有root权限
查看所有用户登录时间
没什么收获
这里去看home目录下的用户
这里有www用户的目录
查看www用户的历史命令记录
这里 .bash_history是隐藏文件
这里发现www用户执行过cve-2021-3156漏洞的python文件
似乎是系统漏洞
还执行过 ./suggester.sh来进行信息搜集
因为比赛的时候是没有网的所以这里不去搜索这个文件是哪个组件的漏洞
现在去查系统日志文件
/var/log/message 内核消息及各种应用程序的公共日志信息,包括启动、I/O错误、 网络错误、
/var/log/cron Crond周期性计划任务产生的时间信息
/var/log/dmesg 弓|导过程中的各种时间信息
/var/log/ maillog 进入或发出系统的电子邮件活动
/var/log/lastlog 每个用户最近的登录事件
/var/log/secure 用户认证相关的安全事件信息
/var/log/wtmp 每个用户登录注销及系统启动和停机事件
/var/log/btmp 失败的、错误的登录尝试及验证事件
这里先看secure文件
当看到www用户时发现用户进行了提权, 使用的是sudo组件的漏洞
组件: sudo
继续分析
这里能明显看到,黑客上传成功后门以后先是访问了一下是否存在,后续便通过工具连接
首次攻击成功实践:[04/Oct/2023:22:30:18 +0800]
全局搜索tt1.php
find / -name 'tt1.php' -type f
文件绝对路径:/www/wwwroot/172.16.24.128/wp-content/plugins/wp-file-manager/lib/files/tt1.php
从后门文件来看看不出是使用的那种webshell管理工具
那么只能从webshell管理的流量上下手
继续分析web日志
数据包流量特征:
中国菜刀:
1,请求包中:ua头为百度,火狐
2,请求体中存在eavl,base64等特征字符
3,请求体中传递的payload为base64编码蚂蚁宝剑:
使用普通的一句话都存在以下特征:
每个请求体都存在@ini_set(“display_errors”, “0”);@set_time_limit(0)开头。并且后面存在base64等字符
响应包的结果返回格式为:随机数 响应内容 随机数冰蝎2.0
第一阶段请求中返回包状态码为200,返回内容必定是16位的密钥
请求包存在:Accept: text/html, image/gif, image/jpeg, ; q=.2, /; q=.2
冰蝎3.0
请求包中content-length 为5740或5720(可能会根据Java版本而改变)
每一个请求头中存在
Pragma: no-cache,Cache-Control: no-cache
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/*;q=0.8,application/signed-exchange;v=b3;q=0.9哥斯拉
所有请求中Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8
从整体来看像是菜刀
shell管理工具:菜刀
到这里以后回到第二步
这里我还是老样子全局搜索所有可能为后门的文件
cat `find / -name '*.php' -type f` | grep eval
这里我一般会找三个后门文件后缀 asp jsp php,最常见的就是php所以首先查找
第二筛选内容也是后门文件的特征assert eval system之类的函数
当看到这里时找到免杀后门文件
这里的后门文件先用a接受json加密后的命令,再用data接受解密后的,再输出执行后的data
通过内容特征找这个文件
find / -name '*.php' -type f | xargs grep 'cdp'
后门免杀文件路径:/www/wwwroot/172.16.24.128/wp-admin/user/passthru.php
到这里主要需要分析的就是自启动项目还有就是恶意文件了
先看网络有没有外联其他ip
查看进程ps -aux
这里发现了反弹shell
继续查看此进程详情
这里并没有任何信息, 猜测是写在开机自启动或者定时任务里的命令
查看定时任务列表
没有定时任务, 手动去查
cat /etc/init.d/rc.local cat /etc/rc.local ls -alt /etc/init.d
查看init.d文件夹下的所有文件的详细信息
并没有什么有用信息
查看定时任务
发现反弹shell代码
路径: /etc/crontab
这里去找网站的配置文件, 配置文件里有账号密码
找不到的话可以搜索www目录下的config文件
账号: sql172_16_24_12
密码: sqlpass
登录mysql
使用在配置文件看到的数据库
查表
查数据
flag{th1s_ls_fl99999g1}
- 通过web端漏洞上传后门文件
- 再通过后门文件上传免杀webshell
- 通过系统漏洞提权
- 为了保持权限在定时文件中加入反弹shell