代理和端口转发
前言
渗透测试中不免要碰到这个东西,常用到的命令写个笔记整理一下。
建立通道
SSH
代理
1 | ssh -D 1080 user@server |
在本地1080端口开个socks5代理,转发流量到目标。
本地端口转发
1 | ssh -L 本地监听ip:监听端口:目标ip:目标端口 user@server |
访问本地监听ip:监听端口
就访问到了目标ip:目标端口
,流量通过本机和server的ssh隧道,一般用于本机访问远程主机服务。
远程端口转发
1 | ssh -R server监听ip:监听端口:目标ip:目标端口 user@server |
访问server监听ip:监听端口
就访问到了目标ip:目标端口
,流量通过本机和server的ssh隧道,一般用于远程访问本地服务。
注意:远程转发需要修改服务端配置文件并重启服务:
1 | GatewayPorts yes |
好处是ssh基本Linux服务器都自带,缺点是需要root权限并可能重启服务。
FRP
服务端:
1 | [common] |
也就是客户端:
1 | [common] |
反向代理,访问server_addr:remote_port
可以访问到local_ip:local_port
MSF模块
适用于获取到了meterpreter shell
的情况
先在meterpreter shell
里设好路由
1 | run post/multi/manage/autoroute |
再返回主菜单(bg
)使用模块搭建socks5代理
1 | use auxiliary/server/socks_proxy |
LCX
服务端:
监听443,33899,等待客户端连接到443端口
1 | lcx -listen 443 33899 |
客户端:
1 | lcx -slave 192.168.110.1 443 127.0.0.1 3389 |
上述命令达到访问服务端IP:转发监听端口
可以访问到目标IP:目标端口
注:目标ip和端口需要是开放状态,lcx运行就会尝试和目标建立连接。
ps:这个转发3389用RDP客户端连接了几次才连接上
Gohtran
Github找的go语言版htran,可以反弹socks5代理到服务端,缺点是用netstat
看会有大量连接
在对应平台安装golang然后编译:
1 | go build --ldflags "-s -w " -o gohtran_listener listener.go |
服务端监听:
第一个端口是客户端上线监听端口 第二个socks5服务监听端口
1 | gohtran_listener port1 port2 |
客户端连接:
1 | gohtran_client listenerip:port1 |
SSOCKS
ssocks 也可以反弹socks5代理到服务端,按readme编译即可,似乎只支持64位
测试了再补充
使用代理
Proxifier
配置代理服务器
配置规则,一般指定进程走代理,Default走Direct即可
图待补 😉
Netch
配置代理服务器
配置代理进程列表启动即可
图待补 😉
Proxychains
根据代理修改配置文件/etc/proxychains.conf
1 | quiet_mode #不输出连接详情到终端免得混乱一片 |
执行命令之前加proxychains
即可
Shrc
适用于终端情况,某些可能不方便用Proxychains,可以试试这个
方便更改环境变量而定义了两个函数,需要开代理就proxy 不要了就noproxy
把下面的代码加入你用的shell启动脚本,例如~/.bashrc
1 | export PROXY_SOCKS5="socks5://127.0.0.1:7890" |
小结
实际应用需要考虑你和目标之间的网络结构,以及权限和服务限制情况,灵活地进行调整,其他的用到了再补充。