【原创】冰蝎v3.0操作使用手册 - rebeyond
2021-4-30 20:54:0 Author: www.cnblogs.com(查看原文) 阅读量:35 收藏

写在前面

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

基本信息

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

命令执行

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

虚拟终端

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

shell_linux_1

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

shell_linux_2

或者top命令:

shell_linux_4

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

shell_linux_3

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

shell_windows

最后,说明一下,虚拟终端和命令执行不同的是,虚拟终端使用完毕需要点击“停止”按钮来关闭服务器侧的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同时监听两个端口:

截屏2021-04-30 下午4.10.15

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

截屏2021-04-30 下午8.18.07

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

image-20210430161503587

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

image-20210430161826333

基于HTTP隧道的端口映射

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

截屏2021-04-30 下午8.19.15

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

2222

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

基于VPS的socks代理映射

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

截屏2021-04-30 下午5.32.42

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

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

截屏2021-04-30 下午4.10.15

然后冰蝎做如下配置:

截屏2021-04-30 下午4.34.32

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

image-20210430161503587

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

image-20210430163852713

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

proxychains

基于HTTP隧道的socks代理映射

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

截屏2021-04-30 下午5.07.01

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

截屏2021-04-30 下午5.09.04

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

proxychains2

反向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)。

    网络拓扑如下:

    截屏2021-04-30 下午5.32.42

  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)。

    网络拓扑如下:

    截屏2021-04-30 下午5.45.24

  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,如下图:

    截屏2021-04-30 下午5.56.36

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

    截屏2021-04-30 下午5.48.56

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

截屏2021-04-30 下午6.00.39

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

截屏2021-04-30 下午6.02.23

截屏2021-04-30 下午6.12.54

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

反弹Shell

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

普通Shell

反弹至公网VPS

冰蝎做如下配置:

截屏2021-04-30 下午6.21.06

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

截屏2021-04-30 下午6.20.18

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

截屏2021-04-30 下午6.34.52

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

截屏2021-04-30 下午6.38.41

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

截屏2021-04-30 下午6.40.25

反弹至本地

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

截屏2021-04-30 下午6.48.10

来张动图:

2222

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

反弹至本地局域网

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

Metepreter

反弹至公网VPS

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

截屏2021-04-30 下午7.08.40

反弹至本地

参数配置如下:

截屏2021-04-30 下午7.15.44

反弹至本地局域网

当目标不出网时,可以降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地址,如下:

截屏2021-04-30 下午7.33.22

成功上线:

截屏2021-04-30 下午7.34.21

上线至本地

如果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会把输入的源代码自动编译并执行。

截屏2021-04-30 下午7.40.52

平行空间

该模块正在进行不同环境的适配,预计在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用来验证上述理论的效果。所以冰蝎这个客户端只是理论的一个衍生品,不过后来用的小伙伴比较多,我就继续把这个客户端更新了下去。因此我希望大家不要太关注工具本身,而是能更多的去在理论上做一些创新。


文章来源: https://www.cnblogs.com/rebeyond/p/14723316.html
如有侵权请联系:admin#unsafe.sh