CS通过frp实现内网穿透教程及原理分析

CS通过frp实现内网穿透教程及原理分析
清风不待我少年01、背景介绍
在使用cobalt strike的场景中,很多时候会遇到内网机是Windows不出网,而外网机是Linux的,而且外网机只能获取到低权限来转发流量。如果此时想使用cobalt strike来横向的话,需要使用Linux机器作为跳板机来进行操作。

①一台云服务器(即跳板机,安装了frp)
②一台攻击机(安装了CS和frp)
02、环境配置
这里使用frp进行流量转发
2.1 跳板机_192.168.3.3
先给frps赋予执行权限:
1 | chmod 700 frps |
然后直接启动服务端:
1 | ./frps -c frps.ini |
其中frps.ini的配置信息(默认不用修改):
1 | [common] |
同时将云服务器的一些端口提前打开,方便后续端口的连接:(在云服务器的管理控制台进行配置)
2.2 攻击机_192.168.3.2
先给frpc赋予执行权限:
1 | chmod 700 frpc |
然后直接启动客户端:
1 | ./frpc -c frpc.ini |
其中frpc.ini的配置信息(默认,服务端IP需改成跳板机IP):
1 | [common] |
当这边运行成功之后,云服务器端会显示建立连接:
2.3 在攻击机上启动CS服务端
先赋予teamserver可执行权限:chmod 777 teamserver,然后直接启动:
2.4 在攻击机上启动CS客户端
另外开一个窗口,同样先赋予cobaltstrike可执行权限:
1 | chmod 777 cobaltstrike |
然后直接启动:
当连接建立之后,云服务端的frp会有反应:
连接建立完成,此时成功将内网的CS使用frp进行了穿透
03、攻击测试
选择刚刚新建的监听器,生成木马并放在攻击机的任意一个文件夹里,然后把它发给受害者点击
受害者点击,目标机器上线!
下面就可以开始为所欲为啦!🤣🤣🤣(仅供学习,切勿违法)
04、原理分析
一般在只有攻击机的情况下,受害者点击木马之后,目标机器是无法回连到攻击机的,因为攻击机的IP属于内网IP,不具有唯一性无法建立连接。
因此我们需要一台具有公网IP的云服务器作为跳板,通过frp将流量转发给攻击机,从而实现连接的建立。
下面进行具体原理分析:
①在跳板机上运行frp服务端,开启跳板机的7000端口
②在攻击机上运行frp客户端,作用:
1.用于连接跳板机的7000端口,使攻击机与跳板机匹配成功。
2.将攻击机的50050端口映射至跳板机的9050端口,9080端口映射至跳板机的9080端口
③在攻击机上运行CS的服务端,用攻击机的IP启动,启动后默认会开启攻击机的50050端口
④在攻击机上运行CS的客户端,用跳板机的IP以9050端口连接至CS服务端。
问题一:肉机(即目标机器)是怎么回连到攻击机的?
由图所示:
受害者点击木马之后,目标机器进行回连,流量通过跳板机的9080端口发送至跳板机,
然后跳板机将流量进行转发,通过攻击机的9080端口发送至攻击机,回连成功。
问题二:指令是怎么从攻击发送到肉机的?
指令首先从CS服务端通过攻击机的50050端口发出,CS客户端通过跳板机的9050端口接收指令,然后将指令转发至肉机,命令得到执行,攻击发生!

















