logo资料库

实验六 端口扫描攻击检测.pdf

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
实验六 端口扫描攻击检测 YYQ And LSX 实验六 端口扫描攻击检测 1、 需求分析 针对内外网用户的恶意扫描检测,通过 snort 的端口扫描攻击检测,初步识别攻击的源 和目的地址,进行及时防御,将威胁降到最低,更好的保护公司单位网络的安全。 外网用户的恶意扫描探测 2、 实验原理 2.1 端口扫描基本知识 端口扫描向目标主机的 TCP/IP 服务端口发送探测数据包,并记录目标主机的响应。通 过分析响应来判断服务端口是打开还是关闭,就可以得知端口提供的服务或信息。端口扫描 也可以通过捕获本地主机或服务器的流入流出 IP 数据包来监视本地主机的运行情况,他仅 能对接收的数据进行分析,帮助我们发现目标主机的某些内在的弱点,而不会提供进入一个 系统的详细步骤。 端口扫描技术行为作为恶意攻击的前奏,严重威胁用户的网络,snort 通过扫描的行为 特征准确地识别出恶意的扫描行为,并及时通知管理员。 常用的端口扫描技术: (1) TCP 端口连接扫描:这是最基本的 TCP 扫描。操作系统提供的 connect()系统 调用,用来与每一个感兴趣的目标计算机的端口进行连接。如果端口处于侦听状态,那 么 connect()就能成功。否则,这个端口是不能用的,即没有提供服务。这个技术的一 个最大的优点是,你不需要任何权限。系统中的任何用户都有权利使用这个调用。另一 个好处就是速度。如果对每个目标端口以线性的方式,使用单独的 connect()调用,那 么将会花费相当长的时间,你可以通过同时打开多个套接字,从而加速扫描。使用非阻 塞 I/O 允许你设置一个低的时间用尽周期,同时观察多个套接字。但这种方法的缺点是 很容易被发觉,并且被过滤掉。目标计算机的 logs 文件会显示一连串的连接和连接是 出错的服务消息,并且能很快的使它关闭。 (2) TCP SYN 扫描:这种技术通常认为是“半开放”扫描,这是因为扫描程序不必 要打开一个完全的 TCP 连接。扫描程序发送的是一个 SYN 数据包,好象准备打开一个 实际的连接并等待反应一样(参考 TCP 的三次握手建立一个 TCP 连接的过程)。一个 SYN|ACK 的返回信息表示端口处于侦听状态。一个 RST 返回,表示端口没有处于侦听态。 如果收到一个 SYN|ACK,则扫描程序必须再发送一个 RST 信号,来关闭这个连接过程。 这种扫描技术的优点在于一般不会在目标计算机上留下记录。但这种方法的一个缺点是, 必须要有 root 权限才能建立自己的 SYN 数据包。 (3) TCP FIN 扫描:有的时候有可能 SYN 扫描都不够秘密。一些防火墙和包过滤器 会对一些指定的端口进行监视,有的程序能检测到这些扫描。相反,FIN 数据包可能会 没有任何麻烦的通过。这种扫描方法的思想是关闭的端口会用适当的 RST 来回复 FIN 数 据包。另一方面,打开的端口会忽略对 FIN 数据包的回复。这种方法和系统的实现有一 定的关系。有的系统不管端口是否打开,都回复 RST,这样,这种扫描方法就不适用了。 并且这种方法在区分 Unix 和 NT 时,是十分有用的。 (4) IP 段扫描:这种不能算是新方法,只是其它技术的变化。它并不是直接发送 TCP 探测数据包,是将数据包分成两个较小的 IP 段。这样就将一个 TCP 头分成好几个 数据包,从而过滤器就很难探测到。但必须小心。一些程序在处理这些小数据包时会有 些麻烦。 (5) TCP 反向 ident 扫描:ident 协议允许(rfc1413)看到通过 TCP 连接的任何进程 的拥有者的用户名,即使这个连接不是由这个进程开始的。因此你能,举个例子,连接 1 / 3
实验六 端口扫描攻击检测 YYQ And LSX 到 http 端口,然后用 identd 来发现服务器是否正在以 root 权限运行。这种方法只能在 和目标端口建立了一个完整的 TCP 连接后才能看到。 (6) FTP 返回攻击:FTP 协议的一个有趣的特点是它支持代理(proxy)FTP 连接。 即入侵者可以从自己的计算机 a.com 和目标主机 target.com 的 FTP server-PI(协议解释器) 连接,建立一个控制通信连接。然后,请求这个 server-PI 激活一个有效的 server-DTP(数 据传输进程)来给 Internet 上任何地方发送文件。对于一个 User-DTP,这是个推测,尽管 RFC 明确地定义请求一个服务器发送文件到另一个服务器是可以的。但现在这个方法好 象不行了。这个协议的缺点是“能用来发送不能跟踪的邮件和新闻,给许多服务器造成 打击,用尽磁盘,企图越过防火墙”。 我们利用这个的目的是从一个代理的 FTP 服务器来扫描 TCP 端口。这样,你能在一个防火墙后面连接到一个 FTP 服务器,然后扫 描端口(这些原来有可能被阻塞)。如果 FTP 服务器允许从一个目录读写数据,你就能 发送任意的数据到发现的打开的端口。 对于端口扫描,这个技术是使用 PORT 命 令来表示被动的 User DTP 正在目标计算机上的某个端口侦听。然后入侵者试图用 LIST 命令列出当前目录,结果通过 Server-DTP 发送出去。如果目标主机正在某个端口侦听, 传输就会成功(产生一个 150 或 226 的回应)。否则,会出现"425 Can't build data connection: Connection refused."。然后,使用另一个 PORT 命令,尝试目标计算机上的 下一个端口。这种方法的优点很明显,难以跟踪,能穿过防火墙。主要缺点是速度很慢, 有的 FTP 服务器最终能得到一些线索,关闭代理功能。 2.2 sfPortscan 预处理器 本实验通过攻击者常用的 Nmap 端口扫描工具进行端口扫描攻击,检测 snort 对端口扫 描攻击的检测能力。 sfPortscan 预处理器,是 snort 中端口扫描检测模块,可以检测各种不同类型的端口扫 描。通过 README.sfportscan 可以得多更多关于检测原理、警告类型以及端口扫描细节。 常用端口扫描预处理器的格式: preprocessor sfportscan: proto { all } memcap { 10000000 } sense_level { low } 配置选项: proto { tcp udp icmp ip all }:该参数列出你希望检测的协议类型。参数之间用空格分开 并且不能有逗号。 scan_type { portscan portsweep decoy_portscan distributed_portscan all }:该参数描述你 希望寻则检测的扫描类型,参数应用空格区分并且不能有逗号。 sense level { low|medium|high}:这个选项只需要一个参数,用来确定检测端口扫描的 敏感度水平。‘low’级别使用通用方法来查找响应错误,如 TCP RSTs 和 ICMP 无法到达,这 个级别需要最少的优化。medium 级别会检测端口扫描和过滤端口扫描(那些没有收到响应 的端口扫描),这个级别通常需要优化从 NATed IPs 以及 DNS cache servers 来的扫描事件。high 级别有最小的端口检测限制,比 medium 有更长的时间窗,需要 more tuning and may be noisy on very active networks,然后这个界别捕获更多的扫描。 memcap { positive integer):分配给端口扫描的最大字节数。数字越高,越多节点可以 被跟踪。 logfile { filename }:指定端口扫描和详细端口扫描值的写入日志文件位置。如果没有以 /开头,snort 会写入配置的 log 目录。通过 README.sfportscan 查看更详细的关于项 log 文件 写日志的方法。 watchip { Snort IP List }:指定需要监视的主机列表。 ignore_scanners { snort IP list }:需要忽略的扫描主机列表。用来优化针对动态主机,如 2 / 3
实验六 端口扫描攻击检测 YYQ And LSX Nat,nessus 主机等的警告。 ignore_scanned { Snort IP List }:需忽略已扫描主机列表。用来优化从 syslog servers 过来 的活动主机的警报。 detect_ack_scans:检测 ACK 扫描是很有必要的。然而,这也可能会导致错误警报,特 别是 under heavy load with dropped packets,这也是这个原型默认是 off 的原因。 eg: preprocessor sfportscan: proto { all } / memcap { 10000000 } / sense_level { low } 3、 实验步骤 第一步:修改 snort 配置文件,修改策略 在 snort.conf 中写入如下内容: preprocessor sfportscan: proto { all } \ memcap { 10000000 } \ sense_level { high } 确保 include $RULE_PATH/scan.rules 启用,将 scan.rules 内部规则规则全面的#去掉。 第二步:启动 snort c:\snort\bin\snort -A full -c "c:\Snort\etc\snort.conf" -l "c:\Snort\log" 第三步:实施攻击 下载安装扫描软件 ScanPort 或 Nmap,同组主机使用扫描软件对虚拟机进行扫描。 「注」若第一次端口扫描后 portscan.log 没有日志,不要退出 snort,请同组主机进行第 二次端口扫描。 第四步:查看告警信息 [**] [1:1917:9] SCAN UPnP service discover attempt [**] [Classification: Detection of a Network Scan] [Priority: 3] 04/26-19:24:57.761396 59.75.129.71:64267 -> 239.255.255.250:1900 UDP TTL:1 TOS:0x0 ID:1088 IpLen:20 DgmLen:161 Len: 133 [**] [1:1917:9] SCAN UPnP service discover attempt [**] [Classification: Detection of a Network Scan] [Priority: 3] 04/26-19:25:00.807235 59.75.129.71:64267 -> 239.255.255.250:1900 UDP TTL:1 TOS:0x0 ID:1090 IpLen:20 DgmLen:161 Len: 133 思考题:如何监视具体网段是否存在恶意行为的端口扫描? 3 / 3
分享到:
收藏