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

应急响应靶机练习-Linux2

1.背景

前景需要:看监控的时候发现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

2.环境准备

(1)创建虚拟机

(2)登录虚拟机

账号密码:root/Inch@957821.
(ps:这个密码很坑,我一开始试了很多遍都不对,密码第一个字符是大写的i,最后一个字符是点. )

(3)XShell连接虚拟机

这里使用xshell是为了方便操作,好看一点

3.开始

(1)last

发现192.168.20.1多次登录

[root@web-server ~]# last
root     pts/0        192.168.76.1     Sat Mar 15 23:48   still logged in   
root     tty1                          Sat Mar 15 23:46   still logged in   
reboot   system boot  3.10.0-1160.el7. Sat Mar 15 23:45 - 23:48  (00:02)    
root     pts/1        192.168.20.1     Wed Mar 20 15:36 - crash (360+08:09) 
root     pts/0        192.168.20.1     Wed Mar 20 15:04 - 15:39  (00:34)    
root     pts/0        192.168.20.1     Wed Mar 20 14:30 - 15:04  (00:33)    
reboot   system boot  3.10.0-1160.el7. Wed Mar 20 14:29 - 23:48 (360+09:19) 
root     pts/1        localhost        Wed Mar 20 10:30 - 10:30  (00:00)    
root     pts/0        192.168.20.1     Wed Mar 20 07:59 - crash  (06:30)    
reboot   system boot  3.10.0-1160.el7. Wed Mar 20 07:58 - 23:48 (360+15:49) 
root     pts/0        192.168.20.1     Thu Mar  7 15:36 - crash (12+16:21)  
root     pts/0        192.168.20.1     Thu Mar  7 15:25 - 15:36  (00:11)    
root     pts/0        192.168.20.1     Thu Mar  7 14:39 - 15:25  (00:45)    
root     pts/0        192.168.20.1     Thu Mar  7 14:07 - 14:09  (00:01)    
reboot   system boot  3.10.0-1160.el7. Thu Mar  7 14:06 - 23:48 (373+09:42) 
root     pts/0        192.168.20.1     Thu Mar  7 11:37 - 11:52  (00:15)    
reboot   system boot  3.10.0-1160.el7. Thu Mar  7 11:36 - 23:48 (373+12:11) 
root     pts/0        192.168.20.1     Mon Mar  4 09:48 - down   (00:01)    
root     tty1                          Mon Mar  4 09:47 - 09:50  (00:02)    
reboot   system boot  3.10.0-1160.el7. Mon Mar  4 09:47 - 09:50  (00:03)

(2)lastlog

[root@web-server ~]# lastlog
Username         Port     From             Latest
root             pts/0    192.168.76.1     Sat Mar 15 23:48:06 +0800 2025
bin                                        **Never logged in**
daemon                                     **Never logged in**
adm                                        **Never logged in**
lp                                         **Never logged in**
sync                                       **Never logged in**
shutdown                                   **Never logged in**
halt                                       **Never logged in**
mail                                       **Never logged in**
operator                                   **Never logged in**
games                                      **Never logged in**
ftp                                        **Never logged in**
nobody                                     **Never logged in**
systemd-network                            **Never logged in**
dbus                                       **Never logged in**
polkitd                                    **Never logged in**
sshd                                       **Never logged in**
postfix                                    **Never logged in**
ntp                                        **Never logged in**
www                                        **Never logged in**
mysql                                      **Never logged in**

(3)grep "Failed" /var/log/secure*

[root@web-server ~]# grep "Failed" /var/log/secure*
/var/log/secure:Mar 20 15:36:25 web-server sshd[4377]: Failed password for root from 192.168.20.1 port 1378 ssh2

(4)grep "Accepted" /var/log/secure*

同(1)

