https://www.2cto.com/article/201505/396643.html

1.介绍

相信很多朋友在这之前已经对nmap有所了解,或者已经使用过nmap了,这里做一下简单的介绍。nmap(Network Mapper)最初由Gordon Fyodor Lyon于1997年创建。nmap可以用来扫描一个网络,监控服务,列出网络主机等等。namp还可以提供操作系统的类型、开放端口信息,可用过namp的配置实现。

根据官网http://namp.org介绍,nmap包含众多脚本,这些脚本的功能从猜测Apple Filing Protocol密码到确认是否与X-servers建立连接等等。

Nmap家族还包括:

ZenMap——Nmap的图形界面版。 Ncat——基于netcat,扩展了一些功能,如:ncat链、SSL支持、支持二进制等。 Ncrack——测试已部署的认证系统和密码强度,支持常用协议。 Ndiff——用于网络基线测试,对比Nmap扫描结果之间的差异。 Nping——允许将自己构造的数据包整合在扫描过程中,并能够对原始数据报进行操控。

2. Nmap常用扫描选项和类型

Nmap命令语法如下:

namp - {type(s)} -{opt(s)} {target}

常用选项:

扫描选项 名称 功能 -g 指定源端口 使用特定源端口发送数据包 –spoofmac Mac欺骗 创建虚假mac,随机化mac地址 -S 源Ip地址 伪造源IP,或指定源IP -e 选择网口 选择发送和接受数据的网口 -F 快速扫描 namp-services文件中默认扫描减到100个端口 -p 确定端口范围 选择扫描端口 -N NDS解析 执行反向lookup -R 反向lookup 强制反向lookup -A 激进型 启用许多扫描选项,如版本扫描和脚本扫描(慎用)

常用扫描类型:

扫描类型 名称 功能 -sA ACK扫描 检查端口是否开放,可用于探测防火墙 -sP Ping扫描 快速发现网络 -sR PRC扫描 定位PRC,对成功扫描的机器记录 -sS TCP SYN扫描 快速和隐蔽的扫描,半开放扫描 -sU UDP扫描 确定符合特定UDP端口是否开放 -sX XMAS扫描 隐蔽扫描,扫描特定配置的防火墙 -sL 列出扫描对象 列出要扫描的IP,使用-n选项确保不向网络中发数据包 -sO IP协议扫描 寻找使用IP协议的主机 -sM FIN/ACK 隐蔽扫描,适用于unix系统。查找RST数据包 -sI 闲置扫描 僵尸主机扫描,非常隐蔽

输出格式:

输出格式 名称 功能 -oA 所有 可检索的、常规的和XML文件 -oG 可检索的 可检索格式 -oX XML XML格式 -oN 常规 常规格式,适合人阅读

3. 基本扫描

在这里,我开始对上一篇搭建的Ubuntu虚拟主机进行基本扫描,只进行简单的扫描,确定那些端口是开放的,使用-A选项(-A 选项扫描非常易于被发现,不适合在需要隐蔽条件下使用)。

# nmap -A 192.168.50.12

从结果看,可以判定目标主机开放了TCP的80端口,运行了Apache server 2.2.22版本,目标操作系统为Ubuntu Linux 2.6.X|3.X。 此外,-A选项启用了traceroute命令,根据结果显示,距离目标主机只有一条路由。

4. 隐蔽扫描

网络扫描的过程包括发送特殊够早的数据包给目标主机和对返回的结果进行基于某种标准的检查。从扫描结果中,我们可以知道那些主机在线,运行了哪些服务以及这些服务的版本信息等。

在一个安全的网络中,我们有可能根据需要来对抗IDS的异常行为捕捉。发送数据包的数量和速度,流量是否异常等,防火墙一般都会标记。为减少被检测到的概率,我们可以采取一些措施。

控制时间。

nmap控制扫描时间选项:

