Nmap基础学习

来源:互联网 发布:怎么发免费网络短信 编辑:程序博客网 时间:2024/05/06 10:49

  • 什么是Nmap
    • Nmap功能简介
    • Nmap功能结构
    • Nmap工作流程
    • Nmap工作原理
  • Nmap基础学习
    • 全面扫描
    • 端口及服务
      • 常见著名端口
      • Unix特有端口
      • 数据报传递协议端口
  • 未完待续

什么是Nmap

Nmap功能简介

Nmap的英文全称为“Network Mapper”,即为网络映射器。Nmap是一款优秀的开源网络 探测和安全审核工具。其设计目标是快速地扫描大型网络或单个主机。Nmap以新颖的方式使用原始的IP报文来发现网络上的主机以及它们提供什么服务运行什么操作系统使用什么样的防火墙等等。
Nmap 常被跟评估系统漏洞软件Nessus 混为一谈。Nmap 以隐秘的手法,避开闯入检测系统的监视,并尽可能不影响目标系统的日常操作。所以,不要滥用Nessus,这种大规模的漏扫只会引起对方的警觉暴露自己。

Nmap功能结构

Nmap包含四项基本功能

主机发现(Host Discovery)
端口扫描(Port Scanning)
版本侦测(Version Detection)
操作系统侦测(Operating System Detection)

其构架图如下:
这里写图片描述

而这四项功能之间,又存在大致的依赖关系(通常情况下的顺序关系,但特殊应用另外考虑),首先需要进行主机发现,随后确定端口状况,然后确定端口上运行具体应用程序与版本信息,然后可以进行操作系统的侦测。而在四项基本功能的基础上,Nmap提供防火墙与IDS(IntrusionDetection System,入侵检测系统)的规避技巧,可以综合应用到四个基本功能的各个阶段;另外Nmap提供强大的NSE(Nmap Scripting Language)脚本引擎功能,脚本可以对基本功能进行补充和扩展。
主机发现:用于发现目标主机是否处于活动状态。Nmap提供多种检测机制,可以更有效地辩识主机。

Nmap**核心功能**:

端口扫描:用于扫描主机上端口状态。Nmap可以将端口识别为开放(Open)、关闭(Closed)、过滤(Filtered)、未过滤(Unfiltered)、开放|过滤(Open|Filtered)、关闭|过滤(Closed|Filtered)。默认情况下,Nmap会扫描1000个常用端口,可以覆盖大多数基本应用情况。

版本侦测:用于识别端口上运行的应用程序与应用版本。Nmap目前可以识别数千钟中应用的签名,检测数百种应用协议。而对于不识别的应用,Nmap默认会将应用的指纹打印出来,如果用于确知该应用程序,那么用户可以将信息提交到社区,为社区做贡献。

操作系统侦测:用于识别目标机的操作系统类型、版本编号及设备类型。Nmap目前提供了上千种操作系统或设备的指纹数据库,可以识别通用PC系统、路由器、交换机等设备类型。

防火墙/IDS规避:Nmap提供多种机制来规避防火墙、IDS的屏蔽和检查,便于秘密地探查目标机的状况。基本的规避方式包括:分片/IP诱骗/IP伪装/MAC伪装等等。

NSE脚本引擎:NSE是Nmap最强大最灵活的特性之一,可以用于增强主机发现、端口扫描、版本侦测、操作系统侦测等功能,还可以用来扩展高级的功能如web扫描、漏洞发现。漏洞利用等等。Nmap使用lua语言来作为NSE脚本语言,目前的Nmap脚本库已经支持400多个脚本。

Nmap工作流程

Nmap的执行流程简单清晰,主要分为三个阶段

准备阶段:在其中会执行参数解析、资源分配、基本扫描信息的输出、端口与地址列表的初始化、NSE环境准备及pre_scripts的运行等基本的准备操作。

工作阶段:然后进入主循环,每次循环对一组目标地址进行主机发现、端口扫描、服务与版本侦测、OS侦测及脚本扫描等操作,直到所有的目标地址都被扫描完毕才推出主循环

善后阶段:在完成所有扫描操作后,调用post-script完成相应处理,然后打印出扫描的最终结果,并释放掉分配的资源。

下图为Nmap的执行流程图:
这里写图片描述

Nmap工作原理

主机发现发现的原理与Ping命令类似,发送探测包到目标主机,如果收到回复,那么说明目标主机是开启的。Nmap支持十多种不同的主机探测方式,比如发送ICMP ECHO/TIMESTAMP/NETMASK报文、发送TCPSYN/ACK包、发送SCTP INIT/COOKIE-ECHO包,用户可以在不同的条件下灵活选用不同的方式来探测目标机。Nmap使用TCP/IP协议栈指纹准确地判断目标主机的操作系统类型,Nmap对目标主机进行一系列的测试(T1-T7)利用测试结果建立相应的目标主机的Nmap指纹,然后Nmap会对指纹进行匹配,最终输出相应的结果。