[root@web-server ~]# grep "Accepted" /var/log/secure*
/var/log/secure:Mar 20 10:30:25 web-server sshd[4111]: Accepted publickey for root from 127.0.0.1 port 55976 ssh2: ED25519 SHA256:5wjncpQo9MtvNtk8t3A1CdOx2horMhYTghdrKk4ey0k
/var/log/secure:Mar 20 14:30:21 web-server sshd[2365]: Accepted password for root from 192.168.20.1 port 9509 ssh2
/var/log/secure:Mar 20 15:04:22 web-server sshd[4068]: Accepted password for root from 192.168.20.1 port 12423 ssh2
/var/log/secure:Mar 20 15:36:28 web-server sshd[4377]: Accepted password for root from 192.168.20.1 port 1378 ssh2
/var/log/secure:Mar 15 23:48:06 web-server sshd[2550]: Accepted password for root from 192.168.76.1 port 61662 ssh2
/var/log/secure-20240320:Mar  4 09:48:23 web-server sshd[8287]: Accepted password for root from 192.168.20.1 port 11035 ssh2
/var/log/secure-20240320:Mar  7 11:37:01 web-server sshd[1436]: Accepted password for root from 192.168.20.1 port 7796 ssh2
/var/log/secure-20240320:Mar  7 14:07:42 web-server sshd[2375]: Accepted password for root from 192.168.20.1 port 7322 ssh2
/var/log/secure-20240320:Mar  7 14:39:51 web-server sshd[5216]: Accepted password for root from 192.168.20.1 port 13752 ssh2
/var/log/secure-20240320:Mar  7 15:25:23 web-server sshd[5673]: Accepted password for root from 192.168.20.1 port 3129 ssh2
/var/log/secure-20240320:Mar  7 15:36:49 web-server sshd[5849]: Accepted password for root from 192.168.20.1 port 10490 ssh2
/var/log/secure-20240320:Mar 20 07:59:13 web-server sshd[2476]: Accepted password for root from 192.168.20.1 port 5237 ssh2

(5)history

history里面有很多关键信息,是很重要的命令。

[root@web-server ~]# history
    1  systemctl disable firewalld
    2  systemctl disable --now firewalld
    3  setenforce 0
    4  vim
    5  vi /etc/sysconfig/selinux 
    6  poweroff
    7  ip a
    8  cd /var/
    9  ls
   10  cd ww
   11  cd /home/
   12  ls
   13  mysql
   14  yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec
   15  BT
   16  bt
   17  ls
   18  cd /www/
   19  cd wwwroot/
   20  ls
   21  cd 127.0.0.1/
   22  ls
   23  cd ..
   24  ls
   25  cd ..
   26  ls
   27  cd wwwlogs/
   28  ls
   29  cat 127.0.0.1.log 
   30  cd nodejs/
   31  ls
   32  cd ..
   33  ls
   34  cd tcp-error.log 
   35  cat tcp-error.log 
   36  cat nginx_error.log 
   37  cat access.log 
   38  ls
   39  cat 127.0.0.1.log 
   40  cd /www/
   41  ls
   42  cd wwwlogs/
   43  ls
   44  cat 127.0.0.1.log 
   45  bt
   46  ls
   47  cd /www/wwwroot/
   48  ls
   49  cd 127.0.0.1/
   50  ls
   51  rm -rf flag1 1
   52  ls
   53  rm -rf version2.php 
   54  ls
   55  hardlink 
   56  hwclock 
   57  ls
   58  docker ps
   59  rm -rf pe9.sql 
   60  ls
   61  cd vendor/
   62  ls
   63  cd ..
   64  ls
   65  cd ..
   66  sl
   67  ls
   68  ls -a
   69  cd 127.0.0.1/
   70  ls
   71  ls -a
   72  vim .api
   73  ls
   74  ls -a
   75  mkdir .api
   76  ls
   77  ls -a
   78  cd .api/
   79  l
   80  ls
   81  cd ..
   82  ls
   83  cd ap
   84  cd api/
   85  ls
   86  cp * ../.api/
   87  ls
   88  cd ..
   89  ls
   90  cd .api/
   91  ls
   92  vim mpnotify.php 
   93  yum install vim
   94  ls
   95  vim  alinotify.php 
   96  cat /etc/shadow
   97  who
   98  w
   99  history
  100  useradd flag3{5LourqoFt5d2zyOVUoVPJbOmeVmoKgcy6OZ}
  101  env
  102  $flag3 = [root@web-server .api]# useradd flag3{5LourqoFt5d2zyOVUoVPJbOmeVmoKgcy6OZ}
  103  useradd: invalid user name 'flag3{5LourqoFt5d2zyOVUoVPJbOmeVmoKgcy6OZ}'
  104  $flag3 = flag{5LourqoFt5d2zyOVUoVPJbOmeVmoKgcy6OZ}
  105  vim /etc/profile
  106  source /etc/p
  107  source /etc/profile
  108  env
  109  history 
  110  q
  111  e
  112  eexir
  113  exit
  114  history 
  115  ls
  116  chmod +X go_build_untitled.exe 
  117  l
  118  chmod +x go_build_untitled.exe 
  119  ls
  120  ./go_build_untitled.exe 
  121  ls
  122  mv go_build_untitled.exe wp
  123  ls
  124  ./wp 
  125  passwd root
  126  clear 
  127  ./wp 
  128  clear 
  129  pwd
  130  ./wp 

