出品|MS08067实验室(www.ms08067.com)

本文作者:大方子(Ms08067实验室核心成员)

0X01设备信息

  Ubuntu14.04:192.168.61.135

  Kali:192.168.61.130

0X02配置过程

  先用Kali探测下Ubuntu的端口情况,可以看到Ubuntu的22端口是正常开放的

  接下来在Ubuntu上安装Knockd

apt-get install update
apt-get install build-essential -y
apt-get install knockd -y

  安装完成后就cat下Knockd的配置/etc/knockd.conf

  配置解释:

[options]
UseSyslog //用来定义日志输出位置以及文件名 [openSSH]
sequence = 7000,8000,9000 //设置(开门)敲门顺序,可以自定义
seq_timeout = 5 //设置超时时间
command = /sbin/iptables ‐A INPUT ‐s %IP% ‐p tcp ‐‐dport 22 ‐j ACCEPT //开门成功后添加防火墙规则命令(打开SSH端口)
tcpflags = syn [closeSSH]
sequence = 9000,8000,7000 //设置(关门)敲门顺序,与开门顺序相反
seq_timeout = 5 //设置超时时间
command = /sbin/iptables ‐D INPUT ‐s %IP% ‐p tcp ‐‐dport 22 ‐j ACCEPT //关门成功后删除之前添加的防火墙规则(关闭SSH端口)
tcpflags = syn

  接下来对/etc/knockd.conf进行配置

[options]
#UseSyslog
LogFile = /knock.log #配置日志路径 [openSSH]
sequence = 7000,8000,9000
seq_timeout = 5
command = /sbin/iptables ‐I INPUT ‐s 192.168.61.130 ‐p tcp ‐‐dport 22 ‐j ACCEPT //这里把A改成I,让knockd插入的规则能够优先生效
tcpflags = syn [closeSSH]
sequence = 9000,8000,7000
seq_timeout = 5
command = /sbin/iptables ‐D INPUT ‐s 192.168.61.130 ‐p tcp ‐‐dport 22 ‐j ACCEPT
tcpflags = syn

  配置/etc/default/knockd,修改START_KNOCKD=1

  然后重启下knockd服务

service knock restart

  然后我们在Ubuntu的防火墙上添加几条规则

iptables ‐A INPUT ‐s 192.168.61.1 ‐j ACCEPT //允许宿主机连接,方便实验的时候可以用SSH进行连接
iptables ‐A INPUT ‐s 127.0.0.0/8 ‐j ACCEPT //允许本机的连接
iptables ‐A INPUT ‐j DROP //拒绝其他所有IP的连接

  我们在Kali上用nmap对Ubuntu的22端进行探测,可以看到22端口的状态是被过滤了

nmap ‐sC ‐Pn ‐sV ‐p 22 ‐A 192.168.61.135

  接下来我们用nmap进行敲门

for x in 7000 8000 9000;do nmap ‐Pn ‐‐max‐retries 0 ‐p $x 192.168.61.135;done

  我们再次查看Ubuntu上的防火墙规则,添加了一条关于192.168.61.130的规则

  我们再次用Kali进行探测并尝试连接


  使用完毕之后,我们再次用nmap进行关门,只需要倒过来敲击各个端口即可

for x in 9000 8000 7000;do nmap ‐Pn ‐‐max‐retries 0 ‐p $x 192.168.61.135;done

  再次查看Ubuntu的防火墙规则,可以看到之前关于192.168.61.130的规则已经被删除

  此时再次用nmap进行探测以及进行连接都会被拒绝


