[转帖]如何使用nmap扫描工具

使用 nmap 套件:注意安全!   在本机上面观察 port 最好是使用 netstat 啦!因为他安全又可靠!但是,由于可能有某些 port 会寻找不到,或者不晓得那些 port 是干嘛用的,尤其是 /etc/services 里头没有提到的几个 port 对应的服务!这个时候怎么办?!没关系,不要紧,我们这个时候可以使用那个很流行的‘黑客指令’,就是 nmap 这个东西啦!nmap 的套件说明之名称为:‘Network exploration tool and security scanner’,顾名思义,这个东西是被系统管理员用来管理系统安全性查核的工具!他的具体描述当中也提到了, nmap 可以经由内部自行定义的几个 port 对应的指纹资料,来查出该 port 的服务为何,所以我们也可以藉此了解我们主机的 port 到底是干嘛用的!如果您是安装 Linux 是 Red Hat 版本的话,那么这个 nmap 套件应该已经安装妥当了,万一没有这个套件的话,也可以来到底下的网站下载: 
[root@test root]# nmap <扫瞄类型> <扫瞄参数> <Hosts 位址与范围> 参数说明: <扫瞄类型>:主要的扫瞄类型有底下几种:   -sT:扫瞄 TCP 封包已建立的连线 connect() !   -sS:扫瞄 TCP 封包带有 SYN 标签的资料   -sP:以 ping 的方式进行扫瞄   -sU:以 UDP 的封包格式进行扫瞄   -sO:以 IP 的协定 ( protocol ) 进行主机的扫瞄 <扫瞄参数>:主要的扫瞄参数有几种:   -PT:使用 TCP 里头的 ping 的方式来进行扫瞄,可以获知目前有几部      电脑存活(较常用)   -PI:使用实际的 ping (带有 ICMP 封包的) 来进行扫瞄   -p :这个是 port range ,例如 1024-, 80-1023, 30000-60000 等等的使用方式 <Hosts 位址与范围>:这个有趣多了,有几种类似的类型   192.168.0.100  :直接写入 HOST IP 而已,仅检查一部;   192.168.0.0/24 :为 C Class 的型态,   192.168.*.*  :嘿嘿!则变为 B Class 的型态了!扫瞄的范围变广了!   192.168.0.0-50,60-100,103,200 :这种是变形的主机范围啦!很好用吧! 范例:例题一:扫瞄单一部电脑! [root@test root]# nmap localhost   # 没有加上任何参数,由 nmap 的预设参数来进行扫瞄 Starting nmap V. 2.54BETA22 ( www.insecure.org/nmap/ ) Interesting ports on vbird.adsldns.org (127.0.0.1): (The 1539 ports scanned but not shown below are in state: closed) Port       State       Service 21/tcp     open        ftp 22/tcp     open        ssh 23/tcp     open        telnet Nmap run completed -- 1 IP address (1 host up) scanned in 1 second # 由上面可以看出我的系统目前共有 21, 22, 23 这三个 port 开放!而且 # 各 port 对应的服务也被查出来了!例题二:扫瞄单一部电脑的较少数 port 号码! [root@test root]# nmap -p 1024-65535 localhost # 仅扫瞄较少数的 port 啦! Starting nmap V. 2.54BETA22 ( www.insecure.org/nmap/ ) Interesting ports on pc510.ev.ncku.edu.tw (127.0.0.1): (The 64511 ports scanned but not shown below are in state: closed) Port       State       Service 3306/tcp   open        mysql <==只有这个 port 被找出来啰! Nmap run completed -- 1 IP address (1 host up) scanned in 11 seconds例题三:直接以 Ping 的方式扫瞄数个电脑! [root @test /root]# nmap -PT 192.168.1.171-177  # 看到了吧!扫瞄一个区段的活着的电脑!Starting nmap V. 2.54BETA22 ( www.insecure.org/nmap/ ) Interesting ports on linux172 (192.168.1.172): (The 1536 ports scanned but not shown below are in state: closed) Port       State       Service 110/tcp    open        pop-3 135/tcp    open        loc-srv 139/tcp    open        netbios-ssn 445/tcp    open        microsoft-ds 1025/tcp   open        listen 1110/tcp   open        nfsd-statusInteresting ports on linux174 (192.168.1.174): (The 1537 ports scanned but not shown below are in state: closed) Port       State       Service 110/tcp    open        pop-3 135/tcp    open        loc-srv 139/tcp    open        netbios-ssn 445/tcp    open        microsoft-ds 1025/tcp   open        listen Interesting ports on linux176 (192.168.1.176): (The 1537 ports scanned but not shown below are in state: closed) Port       State       Service 110/tcp    open        pop-3 135/tcp    open        loc-srv 139/tcp    open        netbios-ssn 445/tcp    open        microsoft-ds 1025/tcp   open        listen Nmap run completed -- 7 IP addresses (3 hosts up) scanned in 1 second 瞧!我要侦测的只有七部电脑,所以这七部电脑只会回应给我啰!而其中只有三部有启动,所以当然就只会有三段回应啦!这个方式蛮适合一次扫瞄您的子网域内的所有电脑呢! ^_^"
      进行ping扫描,打印出对扫描做出响应的主机,不做进一步测试(如端口扫描或者操作系统探测): nmap -sP 192.168.1.0/24 仅列出指定网络上的每台主机,不发送任何报文到目标主机: nmap -sL 192.168.1.0/24 探测目标主机开放的端口,可以指定一个以逗号分隔的端口列表(如-PS22,23,25,80): nmap -PS 192.168.1.234 使用UDP ping探测主机: nmap -PU 192.168.1.0/24 使用频率最高的扫描选项:SYN扫描,又称为半开放扫描,它不打开一个完全的TCP连接,执行得很快: nmap -sS 192.168.1.0/24 当SYN扫描不能用时,TCP Connect()扫描就是默认的TCP扫描: nmap -sT 192.168.1.0/24 UDP扫描用-sU选项,UDP扫描发送空的(没有数据)UDP报头到每个目标端口: nmap -sU 192.168.1.0/24 确定目标机支持哪些IP协议 (TCP,ICMP,IGMP等): nmap -sO 192.168.1.19 探测目标主机的操作系统: nmap -O 192.168.1.19 nmap -A 192.168.1.19 另外,nmap官方文档中的例子: nmap -v scanme.nmap.org 这个选项扫描主机scanme.nmap.org中 所有的保留TCP端口。选项-v启用细节模式。 nmap -sS -O scanme.nmap.org/24 进行秘密SYN扫描,对象为主机Saznme所在的“C类”网段 的255台主机。同时尝试确定每台工作主机的操作系统类型。因为进行SYN扫描 和操作系统检测,这个扫描需要有根权限。 nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127 进行主机列举和TCP扫描,对象为B类188.116网段中255个8位子网。这 个测试用于确定系统是否运行了sshd、DNS、imapd或4564端口。如果这些端口 打开,将使用版本检测来确定哪种应用在运行。 nmap -v -iR 100000 -P0 -p 80 随机选择100000台主机扫描是否运行Web服务器(80端口)。由起始阶段 发送探测报文来确定主机是否工作非常浪费时间,而且只需探测主机的一个端口,因 此使用-P0禁止对主机列表。 nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20 扫描4096个IP地址,查找Web服务器(不ping),将结果以Grep和XML格式保存。 host -l company.com | cut -d -f 4 | nmap -v -iL - 进行DNS区域传输,以发现company.com中的主机,然后将IP地址提供给 Nmap。上述命令用于GNU/Linux -- 其它系统进行区域传输时有不同的命令。 其他选项: -p <port ranges> (只扫描指定的端口) 单个端口和用连字符表示的端口范 围(如 1-1023)都可以。当既扫描TCP端口又扫描UDP端口时,可以通过在端口号前加上T: 或者U:指定协议。 协议限定符一直有效直到指定另一个。例如,参数 -p U:53,111,137,T:21-25,80,139,8080 将扫描UDP 端口53,111,和137,同时扫描列出的TCP端口。 -F (快速 (有限的端口) 扫描)
原文地址:https://www.cnblogs.com/macleanoracle/p/2967535.html