ssh后门反向代理实现内网穿透

不同内网主机之间访问方法

OpenVPN

ssh后门反向代理实现内网穿透

N2N

ssh内网穿透

局域网主机(虚拟主机): 192.168.6.233 CentOS 6.7

云服务器:120.25.68.60 CentOS 6.7

  • 云服务器120.25.68.60上需要修改sshd_config配置文件:
[root@120.25.68.60 ~]# vi /etc/ssh/sshd_config
GatewayPorts yes
[root@120.25.68.60 ~]# service sshd reload
Reloading sshd: [  OK  ]
  • 通过局域网虚拟机192.168.6.233 连接到120.25.68.60开启反向端口代理,输入云服务器密码.
root@192.168.6.233:~ # ssh -CqTfnN -R 0.0.0.0:7233:192.168.6.233:22 root@120.25.68.60
root@120.25.68.60's password: 
  • 在云服务器120.25.68.60上可以看到这个监听.
[root@120.25.68.60 ~]# netstat -anp | grep 7233
tcp        0      0 0.0.0.0:7233                0.0.0.0:*                   LISTEN      2392/sshd  
tcp        0      0 :::7233                     :::*                        LISTEN      2392/sshd 
  • 现在到其他客户机上连接阿里云服务器120.25.68.60的7233端口,输入局域网虚拟主机192.168.6.233的主机密码.
[root@192.168.4.194 ~]# ssh -p 7233 root@120.25.68.60
root@120.25.68.60's password:
Last login: Thu Mar 24 11:01:15 2016 from 192.168.6.233


[root@phpdragon_233 ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:50:56:34:8B:4D
          inet addr:192.168.6.233  Bcast:192.168.6.255  Mask:255.255.255.0
          inet6 addr: fe80::250:56ff:fe34:8b4d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1321125 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1232406 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:450626290 (429.7 MiB)  TX bytes:273698355 (261.0 MiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:524375 errors:0 dropped:0 overruns:0 frame:0
          TX packets:524375 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:43705227 (41.6 MiB)  TX bytes:43705227 (41.6 MiB)

autossh实现内网穿透

环境说明

  • 一台内网机器,后面简称N,centos系统,ssh端口为2222,用户名为userN,ip为10.10.12.1
  • 一台公网服务器,后面简称W,centos系统,ssh端口为61397,用户名为userW,ip为123.56.21.222
  • 测试主机

配置N到W的免密登录

#N上 :使用ssh-keygen生成一对rsa公私钥,生成的密钥对会存放在~/.ssh目录下。
ssh-keygen -t rsa
#W上 :相应用户目录下创建~/.ssh目录
mkdir -p .ssh
#N上 :将N的公钥拷贝给W,输入密码即可
cat .ssh/id_rsa.pub | ssh userW@123.56.21.222 'cat >> .ssh/authorized_keys' 

在W上准备两个空闲端口

云服务器,一般会有安全组过滤,需要开启两个空闲端口的允许规则。本文开启5678和54345端口。

iptables -I INPUT -p tcp --dport 54345 -j ACCEPT  
iptables -I INPUT -p tcp --dport 5678 -j ACCEPT  
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

在N上配置反向隧道

安装autossh

sudo yum install wget gcc make
wget http://www.harding.motd.ca/autossh/autossh-1.4e.tgz
tar -xf autossh-1.4e.tgz
cd autossh-1.4e
./configure
make
sudo make install

配置ssh反向隧道

结合命令,将发送到远程端口的请求,转发到目标端口。

ssh -R 远程地址:远程端口:目标地址:目标端口 服务器IP

autossh操作。

autossh -M 5678 -fN -o "PubkeyAuthentication=yes" -o "StrictHostKeyChecking=false" -o "PasswordAuthentication=no" -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -R 123.56.21.222:54345:localhost:2222 userW@123.56.21.222 -p 61397

# “-M 5678” 选项指定中继服务器上的监视端口,用于交换监视 SSH 会话的测试数据。中继服务器上的其它程序不能使用这个端口。
# “-fN” 选项传递给 ssh 命令,让 SSH 隧道在后台运行。
# “-o XXXX” 选项让 ssh:
#        * 使用密钥验证,而不是密码验证。
#        * 自动接受(未知)SSH 主机密钥。
#        * 每 60 秒交换 keep-alive 消息。
#        * 没有收到任何响应时最多发送 3 条 keep-alive 消息。       
# 如果你想系统启动时自动运行 SSH 隧道,你可以将上面的 autossh 命令添加到 /etc/rc.local。

测试

在测试机上

ssh userN@123.56.21.222 -p 54345 #登录内网机器N

端口映射

比如某一天你在家加班(机器A),需要连接到公司里的oracle数据库(机器B)里去,但是公司的oracle数据库没有外网地址,但公司有另外一台外网可以访问的机器(机器C);

这时就可以这样操作了:

在机器A上通过ssh -L将本地的端口映射到机器C上,将让它转发所有机器B的请求,也就是下面这样写:

ssh -L 1521:iamoracleserverB.com:1521 root@serverC

端口转发

如果机器A是一台WINDOWS机器,可以将机器B的1521端口映射到机器C上的某一个端口上来,并且指定为0.0.0.0的这个网卡地址

那么在serverC上执行如下的命令就可以了:

ssh -L 0.0.0.0:1521:iamoracleserverB.com:1521 root@serverC

资料

实战 SSH 端口转发

https://www.ibm.com/developerworks/cn/linux/l-cn-sshforward/index.html#icomments

SSH内网穿透的N种姿势

https://blog.csdn.net/MasonQAQ/article/details/78190400

通过ssh tunnel让Kali实现内网穿透

https://blog.csdn.net/puhaiyang/article/details/50392740

使用 ssh -R 穿透局域网访问内部服务器主机,反向代理 无人值守化

https://www.cnblogs.com/phpdragon/p/5314650.html

使用 ssh -R 穿透局域网访问内部服务器主机,反向代理 无人值守化

https://www.cnblogs.com/phpdragon/p/5314650.html

posted @ 2019-09-01 04:47  17bdw  阅读(1065)  评论(0编辑  收藏  举报