通过Knockd隐藏SSH,让黑客看不见你的服务器的更多相关文章

  1. mysql: 看不见的空符号 char(9) char(10) char(13)

    在统计年度销售额时,总觉得哪里不对劲.于是找了找,对了对,试了trim,消除前后的空格,也没反应. 在崩溃的边缘,终于发现了错的原因. 原来我在录入的时候,粘贴多了其他空白符号,看不见,摸不着,啊~ ...

  2. 【Bug】看不见的分隔符: Zero-width space

    今天在调试一段代码的时候,有一个输入不能为空的库函数抛出了异常(为空就会抛出异常,就是这么傲娇).自己暗骂了自己一番,怎么这么大意,于是追溯源头,开始寻找输入控制的地方.但是当我找到时我惊呆了,我明明 ...

  3. Telnet客户端连接服务器,看不见字符,只显示横线

    Telnet 窗口看不见字符,只显示小横线 在用telnet连接tomcat服务器的 时候,窗口中不显示字符,显示成一个一个的横线 解决办法: 按住“Ctrl+]” 回车解决问题

  4. MySQL 笔记整理(3) --事务隔离,为什么你改了我还看不见?

    笔记记录自林晓斌(丁奇)老师的<MySQL实战45讲> 3) --事务隔离,为什么你改了我还看不见? 简单来说,事务就是要保证一组数据操作,要么全部成功,要么全部失败.在MySQL中,事务 ...

  5. [BUG随想录] 看不见的分隔符: Zero-width space

    今天在调试一段代码的时候,有一个输入不能为空的库函数抛出了异常(为空就会抛出异常,就是这么傲娇).自己暗骂了自己一番,怎么这么大意,于是追溯源头,开始寻找输入控制的地方.但是当我找到时我惊呆了,我明明 ...

  6. darktrace 亮点是使用的无监督学习(贝叶斯网络、聚类、递归贝叶斯估计)发现未知威胁——使用无人监督 机器学习反而允许系统发现罕见的和以前看不见的威胁,这些威胁本身并不依赖 不完善的训练数据集。 学习正常数据,发现异常!

    先说说他们的产品:企业免疫系统(基于异常发现来识别威胁) 可以看到是面向企业内部安全的! 优点整个网络拓扑的三维可视化企业威胁级别的实时全局概述智能地聚类异常泛频谱观测 - 高阶网络拓扑;特定群集,子 ...

  7. 在输入密码框中眼睛睁开可以看见数字,眼睛闭上看不见数字怎么用JS实现

    无论做那个项目,登录注册页面总是避免不了的,那怎么用js来控制密码的显示和隐藏呢?先看一下效果图: HTML代码如下: <div>         <label for=" ...

  8. threejs三角形Geometry的顶点时针顺序会导致三角形看不见

    var scene = new THREE.Scene(); var camera = new THREE.PerspectiveCamera(75,winSize.width/winSize.hei ...

  9. 为什么有的系统的事务码BSP_WD_CMPWB看不见Enhance Component这个按钮

    我的同事问我,为什么有的系统看不到下图7的按钮? 对比两张图里工具栏的差异. 答案 这是因为在图2(看不见Enhance Component按钮)的系统里,该系统的类型被设置为"SAP&qu ...

随机推荐

  1. Centos7 搭建openldap完整详细教程(真实可用)

    最近,由于公司需求,需要搭建openldap来统一用户名和密码,目前市面上几乎所有的工具都支持ldap协议,具体ldap的介绍这里就不详细说明了,这里主要记录一下如果部署openldap来实现Ldap ...

  2. 入门oj 6492: 小B的询问

    Description 小B有一个序列,包含N个1~K之间的整数.他一共有M个询问,每个询问给定一个区间[L..R],求Sigma(c(i)^2)的值,其中i的值从1到K,其中c(i)表示数字i在[L ...

  3. ROS开源小车TurtleBot3详情介绍(Burger)

    您为什么要选择ROS开源智能小车 ROS(RobotOperating System,机器人操作系统)是目前世界上更主流更多人使用的的机器人开源操作系统.它可以提供操作系统应有的服务,包括硬件抽象,底 ...

  4. JavaScript AMD模块化规范

    浏览器环境 有了服务器端模块以后,很自然地,大家就想要客户端模块.而且最好两者能够兼容,一个模块不用修改,在服务器和浏览器都可以运行. 但是,由于一个重大的局限,使得CommonJS规范不适用于浏览器 ...

  5. C#扫盲篇(二)依赖倒置•控制反转•依赖注入•面向接口编程--满腹经纶的说

    扫盲系列的文章收到了广大粉丝朋友的支持,十分感谢,你们的支持就是我最大动力. 我的扫盲系列还会继续输出,本人也是一线码农,有什么问题大家可以一起讨论.也可以私信或者留言您想要了解的知识点,我们一起进步 ...

  6. docker学习之路(安装、使用)

    一.docker安装 1.更新现有的yum包 yum update 2.配置docker yum源 [root@docker ~]# cat /etc/yum.repos.d/docker.repo ...

  7. Hbase Rowkey设计原则

    Hbase是三维有序存储的,通过rowkey(行键),column key(column family和qualifier)和TimeStamp(时间戳)这三个维度可以对HBase中的数据进行快速定位 ...

  8. linux 怎么样复制文件夹内所有文件到另一个文件夹?

    cp -Rf /home/user1/* /root/temp/将 /home/user1目录下的所有东西拷到/root/temp/下而不拷贝user1目录本身.即格式为:cp -Rf 原路径/ 目的 ...

  9. pytorch模型结构可视化,可显示每层的尺寸

    最近在学习一些检测方面的网络,使用的是pytorch.模型结构可视化是学习网络的有用的部分,pytorch没有原生支持这个功能,需要找一些其他方式,下面总结几种方法(推荐用4). 1. torch . ...

  10. Map遍历的几种方式

    代码示例 /** * @author liaowenhui * @date 2020/6/25 11:15 */ public class TestMap { public static void m ...