专栏首页FreeBuf浅谈简易端口扫描威胁感知系统的设计与实现

浅谈简易端口扫描威胁感知系统的设计与实现

一 前言:

正所谓善守者不知其所攻,善攻者不知其所守。网络攻防本来就是一场看不见硝烟的对抗。

本人设计的这套端口蜜罐检测程序,是在总结了大量的APT攻击方法和思路之后,结合自己分析和思考,针对当前企业面临的大量黑客攻击,而无法得到有效的预警信息,设计了这个简易版本的蜜罐程序。

二 设计方法和思路

下面结合APT攻击的常见流程来分析端口蜜罐程序设计的方法和思路。

上面这张图片只是列出了常见的三种攻击流程,APT攻击的方法和思路还有很多,如2010年的震网病毒, 近两年被发现的往流行的网络管理客户端xshell,putty,secureCRT等植入后门再从中筛选攻击目标 等等。

在上面的三种APT攻击方法中,第一种方法是最普遍,被黑客使用最多的一种。那我们就针对第一种方法设计相关的防御措施。在网络入侵者使用第一种方法实施入侵时,会用nmap等端口扫描工具扫描子域名开放的端口信息。比如常见的21(ftp), 22(ssh),1433(mssql),3306(mysql),3389(rdp) 等端口。在端口扫描之后黑客会用暴力破解工具进行在线破解,破解失败后会检测常见的web漏洞,比如sql注入,xss,文件上传漏洞等等。

既然端口扫描和在线破解会被黑客广泛使用,那我们就可以开放常见的端口让黑客主动发起网络连接。当黑客用端口 扫描工具和暴力破解工具扫描 JIDS监听的端口时,程序会记录黑客 的公网IP地址 ,扫描的日期时间,扫描的次数等信息, 同时当扫描的次数超过指定的次数时,会发出告警邮件。

三 代码实现部分

上面只是整个程序代码中的核心代码部分。说说代码的实现逻辑;当黑客用nmap扫描端口和使用hydra,ncrack 等若口令在线破解工具时,会发起TCP网络连接请求,只要TCP连接发送过来,这边监听的常见端口如21,22,3306 等就会做相应的响应,把黑客的公网IP 地址,扫描的日期时间 记录下来,记录完成之后就会立即断开,并且每个监听的端口放在单独的一个线程中,互不干扰。

程序的特点

1 本程序由JAVA 开发实现,可以跨平台部署,既可以在windows系统部署,也可以在linux系统上面部署。 2 监听的端口可以自定义,比如常见的应用层协议端口21(FTP)22(SSH),80(HTTP),443(HTTPS),1433(MSSQL),3306(MYSQL),1521(ORACLE),5432(PostgreSQL),5901(VNC)等。 3 能同时记录多个IP地址的连接请求,比如有100个不同的IP同时扫描开放的端口,这100个IP都会被记录下来。 4 监听的端口有对应的指纹信息,能欺骗黑客用nmap等端口扫描工具的检测。 5 对每个IP扫描的次数自动统计并排序,自动生成威胁感知列表并发送email告警邮件信息。

欺骗nmap 端口指纹扫描工具的效果图如下:

程序部署环境网络拓扑图

本程序部署在内网的linux 系统中,只能检测到内网的扫描攻击,如果需要检测外网的黑客扫描攻击,需要把监听的端口映射到 有域名的公网 IP。这样既能检测到内网扫描, 同时也能检测到外网的扫描 。

对业务系统的影响

JIDS只是监听网络端口,当黑客扫描时,会记录黑客的IP地址 和扫描的次数, 记录完成之后,网络连接就会自动断开;在部署的系统中并没有部署 安装具体的 应用程序,如M ySql, FTP 服务器,Redis等应用。 综上所述,JIDS可以理解为一套模拟端口蜜罐,对现有业务 系统 无任何影响。

检测结果分析

JIDS的检测输出结果包括日志和邮件告警 两种形式。 下面是JIDS 这个工具运行一段时间后获取的检测结果:

JIDS的日志功能能够 完整记录所有入侵者的IP地址 、日期时间、 扫描的端口,如下图:(日志 是 json格式)

邮件告警通过自动发送告警邮件至相关管理人员,告知入侵者统计信息,如扫描时间、IP地址 、 扫描次数、扫描端口 、IP地址地域信息。 邮件告警样例如下:

总结:

本程序能检测到黑客的端口扫描和若口令破解过程,包括IP地址,日期时间,扫描次数等等,

并能持续运行,直到程序进程结束为止,作为端口扫描威胁感知,这个程序基本上是能胜任的。

但是黑客攻击的方法和思路非常的多,能不能100%的检测到,以及怎样从检测到的结果中筛选出有目的 的APT攻击者,

还是单纯的抓肉鸡者,这是个需要解决的问题。

本文分享自微信公众号 - FreeBuf(freebuf),作者:陆仁甲

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-08-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 从一次攻防平台搭建浅谈企业网络安全建设

    本篇文章涉及到的知识点包括:IDS/IPS/防火墙的区别与部署位置;镜像端口、堡垒机的位置和注意细节;ACL访问控制列表和端口安全、VLAN安全,以及靶场以及日...

    FB客服
  • 内网全局代理工具及特征分析

    端口转发是点对点的方式,代理是点对面的方式,如果我们只需要访问主机的特定的端口,使用端口转发就够了,但通常在渗透进内网之后,我们还需要对整个内网进行横向渗透,这...

    FB客服
  • 照弹不误:出站端口受限环境下反弹Shell的思考

    “是否允许出站”这件事我一直以为无需过多思考,无非限制出站协议,或者限制出站端口,对于限制端口的目标十有八九也会保留 80、443,向这两个端口反弹基本能拿到 ...

    FB客服
  • 安全扫描器Nmap渗透使用教程

    介绍 nmap是用来探测计算机网络上的主机和服务的一种安全扫描器。为了绘制网络拓扑图Nmap的发送特制的数据包到目标主机然后对返回数据包进行分析。Nm...

    奶糖味的代言
  • nc命令用法举例

    nc是netcat的简写,有着网络界的瑞士军刀美誉。因为它短小精悍、功能实用,被设计为一个简单、可靠的网络工具

    用户5807183
  • 【简单了解系列】从基础的使用来深挖HashMap

    说的专业一点,HashMap是常用的用于存储key-value键值对数据的一个集合,底层是基于对Map的接口实现。每一个键值对又叫Entry,这些Entry分散...

    SH的全栈笔记
  • hadoop java Connection refused: no further information -hadoop 9000端口拒绝访问

    image.png 由上图可知9000端口已经打开,并且监听127.0.0.1,若监听该IP则其他服务器是访问不到的。解决方法为修改hosts...

    听城
  • 自然语言处理(一)——语言模型评价方法

    py3study
  • 从Python开始学编程

    改编自Vamei博客的《Python快速教程》。本书以Python为样本,不仅介绍了编程的基本概念,还着重讲解编程语言的主流范式:面向过程、面向对象、面向函数。...

    用户3157710
  • 虽然Python超越了java,可是java的江湖地位还是无人可撼动是吗?

    没有听过python这门编程语言已经超越java,现在只不过现在的势头很猛,特别是借助人工智能的大趋势,再加上培训机构的推波助澜好像一夜之间成为第一编程语言,但...

    程序员互动联盟

扫码关注云+社区

领取腾讯云代金券