1.在后渗透阶段,如果我们拿下了一台服务器的权限,发现在服务器所属的内网中有一台开启了3389或者22端口的主机,但是无法直接连接,是因为目标服务器处在内网中或者没有联网,这个时候我们可以借助内网中另一台可以联网的服务器来作为代理服务器与连接开启3389的服务器进行连接。
2.实验环境:
系统 | 用户 | 桥接 192.168.0.0/24 | NAT 192.168.11.0/24 |
win10 | 管理员 | 192.168.0.16 | |
ubuntu1 | lion1 | 192.168.0.18 | 192.168.11.128 |
ubuntu2 | lion | 192.168.11.129 | |
VMware | 192.168.0.3 |
3.VMware建立两个虚拟机,win10是另一台主机。lion1建立两个网络适配器一个是nat模式,另一个是桥接模式,这个虚拟机就当作跳板连接win10和另一个只有nat的主机ubuntu2,从而达成穿透的目的:使用win10连接处于内网中的ubuntu2。
4.frp反向代理连接:
frp是一个反向代理软件,分为客户端和服务端,分别用不同的配置文件。
通过frp把可以连接win10和ubuntu2的ubuntu1当作服务端:
服务端配置:frps.ini
frps.ini
[common]
bind_addr = 0.0.0.0 #监听所有ip连接,包括nat网卡和桥接网卡
bind_port = 7000 # 监听的端口,默认为7000
ubuntu1启动客户端:
./frps -c frps.ini
#也可以用nohup在后台运行
ubuntu2客户端启动:
客户端配置文件:frpc.ini
frpc.ini
[common]
server_addr = 192.168.11.128 #ubuntu1的nat网卡地址
server_port = 7000 #监听端口和frps.ini中的端口一致
[ssh] #名称
type = tcp #类型
local_ip = 127.0.0.1 #监听的本地ip
local_port = 22 #监听的本地端口
remote_port = 6000 #服务端的连接端口,是连接ubuntu1时使用的端口
ubuntu2启动客户端:
./frpc -c frpc.ini
frp服务端和客户端已经建立了连接:
通过win10连接ubuntu1的6000端口连接到ubuntu2,并且登录lion:
连接成功。
2.通过ssh进行端口转发代理:
ssh -NCfR 192.168.11.128:111:127.0.0.1:22 root@192.168.11.128 -p 22
#把本地的127.0.0.1的22端口转发到192.168.11.128:111的ubuntu1nat的网卡。
前提条件:
Ubuntu1的root账号,并且可以直接从ssh登录。
sshd_config中的GatewayPorts yes 设置为可以转发任意ip的流量,否则只有ubuntu1的本地可以访问
-f:后台连接
-p:端口22时可以省略
win10连接ubuntu2成功并登录到lion:
通过ssh反弹并不很稳定,可以通过安装autossh来自动重连。
apt-get install autossh
ubuntu
autossh -M 4444 -NCfR 192.168.11.128:111:127.0.0.1:22 -o ServerAliveInterval=60 root@192.168.11.128 -p 22
-m:通过4444端口监听连接状态
-o:ServerAliveInterval=60 保持连接时间60s
-p:端口为22时可以省略
前面的192.168.11.128也可以省略
如果不想输入密码还可以使用ssh用密钥连接。
ssh通过proxychains进行socket4代理:
ssh -NfD 9090 root@192.168.11.128 -p 22
-f:后台连接
改变/etc/proxychains.conf文件:
socks4 127.0.0.1 9090 #socks4代理为127.0.0.1 端口为9090
这样就可以通过【proxychains+命令】来进行代理连接了,ubuntu2就可以连接到win10了。
其实还有很多类似的穿透工具,远不止这两种方法。本来想用virtualbox的,但是nat网卡有问题,所以只能放弃了。