写在前面

近期冰蝎更新了内网穿透模块中的一些功能,有不少朋友不知道参数怎么填,希望能出一个使用指导手册,就借这个机会写一个“说明书”(文中有大量演示动图,请耐心等待加载)。

基本信息

由于冰蝎采用了会话加密,所以客户端首次和服务端通信会有一个协商的过程(v3.0之后的版本不存在密钥协商过程),成功建立连接后,会把服务器侧的一些基本信息,显示在这个Tab页。

命令执行

这里的命令执行提供非交互式的命令执行,常规功能,不再赘述。

虚拟终端

虚拟终端提供一个交互式的真实终端,相当于把服务器侧的Shell给搬到了客户端,在这个Shell里可以执行各种需要交互式的命令,如ssh、mysql:

也可以正常使用vi、vim等命令:

或者top命令:

当然,你也可以直接在里面使用python:

上面是linux环境,windows环境也一样,可以直接使用python,也可以直接使用powershell,如下图:

最后,说明一下,虚拟终端和命令执行不同的是,虚拟终端使用完毕需要点击“停止”按钮来关闭服务器侧的shell进程。

文件管理

常规功能,不再展开描述。

内网穿透

内网穿透模块目前提供了多个穿透方案:

  1. 基于VPS中转的端口映射;
  2. 基于HTTP隧道的端口映射;
  3. 基于VPS的socks代理映射;
  4. 基于HTTP隧道的socks代理映射;
  5. 反向DMZ映射;

下面分别予以介绍。

基于VPS中转的端口映射

该功能可以直接将目标内网中的某个正在监听的端口映射至VPS,由于是通过VPS中转,所以需要10.211.55.11这台靶机允许出网,以如下网络拓扑为例:

攻击者已在10.211.55.11上上传webshell,想要访问目标内网中10.211.55.9的3389端口,只需要在冰蝎中把10.211.55.9的3389端口转发至VPS(8.8.8.8)上即可,具体操作如下:

首先在vps上使用portmap或者lcx同时监听两个端口:

然后在冰蝎中填上对应的参数:

开启后,VPS上的2222端口会提示收到来自目标网络的链接:

然后链接VPS的3388端口,即可访问目标内网10.10.0.102的3389端口:

基于HTTP隧道的端口映射

如果目标靶机不能出网,冰蝎同样可以复用HTTP端口进行端口映射,把目标端口映射至本机,如下图:

开启后,攻击者本机会开启一个2222端口,如下图:

直接连接127.0.0.1:2222端口即可连接10.211.55.9的3389端口。

基于VPS的socks代理映射

上文都是基于单端口的映射,如果想要访问内网多台机器的多个服务,基于单端口的映射就会需要映射多次,比较麻烦。同样冰蝎提供了两种socks代理的映射。首先介绍基于VPS的socks代理映射,当然前提也是靶机能出网。还是以上文的网络拓扑为例:

首先明确一下目标:我想在10.211.55.11上开设一个socks5代理服务,由于代理服务开在目标内网,我还需要把代理服务端口映射至VPS(8.8.8.8)。

还是需要先在VPS上使用portmap做如下监听:

然后冰蝎做如下配置:

开启后,VPS的2222端口会收到来自靶机的连接,

这时候我们的VPS(8.8.8.8)已经在3388端口上开启了一个socks5的服务端口,然后本地使用socks5代理客户端做一下配置,此处我使用系统自带的proxychains做示例,配置如下:

这时候,通过proxychains即可访问到目标内网,比如我们想访问10.211.55.11的web服务,边可以直接proxychains curl http://10.211.55.11/test.txt

基于HTTP隧道的socks代理映射

当靶机无法外连时,就需要通过HTTP隧道把内网的socks服务端口转发出来,冰蝎做如下配置:

开启后,攻击者本机会监听2222端口,并在此端口上开启Socks5代理服务,修改proxychains的配置文件,设置socks服务器为127.0.0.1:2222:

使用proxychains访问10.211.55.9和10.211.55.11的web服务,如下:

反向DMZ映射

