背景介绍
看监控的时候发现webshell告警,领导让你上机检查你可以救救安服仔吗!!
挑战内容
1.提交攻击者IP
2.提交攻击者修改的管理员密码(明文)
3.提交第一次Webshell的连接URL(http://xxx.xxx.xxx.xx/abcdefg?abcdefg只需要提交abcdefg?abcdefg)
4.提交Webshell连接密码
5.提交数据包的flag1
6.提交攻击者使用的后续上传的木马文件名称
7.提交攻击者隐藏的flag2
8.提交攻击者隐藏的flag3
解题过程
输入密码(root/Inch@957821.),进入终端
中文乱码,故使用ssh登录
第一步可以先看看历史命令,看看攻击者做了什么
可以看到他关闭了防火墙的自启动,也关闭了正在运行的防火墙进程
并且把SElinux设置为Permissive模式,允许所有操作。
SELinux,全称为Security-Enhanced Linux,是由美国国家安全局开发的一个Linux内核模块,也是Linux的安全子系统。它在2.6及以上版本的Linux内核中集成,通过强制访问控制(MAC)机制来增强系统的安全性。SELinux的主要作用是最大限度地减小系统中服务进程可访问的资源,遵循最小权限原则。这意味着,即使系统受到攻击,进程也只能访问它被授权的资源,从而防止了潜在的损害扩散到整个系统。
SELinux有三种工作模式:enforcing(强制模式)、permissive(宽容模式)和disabled(关闭模式)。在enforcing模式下,违反SELinux规则的行为将被阻止并记录到日志中;在permissive模式下,违规行为仅记录到日志而不阻止;而在disabled模式下,SELinux完全不起作用。
可以看到在/home目录下,下载了一个.sh文件
查看此文件内容,发现是宝塔安装程序
陌生命令,尝试后发现是宝塔面板命令行
14可以得到面板地址
在宝塔面板命令中中5修改面板密码
登录面板
在面板日志发现可疑ip
在网站日志中发现此ip大量访问version2.php记录,基本可以确认就是攻击ip,
在网站目录下未找到version2.php文件
在查看history时,发现攻击者删除了version2.php这更加坐实了此ip是攻击ip
1.提交攻击者IP
2.提交攻击者修改的管理员密码(明文)
3.提交第一次Webshell的连接URL(http://xxx.xxx.xxx.xx/abcdefg?abcdefg只需要提交abcdefg?abcdefg)
4.提交Webshell连接密码
5.提交数据包的flag1
6.提交攻击者使用的后续上传的木马文件名称
7.提交攻击者隐藏的flag2
8.提交攻击者隐藏的flag3
在数据库选项中,可以使用root密码进入phpadmin
在kaoshi库中的x2_user表中发现加密的管理员密码
在线解密后得到明文密码
1.提交攻击者IP
2.提交攻击者修改的管理员密码(明文)
3.提交第一次Webshell的连接URL(http://xxx.xxx.xxx.xx/abcdefg?abcdefg只需要提交abcdefg?abcdefg)
4.提交Webshell连接密码
5.提交数据包的flag1
6.提交攻击者使用的后续上传的木马文件名称
7.提交攻击者隐藏的flag2
8.提交攻击者隐藏的flag3
可以使用此账号登录网站,是一个考试网站
继续排查历史命令
在/www/wwwroot/127.0.01下创建了隐藏文件夹.api后将api的文件全部复制到.api,并修改了.api文件夹下的mpnotify.php和alinotify.php文件
在alinotify.php中发现了flag2
尝试将flag3藏到用户名中失败后,将flag3添加到环境变量中了
至此,历史命令排查完毕,可以看到历史命令对于推断攻击者行为很有帮助,所以大部分攻击者都会清除历史命令。
1.提交攻击者IP
2.提交攻击者修改的管理员密码(明文)
3.提交第一次Webshell的连接URL(http://xxx.xxx.xxx.xx/abcdefg?abcdefg只需要提交abcdefg?abcdefg)
4.提交Webshell连接密码
5.提交数据包的flag1
6.提交攻击者使用的后续上传的木马文件名称
7.提交攻击者隐藏的flag2
8.提交攻击者隐藏的flag3
回到linux主机继续排查
发现了攻击者192.168.120.1的登录痕迹
没有发现新增或可疑的账号
开机启动项,未发现异常
计划任务没有发现可疑任务和可疑路径
开机启动项未发现异常
继续排查日志,发现访问的url都是考试网站内容,故进入网站进行排查,可以使用在数据库解密得到的密码和账号登录(peadmin:Network@2020),而后在标签管理中发现一句话木马,密码是Network2020,猜测第一次连接webshell的地址是index.php?content-master-blocks-modify&blockid=1&page=
但是返回之后发现位置是在注册页面
所以应该是index.php?user-app-register
1.提交攻击者IP
2.提交攻击者修改的管理员密码(明文)
3.提交第一次Webshell的连接URL(http://xxx.xxx.xxx.xx/abcdefg?abcdefg只需要提交abcdefg?abcdefg)
4.提交Webshell连接密码
5.提交数据包的flag1
6.提交攻击者使用的后续上传的木马文件名称
7.提交攻击者隐藏的flag2
8.提交攻击者隐藏的flag3
本机基本已经排查完了,还记得刚进入系统时root目录除了flag的文件还有什么吗,
没错,还有一个数据包文件。
现在让我们来分析它,下载的话,我使用的Finalshell可以直接下载,也可以在靶机开一个微型服务器传文件,方法有很多
wireshark打开数据包可以先过滤一下http流量,然后再按时间排个序
第一个就是index.php?user-app-register,追踪流后发现了webshell通信流量
解密后:
连接密码是Network2020
后面连接了一次version.php之后,全部都是与version2.php进行通信,应该是后续上传的木马名称
1.提交攻击者IP
2.提交攻击者修改的管理员密码(明文)
3.提交第一次Webshell的连接URL(http://xxx.xxx.xxx.xx/abcdefg?abcdefg只需要提交abcdefg?abcdefg)
4.提交Webshell连接密码
5.提交数据包的flag1
6.提交攻击者使用的后续上传的木马文件名称
7.提交攻击者隐藏的flag2
8.提交攻击者隐藏的flag3
继续排查发现发现flag1字段
追踪流后找到flag1
1.提交攻击者IP
2.提交攻击者修改的管理员密码(明文)
3.提交第一次Webshell的连接URL(http://xxx.xxx.xxx.xx/abcdefg?abcdefg只需要提交abcdefg?abcdefg)
4.提交Webshell连接密码
5.提交数据包的flag1
6.提交攻击者使用的后续上传的木马文件名称
7.提交攻击者隐藏的flag2
8.提交攻击者隐藏的flag3
攻击视角
结合挑战内容还原攻击视角
1.信息搜集,发现有web应用
2.网上搜索PHPEMS默认密码,或进行爆破,得到密码进入网站后台
3.在标签管理发现可以写入一句话木马进行提权
4.获取到靶机root权限
注:若有其他思路欢迎评论区分享