正文共:4951字 27图 

预计阅读时间:13分钟


(1)平时在做安全测试时,相信很多小伙伴在建立Cobalt Strike服务端时都是直接使用IP地址后进行直连。之前也爆出过Cobalt Strike“空格”特征,可以通过构造规则,针对全球的具有这类特征的HTTP响应进行服务器抓取,难道要频繁更换IP吗?更新版本就不会出现新的特征吗?


相关信息:https://github.com/fox-it/cobaltstrike-extraneous-space


(2)每当各种重大活动时经常会出现大面积SS/SSR通信异常,又要频繁更换IP吗?搬瓦工的Just My Socks提供自动监测并自动换IP功能,在众多小伙伴的使用下还会香吗?
(3)基于以上2个问题及其他多种因素,并有了产生此次试验的目的

- 备注:本方式仅作为抛砖引玉,看官请轻拍~
- 更新于2020-01-13
- 版本2.0


一:测试环境

+ 系统版本:Ubuntu 18.04.3 LTS
+ V2ray版本
- 客户端:v2rayN 2.42
- 服务端:v4.22.1
+ Nginx版本:nginx/1.17.7
+ VPS 1H1G


Part 1.1 测速


选择延迟率相对较低的VPS,测试方法:

root@test:/# curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python -
Retrieving speedtest.net configuration...
Testing from Google (8.8.8.8)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Ixnium Technologies (Tokyo) [13.11 km]: 1.247 ms
Testing download speed...................................................................................
Download: 6666.57 Mbit/s
Testing upload speed.....................................................................................
Upload: 6666.11 Mbit/s


在 Ubuntu、Debian、Fedora、CentOS、RHEL上一样可以执行

Part 1.2 修改系统时区



V2ray相比SS更需要时间上的准确性,客户端和服务端时差缩小至30s内


rm /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

二:域名注册


Part 2.1 免费域名