反向DMZ映射是将攻击者本地网络(或者公网VPS)中的某个监听端口映射至目标网络中,适用于目标网络不出网,但是又需要目标网络回连的情况,此处列举如下四种场景:

  1. 已拿到10.211.55.11的webshell,最终目标为10.211.55.9,可以通过某漏洞实现在10.211.55.9上的RCE。10.211.55.11和10.211.55.9都不能出网,但是我又想使用CobaltStrike来操作这台机器,这时候就可以把CobaltStrike服务器(例如8.8.8.8)的监听端口(例如5538)映射至10.211.55.11上,然后CobaltStrike木马的回连地址设置为10.211.55.11:5538。木马运行后,会回连10.211.55.11:5538,冰蝎会把10.211.55.11:5538的流量转发至真正的CobaltStrike服务器(8.8.8.8)。

    网络拓扑如下:

  2. 攻击者机器处于内网,地址为192.168.0.1,CobaltStrike服务器部署在192.168.0.100。已拿到目标网络10.211.55.11的webshell,最终目标为10.211.55.9,可以通过某漏洞实现在10.211.55.9上的RCE。10.211.55.11和10.211.55.9都不能出网,但是我又想使用CobaltStrike来操作这台机器,这时候就可以把CobaltStrike服务器(例如192.168.0.100)的监听端口(例如5538)映射至10.211.55.11上,然后CobaltStrike木马的回连地址设置为10.211.55.11:5538。木马运行后,会回连10.211.55.11:5538,冰蝎会把10.211.55.11:5538的流量转发至真正的CobaltStrike服务器(192.168.0.100)。

    网络拓扑如下:

  3. 已拿到10.211.55.11的webshell,最终目标为10.211.55.9,10.211.55.11和10.211.55.9都不能出网,10.211.55.9存在ms17-010漏洞,漏洞exp需要反弹shell,这时候就可以在VPS(8.8.8.8)上监听4444端口,然后把4444端口映射至10.211.55.11:4444,然后ms17-010的exp回连地址设置为10.211.55.11:4444,即可让exp回连至8.8.8.8:4444。

  4. 攻击者机器处于内网,地址为192.168.0.1,已拿到10.211.55.11的webshell,最终目标为10.211.55.9,10.211.55.11和10.211.55.9都不能出网,10.211.55.9存在ms17-010漏洞,漏洞exp需要反弹shell,这时候就可以在攻击者本地(192.168.0.1)上监听4444端口,然后把4444端口映射至10.211.55.11:4444,然后ms17-010的exp回连地址设置为10.211.55.11:4444,即可让exp回连至192.168.0.1:4444。

    接下来我们以第1种场景为例,来做一下演示:

    首先在VPS上启动CobaltStrike Server,如下图:

    然后在冰蝎中做如下配置:

“监听IP地址中”填写CobaltStrike服务器的外网IP地址,开启。此时可以看到webshell所在机器已经开始监听5538端口:

然后我们配置一个cs木马,回连地址设置为10.211.55.11,生成artifact.exe,通过psexec在10.211.55.9上执行,成功上线:

整个过程中,10.211.55.9和10.211.55.11没有与外网新建TCP连接。

反弹Shell

冰蝎在v1.0版本即提供了一键反弹shell和反弹meterpreter的功能,在v3.0中新增了一键反弹CobaltStrike。

普通Shell

反弹至公网VPS

冰蝎做如下配置:

IP地址中填入VPS公网地址,然后在VPS上nc监听9090端口(当然也可以使用msfconsole来代替nc,msfconsole更稳定一些,功能也更丰富):

当然这是目标能出网的情况下,如果目标不能出网是不是就不能反弹shell至公网VPS了呢?答案是也可以反弹。只需要勾选“目标不出网”复选框,即可:

冰蝎后台会通过HTTPS隧道技术将shell反弹至公网VPS:

反弹shell会话已经建立,可以看到10.211.55.11上并没有到VPS的网络连接:

反弹至本地

当然如果你没有VPS,也可以直接将shell反弹至本地,冰蝎会通过复用HTTP信道将shell反弹至本地机器,IP地址只要填写127.0.0.1即可,如下:

来张动图:

当“IP地址”为127.0.0.1时,是否勾选“目标不出网”复选框没有区别。

反弹至本地局域网

当目标不出网时,可以降shell反弹至攻击者本机所在局域网中的其他机器,IP地址直接填内网地址(如192.168.0.100)即可,需要勾选“目标不出网”复选框。

Metepreter

反弹至公网VPS

Metepreter的反弹和Shell类似,此处不再赘述,参数配置如下,其中msfconsole中相关的命令冰蝎已在提示框中给出示例,建议直接复制,避免写错payload导致上线异常:

反弹至本地

参数配置如下:

反弹至本地局域网

当目标不出网时,可以降Metepreter反弹至攻击者本机所在局域网中的其他机器,IP地址直接填内网地址(如192.168.0.100)即可,需要勾选“目标不出网”复选框。

CobaltStrike

冰蝎支持Java和Aspx版本的CobaltStrike一键上线功能,采用windows/beacon_https/reverse_https上线方式。 因为冰蝎采用注入JVM进程方式来植入代码,如果需要退出CobaltStrike会话,需先将CobaltStrike会话迁移至其他进程再退出,避免JVM进程停止。同样,CobaltStrike的一键上线也提供了两种方式,目标出网的情况下,可以直接上线至公网VPS,目标不出网的情况下,可以上线至攻击者本机CS Server或者攻击者本地局域网中的CobaltStrike Server。

上线至公网VPS

如需将目标上线至部署于VPS的CobaltStrike Server,“连接信息”中的“IP地址”直接填VPS的IP地址,如下:

成功上线:

上线至本地

如果CobaltStrike Server搭建在本机,直接在“连接信息”中的“IP地址”栏填入“127.0.0.1”即可上线至本地。

上线至本地局域网

当目标不出网时,可以降CobaltStrike上线至攻击者本机所在局域网中的其他机器,IP地址直接填内网地址(如192.168.0.100)即可,需要勾选“目标不出网”复选框。

数据库管理

数据库管理属于常规功能,目前支持SQL Server、MySQL、Oracle,当服务器环境为Java或者C#时,如果缺少对应的数据库管理库,冰蝎会自动上传并加载对应的库文件。

另外,如果数据库连接密码中有特殊字符(如@符号),用URL编码一下即可(@编码之后为40%)。

自定义代码

冰蝎提供asp、c#、php、Java的自定义代码执行功能,文本框支持语法高亮,c#和Java会把输入的源代码自动编译并执行。

平行空间

该模块正在进行不同环境的适配,预计在v3.0正式版中启用。

扩展功能

该模块正在进行不同环境的适配,预计在v3.0正式版中启用。

备忘录

备忘录模块提供对当前shell的一些临时文本信息进行存储。直接输入内容即可,冰蝎会自动保存。

更新信息

该模块展示冰蝎的更新日志、使用交流群二维码等,同时会不定期发布server端的一些免杀版本。

内存马注入

冰蝎采用基于Agent技术的Java内存马注入功能,目前支持Tomcat、Weblogic、Jboss。其中Tomcat和Jboss对内存马注入路径没有任何限制。Weblogic的内存马注入路径需要在真实存在的应用名称的路径下,比如http://xxx.com:7001/console/memshell,console即为应用名称不能直接注入到http://xxx.com:7001/memshell

另外,冰蝎还提供了内存马防检测功能,该功能会阻止其他Agent注入进当前JVM进程。当然注入内存马的时候如果开启该功能,冰蝎后续也无法再次注入内存马。

小结

最初,我只是重写了几个版本的一句话木马(因为在冰蝎之前没有真正实现eval效果的Java一句话木马),同时提出了一套理论,用来绕过流量型防护设备,顺便写了个demo用来验证上述理论的效果。所以冰蝎这个客户端只是理论的一个衍生品,不过后来用的小伙伴比较多,我就继续把这个客户端更新了下去。因此我希望大家不要太关注工具本身,而是能更多的去在理论上做一些创新。

【原创】冰蝎v3.0操作使用手册的更多相关文章

  1. 冰蝎动态二进制加密WebShell特征分析

    概述 冰蝎一款新型加密网站管理客户端,在实际的渗透测试过程中有非常不错的效果,能绕过目前市场上的大部分WAF.探针设备.本文将通过在虚拟环境中使用冰蝎,通过wireshark抓取冰蝎通信流量,结合平时 ...

  2. 利用shiro反序列化注入冰蝎内存马

    利用shiro反序列化注入冰蝎内存马 文章首发先知社区:https://xz.aliyun.com/t/10696 一.shiro反序列化注入内存马 1)tomcat filter内存马 先来看一个普 ...

  3. 冰蝎&哥斯拉 流量特征分析

    1.冰蝎(Behinder) 下载链接:https://github.com/rebeyond/Behinder/releases 截止至我发贴时,冰蝎最新版本是3.0,客户端兼容性有所提升(但仍不是 ...

  4. [原创] 绿色单文件封装程序GreenOne V3.0

    1.原理 将包含可执行文件的多个文件 调用Winrar,创建自解压格式压缩文件 设置高级自解压选项中的文本和图标,设置解压后运行的文件为选中的可执行文件. 这种创建单文件封装其实也就是一个Winrar ...

  5. 痞子衡嵌入式:MCUBootFlasher v3.0发布,为真实的产线操作场景而生

    -- 痞子衡维护的NXP-MCUBootFlasher工具(以前叫RT-Flash)距离上一个版本(v2.0.0)发布过去一年半以上了,这一次痞子衡为大家带来了全新版本v3.0.0,从这个版本开始,N ...

  6. [原创小工具]软件内存、CPU使用率监视,应用程序性能监测器 v3.0 绿色版

    应用程序性能监测器 V3.0 更新内容:    1.对一些代码进行了修改,软件本身的性能有所提升. 应用程序性能监测器 V2.0 更新内容:     1.鼠标移动到曲线区域,显示相关的曲线值      ...

  7. 内网安全之横向移动(冰蝎&&msf&&IPC$)

    1.冰蝎介绍 冰蝎是一款目前比较流行的Webshell管理工具,在2021年更新的2021.4.20 v3.0 Beta 9 版本中去除了动态密钥协商机制,采用预共享密钥,载荷全程无明文.因其优秀的加 ...

  8. VLC媒体视频播放器 v3.0.2官方版

    https://www.videolan.org/    VLC media player http://www.pc6.com/softview/SoftView_52483.html    VLC ...

  9. Spring Security 5.0.x 参考手册 【翻译自官方GIT-2018.06.12】

    源码请移步至:https://github.com/aquariuspj/spring-security/tree/translator/docs/manual/src/docs/asciidoc 版 ...

随机推荐

  1. Spring源码编译一次性通过&遇到的坑解决方法

    前言 spring源码本地编译,按网上的博客参考资料的操作步骤,总是会出现各种莫名其妙的错误.根据错误信息找解决方案,但在自己的环境下又总是编译不过去.结合参加培训学习Jack老师提供的方法,自己多种 ...

  2. Linux:监测收集linux服务器性能数据工具Sysstat的使用与安装

    Sysstat是一个工具集,包括sar.pidstat.iostat.mpstat.sadf.sadc.其中sar是其中最强大,也是最能符合我们测试要求的工具,同时pidstat也是非常有用的东东,因 ...

  3. C#下通过wbemtest和WMI Code Cretor更加高效的访问WMI

    能找到这篇博客的,相信都是有操作WMI需求的了.但是不知道如何快速验证.并集成到C#来操作WMI.我们分为3步: ##第一步:官网(或跟硬件开发WMI的人沟通你需要的接口和参数定义,如果是和硬件开发的 ...

  4. 315M、433M和2.4G笔记

    一.315M无线模块 315m无线模块广泛地运用在车辆监控.遥控.遥测.小型无线网络.无线抄表.门禁系统.小区传呼.工业数据采集系统.无线标签.身份识别.非接触RF智能卡.小型无线数据终端.安全防火系 ...

  5. Java | 集合(Collection)和迭代器(Iterator)

    集合(Collection) 集合就是Java中提供的一种 空器,可以用来存储多个数据. 集合和数组都是一个容器,它们有什么区别呢? 数组的长度是固定的,集合的长度是可变的. 数组中存储的是同一类型的 ...

  6. mybatis 加载策略及注解开发

    1. 延迟策略 在需要用到数据时在加载相关数据,常用于一对多关系, 优点:先从单表查询,需要时再从关联表去关联查询,大大提高数据库性能, 缺点:当需要用到数据时,才会进行数据库查询,这样在大批量数据查 ...

  7. Django基础009--Paginator分页

    1.引入 from django.core.paginator import Paginator 2.Paginator对象提供的方法 articles = models.Article.object ...

  8. python 操作word

    pip install python.docx from docx import DocumentDoc = Document() 解释:from 从 docx这个文件中,导入一个叫Document的 ...

  9. Java集合中的可变参数

    可变参数: 1.在JDK1.5之后,如果我们定义一个方法需要接收多个参数,并且多个参数类型一致,我们可以对其简化成如下格式: 修饰符 返回值类型 方法名(参数类型... 形参名){} 其实这个书写完全 ...

  10. File类与常用IO流第九章——转换流

    第九章.转换流 字节编码和字符集 编码:按照某种规则将字符以二进制存储到计算机中. 解码:将存储在计算机中的二进制数按照某种规则解析显示出来. 字符编码:Character Encoding ,就是一 ...