-T(0~5): 控制扫描进度,避免被检测的最简单形式。0是最温和的,5是最激进的,只能在局域网中使用。 –max_hostgroup: 将扫描的主机数量限制在每次一个。 –max_retries: 一般不需要修改此选项,如果是紧急情况且不在意扫描过程中可能错过一个包含潜在漏洞的主机,可以将这个选项设为0. max_parallelism 10: 一次仅允许10个探测请求。 scan_delay 两次探测之间停顿。

尝试几个选项:

# nmap -P0 -n -sS --max_hostgroup 1 --max_retries 0 --max_parallelism 10 192.168.50.0/24

从结果看,有两个主机在线,其中一个主机开放了80端口。

5. 其他扫描

5.1 SYN扫描

使用-sS选项对我们的虚拟机Ubuntu(192.168.50.12)发起一个完全开发的扫描。结果如下: 
 
结果表明,至少192.168.50.12主机至少开放了3个端口,要确保使用不同类型的扫描对目标网络扫描,否则可能丢失一些很重要的信息导致测试结果相差很大。

5.2 NULL扫描

选用NULL扫描,再来看看结果: 
 
结果令我们很失望,所有的端口都处于Z喎�"http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcGVuL2ZpbHRlcmVk17TMrKGjztLDx7/J0tSywrLixL+x6tb3u/qwstewwcu3wLvwx72jrLTTveG5+8nPv7SjrM7Sw8fKx87et6i78bXD09DQp9DFz6LBy6GjJm5ic3A7PGJyIC8+DQrXoqO6dWJ1bnR1v8nS1Mq508N1Zne53MDtu/nT2tb3u/q1xGlwdGFibGVzt8C78Me9oaPV4rj2t8C78Me9yN3S18Xk1sPH0rfHs6POyLaooaMmbmJzcDs8YnIgLz4NCiQgc3VkbyB1ZncgZW5hYmxlICO/qsb0t8C78Me9Jm5ic3A7PGJyIC8+DQokIHN1ZG8gdWZ3IGRpc2FibGUgI7nYsdW3wLvwx70mbmJzcDs8YnIgLz4NCiZuYnNwOzxiciAvPg0KyOe5+87Sw8ew0bLiytTEv7Hq1ve7+rXEt8C78Me9udi19KOs1PK94bn7yOfPwqO6Jm5ic3A7PGJyIC8+DQombmJzcDs8aW1nIGFsdD0="clw" data-ke-="" src="http://www.2cto.com/uploadfile/Collfiles/20150504/20150504091209229.png" title="\" /> 
从结果上看,NULL扫描也会扫描出结果,只不过标注上了open/filtered。

5.3 ACK扫描

再有防火墙的情况下,我们没用从NULL扫描中获取有效信息,现在进行ACK扫描。 
  
仍然没有扫描到有效信息,为了测试ACK扫描和NULL扫描,我们增加一个设置,在目标主机配置https服务并在防火墙增加一条规则,允许https的访问,即开放443端口。(可在Ubuntu上执行sudo ufw allow 443命令。) 
NULL扫描依然是以上结果,没有扫描到有效信息。但是再执行ACK扫描时,结果可就不同了。 
  
从扫描结果得知有一个443端口没有被过滤掉。

6. IDLE扫描

6.1 空闲扫描

前两篇文章已经介绍了Nmap命令的一些基本选项和若干类型的扫描,下面继续来介绍Nmap的一个扫描类型——空闲扫描。 
为了降低被检测到的机率,我们通常需要转嫁责任,这时可以使用空闲扫描(idle scan),让一个僵尸主机承担扫描任务。

nmap.org官网上详细讲述了空闲扫描的原理,可以在https://nmap.org/book/idlescan.html了解空闲扫描的所有信息。

使用空闲扫描(-sI)需要注意一个问题,就是要找一台TCP序列预测成功率高的僵尸主机,这个僵尸主机必须尽可能的空闲,比如说网络打印机就是一个很好地选择,因为网络打印机不仅存在着恒定的网络资源,而且很难预测它们的TCP序列。

空闲扫描的原理:

