谈谈安全审计与使用Nmap进行安全检测
棒棒堂智能运维
2020年04月15日 13:40
收录于文集
共22篇

P85

在网络技术高度成熟发展的今天,即便SELinux和防火墙同时使用,也无法保障操作系统无任何安全风险。

只有不断通过对操作系统进行安全审计评估,及时发现系统安全漏洞并进行修复,才能不断提高主机的安全性。

请大家牢记:没有绝对的安全!

P86

安全审计是对目标主机的整体审计,主要包含以下内容与步骤。

实施端口扫描与服务探测。如果目标主机处于开机状态,通过扫描与探测,可得到目标主机的端口状态(监听/关闭)、目标主机中服务程序列表和版本信息以及目标主机操作系统版本和内核信息等。

以攻击渗透等方式进行模拟探测。根据获取到目标主机上的服务列表和版本信息,查询安全漏洞数据库,获取有针对性的攻击脚本,开展对目标主机系统的尝试性攻击,并记录目标主机对攻击的响应信息。

对数据进行分析并产生报告。对获取的响应信息进行分析,并比对安全漏洞信息数据库,明确目标主机确实存在的安全漏洞信息,形成安全审计报告。

安全风险处理。系统管理员根据安全审计报告的内容,逐项对照解决安全风险。

安全审计工作要周期性的做,例如每周进行一次。要不间断的做,只要系统在运行,就应该进行安全审计。

P87

常见的主机安全扫描工具由很多,常见的由:Nmap、Sonrt、ClamAV、Nessus、hping等,本课程讲授使用Nmap工具进行安全审计的方法。

P88

安全检测是使用工具对系统进行扫描检测,验证是否存在安全风险或漏洞,完成系统安全评估工作。

Nmap是最常用的安全检测软件的之一,是开源软件且提供了强大的网络扫描功能,通过该工具可发现网络中在线主机、端口监听状态、主机上运行的应用程序与版本信息以及操作系统的类型和版本等。

P89

Nmap的官方网站提供了详细的介绍、文档、手册等内容。通过官方网站了解和学习Nmap是最佳的学习方法。

P90

Nmap(Network Mapper)是一个用于网络发现和安全审计的免费开源软件,同时还能够实现网络存储、管理服务升级计划,以及对主机或服务的监控。

Nmap的工作原理就是ACK,通过对IP数据报的分析来确定网络上的可用主机以及主机使用的操作系统、能够访问的服务以及提供服务的软件信息、使用的数据报文过滤器或防火墙等其他信息。

Nmap被设计用于快速扫描大型网络,也能够实现对单个主机的扫描。

Nmap支持Linux、Windows、macOS等诸多操作系统,除了经典的命令行方式执行软件外,Nmap目前还包括了支持GUI方式运行的版本Zenmap,灵活的数据传输和重定向及调试工具Ncat,可以比较扫描结果的软件Ndiff,进行数据包生成和响应分析的工具np。

Nmap曾被诸多知名杂志评为“年度安全产品”,也出现在Codetalker摘要中。Nmap甚至出现在12部电影中,例如《黑客帝国2:重装上阵》、《虎胆龙威4》、《龙纹身的女孩》、《谍影重重3》等,可见其业界流行度。

P91

关于Nmap的特征,官方网站给出了几个关键词。

灵活:Nmap支持数十种高级技术,用于穿透IP过滤器、防火墙、路由器和其他由障碍的网络,进而实现在各种复杂网络环境下能够实现多种端口扫描机制(例如TCP和UDP)、操作系统检测、版本检测、ping扫描等等。

功能强大:Nmap已被用于扫描由成千上万台主机组成的巨大网络。

可移植:Nmap支持绝大多数的操作系统,包括Linux、Microsoft Windows、FreeBSD、OpenBSD、Solaris、macOS、HP-UX、NetBSD、Sun OS、Amiga等等。

简单:Nmap为高级用户提供了一组丰富的高级特性,但是用户也可以简单地从“Nmap -v -A host”开始。既支持命令行方式,也支持GUI版本;既支持源代码编译安装,也提供二进制编译版本。

免费:Nmap项目的主要目标是让互联网更安全,并为管理员/审计员/黑客提供网络探测工具。Nmap可以免费下载,还提供完整的源代码,任何人都可以根据许可条款修改和重新发布修改版本后的源代码。

良好的文档:Nmap提供了全面和最新版本的手册、白皮书、在线教程等,也有支持多种语言的著作专业书籍。

支持:虽然Nmap没有为所有用户提供技术支持承诺,但它得到了开发人员和开源社区的良好支持。大多数bug报告和问题被集中到nmap-dev列表,所有用户也可以订阅nmap-hacker公告列表获得支持,通过互联网社区也可以获得技术支持和讨论。

广受赞誉:Nmap获得了许多奖项,出现在数百篇杂志文章、十数部电影、几十本书中。

