起因
在渗透测试时,客户需要对我们的测试 IP 进行加白,但是此次客户要求精确到固定端口或者小范围端口(不能 1-65535),根据以前的经验,默认是加白 IP 和全端口,因为代理建立连接使用的端口是随机的,所以这次算是从头查找资料总结一下各种指定源端口的方式。
这里的端口是指与目标建立连接时使用的源端口,而不是代理监听的端口。
注意
最好使用服务器(VPS)发送请求。如果在局域网内向外网发起请求,即使本机指定了端口,也无济于事,因为实际发出请求的是最外层网络设备。
方法一:NC
# 指定12345端口,缺点是一次一用,比较麻烦
nc <IP> <Port> -p 12345
nc
方法二:批量占用端口
查找了很多资料,但都没能找到合适的工具。最终我想到了一种笨拙的方法:强制占用所有可用的端口。这样当代理发起请求时,就会自动选择未被占用的端口。python 代码举例如下:
import socket
import time
# 要占用的端口范围
start_port = 1
end_port = 60000
# 创建套接字
socks = []
for port in range(start_port, end_port+1):
try:
sock