+ [freenom](https://www.freenom.com)


此处以免费的域名做案例演示


Part 2.2 收费域名


尽可能不使用国内的域名商

+ [namecheap](https://www.namecheap.com/)
+ [阿里云万网](https://wanwang.aliyun.com/)
+ [腾讯云DNSPod](https://dnspod.cloud.tencent.com/)
+ [namesilo](https://www.namesilo.com/)
+ [godaddy](https://sg.godaddy.com/zh)


Part 2.3 注册方法


先注册一个freenom的账号登陆上去,点击菜单的​Services​​,选择​Register ​

​a New Domain​

红队必备技能之隐蔽的技巧_IP

选择一个域名点击​Get it now​

红队必备技能之隐蔽的技巧_重启_02

完成后点击​Checkout​进入下一步

红队必备技能之隐蔽的技巧_IP_03

选择免费的12个月期限,点击​Continue​进行下一步

红队必备技能之隐蔽的技巧_nginx_04

购物车信息,点击​Complete Order​

红队必备技能之隐蔽的技巧_重启_05

注册成功生成ID号,并返回​My Domains​可查看到注册成功后的域名

红队必备技能之隐蔽的技巧_nginx_06

红队必备技能之隐蔽的技巧_nginx_07

失败的效果如下所示

红队必备技能之隐蔽的技巧_IP_08

>小技巧:
+ 注册使用的IP和访问网站使用的IP需在同一个地区或同一个IP,不然会出现注册不成功的情况!
+ 网站经常性会自动断开登陆状态导致购物车无域名的情况,需要手速快或删除Cookie信息后再注册即可!
+ 如果是第一次注册,在结算页面的信息栏显示红色部分需要如实填写,其他的随便填,最关键的是地区,如果你没国外的手机号,老老实实选择China,不然会校验到你当前IP所属国家和你选择的不符会失败,或利用短信接收平台配合对应地区IP进行注册
+ 如果觉得免费的域名注册方式比较麻烦或不适合,可自行购买其他厂商的xyz域名相对便宜【0.99$】


三:域名配合Cloudflare解析






Part 3.1 注册并登陆
















需要先注册一个Cloudflare的账号并登陆, 注册完成后登进入控制台,点击​Add a Site​按钮添加一个站点

红队必备技能之隐蔽的技巧_IP_09


选择一个计划,这里我们选择第一个免费的就行了,选择完后点击​Confirm plan​

红队必备技能之隐蔽的技巧_nginx_10



Part 3.3 CloudFlare添加A记录


点击​Add Record​按钮添加2条A记录,Value指向VPS的IP,点击​Proxy status​栏中的云朵,让其变成灰色(​​本阶段因IP未被墙所以暂时选择灰色,如果IP被强可以选择橙色,即可复活被墙IP达到隐藏真实IP的目的​​), 完成后点击​Continue​按钮继续下一步操作

红队必备技能之隐蔽的技巧_nginx_11



Part 3.4 修改域名商DNS记录


此时会提示你将域名的DNS解析到Cloudflare,其中有2个​Nameserver​是需要用到的

红队必备技能之隐蔽的技巧_nginx_12这里需要重新到freenom修改下DNS,点击​Services​​,选择​My Domains​​,找到之前注册的域名,点击右侧的​Manage Domain​

红队必备技能之隐蔽的技巧_nginx_13点击​Management Tools​选择​Nameservers​​,选择第二个选项自定义,填写上面的2个​Nameserver​​,点击​Change Nameservers​保存

红队必备技能之隐蔽的技巧_nginx_14




Part 3.5 等待解析完成


全部修改完毕之后,回到Cloudflare,点击​Done, check nameservers​​,如果跳转到控制台页面就表示成功了,如果没有就需要耐心等待一会,解析需要一定的时间,一般几分钟就解析好了。




Part 3.6 开启端到端加密


红队必备技能之隐蔽的技巧_nginx_15


四:安装Nginx


参考地址:https://nginx.org/en/linux_packages.html#Ubuntu


Part 4.1 更新源并安装



sudo apt install curl gnupg2 ca-certificates lsb-release

echo "deb http://nginx.org/packages/mainline/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list

curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -

sudo apt-key fingerprint ABF5BD827BD9BF62

sudo apt update
sudo apt install nginx

红队必备技能之隐蔽的技巧_IP_16



Part 4.2 修改默认配置文件


默认路径地址:/etc/nginx/conf.d/default.conf
修改并重启Nginx服务

红队必备技能之隐蔽的技巧_IP_17

展示页面

红队必备技能之隐蔽的技巧_nginx_18

五:安装HTTPS证书

Let's Encrypt官方推荐了Certbot ACME 客户端,所以本次基于Certbot进行设置Let's Encrypt证书并自动续期

红队必备技能之隐蔽的技巧_重启_19


参考地址:
1:https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-18-04
2:https://certbot.eff.org/lets-encrypt/ubuntubionic-nginx


5.1 添加仓库
sudo add-apt-repository ppa:certbot/certbot

5.2 安装Certbot的Nginx软件包
sudo apt install python-certbot-nginx

5.3 验证配置是否正确
sudo nginx -t

5.4 重启Nginx
sudo systemctl reload nginx

5.5 获取证书
sudo certbot --nginx -d www.kobefans12345678.tk

红队必备技能之隐蔽的技巧_IP_20

红队必备技能之隐蔽的技巧_nginx_21

红队必备技能之隐蔽的技巧_重启_22


5.6 自动续订
sudo certbot renew --dry-run

5.7 设置PCI DSS合规及HSTS
PCI DSS合规+HSTS仅对对证书评级要求较高的用户进行添加,不是必须项

修改letsencrypt的配置信息
vim /etc/letsencrypt/options-ssl-nginx.conf

添加以下信息
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

重启服务即可


六:安装V2ray服务端


配置和部署的方式建议按照官方的说明进行下载及配置,第三方网站存在很多后门捆版的情况需自行检验。

参考地址:
https://www.v2ray.com/chapter_00/install.html)

bash <(curl -L -s https://install.direct/go.sh)


Part 6.1 生成随机端口及UUID号


红队必备技能之隐蔽的技巧_nginx_23



Part 6.2 修改V2ray默认配置文件



vim /etc/v2ray/config.json

{
"inbounds": [
{
"port": 23846,
"listen":"127.0.0.1",
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "bc0cd645-9fb1-46e3-ba70-ea5b7bed9961",
"alterId": 64
}
]
},
"streamSettings": {
"network": "ws",
"wsSettings": {
"path": "/ray"
}
}
}
],
"outbounds": [
{
"protocol": "freedom",
"settings": {}
}
]
}

重启服务


6.3 设置开机启动
systemctl enable v2ray

6.4 开启BBR
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_cnotallow=bbr" >> /etc/sysctl.conf
sysctl -p
sysctl net.ipv4.tcp_available_congestion_control
lsmod | grep bbr

也可以魔改BBR,根据需求来自行设置


七:网站与V2ray并存



Part 7.1 新增代理


对Nginx默认配置文件进行修改,在内容中添加以下信息


location /ray {
proxy_pass http://127.0.0.1:23846;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
}

修改完成后重启服务即可



Part 7.2 设置客户端



建议选择用户量多且官方推荐的客户端
参考地址:https://github.com/2dust/v2rayN


新建或添加【VMess】服务器


红队必备技能之隐蔽的技巧_重启_24

再开启HTTP搭理模式即可


最终效果如下:

红队必备技能之隐蔽的技巧_nginx_25

八:总结

此次测试仅做隐藏真实IP地址、更方便的扶墙及环境配置部署说明,后续还可以结合Cobalt Strike插件或其他技巧进行更加隐蔽的测试方式。Cobalt Strike安装部署不在本次测试范围内,可自行谷歌~



红队必备技能之隐蔽的技巧_重启_26