红队攻击前隐匿流量的基本方法
2021-04-11 20:00:00 Author: mp.weixin.qq.com(查看原文) 阅读量:196 收藏

随着客户对渗透测试质量要求的不断提高,常会需要模拟真实的攻击行为,来检验客户自身的安全应急和溯源能力。

当渗透人员在事中被发现并且被溯源到个人信息,那显然这场测试是防御方完胜。

因此,在渗透测试中,隐藏和匿名是十分重要的。在这就聊聊最简单,也是最基本的流量代理这事情。

在日常的工作使用两跳的节点代理,就能较好的隐藏自己的身份。见过身边的人用以下的方案:

1. 3389(22)->3389(22) :买两台Windows的VPS进行3389连接,或者连接Linux的22,简单粗暴。2. v2ray->3389(22) :一跳换成了v2ray3. v2ray->OpenVPN : 分别自己搭建v2ray和openvpn服务。

由于需要达成隐藏自身信息的需求,所以常常所有操作都在虚拟机中完成,并且项目结束后虚拟机就立即删除。同理,vps 也是用完就丢,因此采用1或者2的方式,就会导致进行下次任务或者需要更换节点时,需要重新安装相应的软件设备和环境,繁琐。

v2ray+OpenVPN

个人常用的是 v2ray+OpenVPN 的方式来实现两条,购买两个 VPS 和一个域名。流量会通过 OpenVPN 的客户端流向 v2ray 服务端,而后 v2ray 将流量转到 OpenVPN 的客户端。对于 v2ray 服务端来说,它只知道访问 OpenVPN 服务器,对于 OpenVPN 来说,仅知道代替 v2ray 服务器去访问目标站点,因此 OpenVPN 是需要直接接触目标站点。大概的网络结构如下: 

这种部署方式所有的软件设备和环境都安装在本地的虚拟机,VPS 仅提供流量代理和链路功能。可以对基础虚拟机建立快照,在项目结束后还原成干净的虚拟机即可。当有需求更换链路节点,直接替换节点即可。且在 Windows 和 Linux 下都适用,所有需要 Windows 的操作在本地虚拟机都可以完成,如需要使用 Linux 下的工具也可以在最外层的 OpenVPN 上完成。

v2ray 服务端

v2ray 服务端可以选择去自建或者购买机场。自建需要购买 vps 和域名相对来时开销大点,但服务器在自己手上,相对安全,也不怕商家跑路。缺点就是 IP 固定,没了就没了。购买机场的话,就需要和他人共用节点,网速不一定能够得到保障,但 IP 可以切换。

自建服务端

v2ray 自建服务端的方法很简单,购买完 VPS 和域名,设置好免费的 CDN,使用 GitHub 的一键脚本几乎是傻瓜式的操作。这里就不赘述。

https://github.com/233boy/v2ray/wiki/V2Ray%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85%E8%84%9A%E6%9C%AC

购买服务

已有很多提供 v2ray 服务的商家,自己根据喜好和对商家口碑的判断购买即可。

OpenVPN 服务端

OpenVPN 服务端建议采用 docker 的方式部署,也很方便快捷。具体安装方法在这

https://github.com/kylemanna/docker-openvpn

Quick Start    Pick a name for the $OVPN_DATA data volume container. It's recommended to use the ovpn-data- prefix to operate seamlessly with the reference systemd service. Users are encourage to replace example with a descriptive name of their choosing.    OVPN_DATA="ovpn-data-example"    Initialize the $OVPN_DATA container that will hold the configuration files and certificates. The container will prompt for a passphrase to protect the private key used by the newly generated certificate authority.    docker volume create --name $OVPN_DATA    docker run -v $OVPN_DATA:/etc/openvpn --rm kylemanna/openvpn ovpn_genconfig -u udp://VPN.SERVERNAME.COM    docker run -v $OVPN_DATA:/etc/openvpn --rm -it kylemanna/openvpn ovpn_initpki    Start OpenVPN server process    docker run -v $OVPN_DATA:/etc/openvpn -d -p 1194:1194/udp --cap-add=NET_ADMIN kylemanna/openvpn    Generate a client certificate without a passphrase    docker run -v $OVPN_DATA:/etc/openvpn --rm -it kylemanna/openvpn easyrsa build-client-full CLIENTNAME nopass    Retrieve the client configuration with embedded certificates    docker run -v $OVPN_DATA:/etc/openvpn --rm kylemanna/openvpn ovpn_getclient CLIENTNAME > CLIENTNAME.ovpn

复制黏贴上面的命令就能搭建一个 OpenVPN 服务端,可以根据自己的需要做一点调整,比如我是将 UDP 修改成 TCP,1194 端口改成 443 端口。

 docker run -v $OVPN_DATA:/etc/openvpn --rm kylemanna/openvpn ovpn_genconfig -u tcp://VPN.SERVERNAME.COM docker run -v $OVPN_DATA:/etc/openvpn -d -p 443:1194/tcp --cap-add=NET_ADMIN kylemanna/openvpn

而客户端安装好后,导入服务端生成的证书,把客户端的代理设置指向本机的 v2ray,这样就完成了两跳的流量代理。

断网处理

由于链路有可能存在断网的风险,比如 v2ray 或者 OpenVPN 突然不能用了。此时由于机器没有做断网,那流量就会裸着到达目标。因此断网处理是十分必要的。

断网处理主要流程:

1.将虚拟机的网关修改成任意的,使虚拟机无法正常上网。

正确网关:192.168.2.1错误网关:192.168.2.11

2.将 v2ray 的 IP 添加进路由表,允许通过正确的网关访问该 IP。同样的将 DNS 服务器也加入路由。

route add 123.123.123.123 mask 255.255.255.255 192.168.2.1route add 8.8.8.8 mask 255.255.255.255 192.168.2.1

3.修改 hosts 文件,将 v2ray 的 IP 和域名进行一个绑定。

如果使用的是购买的 v2ray 服务,那么 hosts 文件就不一定需要修改,但要每隔几分钟刷新 DNS 缓存,解析域名得到 IP,将 IP 加入路由里,避免因为 IP 变动,不在路由里而上不了网。简单将自动添加路由这个过程用代码实现了,通过计划任务十分钟执行一次。

代理流量细分

根据上面的设置就可以利用 OpenVPN 将全局流量导入 v2ray 完成两跳代理。在测试工作中,常需要将流量分到不同的代理之中,比如通过隧道进入内网等等。

Windows

在 Windows 下个人常用 proxifier 来细分流量,可以通过自定规则完成进程级别的流量代理。

Linux

Linux 中常用的是总所周知的 proxychains,但用过的人都晓得,用了这个就不能进行代码补全,效率直线降低。 倾旋大佬提出的 Linux 下透明代理的一种方式,值得学习。

https://payloads.online/archivers/2020-11-13/1

个人账号不在测试机器上登录

通过两跳的代理基本上流量上是安全的,只要测试的虚拟机中不携带个人信息,统一使用匿名的邮箱,虚假的账号等等。伪装程度再高点,可以虚拟机也装成全英文的,不安装中文软件(比较难),时区设置成国外的。总之,不要携带个人真实身份即可,另外不要在笑话目标使用弱密码的时候,自己也随手设置了 123456 的密码。


文章来源: http://mp.weixin.qq.com/s?__biz=MzI5MDQ2NjExOQ==&mid=2247495014&idx=1&sn=d40a28de6d6fc7fff712b305307e4426&chksm=ec1ddd4edb6a54583283a1955ba6e6856a1d7f75f58d95b3a5f3caa64421c05b677147ed0f71#rd
如有侵权请联系:admin#unsafe.sh