nmap详解

nmap,也就是Network Mapper,最早是Linux下的网络扫描和嗅探工具包,用来扫描网上电脑开放的网络连接端,确定哪些服务运行在哪些连接端。它是网络管理员必用的软件之一,以及用以评估网络系统安全。

其基本功能有三个,一是探测一组主机是否在线;其次是扫描 主机端口,嗅探所提供的网络服务;还可以推断主机所用的操作系统 。Nmap可用于扫描仅有两个节点的LAN,直至500个节点以上的网络。Nmap 还允许用户定制扫描技巧。通常,一个简单的使用ICMP协议的ping操作可以满足一般需求;也可以深入探测UDP或者TCP端口,直至主机所 使用的操作系统;还可以将所有探测结果记录到各种格式的日志中, 供进一步分析操作。

一些优点:

1、多种多样的参数,丰富的脚本库,满足用户的个人定制需求,其中脚本库还提供了很多强大的功能任你选择。

2、强大的可移植性,基本上能在所有的主流系统上运行,而且代码是开源的。

3、详细的文档说明,和强大的社区团队进行支持,方面新人上手。

Nmap包含四项基本功能:

主机发现(Host Discovery)

端口扫描(Port Scanning)

版本侦测(Version Detection)

操作系统侦测(Operating System Detection)

参数

1. 扫描类型

-sT TCP connect()扫描,这是最基本的TCP扫描方式。这种扫描很容易被检测到,在目标主机的日志中会记录大批的连接请求以及错误信息。

-sS TCP同步扫描(TCP SYN),因为不必全部打开一个TCP连接,所以这项技术通常称为半开扫描(half-open)。这项技术最大的好处是,很少有系统能够把这记入系统日志。不         过,你需要root权限来定制SYN数据包。

-sF,-sX,-sN 秘密FIN数据包扫描、圣诞树(Xmas Tree)、空(Null)扫描模式。这些扫描方式的理论依据是:关闭的端口需要对你的探测包回应RST包,而打开的端口必需忽略有                        问题的包(参考RFC 793第64页)。

-sP ping扫描,用ping方式检查网络上哪些主机正在运行。当主机阻塞ICMP echo请求包是ping扫描是无效的。nmap在任何情况下都会进行ping扫描,只有目标主机处于运行           状态,才会进行后续的扫描。

-sU 如果你想知道在某台主机上提供哪些UDP(用户数据报协议,RFC768)服务,可以使用此选项。

-sA ACK扫描,这项高级的扫描方法通常可以用来穿过防火墙。

-sW 滑动窗口扫描,非常类似于ACK的扫描。

-sR RPC扫描,和其它不同的端口扫描方法结合使用。

-b FTP反弹攻击(bounce attack),连接到防火墙后面的一台FTP服务器做代理,接着进行端口扫描。

 2. 通用选项

-P0 在扫描之前,不ping主机。

-PT 扫描之前,使用TCP ping确定哪些主机正在运行。

-PS 对于root用户,这个选项让nmap使用SYN包而不是ACK包来对目标主机进行扫描。

-PI 设置这个选项,让nmap使用真正的ping(ICMP echo请求)来扫描目标主机是否正在运行。

-PB 这是默认的ping扫描选项。它使用ACK(-PT)和ICMP(-PI)两种扫描类型并行扫描。如果防火墙能够过滤其中一种包,使用这种方法,你就能够穿过防火墙。

-O 这个选项激活对TCP/IP指纹特征(fingerprinting)的扫描,获得远程主机的标志,也就是操作系统类型。

-I 打开nmap的反向标志扫描功能。

-f 使用碎片IP数据包发送SYN、FIN、XMAS、NULL。包增加包过滤、入侵检测系统的难度,使其无法知道你的企图。

-v 冗余模式。强烈推荐使用这个选项,它会给出扫描过程中的详细信息。

-S <IP> 在一些情况下,nmap可能无法确定你的源地址(nmap会告诉你)。在这种情况使用这个选项给出你的IP地址。

-g port 设置扫描的源端口。一些天真的防火墙和包过滤器的规则集允许源端口为DNS(53)或者FTP-DATA(20)的包通过和实现连接。显然,如果攻击者把源端口修改为20或者53,就可以摧毁防火墙的防护。

-oN 把扫描结果重定向到一个可读的文件logfilename中。

-oS 扫描结果输出到标准输出。

–host_timeout 设置扫描一台主机的时间,以毫秒为单位。默认的情况下,没有超时限制。

–max_rtt_timeout 设置对每次探测的等待时间,以毫秒为单位。如果超过这个时间限制就重传或者超时。默认值是大约9000毫秒。

