51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2880|回复: 4
打印 上一主题 下一主题

[讨论] 渗透测试工具Nmap从初级到高级

[复制链接]
  • TA的每日心情
    郁闷
    2022-8-29 14:43
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2018-4-18 15:22:28 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
    Nmap是一款网络扫描和主机检测的非常有用的工具。 Nmap是不局限于仅仅收集信息和枚举,同时可以用来
    作为一个漏洞探测器或安全扫描器。它可以适用于winodws,linux,mac等操作系统。Nmap是一款非常强大的实
    用工具,可用于:

    检测活在网络上的主机(主机发现)
    检测主机上开放的端口(端口发现或枚举)
    检测到相应的端口(服务发现)的软件和版本
    检测操作系统,硬件地址,以及软件版本
    检测脆弱性的漏洞(Nmap的脚本)
    Nmap是一个非常普遍的工具,它有命令行界面和图形用户界面。本人包括以下方面的内容:

    介绍Nmap

    扫描中的重要参数

    操作系统检测

    Nmap使用教程

    Nmap使用不同的技术来执行扫描,包括:TCP的connect()扫描,TCP反向的ident扫描,FTP反弹扫描等。

    所有这些扫描的类型有自己的优点和缺点,我们接下来将讨论这些问题。

    Nmap的使用取决于目标主机,因为有一个简单的(基本)扫描和预先扫描之间的差异。我们需要使用一些先
    进的技术来绕过防火墙和入侵检测/防御系统,以获得正确的结果。下面是一些基本的命令和它们的用法的例子:

    扫描单一的一个主机,命令如下:

    #nmap cnblogs.com

    #nmap 192.168.1.2

    扫描整个子网,命令如下:

    #nmap 192.168.1.1/24

    扫描多个目标,命令如下:

    #nmap 192.168.1.2 192.168.1.5

    扫描一个范围内的目标,如下:

    #nmap 192.168.1.1-100 (扫描IP地址为192.168.1.1-192.168.1.100内的所有主机)

    如果你有一个ip地址列表,将这个保存为一个txt文件,和namp在同一目录下,扫描这个txt内的所有主机,命
    令如下:

    #nmap -iL target.txt

    如果你想看到你扫描的所有主机的列表,用以下命令:

    #nmap -sL 192.168.1.1/24

    扫描除过某一个ip外的所有子网主机,命令:

    #nmap 192.168.1.1/24 -exclude 192.168.1.1

    扫描除过某一个文件中的ip外的子网主机命令

    #nmap 192.168.1.1/24 -exclude file xxx.txt  (xxx.txt中的文件将会从扫描的主机中排除)

    扫描特定主机上的80,21,23端口,命令如下

    #nmap -p80,21,23 192.168.1.1



    从上面我们已经了解了Nmap的基础知识,下面我们深入的探讨一下Nmap的扫描技术.

    Tcp SYN Scan (sS)

    这是一个基本的扫描方式,它被称为半开放扫描,因为这种技术使得Nmap不需要通过完整的握手,就能获得
    远程主机的信息。Nmap发送SYN包到远程主机,但是它不会产生任何会话.因此不会在目标主机上产生任何日
    志记录,因为没有形成会话。这个就是SYN扫描的优势.

    如果Nmap命令中没有指出扫描类型,默认的就是Tcp SYN.但是它需要root/administrator权限.

    #nmap -sS 192.168.1.1

    Tcp connect() scan(sT)

    如果不选择SYN扫描,TCP connect()扫描就是默认的扫描模式.不同于Tcp SYN扫描,Tcp connect()扫描需要完
    成三次握手,并且要求调用系统的connect().Tcp connect()扫描技术只适用于找出TCP和UDP端口.

    #nmap -sT 192.168.1.1

    Udp scan(sU)

    顾名思义,这种扫描技术用来寻找目标主机打开的UDP端口.它不需要发送任何的SYN包,因为这种技术是针对
    UDP端口的。UDP扫描发送UDP数据包到目标主机,并等待响应,如果返回ICMP不可达的错误消息,说明端口
    是关闭的,如果得到正确的适当的回应,说明端口是开放的.

    #nmap -sU 192.168.1.1

    FIN scan (sF)

    有时候Tcp SYN扫描不是最佳的扫描模式,因为有防火墙的存在.目标主机有时候可能有IDS和IPS系统的存在,防
    火墙会阻止掉SYN数据包。发送一个设置了FIN标志的数据包并不需要完成TCP的握手.

    root@bt:~# nmap -sF 192.168.1.8

    Starting Nmap 5.51  at 2012-07-08 19:21 PKT

    Nmap scan report for 192.168.1.8

    Host is up (0.000026s latency).

    Not shown: 999 closed ports

    PORT STATE SERVICE

    111/tcp open|filtered rpcbind

    FIN扫描也不会在目标主机上创建日志(FIN扫描的优势之一).个类型的扫描都是具有差异性的,FIN扫描发送的
    包只包含FIN标识,NULL扫描不发送数据包上的任何字节,XMAS扫描发送FIN、PSH和URG标识的数据包.

    PING Scan (sP)

    PING扫描不同于其它的扫描方式,因为它只用于找出主机是否是存在在网络中的.它不是用来发现是否开放
    端口的.PING扫描需要ROOT权限,如果用户没有ROOT权限,PING扫描将会使用connect()调用.

    #nmap -sP 192.168.1.1

    版本检测(sV)

    版本检测是用来扫描目标主机和端口上运行的软件的版本.它不同于其它的扫描技术,它不是用来扫描目标
    主机上开放的端口,不过它需要从开放的端口获取信息来判断软件的版本.使用版本检测扫描之前需要先用
    TCP SYN扫描开放了哪些端口.

    #nmap -sV 192.168.1.1

    Idle scan (sL)

    Idle scan是一种先进的扫描技术,它不是用你真实的主机Ip发送数据包,而是使用另外一个目标网络的主机
    发送数据包.

    #nmap -sL 192.168.1.6 192.168.1.1

    Idle scan是一种理想的匿名扫描技术,通过目标网络中的192.168.1.6向主机192.168.1.1发送数据,来获取19
    2.168.1.1开放的端口

    有需要其它的扫描技术,如 FTP bounce(FTP反弹), fragmentation scan(碎片扫描), IP protocol scan(IP
    协议扫描),以上讨论的是几种最主要的扫描方式.

    Nmap的OS检测(O)

    Nmap最重要的特点之一是能够远程检测操作系统和软件,Nmap的OS检测技术在渗透测试中用来了解远程主
    机的操作系统和软件是非常有用的,通过获取的信息你可以知道已知的漏洞。Nmap有一个名为的nmap-OS-
    DB数据库,该数据库包含超过2600操作系统的信息。 Nmap把TCP和UDP数据包发送到目标机器上,然后检
    查结果和数据库对照。

    Initiating SYN Stealth Scan at 10:21
    Scanning localhost (www.nxadmin.com) [1000 ports]
    Discovered open port 111/tcp on www.nxadmin.com
    Completed SYN Stealth Scan at 10:21, 0.08s elapsed (1000 total ports)
    Initiating OS detection (try #1) against localhost (www.nxadmin.com)
    Retrying OS detection (try #2) against localhost (www.nxadmin.com)

    上面的例子清楚地表明,Nmap的首次发现开放的端口,然后发送数据包发现远程操作系统。操作系统检测
    参数是O(大写O)





    Nmap的操作系统指纹识别技术:

    设备类型(路由器,工作组等)
    运行(运行的操作系统)
    操作系统的详细信息(操作系统的名称和版本)
    网络距离(目标和攻击者之间的距离跳)

    如果远程主机有防火墙,IDS和IPS系统,你可以使用-PN命令来确保不ping远程主机,因为有时候防火墙会组
    织掉ping请求.-PN命令告诉Nmap不用ping远程主机。

    # nmap -O -PN 192.168.1.1/24

    以上命令告诉发信主机远程主机是存活在网络上的,所以没有必要发送ping请求,使用-PN参数可以绕过PING命
    令,但是不影响主机的系统的发现.

    Nmap的操作系统检测的基础是有开放和关闭的端口,如果OS scan无法检测到至少一个开放或者关闭的端口
    ,会返回以下错误:

    Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port

    OS Scan的结果是不可靠的,因为没有发现至少一个开放或者关闭的端口.

    这种情况是非常不理想的,应该是远程主机做了针对操作系统检测的防范。如果Nmap不能检测到远程操作系
    统类型,那么就没有必要使用-osscan_limit检测。

    想好通过Nmap准确的检测到远程操作系统是比较困难的,需要使用到Nmap的猜测功能选项, –osscan-gues
    s 猜测认为最接近目标的匹配操作系统类型。

    # nmap -O –osscan-guess 192.168.1.1

    总结

    Nmap是一个非常强大的工具,它具有覆盖渗透测试的第一方面的能力,其中包括信息的收集和统计。本文
    从初级到高级的讲解了Nmap入侵扫描工具的使用.希望对大家有所帮助.

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏1
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-9-20 16:56 , Processed in 0.068286 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表