受欢迎:每天有成千上万的人下载Nmap,并且它被包含在许多操作系统中,例如Redhat Linux、Debian Linux、Gentoo、FreeBSD、OpenBSD等。Nmap也是fresh meat网站中排名前十的项目之一。

P92

Nmap的语法格式是:nmap [选项] [对象]

选项:使用 “--script” 选项则说明指定检测脚本名称。如果不使用选项,则默认使用“default”脚本类型,进行基本的应用服务信息收集。

对象:指定安全扫描与漏洞检测的主机IP地址或IP地址段。

Nmap可以使用yum工具进行安装,安装方法是yum install nmap。也可以下载源代码进行编译安装。

P93

Nmap脚本选项有六种,

--script             指定使用的脚本文件名称或脚本类型信息

--script-args        为脚本文件提供参数信息

--script-args-file   提供脚本执行参数文件

--script-trace       显示发送和接收到的数据信息

--script-updatedb    执行更新脚本数据库

--script-help        显示脚本帮助信息

P94

Nmap检测脚本NSE是2007年谷歌夏令营期间推出,第一个脚本是针对服务和主机检测,经过多年发展,目前已经有14个类别,涵盖从网络发现到检测安全漏洞等多个领域。

default

默认的脚本扫描,主要是搜集各种应用服务的信息,提供基本脚本扫描能力

auth

负责处理鉴权证书(绕开鉴权)的脚本

broadcast

在局域网内探查更多服务开启状况,如dhcp/dns/sqlserver等服务

brute

提供暴力破解方式,针对常见的应用如http/snmp等

discovery

对网络进行更多的信息,如SMB枚举、SNMP查询等

dos

用于进行拒绝服务攻击

exploit

利用已知的漏洞入侵系统

external

利用第三方的数据库或资源,例如进行whois解析

fuzzer

模糊测试的脚本,发送异常的包到目标机,探测出潜在漏洞

intrusive

入侵性的脚本,此类脚本可能引发对方的IDS/IPS的记录或屏蔽

malware

探测目标机是否感染了病毒、开启了后门等信息

safe

此类与intrusive相反,属于安全性脚本

version

负责增强服务与版本扫描(Version Detection)功能的脚本

vuln

负责检查目标机是否有常见的漏洞(Vulnerability),如是否有MS08_067

P95

进行主机基础安全检测时,常用的检测选项有:

-sn             只进行主机发现扫描,不进行端口扫描

-sU             指定使用UDP扫描方式扫描目标主机的UDP端口状况

-Pn             跳过主机发现扫描,将所有指定主机都视为在线状态,进行端口扫描

-sL             仅列出指定的目标主机IP,不进行主机发现扫描

-F              快速扫描模式,仅仅扫描开放率最高的前100个端口

--top-ports <number>    仅扫描开放率最高的number个端口

-PO             使用IP协议包探测目标主机是否在线

-sV             nmap进行应用服务版本侦测

-O  nmap        进行操作系统版本侦测

--osscan-guess  nmap进行操作系统类型侦测

需要注意,选项对于大小写是敏感的,使用时要正确使用大小写字符。

 

P96

下面通过案例讲解使用Nmap对系统进行安全检测。

第一个案例是:使用Nmap进行主机检测

使用Nmap工具对指定网络范围内的主机运行状态、开启的服务端口、运行软件及版本信息、操作系统信息进行检测。

实现4个目标。检测网络内主机的开启状态;检测开启主机的端口信息;检测开启主机的业务服务信息;检测开启主机的操作系统信息。

P97

具体实现方法是:

使用Nmap工具对10.10.2.0/24网络段内主机进行安全检测

检测结果可以看到受检测主机的开机状态、开放的端口、提供服务的软件及版本、设备类型、安装的操作系统及版本等信息。

P98

第二个案例是:使用Nmap评估域名解析服务的安全风险

通过Nmap工具检测域名解析服务的安全风险。本案例使用检测脚本进行。

实现5个目标。使用 “dns-nsid” 插件检测DNS服务运行版本的详细信息;使用 “dns-brute” 插件检测是否能够破解列出DNS服务器中“domain.com”域名下的主机记录信息;使用 “dns-blacklist” 插件检测DNS服务器是否支持防止DNS反垃圾和打开Proxy黑名单等安全措施;使用 “dns-random-srcport” 插件检测DNS服务器是否存在可预测的端口递归漏洞;使用 “dns-random-txid” 插件检测DNS服务器是否存在可预测的TXID DNS递归漏洞。

P99

实现的方法是:

根据域名解析服务器的安全检测目标进行执行检查,并使用相应的安全检测脚本。通过检测能够看到指定域名的主机记录信息,提供DNS服务的软件及版本号,以及DNS反垃圾有见和Proxy黑名单解析地址等。