向僵尸主机放松SYN/ACK数据包,获得带有分片ID(IPID)的RST报文。 发送使用僵尸主机IP地址的伪数据包给目标主机。 如果目标主机端口关闭,就会向僵尸主机响应RST报文。如果目标端口开放,目标主机向僵尸主机响应SYN/ACK报文,僵尸主机发现这个非法连接响应,并向目标主机发送RST报文,此时IPID号开始增长。 通过向僵尸主机发送另一个SYN/ACK报文已退出上述循环并检查将是主机RST报文中的IPID是否每次增长2,同时目标主机的RST每次增长1。 重复上述步骤直到检测完所有的端口。


6.2寻找僵尸主机

空闲扫描的第一步就是寻找僵尸主机,我们可以通过下面这条命令(-v 详细信息,-O 系统检测,-Pn 无ping,-n 无域名解析)来获得主机的TCP序列预测率。

# nmap -v -O -Pn -n 192.168.50.16

从结果上看,这个主机不是太理想,网络距离只有一跳(自己搭建的环境,试验用足够了),但作为一个僵尸主机还是可以的。预测难度越高,一台主机用作僵尸主机的可能性就越小。我们还可以连续生成ID来增加扫描成功的概率。


6.3 idle扫描应用

使用以下命令扫描,并启动wireshark抓包。

# nmap -p 22,23,53,80,443,8888,3960 -Pn -sI 10.128.***.**(僵尸主机IP) 222.**.**.**(目标主机IP) <喎�"/kf/ware/vc/" target="_blank" class="keylink">vcHJlPg0KPHA+yrnTwy1wxvS2r9LR1qpUQ1C2y7/atcTJqMPoo6y92sqhyrG85KO7zai5/S1Qbse/tfeyu8rK08NwaW5no6jErMjPysfKudPDtcSjqaOsLXNJxvS2r7/Vz9DJqMPoo6y688Pm0sC0zsrHvanKrNb3u/q6zcS/serW97v6tcRpcLXY1rehoyZuYnNwOzwvcD4NCjxwPjxpbWcgYWx0PQ=="idle" data-ke-="" src="/uploadfile/Collfiles/20150504/20150504091156206.png" title="\" />

查看wireshark抓包情况,可以看到从僵尸主机到目标主机之间有一些异常的网络流量。


从结果上看,Nmap命令在僵尸主机和目标主机网络上产生了很多流量,我们需要这些流量来增加IPID的值,从而获知目标主机端口是否开放。

