目录
正向代理
反向代理
socks5
SSH隧道
本地端口转发
远程端口转发
动态端口转发(Socks代理)
FRP
场面一:一级代理
场景二:二级代理
场景三:三级代理
隧道?代理?端口转发?
目录
-
初识代理
-
正向代理
-
反向代理
-
端口转发
-
socks5
-
再探隧道
-
场面一:一级代理
-
场景二:二级代理
-
场景三:三级代理
-
本地端口转发
-
远程端口转发
-
动态端口转发(Socks代理)
-
SSH隧道
-
FRP
虽然自己参加过考研计算机网络,自认为学的还是不错。但是对这块知识一直很垃。傻傻分不清楚。因此花了时间认真来学习这块知识。
关于这三个东西,逐个细说。
初识代理
代理的还是一个比较容易理解的东西。
正如我们生活中,假如我人不在学校,但是需要我去教务处B109办理一个业务。这时候我委托我的这位好兄弟,去帮我跑腿。那么这个好兄弟就是代理。他把东西办好之后反馈给我。
代理服务器也是这个道理,如果我想去国外看一点文献,但是ip不允许我出去啊。那么我这时候就找一个我能访问的服务器,让它作为我的代理。
正向代理
上面我们举的例子就是正向代理的例子。因此这里就不需要再赘述了。
反向代理
而反向代理就是,我的好兄弟在学校,我只知道我需要去教务处办理业务,但是我并不知道教务处处于那个位置。因此我只告诉我的好兄弟:"你要帮我去教务处买个菜"。之后的操作就是他到了教务处,教务处会有卖菜的位置。但是这是教务处的事情,跟我没有关系。我无法得知教务处的内部细节。我拿到的东西都是教务处想给我看的。
上面这张图就反过来了。
端口转发
端口转发的原理跟代理服务器类似。
把端口收到的流量原封不动转发到另一个端口,基于传输层协议,转发socket字节。
举个栗子。现在我们的C是能访问到B,A和B能够双向访问。但是C不能访问到A。
如果A将自己ssh的服务转发到B的8022端口。那么C通过访问B的8022端口就可以访问到A的SSH服务了。
socks5
从上面的端口转发中,我们可以很清楚的看到我们是一个端口对一个端口的转发。假如我现在想对A域的所有端口进行无限制访问。那么就需要做一个socks代理。记住,这里用的是代理而非端口转发。
socks5在socks4的基础上新增了对UDP协议的支持。
此时若我们想无限制访问域A,那么在域B中的172.16.1.1上做一个socks代理即可。这里有很多工具可以进行利用,本文以frp的角度,搭建socks服务。请看后文。
再探隧道
作为一名网络工程兴趣人员,对这块不是很熟悉就是不及格。
我们首先需要知道我们平时用的VPN也是一种隧道技术。VPN全称(vitual private network)。即虚拟专用网络。更直观的感受如下图所示。
上面的图中,假如我们在外面需访问公司服务器。那么可能会被防火墙拦截掉。
如果采用vpn,能够建立起一条虚拟链路。这条链路是专属链路,可以相当于我们与公司服务器身处于同一个内网当中。
因此隧道可以理解为我们站在了一个新的网络环境当中。
SSH隧道
举个例子。现在我已经拿下了内网一台主机。但是内网的其他主机是不出网的。
假如kali的ip: 192.168.50.10
已经拿下的内网主机:172.168.50.11
我想访问的主机:172.168.50.21
这个时候我就可以做ssh隧道转发技术。此时采用远程端口转发。
本地端口转发
ssh -g -N -R [本地端口]:[远程IP]:[远程端口] [ssh帐号]@[ssh服务IP] -p [ssh服务端口]
-g:开启网关,使同一个局域网内的设备都可以访问。
-N:仅实现端口转发功能,不登录ssh。
-R:表示remote,远程端口转发
远程端口转发
现在在从上面的例子里,我可以将已经拿下的内网机器作为跳板。建立ssh隧道,其意思是 把kali要访问的资源发送给已经拿下的主机,然后这个已经拿下的主机去访问目标机之后,将资源再返回给我们的kali。
语法:
ssh -g -N -R [本地端口]:[远程IP]:[远程端口] [ssh帐号]@[ssh服务IP] -p [ssh服务端口]
-g:开启网关,使同一个局域网内的设备都可以访问。
-N:仅实现端口转发功能,不登录ssh。
-R:表示remote,远程端口转发
实例:
ssh -g -N -R 9999:192.168.50.10:1006 [email protected] -p 22
此时当我们访问http://192.168.50.11:9999的时候就能访问到http://172.168.50.11:1006的服务了。
动态端口转发(Socks代理)
前面的端口转发都是一对一的关系。ssh还有动态端口转发的策略。
ssh -g -N -D [本地监听端口] ssh@<ip> -p [ssh服务端口号]
如以下命令:
ssh -C -N -D localhost:8888 [email protected]
然后在设定socks代理的地方设定socks主机 localhost:8888
此时SSH充当的是socks代理服务器的角色。
此时kali就可以无限制访问 对方内网了。
FRP
frp是一个专注于内网穿透的高性能的反向代理应用。
举个栗子更好说明。我的建议是把下面三个场景认真看懂,理解 流量的走向应该对这块知识就比较清晰了。
场面一:一级代理
假设你是一个高手黑客。能够意念getshell。现在已经拿下了2012的控制权。通过信息收集你又发现了存在FTP服务器,并且你一眼就看出来了它的ssh账号密码。但是它在内网,那么现在我们该如何去登录这个ssh呢?
你的VPS是192.168.2.x
1.首先通过vps作为frp的服务端
./frps -c ./frps.ini
这个命令用于启动frp服务端程序。
服务端的配置文件如下
[common]
bind_addr = 0.0.0.0 #在服务端上绑定的ip地址
bind_port = 7000 #在服务端上绑定的端口
2.在2012作为frp客户端
.frpc.exe -c .frpc.ini
客户端的frps.ini内容如下
[common]
server_addr = 192.168.2.x #指向服务端绑定的ip
server_port = 7000 #指向服务端绑定的端口
[socks5]
remote_port = 1080 #代理所使用的端口,会被转发到服务端
plugin = socks5 #代理的类型
完成以上配置之后,我们就在2012与vps之间建立了一个socks5代理服务。
这个工作流程如下:
KALI与VPS之间走 1080端口传输 就等于 kali与2012传输。
具体格式:
kali → 1080 → vps → 7000 → win2012 → FTP
搭建好之后,我们可以利用proxychains来使用这条socks代理
echo "socks5 192.168.2.138 1080">>/etc/proxychains.conf
然后连接ssh
proxychains4 ssh [email protected]
那么我们已经拿下了这台FTP
场景二:二级代理
现在我们通过这个FTP发现他有两张网卡,也就意味着它还处于另一个内网。作为大黑客,肯定药内网漫游,打穿它。意念法获取了win7的账户。现在我们要拿下这个二级内网。
那么我们需要搭建二级代理。此时,继续让vps继续充当frp服务端
1.vps当一级代理的服务端
./frps -c ./frps.ini
配置文件如下:
[common]
bind_addr = 0.0.0.0
bind_port = 7000
2.使得2012充当一级代理的客户端
.frps.exe -c .frpc.ini
其配置文件如下
[common]
server_addr = 192.168.2.x
server_port = 7000
[socks5_forward]
type = tcp #所使用的协议
local_ip = 10.10.10.13 #本地监听的ip地址
local_port = 10808 #要转发的本地端口
remote_port = 1080 #要转发到的远程端口
3.使2012成为二级代理的服务端
.frps.exe -c .frps.ini
服务端配置文件如下
[common]
bind_addr = 10.10.10.13
bind_port = 7000
4.使得ftp成为二级代理的客户端
.frpc -c ./frpc.ini
配置文件如下
[common]
server_addr = 10.10.10.13
server_port = 7000
[socks5]
type = tcp
remote_port = 10808 #代理使用的端口,会被转发到服务端
plugin = socks5 #代理类型
此时的流量链如下:
kali → 1080 → vps → 7000 → win2012 → FTP → 10808 → win7 → win2008
最后加入
echo "socks5 192.168.2.138 1080">>/etc/proxychains.conf
proxychains rdesktop 192.168.30.20
如此拿下了这套文件服务器及其win7主机。
场景三:三级代理
现在已经拿下两层内网了。通过win2008文件服务器你发现事情并没有那么简单。这个货居然也套了两张网卡,第三层内网呼之欲出。跟前面的二级代理类似,此时我们只需要将文件服务器作为三级代理服务端,将server2016 作为客户端。这样第三层内网不在话下。
1.vps充当一级代理的服务器端
./frps -c ./frps.ini
配置
[common]
bind_addr = 0.0.0.0
bind_port =7000
2.2012作为一级代理的客户端
.frpc.exe -c .frpc.ini
配置文件
[common]
server_addr = 192.168.2.x
server_port = 7000
[socks5_forward]
type = tcp
local_ip = 10.10.10.13
local_port = 10808
remote_port = 1080
3.2012作为二级代理的服务器端
.frps.exe -c .frps.ini
配置文件
[common]
bind_addr = 10.10.10.13
bind_port = 7000
4.ftp作为二级代理的服务器端
./frpc -c ./frpc.ini
配置文件
[common]
server_addr = 192.168.30.40
server_port = 7000
[socks5_forward]
type = tcp
local_ip = 192.168.30.40
local_port = 10809
remote_port = 10808
5.FTP作为三级代理的客户端
./frps -c ./frps.ini
配置文件
[common]
bind_addr = 192.168.30.40
bind_port = 7000
6.使文件服务器作为三级代理的客户端
.frpc.exe -c .frpc.ini
配置文件
[common]
server_addr = 192.168.30.40
server_port = 7000
[socks5]
type = tcp
remote_port = 10809
plugin = socks5
到此内网已经杀穿了。
同样的配置proxychains rdesktop 192.168.60.10
本文作者:k1hedodo, 转载请注明来自FreeBuf.COM
-
【Hacking黑白红】,一线渗透攻防实战交流公众号
回复“电子书”获取web渗透、CTF电子书:
回复“视频教程”获取渗透测试视频教程;
回复“内网书籍”获取内网学习书籍;
回复“CTF工具”获取渗透、CTF全套工具;
回复“内网渗透”;获取内网渗透资料;
回复“护网”;获取护网学习资料 ;
回复“python”,获取python视频教程;
回复“java”,获取Java视频教程;
回复“go”,获取go视频教程
知识星球
【Hacking藏经阁】知识星球致力于分享技术和认知。
1、技术方面。主攻渗透测试(web和内网)、CTF比赛、逆向、护网行动等;
400G渗透教学视频、80多本安全类电子书、50个渗透靶场(资料主要来自本人总结、以及学习过程中购买的课程)
2、认知方面。副业经营、人设IP打造,具体点公众号运营、抖*yin等自媒体运营(目前主要在运营两个平台4个号)。
如果你也想像我一样,不想35岁以后被动的去面试,那么加入星球我们一起成长。
欢迎加入99米/年,平均每天2毛7分钱,学习网络安全一整年。
渗透实战系列 ▶【渗透实战系列】51|- 一次BC站点的GetShell过程
▶【渗透实战系列】50|- Log4j打点后与管理员斗智斗勇
▶【渗透实战系列】49|-实战某高校的一次挖矿病毒的应急处置
▶【渗透实战系列】|45-记一次渗透实战-代码审计到getshell
▶【渗透实战系列】|44-记一次授权渗透实战(过程曲折,Java getshell)
▶【渗透实战系列】|42-防范诈骗,记一次帮助粉丝渗透黑入某盘诈骗的实战
▶【渗透实战系列】|40-APP渗透测试步骤(环境、代理、抓包挖洞)
▶【渗透实战系列】|35-旁站信息泄露的dedecms站点渗透
▶【渗透实战系列】|33-App渗透 ,由sql注入、绕过人脸识别、成功登录APP
▶【渗透实战系列】|32-FOFA寻找漏洞,绕过杀软拿下目标站
▶【渗透实战系列】|30-从SQL注入渗透内网(渗透的本质就是信息搜集)
▶【渗透实战系列】|29-实战|对某勒索APP的Getshell
▶【渗透实战系列】|27-对钓鱼诈骗网站的渗透测试(成功获取管理员真实IP)
▶【渗透实战系列】|25一次从 APP 逆向到 Getshell 的过程
▶【渗透实战系列】|24-针对CMS的SQL注入漏洞的代码审计思路和方法
▶【渗透实战系列】|18-手动拿学校站点 得到上万人的信息(漏洞已提交)
▶【渗透实战系列】|17-巧用fofa对目标网站进行getshell
▶【渗透实战系列】|15-博彩网站(APP)渗透的常见切入点
▶【渗透实战系列】|12 -渗透实战, 被骗4000花呗背后的骗局
▶【渗透实战系列】|10 - 记某色X商城支付逻辑漏洞的白嫖(修改价格提交订单)
▶【渗透实战系列】|9-对境外网站开展的一次web渗透测试(非常详细,适合打战练手)
▶【渗透实战系列】|8-记一次渗透测试从XSS到Getshell过程(详细到无语)
▶【渗透实战系列】|1一次对跨境赌博类APP的渗透实战(getshell并获得全部数据)
点分享
点收藏
点点赞
点在看
原文始发于微信公众号(Hacking黑白红):隧道?代理?端口转发?(一文读懂)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论