手记

渗透学习工具篇之——Nmap

        相信看过《黑客帝国》的同学对崔妮蒂入侵发电站的能源管理系统一定印象深刻,好奇心强的同学一定想知道她是如何入侵的系统,答案就是使用Nmap。那么问题来了,什么是Nmap?首先我们来对Nmap有一个感性的认识。

  • Nmap介绍

        Nmap ("Network Mapper") is a free and open source utility for network discovery and security auditing. Many systems and network administrators also find it useful for tasks such as network inventory, managing service upgrade schedules, and monitoring host or service uptime. Nmap uses raw IP packets in novel ways to determine what hosts are available on the network, what services (application name and version) those hosts are offering, what operating systems (and OS versions) they are running, what type of packet filters/firewalls are in use, and dozens of other characteristics. It was designed to rapidly scan large networks, but works fine against single hosts.    ——摘自官网 

        通过以上描述我们可以知道Nmap是一款用于网络发现和安全审计的网络安全工具,他可用于列举网络主机清单,管理服务升级调度,监控主机以及服务运行状况等方面,并且在Windows,Linux环境下均可使用,Evan今天以Linux环境为大家演示一下。在做实验之前,我们需要学习一些基础知识。

  • 预备知识

  • 全连接扫描

        全连接扫描(TCP Connect扫描),通过调用socket函数connect()连接到目标计算机,完成一次完整的三次握手过程。这张图片为大家展示了一个完整的三次握手过程。

        如果端口处于监听状态,那么connect()就能成功返回,否则,这个端口不可用,即没有提供服务。优点是稳定可靠,不需要特殊的权限。缺点是扫描方式不隐蔽,服务器志会记录下大量密集的连接和错误记录,并容易被防火墙发现和屏蔽。

  • 半连接扫描(TCP SYN扫描)

        扫描器向目标主机端口发送SYN包。如果应答是RST包,那么说明端口是关闭的;如果应答中包含SYN和ACK包,说明目标端口处于监听状态,再传送一个RST包给目标机从而停止建立连接。由于在SYN扫描时,全连接尚未建立,所以这种技术通常被称为半连接扫描。优点是隐蔽性较全连接扫描好,一般系统对这种半扫描很少记录。缺点是通常构造SYN数据包需要超级用户或者授权用户访问专门的系统调用。

  • 隐蔽扫描技术

        隐蔽扫描是指在网络端口扫描过程中隐蔽自身的技术。具体来讲,就是能够不被目标系统的志机制,扫描监测系统和入侵检测系统扑捉,绕过防火墙二侦测到目标主机运行服务的扫描技术。NMap下的相关扫描方式有TCP FIN扫描、TCP NULL扫描和TCP Xmax扫描。TCP FIN扫描就是TCP Xmas和Null扫描是FIN扫描的两个变种。Xmas扫描打开FIN, URG和PUSH标记, 而Nll扫描关闭所有标记。这些组合的目的是为了通过对FIN标记数据包的过滤。当一个这种数据包到达一个关闭的端口, 数据包会被丢掉,并且返回一个RST数据包。否则,若是打开的端口,数据包只是简单的丢掉(不返回RST)。优点是隐蔽性好。缺点是通常适用于Unix主机,而不适用于Windows。TCP Xmas和Null扫描是FIN扫描的两个变种。Xmas扫描打开FIN,URG和PUSH标记,而Null扫描关闭所有标记。这些组合的目的是为了通过对FIN标记数据包的过滤。当一个这种数据包到达一个关闭的端口, 数据包会被丢掉,并且返回一个RST数据包。否则,若是打开的端口,数据包只是简单的丢掉(不返回RST)。

        了解了以上知识,让我们一起开始我们的实验吧。

  • 常见命令介绍(ip地址仅供参考)

1.常规扫描

        使用方法:namp ip,通过扫描结果我们可以看出所开放的端口,状态以及所提供的服务,如下图所示,我们可以知道开放了端口80以及端口443,并且端口80使用了http,端口443使用了了https。

2.对指定端口进行扫描

        使用方法:nmap -p 端口 ip,本案例中指定扫描21,22,80以及3389端口,通过扫描结果我们可以看出所开放的端口,状态以及所提供的服务。

3.全连接扫描

        使用方法:nmap - sT ip 全连接扫描完成tcp三次握手过程,稳定可靠,但是容易被日志记录,此方法花费的时间可能较长

4.半连接扫描

        使用方法:nmap -sS 58.217.200.113,扫描器向目标主机发送SYN 包测试主机是否监听某个端口而不进行全连接,此种方法较为隐蔽。

5.显示banner信息

        使用方法:nmap -sV ip

6.将扫描信息以xml形式输出

        使用方法:nmap -oX 输出报告名称 ip,我们可以在输出的报告中看到一些详细的信息。

        当然我们也可以使用Kali自带的Zenmap进行扫描,由于使用较为简单,笔者在这里就不做过多的讲解,今天的介绍就到这里,希望大家自己动手去尝试一下,有问题可以联系我哦。

3人推荐
随时随地看视频
慕课网APP