Nmap基础学习

全面扫描

Nmap的全面扫描选用参数-A:

root@kali:~# nmap -A target

他可以全面扫描指定的IP或者域名的所有端口及其目标系统信息等,消耗时间长,不建议进行网段扫描。
如下,全面扫下个人的服务器:

root@kali:~# nmap -A 119.29.*.253Starting Nmap 7.01 ( https://nmap.org ) at 2016-08-31 08:55 EDTStats: 0:02:09 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth ScanSYN Stealth Scan Timing: About 48.66% done; ETC: 08:59 (0:02:15 remaining)Stats: 0:02:44 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth ScanSYN Stealth Scan Timing: About 49.10% done; ETC: 09:01 (0:02:50 remaining)Stats: 0:03:33 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth ScanSYN Stealth Scan Timing: About 50.16% done; ETC: 09:02 (0:03:32 remaining)Stats: 0:04:10 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth ScanSYN Stealth Scan Timing: About 60.19% done; ETC: 09:02 (0:02:45 remaining)RTTVAR has grown to over 2.3 seconds, decreasing to 2.0RTTVAR has grown to over 2.3 seconds, decreasing to 2.0RTTVAR has grown to over 2.3 seconds, decreasing to 2.0RTTVAR has grown to over 2.3 seconds, decreasing to 2.0Stats: 0:04:30 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth ScanSYN Stealth Scan Timing: About 72.36% done; ETC: 09:01 (0:01:43 remaining)RTTVAR has grown to over 2.3 seconds, decreasing to 2.0RTTVAR has grown to over 2.3 seconds, decreasing to 2.0Stats: 0:05:29 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth ScanSYN Stealth Scan Timing: About 82.90% done; ETC: 09:02 (0:01:08 remaining)Stats: 0:05:37 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth ScanSYN Stealth Scan Timing: About 86.19% done; ETC: 09:02 (0:00:54 remaining)Nmap scan report for 119.29.184.253Host is up (0.036s latency).Not shown: 995 closed portsPORT     STATE    SERVICE VERSION21/tcp   open     ftp     vsftpd 3.0.2 #服务器上确实开通了ftp服务22/tcp   open     ssh     OpenSSH 6.6.1p1 Ubuntu 2ubuntu2 (Ubuntu Linux; protocol 2.0)| ssh-hostkey: #开通了ssh服务|   1024 04:43:e3:bc:af:a3:64:5a:e6:ad:7d:cc:41:23:9b:61 (DSA)|   2048 d9:57:a2:89:e6:00:f0:96:df:51:b0:d7:88:07:ab:5a (RSA)|_  256 74:25:e7:db:7d:8f:0f:8b:42:cf:23:40:c8:31:d5:ae (ECDSA)80/tcp   open     http    nginx 1.4.6 (Ubuntu) #服务器构架为nginx+MySQL+php| http-robots.txt: 1 disallowed entry #robots.txt是一个简单的记事本文件,这是网站管理员和搜录引擎对话的一个通道。在这个文件中网站管理者可以声明该网站中不想被robots访问的部分,或者指定搜索引擎只收录指定的内容。当一个搜索机器人(有的叫搜索蜘蛛)访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,那么搜索机器人就沿着链接抓取。这里我为了让搜索引擎快速收录个人网站故做了SEO(Search Engine Optimization)优化。|_/wp-admin/|_http-server-header: nginx/1.4.6 (Ubuntu)#wp建站|_http-title: firGavin\xE5\x86\x99\xE5\xAD\x97\xE7\x9A\x84\xE5\x9C\xB0\xE6\x96\xB9514/tcp  filtered shell #滤壳4444/tcp filtered krb524 #  Kerberos 版本5(v5)到版本4(v4)门票转换器Device type: WAP|general purpose|storage-miscRunning (JUST GUESSING): Actiontec embedded (99%), Linux 2.4.X|3.X (99%), Microsoft Windows 7|2012|XP (96%), BlueArc embedded (91%)OS CPE: cpe:/h:actiontec:mi424wr-gen3i cpe:/o:linux:linux_kernel cpe:/o:linux:linux_kernel:2.4.37 cpe:/o:linux:linux_kernel:3.2 cpe:/o:microsoft:windows_7 cpe:/o:microsoft:windows_server_2012 cpe:/o:microsoft:windows_xp::sp3 cpe:/h:bluearc:titan_2100#这里显然操作系统判断不是十分明了,不过结合前面的信息可以判断出是Linux系统Aggressive OS guesses: Actiontec MI424WR-GEN3I WAP (99%), DD-WRT v24-sp2 (Linux 2.4.37) (98%), Linux 3.2 (98%), Microsoft Windows 7 or Windows Server 2012 (96%), Microsoft Windows XP SP3 (96%), BlueArc Titan 2100 NAS device (91%)No exact OS matches for host (test conditions non-ideal).Network Distance: 2 hopsService Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernelTRACEROUTE (using port 80/tcp)HOP RTT     ADDRESS1   0.06 ms 10.10.10.22   0.04 ms 119.29.*.253OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .Nmap done: 1 IP address (1 host up) scanned in 423.07 seconds

