通过本篇博客可以学到:Nmap的安装和使用,列举远程机器服务端口,识别目标机器上的服务,指纹,发现局域网中存活主机,端口探测技巧,NSE脚本使用,使用特定网卡进行检测,对比扫描结果ndiff,可视化Nmap的使用等。


Nmap简介

Nmap:开源、免费的网络探测、安全审计工具

nmap 安装在电脑后,电脑可以通过nmap 将数据包传递到相关的网络设备,服务器接收到数据包后会返回一些信息,Nmap可以对这些信息进行分析。(通过nmap探测服务器存活以及开放的服务,对目标进行安全审计)。

Nmap原理:首先判断nmap输入的命令行中是否包含域名,如果包含域名需要用DNS服务器进行域名解析。然后发送ICMP Echo Request 来探测主机的存活性。Nmap根据返回的数据包来探测机器信息。

Nmap scanme.namp.org

Nmap参数和意义

-sT:TCP connect扫描,类似于的Metasploit中的tcp扫描模块
-sS:TCP SYN扫描,类似于Metasploit中的syn扫描模块,这种扫描方式不等待打开一天完全的TCP链接,所以速度的会更快,而且这种方式不会被IDS(入侵检测系统)等设备记录。
-sF/-sX/-sN:这些扫描通过发送一些特殊的标志位以避开设备或软件的检测
-sP:通过发送ICMP echo请求探测主机是否存活,原理同ping
-sU:探测目标主机开发了哪些UDP端口
-sA:TCP ACK扫描,类似于metasploit中的acK扫描模块
-Pn:在扫描之前,不发送ICMP echo请求测试目标是否活跃。如果是在Internet环境,应该使用-Pn选项,不要使用ICMP ping,因为ICMP数据包通常无法穿透Internet上的网络边界
-O:启用对于TCP/IP的协议栈指纹特征扫描以获取远程主机的操作系统类型等信息
-F :快速扫描的模式
-p<端口范围>:可以用这个参数指定希望扫描的端口

例如:nmap scanme.nmap.org

nmap进行探测之前要把域名通过DNS服务器解析为IP地址,我们也可以使用指定的DNS服务器来进行解析。使用--dns-servers参数来指定

nmap --dns-servers 8.8.8.8 baidu.com

注意点:对于主机存活或者防火墙开启的机器,可以使用-Pn参数来停止探测之前的ICMP请求,以达到不触发防火墙的安全机制。

对于默认的端口范围,并不能满足日常工作需要。可以使用-p,m-n来指定探测端口范围为m-n之间的所有端口

nmap -p <端口>  <IP地址/域名>
namp -p 1-1000 nuistshare.cn

可以看到不需要的端口可以不扫描,并且知道了扫描了的1-1000端口内开放的端口、状态与服务。

Nmap有多种端口状态

img

img

img

img

img

img


服务指纹

为了确保有一个成功的渗透测试或网络设备监控,必须知道目标系统中服务的指纹信息。服务指纹包括服务端口,服务名和版本等。

通过分析往Nmap发送的数据包的某些协议标记、选项和数据,我们推断发送这些数据的包的操作系统。

nmap通过向目标主机发送多个UDP与TCP数据包并分析其相应来进行操作系统识别

nmap -sV IP //地址来识别目标主机的服务信息

可以说明tcp三次握手已经完成,但是并没有和目标主机建立连接。

这表明这些服务是可以提供的,但是我们并不在访问主机的名单之中,而有大量的端口为tcpwrpped,说明服务器采用了负载均衡或者防火墙。


nmap侵略性探测

nmap -A -v -T4 IP地址
//-A :使用侵略性的策略探测
//-v :持续输出,返回解析不用按回车
//-T(1-5):扫描速度
nmap -A -v -T5 182.92.58.95 //注意此处只能是IP地址而能是域名

使用此方法,我们可以得到之前没有得到的信息

nmap -sC -SV -o
-sC表示使用Nmap脚本进行探测,sV表示探测目标机器上的服务信息,表示探测目标机器上的操作系统信息
-O表示启用对于TCP/IP的协议栈指纹特征扫描以获取远程主机的操作系统类型等信息

一个局域网中肯定连接着多个IP,可以使用ping命令去测试一下

CIDR(无类别域间路由)

