[实用开源]端口转发小工具rtcp.py

2012-02-24

余弦(@evilcos)

rtcp.py一直是我们使用于端口转发场景下的小工具,用python实现的。大概是09年,老杨给大家的一次作业,当时的几个技术人都写出了自己的一版,不过最终版本还是使用老杨写的,然后大家一起修修补补吧,经过几年的使用,感觉还是挺不错的,不愿独享,乘着这次blog新版出现,就开源了吧。

我们曾说过:我们来自开源,也将走向开源。

rtcp.py使用场景之一如下:

A服务器在内网,公网无法直接访问这台服务器,但是A服务器可以联网访问公网的B服务器(假设IP为222.2.2.2)。

我们也可以访问公网的B服务器。我们的目标是访问A服务器的22端口。那么可以这样:

1. 在B服务器上运行:

./rtcp.py l:10001 l:10002

表示在本地监听了10001与10002两个端口,这样,这两个端口就可以互相传输数据了。

2. 在A服务器上运行:

./rtcp.py c:localhost:22 c:222.2.2.2:10001

表示连接本地的22端口与B服务器的10001端口,这两个端口也可以互相传输数据了。

3. 然后我们就可以这样来访问A服务器的22端口了:

ssh 222.2.2.2 -p 10002

原理很简单,这个命令执行后,B服务器的10002端口接收到的任何数据都会传给10001端口,此时,A服务器是连接了B服务器的10001端口的,数据就会传给A服务器,最终进入A服务器的22端口。

关于这个小工具的更多信息可以查看:https://github.com/knownsec/rtcp,同时欢迎关注https://github.com/knownsec/,我们的开源站!

作者:余弦 | 分类目录:技术分享 | 标签: rtcp、开源

  • Admin

    可以接受多个客户端的连接不 ???


  • Sunge

    不错,从此Linux/Unix渗透的道路更加宽敞,呵呵!


  • Scr1pt

    不错啊


  • Shell Xu

    为啥不用autossh+ssh -L,这个可以bind到127.0.0.1以外的。


  • murrain zhao

    用ssh自身的转发功能也可以实现撒,A: ssh –f –N –R 10000:localhost:22 username@server:disqusip

    B:ssh username@localhost –p 10000 这样不是一样的实现么,不过这个工具某些场景下面更方便一些吧

A服务器在内网,公网无法直接访问这台服务器,但是A服务器可以联网访问公网的B服务器(假设IP为222.2.2.2)。

我们也可以访问公网的B服务器。我们的目标是访问A服务器的22端口。那么可以这样:

1. 在B服务器上运行:

./rtcp.py l:10001 l:10002

表示在本地监听了10001与10002两个端口,这样,这两个端口就可以互相传输数据了。

2. 在A服务器上运行:

./rtcp.py c:localhost:22 c:222.2.2.2:10001

表示连接本地的22端口与B服务器的10001端口,这两个端口也可以互相传输数据了。

3. 然后我们就可以这样来访问A服务器的22端口了:

ssh 222.2.2.2 -p 10002

原理很简单,这个命令执行后,B服务器的10002端口接收到的任何数据都会传给10001端口,此时,A服务器是连接了B服务器的10001端口的,数据就会传给A服务器,最终进入A服务器的22端口。

发表回复