端口及服务

常见著名端口

端口号码 / 层 名称 注释 1 tcpmux TCP 端口服务多路复用 5 rje 远程作业入口 7 echo Echo 服务 9 discard 用于连接测试的空服务 11 systat 用于列举连接了的端口的系统状态 13 daytime 给请求主机发送日期和时间 17 qotd 给连接了的主机发送每日格言 18 msp 消息发送协议 19 chargen 字符生成服务;发送无止境的字符流 20 ftp-data FTP 数据端口 21 ftp 文件传输协议(FTP)端口;有时被文件服务协议(FSP)使用 22 ssh 安全 Shell(SSH)服务 23 telnet Telnet 服务 25 smtp 简单邮件传输协议(SMTP) 37 time 时间协议 39 rlp 资源定位协议 42 nameserver 互联网名称服务 43 nicname WHOIS 目录服务 49 tacacs 用于基于 TCP/IP 验证和访问的终端访问控制器访问控制系统 50 re-mail-ck 远程邮件检查协议 53 domain 域名服务(如 BIND) 63 whois++ WHOIS++,被扩展了的 WHOIS 服务 67 bootps 引导协议(BOOTP)服务;还被动态主机配置协议(DHCP)服务使用 68 bootpc Bootstrap(BOOTP)客户;还被动态主机配置协议(DHCP)客户使用 69 tftp 小文件传输协议(TFTP) 70 gopher Gopher 互联网文档搜寻和检索 71 netrjs-1 远程作业服务 72 netrjs-2 远程作业服务 73 netrjs-3 远程作业服务 73 netrjs-4 远程作业服务 79 finger 用于用户联系信息的 Finger 服务 80 http 用于万维网(WWW)服务的超文本传输协议(HTTP) 88 kerberos Kerberos 网络验证系统 95 supdup Telnet 协议扩展 101 hostname SRI-NIC 机器上的主机名服务 102 iso-tsap ISO 开发环境(ISODE)网络应用 105 csnet-ns 邮箱名称服务器;也被 CSO 名称服务器使用 107 rtelnet 远程 Telnet 109 pop2 邮局协议版本2 110 pop3 邮局协议版本3 111 sunrpc 用于远程命令执行的远程过程调用(RPC)协议,被网络文件系统(NFS)使用 113 auth 验证和身份识别协议 115 sftp 安全文件传输协议(SFTP)服务 117 uucp-path Unix 到 Unix 复制协议(UUCP)路径服务 119 nntp 用于 USENET 讨论系统的网络新闻传输协议(NNTP) 123 ntp 网络时间协议(NTP) 137 netbios-ns 在红帽企业 Linux 中被 Samba 使用的 NETBIOS 名称服务 138 netbios-dgm 在红帽企业 Linux 中被 Samba 使用的 NETBIOS 数据报服务 139 netbios-ssn 在红帽企业 Linux 中被 Samba 使用的NET BIOS 会话服务 143 imap 互联网消息存取协议(IMAP) 161 snmp 简单网络管理协议(SNMP) 162 snmptrap SNMP 的陷阱 163 cmip-man 通用管理信息协议(CMIP) 164 cmip-agent 通用管理信息协议(CMIP) 174 mailq MAILQ 177 xdmcp X 显示管理器控制协议 178 nextstep NeXTStep 窗口服务器 179 bgp 边界网络协议 191 prospero Cliffod Neuman 的 Prospero 服务 194 irc 互联网中继聊天(IRC) 199 smux SNMP UNIX 多路复用 201 at-rtmp AppleTalk 选路 202 at-nbp AppleTalk 名称绑定 204 at-echo AppleTalk echo 服务 206 at-zis AppleTalk 区块信息 209 qmtp 快速邮件传输协议(QMTP) 210 z39.50 NISO Z39.50 数据库 213 ipx 互联网络分组交换协议(IPX),被 Novell Netware 环境常用的数据报协议 220 imap3 互联网消息存取协议版本3 245 link LINK 347 fatserv Fatmen 服务器 363 rsvp_tunnel RSVP 隧道 369 rpc2portmap Coda 文件系统端口映射器 370 codaauth2 Coda 文件系统验证服务 372 ulistproc UNIX Listserv 389 ldap 轻型目录存取协议(LDAP) 427 svrloc 服务位置协议(SLP) 434 mobileip-agent 可移互联网协议(IP)代理 435 mobilip-mn 可移互联网协议(IP)管理器 443 https 安全超文本传输协议(HTTP) 444 snpp 小型网络分页协议 445 microsoft-ds 通过 TCP/IP 的服务器消息块(SMB) 464 kpasswd Kerberos 口令和钥匙改换服务 468 photuris Photuris 会话钥匙管理协议 487 saft 简单不对称文件传输(SAFT)协议 488 gss-http 用于 HTTP 的通用安全服务(GSS) 496 pim-rp-disc 用于协议独立的多址传播(PIM)服务的会合点发现(RP-DISC) 500 isakmp 互联网安全关联和钥匙管理协议(ISAKMP) 535 iiop 互联网内部对象请求代理协议(IIOP) 538 gdomap GNUstep 分布式对象映射器(GDOMAP) 546 dhcpv6-client 动态主机配置协议(DHCP)版本6客户 547 dhcpv6-server 动态主机配置协议(DHCP)版本6服务 554 rtsp 实时流播协议(RTSP) 563 nntps 通过安全套接字层的网络新闻传输协议(NNTPS) 565 whoami whoami 587 submission 邮件消息提交代理(MSA) 610 npmp-local 网络外设管理协议(NPMP)本地 / 分布式排队系统(DQS) 611 npmp-gui 网络外设管理协议(NPMP)GUI / 分布式排队系统(DQS) 612 hmmp-ind HMMP 指示 / DQS 631 ipp 互联网打印协议(IPP) 636 ldaps 通过安全套接字层的轻型目录访问协议(LDAPS) 674 acap 应用程序配置存取协议(ACAP) 694 ha-cluster 用于带有高可用性的群集的心跳服务 749 kerberos-adm Kerberos 版本5(v5)的“kadmin”数据库管理 750 kerberos-iv Kerberos 版本4(v4)服务 765 webster 网络词典 767 phonebook 网络电话簿 873 rsync rsync 文件传输服务 992 telnets 通过安全套接字层的 Telnet(TelnetS) 993 imaps 通过安全套接字层的互联网消息存取协议(IMAPS) 994 ircs 通过安全套接字层的互联网中继聊天(IRCS) 995 pop3s 通过安全套接字层的邮局协议版本3(POPS3)