nmap -sP CIDR :对该网络中所有主机经了ping扫描,以探测主机的存活行,扫描过程中使用了,TCP/SYN扫描扫描,ICMP echo Request
来探测主机存活
nmap -sn CIDR :对该网络中所有主机进行了扫描,不进行端口扫描,直接扫描存活性
nmap -Pn CIDR :对所有端口进行扫描

Nmap结果输出

nmap -p 80,445 -v baidu.com -oX test.xml

扫描结果将输入到test.xml中去

Nmap端口扫描技巧

实际场景:

在实际环境中,当系统管理员对设备进行管理时,或者渗透测试人员对设备进行检测的时候,并不是一定对所有的服务进行操作,极有可能是对某个活某个范围内的服务进行检测。

如果对所有服务进行探测,那么就会出现耗时长,费力不讨好的情况。针对这样的情况,我们很有必要了解使用Nmap来更加灵活的进行服务探测,避免全端口探测对服务器造成压力。

//针对某一个端口进行检测
namp -p 80 baidu.com
//针对某几个端口进行检测
nmap -p 80,445 baidu.com
//针对某个范围端口进行检测
nmap -p1--100 baidu.com
//针对所有端口进行检测
nmap -p baidu.com
//通过协议名来扫描端口
nmap -p smtp baidu.com

Nmap NSE脚本的使用

NSE:nmap script engine,nmap脚本引擎,内置很多可以用来扫描的,用来针对特定任务的脚本,通过nse可以不断扩展nmap的扫描策略,加强namp的功能。

Nmap中使用 --script 参数来指定调用的脚本,并且脚本存储再nmap 安装路径下的script文件夹下,对于kali linux存储在/usr/share/namp/script下

//使用Nmap 探测web服务的title信息
nmap --script http-title Ip
nmap --script http-headers IP

Nmap分类使用:

对于目标使用多个分类脚本进行检测,可以更快的找到目标的信息和弱点。

使用nmap中的漏洞分类脚本来对目标进行检测,使用命令如下:

nmap -sV --script vuln 目标

通过这个可以得到目标的漏洞

如果想要发现分版本信息分类进行探测,可以使用命令如下

nmap -sV --script="version,discovery"

使用nmap除了exploit(溢出)分类之外的其他分类进行探测,使用命令如下

namp -sV --script="not exploit" <目标>

使用http*(探测Http服务的脚本)

nmap -sV --script "(http*) and not (http-slowors and http-brute)"

NSE调试功能的使用

nmap -sV --script exploit -d 3 --script-trace 目标

-d(debug 范围0-9)

NSE 参数的使用

nmap -sV --script http-title --script-args http.useragent="Mozilla 999" <target>

NSE 更新

nmap --script-updatedb

使用特定网卡进行扫描

首先查看网卡:

nmap -e etho0 192.168.206.131

Nmap 对某个网络进去探测的时候,有可能之前有探测过的结果,现在探测过后,需要对比之前和现在的结果进行对比,来找到两次不同点。

监视网络变化,达到网络监控的目的。

在Nmap整个工程中,除了主要的nmap工具之外,还包括很多其他工具,比如ndiff

ndiff -h    //查看nidff 帮助信息
ndiff File1 File2 //对比两次结果

Nmap 查看网卡列表

nmap -iflist
nmap -e 192.168.206.131

 

------------恢复内容结束------------

