nmap探测系统信息


1 、nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服

务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。

它是网络管理员必用的软件之一,以及用以评估网络系统安全。

2 、nmap 也是不少黑客及骇客(又称脚本小子)爱用的工具 。系统管理员可以利用nmap

来探测工作环境中未经批准使用的服务器,但是黑客会利用nmap来搜集目标电脑的网络设

定,从而计划攻击的方法。

3、Nmap 常被跟评估系统漏洞软件Nessus 混为一谈。Nmap 以隐秘的手法,避开闯入检测

系统的监视,并尽可能不影响目标系统的日常操作。

 

 

 

三次握手工作原理

TCP是因特网中的传输层协议,使用三次握手协议建立连接。当主动方发出SYN连接请求后,等待对方回答

TCP的三次握手

TCP的三次握手

SYN+ACK[1]  ,并最终对对方的 SYN 执行 ACK 确认。这种建立连接的方法可以防止 

产生错误的连接,TCP使用的流量控制协议是可变大小的滑动窗口协议。

TCP三次握手的过程如下:

    【1】客户端发送SYN(SEQ=x)报文给服务器端,进入SYN_SEND状态。

  【2】服务器端收到SYN报文,回应一个SYN (SEQ=y)ACK(ACK=x+1)报文,进入

    SYN_RECV状态。

   【3】客户端收到服务器端的SYN报文,回应一个ACK(ACK=y+1)报文,进入

Established状态。

 

nmap -sV  显示详细服务信息

 

 

 

nmap -O IP

这个选项激活对TCP/IP指纹特征(fingerprinting)的扫描,获得远程主机的

标志,也就是操作系统类型

(用wireshark也可以直接看到他的系统)

为什么要把他单独拿出来呢,就是为了让别人扫描的时候,你也可以大致猜到别人的系统

 

  TTL=128,这是WINNT/2K/XP。

 

  TTL=32,这是WIN95/98/ME。

 

  TTL=256,这是UNIX。

 

  TTL=64,这是LINUX。

 

 

 

 

插入选项,后面有一些常用的实例

【-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服务器做代理

【-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()扫描时,最多使用多少个套接字进行并行的扫描。

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

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

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

【-exclude】排除指定主机。

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

 

例:直接nmap IP  的话也可以扫到开放端口  (后面会讲为什么结果一样,还要加参数)

 

 

例:nmap -sS IP

 

 为什么要用-sS选项呢 给大家解释一下:

  SYN扫描作为默认的也是最受欢迎的扫描选项,是有充分理由的。 它执行得很快,

     在一个没有入侵防火墙的快速网络上,每秒钟可以扫描数千个 端口。 SYN扫描相对来说不

     张扬,不易被注意到,因为它从来不完成TCP连接。 它也不像Fin/Null/Xmas,Maimon和

     Idle扫描依赖于特定平台,而可以应对任何兼容的 TCP协议栈。 它还可以明确可靠地区

     分open(开放的), closed(关闭的),和filtered(被过滤的) 状态.

 

例: nmap -sT IP

 

 

 大家可以看到,本次扫描的全都是以TCP为基础的服务

      当SYN扫描不能用时,CP Connect()扫描就是默认的TCP扫描。 当用户没有权限发    送原始报文或者扫描IPv6网络时,就是这种情况。 Nmap通过创建connect() 系统调用

      要求操作系统和目标机以及端口建立连接,而不像其它扫描类型直接发送原始报文。 这

      是和Web浏览器,P2P客户端以及大多数其它网络应用程序用以建立连接一样的 高层系统

      调用。它是叫做Berkeley Sockets API编程接口的一部分。Nmap用 该API获得每个连接

      尝试的状态信息,而不是读取响应的原始报文。

 

例: nmap -sU IP

 查看UDP的服务

 

 

 

 

Nmap简单扫描方式

                全面扫描:nmap-T4 -A targetip  

                主机发现:nmap-T4 -sn targetip  

                端口扫描:nmap-T4 targetip  

                服务扫描:nmap-T4 -sV targetip  

                操作系统扫描:nmap-T4 -O targetip

 
 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM