写在前面

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

基本信息

由于冰蝎采用了会话加密,所以客户端首次和服务端通信会有一个协商的过程(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. 5shell中的数组

    0.理解数组 (1)shell不限制数组的大小,数组元素的下标从0开始计数 (2)获取数组中的元素要使用下标[ ],下标可以是一个整数,也可以是一个结果为整数的表达式,但是下标必须大于等于0 (3)b ...

  2. MySQL | Xtrabackup 的简介

    Xtrabackup 简介 Xtrabackup是由Percona开发的一个开源软件,可实现对InnoDB的数据备份,支持在线热备份(备份时不影响数据读写). Xtrabackup有2款主要工具,xt ...

  3. viewport深入理解和使用

    什么是viewport ? viewport是用户网页的可视区域,也可叫做视区.手机浏览器是把页面放在一个虚拟的窗口(viewport)中,通常这个虚拟的窗口比屏幕宽,这样就不用把网页挤到很小的窗口中 ...

  4. 团队开发day08

    web端数据处理出现问题,不能通过servlet中的request获取属性值, 查找一番,前端的form设置上传数据格式为二进制类型,需要先转化,接收为 fileitem,在进行处理

  5. ORB随便记一记

    论文摘取 (这部分看的是泡泡机器人的翻译) 基于特征点.单目.完全自动初始化,基于PTAM框架. 相关工作 A.位置识别(大概是用于回环检测) bags of words FAB-map DBOW2 ...

  6. Pandas高级教程之:自定义选项

    目录 简介 常用选项 get/set 选项 经常使用的选项 最大展示行数 超出数据展示 最大列的宽度 显示精度 零转换的门槛 列头的对齐方向 简介 pandas有一个option系统可以控制panda ...

  7. SpringBoot | 3.1 配置数据源

    目录 前言 1. 数据源的自动配置 2. *数据源自动配置源码分析 2.1 DataSourceAutoConfiguration:数据源自动配置类 2.2 JdbcTemplateAutoConfi ...

  8. 开发工具IDE从入门到爱不释手(六)常用插件Git

    Git 环境准备 本地基本操作 本地文件关联git管理 文件提交git Ctrl+K:提交 关联远程仓库 先注册github账号 连接本地 git菜单 撤销提交 追加提交 Code Review

  9. C++第三十八篇 -- 研究一下Windows驱动开发(二)--WDM式驱动的加载

    基于Windows驱动开发技术详解这本书 一.简单的INF文件剖析 INF文件是一个文本文件,由若干个节(Section)组成.每个节的名称用一个方括号指示,紧接着方括号后面的就是节内容.每一行就是一 ...

  10. SourceTree 3.1.3版本跳过注册

    1.进入文件夹 %LocalAppData%\Atlassian\SourceTree\ 找到SourceTree的目录 2.里面添加一个json文件 accounts.json 内容如下: [{&q ...