渗透测试--Nmap主机识别的更多相关文章

  1. 小白日记14:kali渗透测试--NMAP

    NAMP 被认为是最强大的扫描器 所有参数 root@kali:~# nmap Nmap 7.01 ( https://nmap.org ) Usage: nmap [Scan Type(s)] [O ...

  2. 渗透测试工具Nmap从初级到高级使用教程

    本文由阿德马翻译自国外网站,请尊重劳动成果,转载请注明出处,谢谢 Nmap是一款网络扫描和主机检测的非常有用的工具.Nmap是不局限于仅仅收集信息和枚举,同时可以用来作为一个漏洞探测器或安全扫描器.它 ...

  3. 渗透测试工具Nmap从初级到高级

    Nmap是一款网络扫描和主机检测的非常有用的工具. Nmap是不局限于仅仅收集信息和枚举,同时可以用来作为一个漏洞探测器或安全扫描器.它可以适用于winodws,linux,mac等操作系统.Nmap ...

  4. Kali Linux渗透测试实战 2.2 操作系统指纹识别

    目录 2.2 操作系统指纹识别 2.2.1 Banner抓取 2.2.2 TCP 和 ICMP 常规指纹识别技术 TCP数据报格式 ICMP首部格式 TTL与TCP窗口大小 FIN探测 BOGUS f ...

  5. 读书笔记 ~ Nmap渗透测试指南

    记录Nmap选项及脚本使用,仅供参考... 除了端口扫描,好像其它脚本都比较鸡肋,用途感觉应该没有专用的小工具好用,不过还是可以看看,选项和脚本还是相当的丰富的. Nmap 使用帮助 starnigh ...

  6. Nmap渗透测试使用方法

    Nmap渗透测试使用方法 目标选择2 端口选择2 操作系统和服务检测2 Nmap输出格式2 用NSE脚本深入挖掘2 HTTP服务信息3 检测SSL漏洞问题的主机3 设备扫描3 按VNC扫描5 按SMB ...

  7. 渗透测试工具Nmap篇

    Nmap是一款网络扫描和主机检测的非常有用的工具. Nmap是不局限于仅仅收集信息和枚举,同时可以用来作为一个漏洞探测器或安全扫描器.它可以适用于winodws,linux,mac等操作系统.Nmap ...

  8. 读书笔记——商广明《Nmap渗透测试指南》

    一 Nmap基础学习 1.简介及安装 Nmap是一款由C语言编写的.开源免费的网络发现(Network Discovery)和安全审计(Security Auditing)工具.软件名字Nmap是Ne ...

  9. Kail Linux渗透测试教程之网络扫描和嗅探工具Nmap

    Kail Linux渗透测试教程之网络扫描和嗅探工具Nmap 网络扫描和嗅探工具——Nmap Nmap也就网络映射器(Network Mapper),是一个免费开放的网络扫描和嗅探工具.该工具可以扫描 ...

随机推荐

  1. AQS简单理解入门---1

    这篇文章,我们来聊聊面试时一个比较有杀伤力的问题:聊聊你对AQS的理解? 之前有同学反馈,去互联网公司面试,面试官聊到并发时就问到了这个问题.当时那位同学内心估计受到了一万点伤害... 因为首先,很多 ...

  2. 让visual studio总是以管理员身份启动

    环境 win10 visual studio 2019 步骤 找到visual studio的安装目录 怎么找? 右击win10开始菜单中visual studio的快捷方式, 依次选择 更多-> ...

  3. Linux lsblk和df命令区别

    lsblk 查看的是block device,也就是逻辑磁盘大小. df查看的是file system, 也就是文件系统层的磁盘大小

  4. 【poj 1284】Primitive Roots(数论--欧拉函数 求原根个数){费马小定理、欧拉定理}

    题意:求奇质数 P 的原根个数.若 x 是 P 的原根,那么 x^k (k=1~p-1) 模 P 为1~p-1,且互不相同. (3≤ P<65536) 解法:有费马小定理:若 p 是质数,x^( ...

  5. 2019牛客暑期多校训练营(第八场)B Beauty Values && C CDMA

    B题题意: 题目 给你n个数,让你把这一个序列中的所有子区间的Beauty Values加起来,Beauty Values是子区间内有几个不同的数 题解: 肯定不会是暴力,所以我们就要在各元素的位置上 ...

  6. JavaScript——二

    样式: 实验二. querySelectorAll()里面如果填id名称就直接写,如果要确定某个属性的值,就要用到[ ]来具体选择,其中写多个以空格隔开就表达第一个声明下的第二个标签内部的某个属性 这 ...

  7. Springboot 过滤器和拦截器详解及使用场景

    一.过滤器和拦截器的区别 1.过滤器和拦截器触发时机不一样,过滤器是在请求进入容器后,但请求进入servlet之前进行预处理的.请求结束返回也是,是在servlet处理完后,返回给前端之前. 2.拦截 ...

  8. 力扣119.杨辉三角II-C语言实现

    题目 给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行. 在杨辉三角中,每个数是它左上方和右上方的数的和. 示例: 输入: 3 输出: [1,3,3,1] 来源:力扣(LeetCod ...

  9. linux内核编程入门--系统调用监控文件访问

    参考的资料: hello world   https://www.cnblogs.com/bitor/p/9608725.html linux内核监控模块--系统调用的截获  https://www. ...

  10. mybatis(二)全局配置mybatis-config.xml

    转载:https://www.cnblogs.com/wuzhenzhao/p/11092526.html 大部分时候,我们都是在Spring 里面去集成MyBatis.因为Spring 对MyBat ...