从上面18-29中多次发现/www目录,并且有127.0.0.1.log文件,可以跟webshell的访问和上传有关。

使用scp命令将虚拟机中的文件复制到本机中。

scp root@192.168.76.128:/www/wwwlogs/127.0.0.1.log D:\桌面

(6)挑战一 

查看日志文件,发现几乎都是ip192.168.20.1的记录,判定是攻击者ip

(7)挑战二

要查看管理员密码,密码应该存在mysql数据中,同时,在/www网站目录查看是否存在mysql连接信息。

思路:在/www目录发现/wwwroot,因为含有root,含有配置信息可能性更大,进入/wwwroot,再进入127.0.0.1,使用命令 grep "MYSQL" -r /www/wwwroot/127.0.0.1递归搜索关键字,成功发现配置信息(PS:当然不是一开始就搜索MYSQL,是慢慢试出来的,一开始可能是mysql,Mysql等等)

成功发现mysql配置信息

连接数据库

查看数据库

选择kaoshi数据库

 查看x2_user表,有多个用户,暂时无法确认哪个是管理员

查看x2_user_group表,groupid为1代表管理员,确认peadmin用户为管理员

将userpassword字段拿去md5解密,成功发现管理员密码

MD5在线解密 - 土薯在线工具Toolshu.com

(8)挑战三、挑战四

上面在127.0.0.1.log中发现很多连接的记录,怀疑是webshell的连接url但是暂时无法确定,在root目录下发现存在流量包,还是使用scp命令复制到本地进行分析

scp root@192.168.76.128:/root/数据包1.pcapng D:\桌面

过滤出HTTP协议进行分析

发现都是192.168.20.1与服务器连接

选中第一条数据进行追踪

将请求体中编码的数据进行url解码,发现存在蚁剑的特征,发现第一次连接webshell的url,webshell连接密码为Network2020(脚本中开头部分)

1. 代码特征
核心代码:蚁剑的核心代码部分来源于中国菜刀,因此其连接时的流量特征与中国菜刀较为相似。
常见函数:连接时通常会包含以下PHP函数:
@ini_set("display_errors", "0");:关闭错误显示。
@set_time_limit(0);:取消脚本执行时间限制。
@set_magic_quotes_runtime(0);:禁用魔术引号。
eval() 或 assert():用于执行动态代码。

(9)挑战五 

在流量包中发现访问了flag1

进行追踪流,发现flag1

 

(10)挑战六

观察发现在后半部分,攻击者使用get请求验证version2.php是否存在,后续都是使用它来进行post

 

追踪流,发现是冰蝎的特征,所以version2.php就是后续使用的脚本