Unix特有端口

端口号码 / 层 名称 注释 512/tcp exec 用于对远程执行的进程进行验证 512/udp biff [comsat] 异步邮件客户(biff)和服务(comsat) 513/tcp login 远程登录(rlogin) 513/udp who [whod] 登录的用户列表 514/tcp shell [cmd] 不必登录的远程 shell(rshell)和远程复制(rcp) 514/udp syslog UNIX 系统日志服务 515 printer [spooler] 打印机(lpr)假脱机 517/udp talk 远程对话服务和客户 518/udp ntalk 网络交谈(ntalk),远程对话服务和客户 519 utime [unixtime] UNIX 时间协议(utime) 520/tcp efs 扩展文件名服务器(EFS) 520/udp router [route, routed] 选路信息协议(RIP) 521 ripng 用于互联网协议版本6(IPv6)的选路信息协议 525 timed [timeserver] 时间守护进程(timed) 526/tcp tempo [newdate] Tempo 530/tcp courier [rpc] Courier 远程过程调用(RPC)协议 531/tcp conference [chat] 互联网中继聊天 532 netnews Netnews 533/udp netwall 用于紧急广播的 Netwal 540/tcp uucp [uucpd] Unix 到 Unix 复制服务 543/tcp klogin Kerberos 版本5(v5)远程登录 544/tcp kshell Kerberos 版本5(v5)远程 shell 548 afpovertcp 通过传输控制协议(TCP)的 Appletalk 文件编制协议(AFP) 556 remotefs [rfs_server, rfs] Brunhoff 的远程文件系统(RFS)

数据报传递协议端口

显示了一个和数据报传递协议(DDP)有关的端口列表。DDP 在 AppleTalk 网络上被使用。

端口号码 / 层 名称 注释 1/ddp rtmp 路由表管理协议 2/ddp nbp 名称绑定协议 4/ddp echo AppleTalk Echo 协议 6/ddp zip 区块信息协议

未完待续

0 0
原创粉丝点击