端口转发 Port Forwarding (一)
0x00First
最近发现一些好用的端口转发工具和技巧,计划认真梳理一下
SSH、NC、LCX、EW、FRP
0x01 SSH隧道端口转发
目前利用SSH隧道(SSH tunneling)进行端口转发,有三种类型:本地端口转发、远程端口转发、动态端口转发。
1、本地端口转发
在ip1的客户端执行如下命令:
SSH -CfN -L 0.0.0.0:port1:ip2:port2 user3@ip3
结果:访问ip1:port1等同于访问ip2:port2
条件:ip1可以ssh访问ip3;
ip3可以访问ip2的port2
1.5、本地转发与远程端口转发的异同
同:都是通过访问ip1:port1来最终访问ip2:port2
ip3是中间必经点,ip2只能通过ip3来发起访问
异:前者是ip1扮演SSH Client,后者是ip3扮演SSH Client
前者场景-公司里只有老板的ip3可以到看ip2上的片片,由于你加班表现优异,特奖励你的ip1可以ssh他的ip3,这样你在自己的工位上也能看ip2的片了。
后者场景-老板把公司内网的考勤系统ip2,通过可以上网的ip3主动映射到互联网的服务器ip1上,便于出差在外/半夜在家的你加班。
2、远程端口转发
在ip3的客户端执行如下命令:
SSH -CfN -R port1:ip2:port2 user1@ip1
结果:访问ip1:port1等同于访问ip2:port2
条件:ip3可以ssh访问ip1;
ip3可以访问ip2的port2
3、动态端口转发
在ip1的客户端执行如下命令:
SSH -CfN -D 8080 user3@ip3
在ip1上将socks5代理服务器地址设置为ip1:8080
结果:在ip1上可以访问ip3所有能访问的
条件:ip1可以ssh访问ip3
0x02 NetCat NC端口转发
目前windows版本的通用netcat没有见到可有进行端口转发的,Linux版的也只是能进行简单的端口转发。Linux端口转发是需要同mkfifo结合起来用的:
在ip1上:
mkfifo /tmp/backpipe
cat /tmp/backpipe | nc ip2 8080 | nc -l 9090 > /tmp/backpipe
结果:访问ip1的9090就是访问ip2的8080了
条件:ip1可以访问ip2的8080
0x03 LCX 端口转发
应该说LCX是比较经典的端口转发工具,先上一段官方说明:
Usage of Packet Transmit:
./lcx -<listen|tran|slave> <option> [<-log|-hex|-text> file]
./lcx -about
[options:]
-listen <local port1> <local port2>
-tran <local port> <remote host> <remote port>
-slave <remote host1> <remote port1> <remote host2> <remote port2>
-hex : hex mode data dump
-text : text mode data dump
-log : save transfer log
0x04 EarthWorm EW 端口转发
EarthWorm EW是一款跨平台的端口转发、Socks5代理工具,自带LCX功能,跨平台。(Earthworm 工具网址:http://rootkiter.com/EarthWorm)
EW共有 6 种工作模式:ssocksd、rcsocks、rssocks、lcx_slave、lcx_listen、lcx_tran
1、正向SOCKS5 代理
在ip1上命令:ew -s ssocksd -l 8080
将ip2的socks5代理服务器设置为:ip1:8080
结果:ip1能访问的端口,ip2都能访问
条件:ip2能够访问ip1的8080
2、反弹SOCKS5 代理
在ip1上命令:ew -s rcsocks -l 8080 -e 9090
在ip2上命令:ew -s rssocks -d ip1 -e 9090
将ip3的socks5代理服务器设置为:ip1:8080
结果:ip2能访问的端口,ip3都能访问
条件:ip2能够访问ip1的9090
ip3能够访问ip1的8080
0x05 FRP 端口转发
FRP 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。(官方文档很详细,我都不想说了)
0xRef
1、《SSH/OpenSSH/PortForwarding 》https://help.ubuntu.com/community/SSH/OpenSSH/PortForwarding
2、《实战 SSH 端口转发》https://www.ibm.com/developerworks/cn/linux/l-cn-sshforward/
3、《端口转发》https://pan.baidu.com/s/1ystFF-a0nBSDvINpzf0OZw
4、《应用netcat实现端口转发》https://blog.csdn.net/freestyle4568world/article/details/54693306
5、《netcat的端口转发功能的实现》https://blog.csdn.net/whackw/article/details/46414069
6、《netcat的正确打开方式》 https://www.jianshu.com/p/827f5dc79bbe
7、《PuTTY/Putty建立隧道的方法》https://blog.csdn.net/lifan5/article/details/33709271
8、《三种不同类型的ssh隧道》http://hetaoo.iteye.com/blog/2299123
9、《SSH的端口转发:本地转发Local Forward和远程转发Remote Forward》https://blog.csdn.net/a351945755/article/details/21785647
10、《ssh端口映射总结》https://blog.csdn.net/boliang319/article/details/48656985
11、《端口转发工具lcx使用两类》https://www.cnblogs.com/lingerhk/p/4506308.html
12、《内网端口转发及穿透》http://www.zerokeeper.com/experience/network-port-forwarding-and-penetration.html
13、《内网穿透大杀器--EarthWorm》https://blog.csdn.net/nzjdsds/article/details/82025651
14、《FRP 中文说明文档》https://github.com/fatedier/frp/blob/master/README_zh.md
0xApp
1、SSH 命令详解
https://www.cnblogs.com/f-ck-need-u/archive/2017/07/05/7120669.html
2、25个常用的ssh命令
https://blog.csdn.net/u010027484/article/details/51774083
端口转发 Port Forwarding (一)的更多相关文章
- 路由器port触发与转发---Port Forwarding & Port Triggering
What is Port Triggering? If you have not read my explanation of port forwarding do so now. You can f ...
- iptables 通讯端口转接(Port Forwarding)
是一种特殊的DNAT操作,其作用是让一部电脑(通常是防火牆)担任其它电脑的代理伺服器(proxy).防火牆接收外界网络接传给它自己的包,然后改写包的目的地位址或目的端口,使其像是要送到內部网路其它电脑 ...
- OpenSSH高级功能之端口转发(Port Forwarding)
在RedHat提供的系统管理员指南中提到OpenSSH不止是一个安全shell,它还具有X11转发(X11 Forwarding)和端口转发(Port Forwarding)的功能.X11功能一般用于 ...
- SSH Tunnel扫盲(ssh port forwarding端口转发)
SSH的的Port Forward,中文可以称为端口转发,是SSH的一项非常重要的功能.它可以建立一条安全的SSH通道,并把任意的TCP连接放到这条通道中.下面仔细就仔细讨论SSH的这种非常有用的功能 ...
- [转] SSH原理与运用(2):远程操作与端口转发
英文:阮一峰 链接:http://www.ruanyifeng.com/blog/2011/12/ssh_port_forwarding.html 接着前一次的文章,继续介绍SSH的用法. (Imag ...
- virtualbox端口转发
端口转发:setting->network->adapter:attached to NAT.port forwarding rules->name protocol ...
- vbox端口转发
端口转发:setting->network->adapter:attached to NAT.port forwarding rules->name protocol ...
- 玩转SSH端口转发
SSH有三种端口转发模式,本地端口转发(Local Port Forwarding),**远程端口转发(Local Port Forwarding)**以及**动态端口转发(Dynamic Port ...
- 005. [转] SSH端口转发
玩转SSH端口转发 SSH有三种端口转发模式,本地端口转发(Local Port Forwarding),远程端口转发(Remote Port Forwarding)以及动态端口转发(Dynamic ...
随机推荐
- 解决python logging重复写日志问题
import logging from homework.exam_homework_0413.common import contants from homework.exam_homework_0 ...
- Linux下使用RedisPool时报错:redis.clients.jedis.HostAndPort getLocalHostQuietly 严重: cant resolve localhost address
项目在本地无错误,当部署到linux服务器以后,启动tomcat报错: 意思是找不到服务的名称. 后在网上检索相关答案,是因为在/etc/hosts文件中没有加入当前服务器实例的名称,将当前服务器实例 ...
- Shell中sed----学习
sed原理及使用 目录 前言 一.简介 二.处理流程 三.命令选项options 四.pattern 1. 模式空间 2. 模式空间的转换 3. 地址匹配 五.procedure 1. 替换命令: s ...
- CentOS7 查看操作系统版本信息
CentOS 查看操作系统版本信息1.使用cat /proc/version .uname 查看内核版本 [root@CentOS7 ~]# cat /proc/version Linux versi ...
- MyBatis updateByExample和updateByExampleSelective的区别
大家都用过mybatis generator来生产数据库的xml文件,但是关于updateByExample和updateByExampleSelective的区别我之前一直分不太清楚. 如果分不清楚 ...
- Delphi之Exception获得错误信息
1 unit Unit1; 2 3 interface 4 5 uses 6 Windows, Messages, SysUtils, Variants, Classes, Graphics, Con ...
- UVA 2290 Transmitters
题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_ ...
- SVN与资源库同步后动作的字母意义
U:表示从服务器收到文件更新了G:表示本地文件以及服务器文件都以更新,而且成功的合并了A:表示有文件或者目录添加到工作目录R:表示文件或者目录被替换了C:表示文件的本地修改和服务器修改发生冲突
- Python 3.6安装yaml时报"AttributeError: module 'pip' has no attribute 'main'"和“Non-zero exit code”错误
1.Python 3.6安装yaml时一开始报AttributeError: module 'pip' has no attribute错误,根据网上提供的解决方法修改Pycharm安装目录D:\Pr ...
- ACM(数学问题)——UVa202:输入整数a和b(0≤a≤3000,1≤b≤3000),输出a/b的循环小数表示以及循环节长度。
主要思路: 通过模拟除法运算过程,来判断循环节结束的位置,不断将余数*10再对除数取余得到新的余数,并记录下来,知道出现的余数之前出现过,此时小数开始循环. 例如: 假设 -> a ...