冰蝎4.0
加密方式:支持自定义传输协议,取消了固定的连接密码,加密算法和密钥由用户自定义。
流量特征:
Accept字段为application/json, text/javascript, */*; q=0.01。
Content-Type字段为application/x-www-form-urlencoded。
使用长连接,请求头和响应头带有Connection: Keep-Alive。
固定请求头和响应头,请求头为m7nCS8n4OZG9akdDlxm6OdJevs/jYQ5/IcXK,响应头为mAUYLzmqn5QPDkyI5lvSp6DmrC24FW39Y4YsJhUqS7。
默认连接密钥为e45e329feb5d925b。

 

(11)挑战七

在history中看到,曾经对文件进行修改

对这两个文件进行查看(PS:是.api目录,不是api目录,需要使用ls -a命令)

[root@web-server 127.0.0.1]# pwd
/www/wwwroot/127.0.0.1
[root@web-server 127.0.0.1]# ls
api  app  data  files  index.php  lib  tasks  vendor
[root@web-server 127.0.0.1]# ls -a
.  ..  api  .api  app  data  files  index.php  lib  tasks  .user.ini  vendor
[root@web-server 127.0.0.1]# cd .api
[root@web-server .api]# ls
alinotify.php  alireturn.php  mpnotify.php  payjsnotify.php  wxnotify.php
[root@web-server .api]# cat alinotify.php

发现flag2

 (12)挑战八

直接在history中看到 

4.验证 

[root@web-server ~]# ./wp
提交攻击者IP?
192.168.20.1
回答正确!
提交攻击者修改的管理员密码(明文)
Network@2020
回答正确!
提交第一次Webshell的连接URL(http://xxx.xxx.xxx.xx/abcdefg?abcdefg只需要提交abcdefg?abcdefg)
index.php?user-app-register
回答正确!
提交Webshell连接密码
Network2020
回答正确!
提交数据包的flag1
flag1{Network@_2020_Hack}
回答正确!
提交攻击者使用的后续上传的木马文件名称
version2.php
回答正确!
提交攻击者隐藏的flag2
flag2 = "flag{bL5Frin6JVwVw7tJBdqXlHCMVpAenXI9In9}
回答错误!
提交攻击者隐藏的flag3
flag3 = flag{5LourqoFt5d2zyOVUoVPJbOmeVmoKgcy6OZ}
回答错误!
[root@web-server ~]# ./wp
提交攻击者IP?
192.168.20.1
回答正确!
提交攻击者修改的管理员密码(明文)
Network@2020
回答正确!
提交第一次Webshell的连接URL(http://xxx.xxx.xxx.xx/abcdefg?abcdefg只需要提交abcdefg?abcdefg)
index.php?user-app-register
回答正确!
提交Webshell连接密码
Network2020
回答正确!
提交数据包的flag1
flag1{Network@_2020_Hack}
回答正确!
提交攻击者使用的后续上传的木马文件名称
version2.php
回答正确!
提交攻击者隐藏的flag2
flag{bL5Frin6JVwVw7tJBdqXlHCMVpAenXI9In9}
回答正确!
提交攻击者隐藏的flag3
flag{5LourqoFt5d2zyOVUoVPJbOmeVmoKgcy6OZ}
回答正确!

相关文章:

  • 手搓智能音箱——语音识别及调用大模型回应
  • 用Java来创建数字游戏
  • 基于springboot的无人智慧超市管理系统
  • 蓝桥杯2023年第十四届省赛真题-整数删除 暴力-->链表+小根堆
  • 203.移除链表元素
  • 免费影视片库
  • HarmonyOS第22天:解锁鸿蒙服务开发
  • 二叉树题目
  • 冷热数据分层存储:提高效率与降低成本
  • 数据结构(泛型)
  • 大模型MCP协议与Function Calling:构建更智能的AI生态系统
  • 大模型微调中显存占用和训练时间的影响因素
  • OTP单片机调试工具之—单线数据编码
  • RCore学习记录001
  • 微信小程序threejs三维开发
  • 如何解决pymilvus中offset参数不生效的问题?
  • AI与人的智能,改变一生的思维模型【7】易得性偏差
  • 在 WSL中批量执行InSAR任务-stackSentinel.py
  • MySQL数据库知识总结
  • Redis7——进阶篇(六)
  • 复旦大学艺术馆开馆:以当代视角再看文科文脉
  • 关税影响下沃尔玛想涨价,特朗普施压:自行承担,别转嫁给顾客
  • 打造信息消费新场景、新体验,上海信息消费节开幕
  • “GoFun出行”订单时隔7年扣费后续:平台将退费,双方已和解
  • 以军称已开始在加沙的新一轮大规模攻势
  • 机器人为啥热衷“搞体育”,经济日报:是向加速融入日常生活发起的冲锋