当前位置: 首页 > news >正文

应急响应靶机——WhereIS?

用户名及密码:zgsf/zgsf


下载资源还有个解题.exe:

1、攻击者的两个ip地址

2、flag1和flag2

3、后门程序进程名称

4、攻击者的提权方式(输入程序名称即可)


之前的命令:


1、攻击者的两个ip地址

先获得root权限,查看一下历史命令记录:

看样子攻击者在/桌面/tmp目录可能写了一个脚本upgrade.sh和对system.log文件进行了一些操作


赋予“开启环境.sh”执行权限:


但是发现upgrade.sh文件消失了


find命令查看upgrade.sh文件在哪

呃,应该是删掉了?先看看system.log文件在哪吧


find / -name 'system.log' 2>/dev/null

找到system.log的文件路径/home/.system_config/system.log


cat命令查看system.log文件内容:

看样子,第一个攻击者IP应该是192.168.31.64


本来想直接用grep命令搜索含有“192.168.31.64”的文件的内容的,但没反应:

grep -rnw '/' -e "192.168.31.64" 2>/dev/null


直接看看计划任务程序:

cat /etc/crontab

只有这一个任务计划程序,这应该是攻击者留下的恶意脚本,查看一下

很明显这是个反弹shell,通过 TCP 连接到192.168.31.64:1133并提供对系统的远程控制

攻击者第一个IP就是192.168.31.64


查看靶机IP时发现还有个docker,从这入手分析一下:

docker ps -a

可以看到容器有rabbitmq,webdav,phpadmin,think,nignx,mysql,而且只有webdav容器正在运行,其他容器都处于Exited状态,查询了一下相关资料:

其中thinkphp的漏洞风险更大,优先去排查该容器


启动think容器并查看是否成功启动:

docker start 1d1aa8b3f126

docker ps


进入think容器:

docker exec -it 1d1aa8b3f126 sh

ls -a

thinkphp框架的默认日志路径是:

ThinkPHP 5.1/6.x/7.x/8.x runtime/log/

ThinkPHP 3.x/5.0 runtime/Logs/

顺着路径下去访问,发现有个22.log:


查看22.log文件内容:

可以看到192.168.31.251进行恶意操作,执行远程命令,显示phpinfo

攻击者第二个IP就是192.168.31.251

答案:192.168.31.64和192.168.31.251


2、flag1和flag2

本来想直接

find / -name *flag*查找关键词“flag”

grep -Ern "\{[^\}]*\}" /查找关键词括号“{}”

但结果太多了,换种思路


先前history命令看到还进入了/home/.system_config目录,先去看看吧:

ls -a发现有个systemd_null文件,cat命令查看发现贼多信息,看不过来


没有头绪了,看看别人的WP,发现在/home目录下有个.system文件,cat命令查看一下找到flag:

找到第一个flag:

SYS{ZGSFYYDSadmin}


第二个flag也是找不到了,看了别人的WP才知道需要查看容器内文件变化:

最后在nginx容器里发现有个index.html和www.txt,这并不常见:

docker diff 2da3b55bd66c


启动nginx容器,并进去查看这两个文件内容:

docker start 2da3b55bd66c

docker exec -it 2da3b55bd66c sh

找到第二个flag:

zgsf{yerhawtigouhegih}

答案:SYS{ZGSFYYDSadmin}和zgsf{yerhawtigouhegih}


3、后门程序进程名称

上传whoamifuck.sh并赋予权限:

chmod 777 whoamifuck.sh


查看一下whoamifuck.sh的命令:

./whoamifuck.sh -h


查看是否存在的webshell文件:

./whoamifuck.sh -w /

发现存在一个peiqi.php文件,但感觉不是什么后门程序进程


根据先前的history命令看到的历史命令提及到system.log,觉得应该从这里入手:

这个命令是在后台启动一个system_null文件,并让它监听靶机的8899端口,同时将输出日志保存到system.log文件

但还有个就是systemd_null文件,并让它监听靶机的8896端口,同时将输出日志保存到system.log文件

猜测应该是打错文件名了,正确的应该是systemd_null文件,因为前面看到了有个systemd_null文件


用find命令各自检索一下文件名:

find / -name system_null

find / -name systemd_null

发现只有systemd_null文件的文件路径


先查看一下system.log文件内容:

这时候突然想起来这就是第一问的操作,那后门程序进程名就是systemd_null

答案:systemd_null


4、攻击者的提权方式(输入程序名称即可)

根据第一问和第二问通过docker容器获得的答案,猜测应该是通过docker来提权,直接journalctl _COMM=sudo > sudo.txt,使用systemd的系统查看sudo命令的历史,保存为sudo.txt文件

发现还有安装docker容器的命令,但还是那个问题,关键词“docker”太多了,没法确定,换种思路


经了解,攻击者获取到docker的权限之后是利用的容器逃逸进行的提权,而容器逃逸需要一定条件,去检查docker.sock是否可访问

find / -name docker.sock

发现有两个docker.sock,先看看第一个


ls -la /var/run/docker.sock

但docker.sock文件大小是0,有点奇怪,再看看另一个docker.sock文件:

发现文件大小也是0,可权限不太一样,但还是确定了通过docker提权

答案:docker


答案总结:

1、192.168.31.64和192.168.31.251

2、SYS{ZGSFYYDSadmin}和zgsf{yerhawtigouhegih}

3、systemd_null

4、docker

原来有提示6个字符啊,那大概都猜得出来是docker,成功攻克该靶机!

相关文章:

  • C# 中 static的使用
  • Mysql的索引,慢查询和数据库表的设计以及乐观锁和悲观锁
  • DeepSeek | AI需求分析
  • 从零开始的python学习(七)P89+P90+P91+P92+P93+P94
  • Tauri(2.5.1)+Leptos(0.7.8)开发桌面应用--程序启动界面
  • Python基础:类的深拷贝与浅拷贝-->with语句的使用及三个库:matplotlib基本画图-->pandas之Series创建
  • HDFS概述
  • 杰理强制烧录拨码开关
  • cursor 30.Our servers are currently........
  • 网络层:ICMP协议
  • javascript万字全解知识宝库
  • Unity ML-Agents实战指南:构建多技能游戏AI训练系统
  • 吴恩达机器学习笔记:监督学习
  • 【基于ALS模型的教育视频推荐系统(Java实现)】
  • hashCode()和equals(),为什么使用Map要重写这两个,为什么重写了hashCode,equals也需要重写
  • csdn博客打赏功能
  • 小刚说C语言刷题—1149 - 回文数个数
  • 什么是IP专线?企业数字化转型的关键网络基础设施
  • 大小端的判断方法
  • cursor对话关键词技巧
  • 专访|韩国世宗研究所中国研究中心主任:李在明若上台将推行均衡外交
  • 权益类基金发行回暖,这些老将挂帅新基,谁值得买?
  • 女高音吴睿睿“古词新唱”,穿着汉服唱唐诗宋词
  • 中国工程院院士、国医大师石学敏逝世
  • 贵州省总工会正厅级副主席梁伟被查,曾任贵州省纪委副书记
  • 巴称巴控克什米尔地区11人在印方夜间炮击中身亡