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
端口及服务
常见著名端口
Unix特有端口
数据报传递协议端口
显示了一个和数据报传递协议(DDP)有关的端口列表。DDP 在 AppleTalk 网络上被使用。
未完待续
- Nmap基础学习
- nmap学习之端口扫描基础
- nmap学习
- Nmap之基础扫描
- Nmap 基础用法
- 学习使用nmap(一)
- nmap扫描器学习
- nmap 学习笔记1
- 学习笔记---nmap使用手册
- nmap 学习交教程
- Nmap学习笔记
- nmap学习笔记
- nmap探测学习
- nmap学习笔记
- Nmap学习笔记(一)
- nmap学习之目标说明
- nmap学习之主机发现
- nmap学习之端口扫描技术
- 在linux下用vim编写一个C程序
- nginx日志收集
- Introduction into Android Development with opencv 3.0
- 棋盘类游戏编程
- PHP的一些注意事项
- Nmap基础学习
- 【开源学习】Android github上开源项目分类汇总
- visual studio编辑器异常
- 查找数组中和的特定值的匹配对
- Java NIO系列教程(二) Channel
- 浅谈if、for条件执行
- 【计划】20160904-20161001到国庆节之前的安排
- c语言&&和||的短路性质分析
- 低功耗蓝牙(BLE)学习经验总结