【原创】冰蝎v3.0操作使用手册
写在前面
近期冰蝎更新了内网穿透模块中的一些功能,有不少朋友不知道参数怎么填,希望能出一个使用指导手册,就借这个机会写一个“说明书”(文中有大量演示动图,请耐心等待加载)。
基本信息
由于冰蝎采用了会话加密,所以客户端首次和服务端通信会有一个协商的过程(v3.0之后的版本不存在密钥协商过程),成功建立连接后,会把服务器侧的一些基本信息,显示在这个Tab页。
命令执行
这里的命令执行提供非交互式的命令执行,常规功能,不再赘述。
虚拟终端
虚拟终端提供一个交互式的真实终端,相当于把服务器侧的Shell给搬到了客户端,在这个Shell里可以执行各种需要交互式的命令,如ssh、mysql:

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

或者top命令:

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

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

最后,说明一下,虚拟终端和命令执行不同的是,虚拟终端使用完毕需要点击“停止”按钮来关闭服务器侧的shell进程。
文件管理
常规功能,不再展开描述。
内网穿透
内网穿透模块目前提供了多个穿透方案:
- 基于VPS中转的端口映射;
- 基于HTTP隧道的端口映射;
- 基于VPS的socks代理映射;
- 基于HTTP隧道的socks代理映射;
- 反向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)中的某个监听端口映射至目标网络中,适用于目标网络不出网,但是又需要目标网络回连的情况,此处列举如下四种场景:
- 已拿到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)。 - 网络拓扑如下:  
- 攻击者机器处于内网,地址为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)。 - 网络拓扑如下:  
- 已拿到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。 
- 攻击者机器处于内网,地址为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操作使用手册的更多相关文章
- 冰蝎动态二进制加密WebShell特征分析
		概述 冰蝎一款新型加密网站管理客户端,在实际的渗透测试过程中有非常不错的效果,能绕过目前市场上的大部分WAF.探针设备.本文将通过在虚拟环境中使用冰蝎,通过wireshark抓取冰蝎通信流量,结合平时 ... 
- 利用shiro反序列化注入冰蝎内存马
		利用shiro反序列化注入冰蝎内存马 文章首发先知社区:https://xz.aliyun.com/t/10696 一.shiro反序列化注入内存马 1)tomcat filter内存马 先来看一个普 ... 
- 冰蝎&哥斯拉 流量特征分析
		1.冰蝎(Behinder) 下载链接:https://github.com/rebeyond/Behinder/releases 截止至我发贴时,冰蝎最新版本是3.0,客户端兼容性有所提升(但仍不是 ... 
- [原创] 绿色单文件封装程序GreenOne V3.0
		1.原理 将包含可执行文件的多个文件 调用Winrar,创建自解压格式压缩文件 设置高级自解压选项中的文本和图标,设置解压后运行的文件为选中的可执行文件. 这种创建单文件封装其实也就是一个Winrar ... 
- 痞子衡嵌入式:MCUBootFlasher v3.0发布,为真实的产线操作场景而生
		-- 痞子衡维护的NXP-MCUBootFlasher工具(以前叫RT-Flash)距离上一个版本(v2.0.0)发布过去一年半以上了,这一次痞子衡为大家带来了全新版本v3.0.0,从这个版本开始,N ... 
- [原创小工具]软件内存、CPU使用率监视,应用程序性能监测器 v3.0 绿色版
		应用程序性能监测器 V3.0 更新内容: 1.对一些代码进行了修改,软件本身的性能有所提升. 应用程序性能监测器 V2.0 更新内容: 1.鼠标移动到曲线区域,显示相关的曲线值 ... 
- 内网安全之横向移动(冰蝎&&msf&&IPC$)
		1.冰蝎介绍 冰蝎是一款目前比较流行的Webshell管理工具,在2021年更新的2021.4.20 v3.0 Beta 9 版本中去除了动态密钥协商机制,采用预共享密钥,载荷全程无明文.因其优秀的加 ... 
- VLC媒体视频播放器 v3.0.2官方版
		https://www.videolan.org/ VLC media player http://www.pc6.com/softview/SoftView_52483.html VLC ... 
- Spring Security 5.0.x 参考手册 【翻译自官方GIT-2018.06.12】
		源码请移步至:https://github.com/aquariuspj/spring-security/tree/translator/docs/manual/src/docs/asciidoc 版 ... 
随机推荐
- 5shell中的数组
			0.理解数组 (1)shell不限制数组的大小,数组元素的下标从0开始计数 (2)获取数组中的元素要使用下标[ ],下标可以是一个整数,也可以是一个结果为整数的表达式,但是下标必须大于等于0 (3)b ... 
- MySQL | Xtrabackup 的简介
			Xtrabackup 简介 Xtrabackup是由Percona开发的一个开源软件,可实现对InnoDB的数据备份,支持在线热备份(备份时不影响数据读写). Xtrabackup有2款主要工具,xt ... 
- viewport深入理解和使用
			什么是viewport ? viewport是用户网页的可视区域,也可叫做视区.手机浏览器是把页面放在一个虚拟的窗口(viewport)中,通常这个虚拟的窗口比屏幕宽,这样就不用把网页挤到很小的窗口中 ... 
- 团队开发day08
			web端数据处理出现问题,不能通过servlet中的request获取属性值, 查找一番,前端的form设置上传数据格式为二进制类型,需要先转化,接收为 fileitem,在进行处理 
- ORB随便记一记
			论文摘取 (这部分看的是泡泡机器人的翻译) 基于特征点.单目.完全自动初始化,基于PTAM框架. 相关工作 A.位置识别(大概是用于回环检测) bags of words FAB-map DBOW2 ... 
- Pandas高级教程之:自定义选项
			目录 简介 常用选项 get/set 选项 经常使用的选项 最大展示行数 超出数据展示 最大列的宽度 显示精度 零转换的门槛 列头的对齐方向 简介 pandas有一个option系统可以控制panda ... 
- SpringBoot | 3.1 配置数据源
			目录 前言 1. 数据源的自动配置 2. *数据源自动配置源码分析 2.1 DataSourceAutoConfiguration:数据源自动配置类 2.2 JdbcTemplateAutoConfi ... 
- 开发工具IDE从入门到爱不释手(六)常用插件Git
			Git 环境准备 本地基本操作 本地文件关联git管理 文件提交git Ctrl+K:提交 关联远程仓库 先注册github账号 连接本地 git菜单 撤销提交 追加提交 Code Review 
- C++第三十八篇 -- 研究一下Windows驱动开发(二)--WDM式驱动的加载
			基于Windows驱动开发技术详解这本书 一.简单的INF文件剖析 INF文件是一个文本文件,由若干个节(Section)组成.每个节的名称用一个方括号指示,紧接着方括号后面的就是节内容.每一行就是一 ... 
- SourceTree 3.1.3版本跳过注册
			1.进入文件夹 %LocalAppData%\Atlassian\SourceTree\ 找到SourceTree的目录 2.里面添加一个json文件 accounts.json 内容如下: [{&q ... 