–min_rtt_timeout 设置nmap对每次探测至少等待你指定的时间,以毫秒为单位。

-M count 置进行TCP connect()扫描时,最多使用多少个套接字进行并行的扫描。

3. 扫描目标

目标地址 可以为IP地址,CIRD地址等。

-iL filename 从filename文件中读取扫描的目标。

-iR 让nmap自己随机挑选主机进行扫描。

-p 端口 这个选项让你选择要进行扫描的端口号的范围。如:-p 20-30,139,60000。

-exclude 排除指定主机。

-excludefile 排除指定文件中的主机。

样例测试

样例1:扫描指定IP开放端口:

root@kali:~# nmap -v 192.168.44.128

样例2:网段内存活的机器

root@kali:~# nmap -sP 192.168.44.1/24

样例3:扫描指定IP的指定端口

root@kali:~# nmap -p 80 192.168.44.128

样例4:探测主机操作系统

root@kali:~# nmap -O 192.168.44.128

样例5:全面的系统探测

root@kali:~# nmap -A 192.168.44.128

样例6:穿透防火墙进行扫描

root@kali:~# nmap -sA 192.168.44.128

样例7:Ping扫描(Ping Sweeping)

# nmap -sP 192.168.7.0/24

样例8:隐蔽扫描(Stealth Scanning)

# nmap -sS 192.168.7.7

样例9:UDP扫描(UDP Scanning)

# nmap -sU 192.168.7.7

样例10:Ident扫描(Ident Scanning)

一个攻击者常常寻找一台对于某些进程存在漏洞的电脑。比如,一个以root运行的WEB服务器。如果目标机运行了identd,一个攻击者使用Nmap通过"-I"选项的TCP连接,就可以发现哪个用户拥有http守护进程。我们将扫描一个Linux WEB服务器为例:

# nmap -sT -p 80 -I -O www.yourserver.com

常用选项:

sudo nmap -v -Pn -O 192.168.0.63

---------------------

原文链接:https://blog.csdn.net/sunzhen6733/article/details/53186467

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏龙首琴剑庐

基于复杂方案OWSAP CsrfGuard的CSRF安全解决方案(适配nginx + DWR)

1、什么是CSRF? 已经有很多博文讲解其过程和攻击手段,在此就不重复了。 O(∩_∩)O 不清楚的同学,请自行搜索或按链接去了解: http://blog...

4657
来自专栏Java编程技术

Java网络编程基础篇

网络通讯在系统交互中是必不可少的一部分,无论是面试还是工作中都是绕不过去的一部分,本节我们来谈谈Java网络编程中的一些知识,本chat内容如下:

3331
来自专栏PHP在线

PHP异步高并发扩展Swoole

php的优势不在说了。swole可能有些人还是是太熟悉,这也是php的一大革新。 下面来介绍一下。 GitHub地址:https://github.com/ma...

6016
来自专栏编程思想之路

BLE低功耗蓝牙开发相关概念问题记录

蓝牙ble的传输速率是指主从机每秒所传输的字节数。既然是传输速率那就涉及到时间和每次所传递包大小的问题。 关于ble通信的demo可以参考蓝牙API介绍及基...

3416
来自专栏运维杂家技术分享

MTR工具使用说明文档

Mtr是一个将“traceroute”和“ping”程序功能结合在一起的一个网络诊断工具。

4.9K9
来自专栏Brian

Linux 系统优化

概述 在Linux 学习笔记一大体介绍了一些简单的Linux知识和一些简单的优化。下面我们来学习一下Linux和Linux一些安全知识(Linux是基于内核为...

4376
来自专栏IT笔记

本地私服仓库nexus3.3.1使用手册

私服架构 私服是指私有服务器,是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构建。有了私服之后,当 Maven 需要下载构件时,直接请求私服...

1K7
来自专栏琯琯博客

优化 Laravel 网站打开速度

1.关闭debug 打开.env文件,把debug设置为false. APP_ENV=local APP_DEBUG=false APP_KEY=base64...

41711
来自专栏进击的程序猿

raft 系列解读(2) 之 测试用例raft 系列解读(2) 之 测试用例

基于mit的6.824课程,github代码地址:https://github.com/zhuanxuhit/distributed-system

1422
来自专栏xcywt

TCP头部分析与确认号的理解

1、TCP的特点: 基于字节流 面向连接 可靠传输 缓冲传输 全双工 流量控制 2、头部格式和说明 图源百度。如下图示,就是TCP包的头部结构。可以看到这个头部...

32210

扫码关注云+社区

领取腾讯云代金券