渗透测试之Nmap命令相关推荐

  1. 渗透测试之Nmap命令(一)

    1.介绍 相信很多朋友在这之前已经对nmap有所了解,或者已经使用过nmap了,这里做一下简单的介绍.nmap(Network Mapper)最初由Gordon Fyodor Lyon于1997年创建 ...

  2. 渗透测试之Nmap命令(三) idle 扫描

    1. 空闲扫描 前两篇文章已经介绍了Nmap命令的一些基本选项和若干类型的扫描,下面继续来介绍Nmap的一个扫描类型--空闲扫描.  为了降低被检测到的机率,我们通常需要转嫁责任,这时可以使用空闲扫描 ...

  3. 渗透测试之Nmap命令(四) 使用诱饵

    1. 简述 Nmap的诱饵使用是一个非常有趣的概念.我们利用Nmap增加发起扫描的主机,你不会从这些诱饵的主机中获得任何信息,但是却增加了查找真正发起扫描主机的难度,或者说查找哪个IP在使坏.理想状态 ...

  4. 渗透测试之Nmap命令(二)

    5. 其他扫描 5.1 SYN扫描 使用-sS选项对我们的虚拟机Ubuntu(192.168.50.12)发起一个完全开发的扫描.结果如下:    结果表明,至少192.168.50.12主机至少开放 ...

  5. Kali渗透测试之端口扫描1——UDP、TCP、僵尸扫描、隐蔽扫描

    端口扫描 每个服务器上面都会跑很多应用,每个应用都会侦听某些端口,通过侦听端口接收来自客户端或其他用户对应用程序的访问.所以在发现目标主机存活后,我们需要知道目标主机上都开放了那些端口,应用程序的漏洞 ...

  6. @渗透测试之信息收集

    目录 渗透测试之信息收集 一.信息收集之概述 1.1 渗透一个目标系统,最常见的信息手机目标有如下几种: 1.2 信息收集的作用 二.利用搜索引擎收集信息 2.1 利用搜索引擎的收集目标主要有以下几种 ...

  7. MSF模拟渗透测试之一句话木马拿shell

    MSF模拟渗透测试之一句话木马拿shell 文章目录 MSF模拟渗透测试之一句话木马拿shell 前言 一.利用命令执行漏洞,生成一句话木马文件 二.利用一句话木马拿shell 1.复制当前网址到蚁剑 ...

  8. 渗透测试之扫描与枚举(2)

    渗透测试之扫描与枚举(2) 扫描简介 Ping扫描(检查存活系统) Ping Angry IP nmap 端口扫描 全开扫描(TCP连接扫描) 隐蔽扫描(半开扫描) 圣诞树扫描 FIN扫描 NULL扫 ...

  9. 渗透测试之指纹识别(CMS、CDN、WAF)

    目录 什么是指纹识别: 1.cms指纹识别 2.cdn指纹识别: 3.WAF指纹识别: 什么是指纹识别: 通过关键特征,识别出目标的CMS系统.服务器.开发语言.操作系统.CDN.WAF的类别 版本等 ...

最新文章

  1. 数据结构--二叉树的创建和相关操作
  2. AJAX 在Django 设置csrf_token
  3. JZOJ__Day 6:【普及模拟】Oliver的成绩(score)
  4. 修改Linux网卡由eth1变成eth0
  5. Installing Node.js and Express on Ubuntu
  6. c语言中把每个字母向前移1位,C语言:将字符串中的前导*号全部移到字符串的尾部。...
  7. Java学习笔记5-2——多线程
  8. redis 中一个字段 修改map_CTO 指名点姓让我带头冲锋,熬了一个通宵,终于把Redis中7千万个Key删完了...
  9. Maven 项目关于 plexus-utils:jar的错误解决
  10. 2021年中国船用燃气发动机市场趋势报告、技术动态创新及2027年市场预测
  11. 选择数据分析软件时要注意什么
  12. 初识python之django创建工程
  13. Dijkstra最短路径算法
  14. 电子技术基础(三)_第3章集成运放及其应用__同相比例运算
  15. 电动自行车UL认证安全标准UL2849
  16. mantis 邮件配置 linux,Linux系统 mantis 1.0.6工单系统配置安装
  17. 钉钉群机器人通知中的图片,突然不显示了
  18. 极光短信验证码服务器,极光推送的短信验证使用
  19. 【网络安全工程师面试合集】—社会工程学到底是什么?
  20. Cadence16.6 > OrCAD Capture CIS >原理图统一改器件属性

热门文章

  1. 淘宝叠猫猫瓜分3亿红包赚猫币自动生成脚本(无需安装其他软件),附每天最大限度的领取最多数量的喵币方法
  2. 浅谈多回路智慧用电在线监测装置
  3. 机械转行哪些行业容易上手?机械转行做什么好?
  4. 流量为王的时代,留给搜狗的机会却不多了
  5. 计算机处理器性能天梯,2021最新版电脑处理器性能天梯图:你的CPU排第几?
  6. Google为儿童打造了搜索引擎,百度怎么看?
  7. 杰理之inein走ADC,并复用fm引脚,使用省电容接法时,进linein出来后,麦声音变得很小解决方法【篇】
  8. 2021全球工业互联网大会 | 芯讯通5G旗舰模组惊艳亮相华为展台
  9. 【PS/PSD】冬季中国风鸟类水墨写意素材
  10. 2021-2027全球及中国G Suite商业工具行业研究及十四五规划分析报告