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

  • 原创文章首发至小生观察室的公众号

发布时间:  2020年06月11日 17:20

发布地址:https://mp.weixin.qq.com/s/428TFr-dyK61y5dZSzGDUw

  • 平时在做安全测试时,相信很多小伙伴在建立Cobalt Strike服务端时都是直接使用IP地址后进行直连。之前也爆出过Cobalt Strike“空格”特征,可以通过构造规则,针对全球的具有这类特征的HTTP响应进行服务器抓取,难道要频繁更换IP吗?更新版本就不会出现新的特征吗?
  • 每当各种重大活动时经常会出现大面积SS/SSR通信异常,又要频繁更换IP吗?搬瓦工的Just My Socks提供自动监测并自动换IP功能,在众多小伙伴的使用下还会香吗?
  • 基于以上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

Freenom Register

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

Freenom Register1

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

Freenom Register2

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

Freenom Register3

  • 购物车信息,点击Complete Order

Freenom Register4

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

Freenom Register5

Freenom Register6

  • 失败的效果如下所示
Freenom Register7

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

  • 三:域名配合Cloudflare解析

  • Part 3.1 注册并登陆

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

Cloudflare Register

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

Cloudflare Register1

  • Part 3.3 CloudFlare添加A记录

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

Cloudflare解析

  • Part 3.4 修改域名商DNS记录

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

Cloudflare 解析1

  • 这里需要重新到freenom修改下DNS,点击Services,选择My Domains,找到之前注册的域名,点击右侧的Manage Domain

Cloudflare解析2

  • 点击Management Tools选择Nameservers,选择第二个选项自定义,填写上面的2个Nameserver,点击Change Nameservers保存

Cloudflare解析3

  • Part 3.5 等待解析完成

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

  • Part 3.6 开启端到端加密

Cloudflare解析4

  • 四:安装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

更新nginx源

  • Part 4.2 修改默认配置文件

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

修改nginx配置文件

  • 展示页面

Nginx展示页面

  • 五:安装HTTPS证书

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

Certbot Acme

参考地址:
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

Certbot Acme部署

Certbot Acme部署1

Certbot Acme部署2

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号

V2ray生成随机端口及uuid号

  • 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_control=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】服务器

V2ray与网站共存

  • 再开启HTTP代理模式即可

  • 最终效果如下:

V2ray与网站共存最终效果

  • 八:总结

  • 此次测试仅做隐藏真实IP地址、更方便的扶墙及环境配置部署说明,后续还可以结合Cobalt Strike插件或其他技巧进行更加隐蔽的测试方式

  • Cobalt Strike安装部署不在本次测试范围内,可自行谷歌~