Port knockd服务
Port knockd服务
在一次靶场渗透中遇到了这个服务,刚开始ssh怎么也连不上,后来弄懂了有这么哥服务,感觉挺有意思的,也是一个ctf出题思路,作为积累,就写个笔记记录一下吧
概念
端口敲门(Port knocking)技术,可以理解为密码或者暗号服务,简单来说,就是访问“预先设定好的顺序端口”,服务器收到某客户端的端口尝试序列后,动态修改防火墙规则,打开某特定端口,这时候,这个端口就可以被某IP进行访问了。访问顺序端口跟敲门一样,也类似于密码或者暗号。
大白话
简单说就是事先设置好一个顺序,当你访问该端口时需要按照顺序来访问端口,这种服务很好的隐蔽了端口(因为扫出来端口是关闭状态),降低了被攻击风险
在真实渗透环境中遇到时,当ssh连不上,可以查看**/etc/knockd.conf**文件来确定是否有相关服务(当然前提是获取到了一定的权限,或者是通过文件包含来打),再做后续操作
端口敲门服务的实现
先看一下没开启knock服务 对方22端口的状态
为open状体
安装knockd
1 | apt-get install knockd -y #安装knock服务 |
1 | vim /etc/knockd.conf #配置knock服务 |
设置敲门顺序
sequence = 7777,8888,9999 此处为定义敲门顺序号
当我们敲门时需按照这个顺序敲
将 seq_timeout 设置为 30,以免超时时间过小出错
最终配置如下(-I一定要改,否则敲门没用)
开启knockd
配置**/etc/default/knockd**,修改 START_KNOCKD=1。
启动knockd
1 | service knockd start |
配置防火墙策略
1 | iptables -A INPUT -p tcp --dport 22 -j DROP #禁止22端口的ssh登陆也就是22端口不为open状态 |
如果设置错了用下面命令进行删除
1 | iptables -D INPUT 编号 |
依次敲门
此时nmap扫对方22端口为filtered状态
直接ssh登陆也是time out的
使用nmap或者knockd敲门(也就是访问一下端口),这里使用knockd比较方便
1 | knock 192.168.17.133 7777 8888 9999 -d 50 |
敲门后,此时对方端口状态为
对方防火墙策略里也多了一条,显示开启了22端口
登陆成功
敲门关闭
敲门关闭22端口也是同理
1 | knock 192.168.17.133 9999 8888 7777 -d 50 #-d 延迟为50毫秒 |
已关闭22端口
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 A.binのBlog!