又一个网络嗅探和安全审核工具nmap,虽小但很强悍!
ccwgpt 2025-01-16 18:41 53 浏览 0 评论
对于nmap,相信很多安全运维人员并不陌生,它曾经在电影《黑客帝国》中出现过,是黑客和网络安全人员经常用到的工具。
nmap是一款开源免费的网络发现工具,通过它能够找出网络上在线的主机,并测试主机上哪些端口处于监听状态,接着通过端口确定主机上运行的应用程序类型与版本信息,最后利用它还能侦测出操作系统的类型和版本,由此可见,nmap是一个功能非常强大的网络探测工具,同时也成为网络黑客的最爱,因为nmap所实现的这些功能正是黑客入侵网络的一个基本过程。站在安全运维的角度,只有了解了黑客入侵的基本方式和过程,才能有目的、有针对性地进行安全防护,这也正是我们重点介绍nmap这个网络嗅探工具的原因。
1、namp的快速安装使用
从官方网站www.nmap.org 下载源码包,然后编译安装即可,编译安装过程无需额外参数,操作如下:
[root@localhost ~]# tar jxvf nmap-7.70.tar.bz2
[root@localhost ~]# cd nmap-7.70
[root@localhost nmap-7.70]# ./configure
[root@localhost nmap-7.70]# make
[root@localhost nmap-7.70]# make install
至此,源码方式安装nmap完成。当然也可以yum方式在线安装:
[root@localhost ~]# yum install nmap
yum方式安装的nmap版本会比较老,大家根据爱好,各取所求即可。
2、nmap的典型用法
nmap主要包含四个方面的功能:主机发现、端口扫描、应用程序及版本侦测、操作系统及版本侦测,在详细介绍每个功能点之前,首先介绍下nmap的典型用法。最简单的nmap命令形式如下:
namp 目标主机
通过这个命令,可以确定目标主机的在线情况和端口的监听状态,如下图所示。
由输出可知,目标主机172.16.213.51处于“up”状态,并且此主机上开放了22、111、5900、5901等端口,同时还侦测到了每个端口对应的服务,在最后还给出了目标主机网卡的MAC信息。并猜测给出了目标服务器品牌,厉害吧。
这只是nmap最基础的用法,如果希望了解目标主机更多的信息,可以通过完全扫描的方式实现,nmap命令内置了“-A”选项,可以实现对目标主机进行主机发现、端口扫描、应用程序与版本侦测、操作系统识别等完整全面的扫描,命令形式如下:
nmap -T4 -A -v 目标主机
其中,“-A”选项用于开启全面扫描;“-T4”指定扫描过程中使用的时序模板,总共有6个等级(0~5),等级越高,扫描速度越快,但也越容易被防火墙或者入侵检测设备发现并屏蔽,所以选择一个适当的扫描等级非常重要,这里推荐使用“-T4”;“-v”参数可显示扫描细节。下图是nmap对某主机的全面扫描过程。
从上图中可以看出,整个扫描过程非常详细:第一部分是对主机是否在线进行扫描;第二部分是对端口进行扫描,在默认情况下nmap会扫描1000个最有可能开放的端口,由于只扫描到22、80、3306三个端口处于打开状态,所以在输出中会有“997 closed ports”的描述;第三部分是对端口上运行的应用服务以及版本号进行统计,可以看到,扫描结果非常详细的记录了软件的版本信息;第四部分是对操作系统类型和版本进行探测,从扫描结果来看,还是非常准确的;最后一部分是对目标主机的路由跟踪信息。
看到了吧,nmap真的非常厉害,同时也侧面反映了网络安全的重要性,如果你的服务器没有做安全防护,那么要获取你的信息,真的太容易了。
3、通过nmap对远程主机进行端口扫描
端口扫描是nmap最核心的功能,通过端口扫描可以发现目标主机上TCP、UDP端口的开放情况。nmap在默认状态下会扫描1000个最有可能开放的端口,并将侦测到的端口状态分为6类,分别是:
? open,表示端口是开放的。
? closed,表示端口是关闭的。
? filtered,表示端口被防火墙屏蔽,无法进一步确定状态。
? unfiltered,表示端口没有被屏蔽,但是否处于开放状态,还需要进一步确定。
? open|filtered,表示不确定状态,端口可能是开放的,也可能被屏蔽的。
? closed|filtered,表示不确定状态,端口可能是关闭的,也可能被屏蔽的。
废话不说,直接上例子,看看怎么用nmap执行端口扫描。下面以探测www.abc.com 主机的信息为例,简单演示端口扫描的使用方法。首先,在联网的服务器上执行如下命令:
[root@localhost ~]# nmap -sU -sS -F www.abc.com
执行结果如下图所示。
在上图中,参数“-sS”表示使用TCP SYN方式扫描TCP端口,“-sU”表示使用UDP扫描方式扫描目标主机的UDP端口状况,“-F”表示使用快速扫描模式,扫描最可能开放的前100个端口(TCP和UDP各100个端口),由输出可知,有21个端口处于开放或者屏蔽状态,其他179个端口处于关闭状态。
4、通过nmap探测远程主机上运行服务的版本信息
nmap的版本侦测功能主要是用来确定目标主机开放的端口上运行的应用程序及版本信息,nmap的版本侦测支持TCP/UDP协议,支持多种平台的服务侦测,支持IPV6功能,并能识别几千种服务签名,下面介绍下nmap版本侦测的使用方法。
这里以探测172.16.213.120主机上运行的应用程序的版本信息为例,简单演示版本侦测的使用方法。首先,在联网的服务器上执行如下命令:
nmap -sV 172.16.213.120
其中,“-sV”表示设置nmap进行版本侦测,执行结果如下图所示。
从上图中nmap的输出可以看到每个端口对应的服务名称以及详细的版本信息,通过对服务器上运行服务的了解,以及对服务版本的探测,基本能判断出来此服务器是否存在软件漏洞,进而提醒运维管理人员进行端口关闭或升级软件等操作,尽早应对可能出现的安全威胁。
5、nmap操作系统侦测
操作系统侦测主要是对目标主机运行的操作系统类型及版本信息进行检测。nmap拥有丰富的系统指纹库,目前可以识别近3000种操作系统与设备类型。下面介绍下nmap操作系统侦测的使用方法。
下面以探测某外网主机的操作系统类型为例,简单演示操作系统侦测的使用方法。首先,在联网的服务器上执行如下命令:
nmap -O --osscan-guess 118.18.8.188
执行结果如下图所示:
上图中nmap指定了两个选项,含义如下:
“-O”选项:表示设置nmap进行操作系统侦测.
--osscan-guess选项:表示猜测目标主机的操作系统类型,nmap会给出可能性的比率,用户可以根据提供的比率综合判断操作系统类型。
nmap命令首先执行了主机发现操作,接着执行了端口扫描操作,然后根据端口扫描的结果进行操作系统类型的侦探,获取到的信息有设备类型、操作系统版本、操作系统的CPE描述、操作系统的细节和网络距离.如果不能确定操作系统的版本,会猜测每个系统版本的可能性比率,例如对于扫描的此主机,nmap给出最可能的操作系统版本是Microsoft Windows Vista|7|2008,而事实上,此主机确实安装了Microsoft Windows 2008 server这个版本的系统。由此可见,nmap的操作系统侦测功能是多么的强大。
6、nmap通过脚本进行扫描渗 透
nmap默认自带了很多应用脚本,这些脚本可以完成暴力破解、拒绝服务攻 击、通过已知的漏洞入 侵系统、探测目标机是否感染了病毒等功能。通过脚本扫描时需要设置“--script”参数这种方式进行比较扫描,常见的脚本参数有如下几个:
? -sC:等价于–script=default,使用默认类别的脚本进行扫描 可更换其他类别
? –script=<Lua scripts>: <Lua scripts>使用某个或某类脚本进行扫描,支持通配符描述
? --script=all 调用所有脚本扫描
下面看几个例子:
(1)、检查mysql空密码
[root@localhost ~]# nmap --script=mysql-empty-password localhost
如下图所示:
(2)、尝试破解mysql密码
如果不是空密码,则可以使用自带的暴 力破解功能尝试破解:
[root@localhost ~]# nmap -T5 -p 3306 --script=mysql-brute.nse 172.16.213.236
其中,mysql-brute.nse是一个nmap自带的暴力破解脚本,nmap安装好后,默认在/usr/local/share/nmap/scripts/(源码安装方式后的路径)目录下有nmap自带的所有脚本。扫描结果如下图所示:
可以看出,因为172.16.213.236密码太简单,已经被破解了。
(3)、获取远程主机mysql库信息
如果知道了用户名与密码,就可以做很多事情了,例如可以枚举数据库中的库信息、用户信息:
[root@localhost ~]#nmap -sV --script=mysql-databases --script-args mysqluser=root,mysqlpass=123456 172.16.213.236
从上图可以看到,已经获取了此数据库中的所有库信息,继续操作,查看系统这个mysql中有哪些用户,执行如下命令:
[root@localhost ~]#nmap -T5 -p 3306 --script=mysql-users.nse --script-args mysqluser=root,mysqlpass=123456 172.16.213.236
从上图可以看出,mysql库中的用户都扫描查询出来了。
最后,nmap还支持通配符描述,对同一应用的所有脚本扫描,可这样执行:
[root@localhost ~]# nmap --script=mysql-* 172.16.213.236
这里我们以扫描mysql为例做了一些nmap的高级功能介绍,其实除了mysql,还能对各种常见应用,例如redis、telnet、oracle、ftp、smtp、pop3、ms-sql、pqsql等各种常见的软件进行扫描和测试,用法和mysql完全相同。大家不妨都动手测试一下,顺便检查一下自己的应用是否存在漏洞和安全威胁。
相关推荐
- 详解DNFSB2毒王的各种改动以及大概的加点框架
-
首先附上改动部分,然后逐项分析第一个,毒攻掌握技能意思是力量智力差距超过15%的话差距会被强行缩小到15%,差距不到15%则无效。举例:2000力量,1650智力,2000*0.85=1700,则智力...
- 通篇干货!纵观 PolarDB-X 并行计算框架
-
作者:玄弟七锋PolarDB-X面向HTAP的混合执行器一文详细说明了PolarDB-X执行器设计的初衷,其初衷一直是致力于为PolarDB-X注入并行计算的能力,兼顾TP和AP场景,逐渐...
- 字节新推理模型逆袭DeepSeek,200B参数战胜671B,豆包史诗级加强
-
梦晨发自凹非寺量子位|公众号QbitAI字节最新深度思考模型,在数学、代码等多项推理任务中超过DeepSeek-R1了?而且参数规模更小。同样是MoE架构,字节新模型Seed-Thinkin...
- 阿里智能化研发起飞!RTP-LLM 实现 Cursor AI 1000 token/s 推理技术揭秘
-
作者|赵骁勇阿里巴巴智能引擎事业部审校|刘侃,KittyRTP-LLM是阿里巴巴大模型预测团队开发的高性能LLM推理加速引擎。它在阿里巴巴集团内广泛应用,支撑着淘宝、天猫、高德、饿...
- 多功能高校校园小程序/校园生活娱乐社交管理小程序/校园系统源码
-
校园系统通常是为学校、学生和教职工提供便捷的数字化管理工具。综合性社交大学校园小程序源码:同城校园小程序-大学校园圈子创业分享,校园趣事,同校跑腿交友综合性论坛。小程序系统基于TP6+Uni-app...
- 婚恋交友系统nuiAPP前端解决上传视频模糊的问题
-
婚恋交友系统-打造您的专属婚恋交友平台系统基于TP6+Uni-app框架开发;客户移动端采用uni-app开发,管理后台TH6开发支持微信公众号端、微信小程序端、H5端、PC端多端账号同步,可快速打包...
- 已节省数百万GPU小时!字节再砍MoE训练成本,核心代码全开源
-
COMET团队投稿量子位|公众号QbitAI字节对MoE模型训练成本再砍一刀,成本可节省40%!刚刚,豆包大模型团队在GitHub上开源了叫做COMET的MoE优化技术。COMET已应用于字节...
- 通用电气完成XA102发动机详细设计审查 将为第六代战斗机提供动力
-
2025年2月19日,美国通用电气航空航天公司(隶属于通用电气公司)宣布,已经完成了“下一代自适应推进系统”(NGAP)计划下提供的XA102自适应变循环发动机的详细设计审查阶段。XA102是通用电气...
- tpxm-19双相钢材质(双相钢f60材质)
-
TPXM-19双相钢是一种特殊的钢材,其独特的化学成分、机械性能以及广泛的应用场景使其在各行业中占有独特的地位。以下是对TPXM-19双相钢的详细介绍。**化学成分**TPXM-19双相钢的主要化学成...
- thinkphp6里怎么给layui数据表格输送数据接口
-
layui官网已经下架了,但是产品还是可以使用。今天一个朋友问我怎么给layui数据表格发送数据接口,当然他是学前端的,后端不怎么懂,自学了tp框架问我怎么调用。其实官方文档上就有相应的数据格式,js...
- 完美可用的全媒体广告精准营销服务平台PHP源码
-
今天测试了一套php开发的企业网站展示平台,还是非常不错的,下面来给大家说一下这套系统。1、系统架构这是一套基于ThinkPHP框架开发的HTML5响应式全媒体广告精准营销服务平台PHP源码。现在基于...
- 一对一源码开发,九大方面完善基础架构
-
以往的直播大多数都是一对多进行直播社交,弊端在于不能满足到每个用户的需求,会降低软件的体验感。伴随着用户需求量的增加,一对一直播源码开始出现。一个完整的一对一直播流程即主播发起直播→观看进入房间观看→...
- Int J Biol Macromol .|交联酶聚集体在分级共价有机骨架上的固定化:用于卤代醇不对称合成的高稳定酶纳米反应器
-
大家好,今天推送的文章发表在InternationalJournalofBiologicalMacromolecules上的“Immobilizationofcross-linkeden...
- 【推荐】一款开源免费的 ChatGPT 聊天管理系统,支持PC、H5等多端
-
如果您对源码&技术感兴趣,请点赞+收藏+转发+关注,大家的支持是我分享最大的动力!!!项目介绍GPTCMS是一款开源且免费(基于GPL-3.0协议开源)的ChatGPT聊天管理系统,它基于先进的GPT...
- 高性能计算(HPC)分布式训练:训练框架、混合精度、计算图优化
-
在深度学习模型愈发庞大的今天,分布式训练、高效计算和资源优化已成为AI开发者的必修课。本文将从数据并行vs模型并行、主流训练框架(如PyTorchDDP、DeepSpeed)、混合精度训练(...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- 详解DNFSB2毒王的各种改动以及大概的加点框架
- 通篇干货!纵观 PolarDB-X 并行计算框架
- 字节新推理模型逆袭DeepSeek,200B参数战胜671B,豆包史诗级加强
- 阿里智能化研发起飞!RTP-LLM 实现 Cursor AI 1000 token/s 推理技术揭秘
- 多功能高校校园小程序/校园生活娱乐社交管理小程序/校园系统源码
- 婚恋交友系统nuiAPP前端解决上传视频模糊的问题
- 已节省数百万GPU小时!字节再砍MoE训练成本,核心代码全开源
- 通用电气完成XA102发动机详细设计审查 将为第六代战斗机提供动力
- tpxm-19双相钢材质(双相钢f60材质)
- thinkphp6里怎么给layui数据表格输送数据接口
- 标签列表
-
- MVC框架 (46)
- spring框架 (46)
- 框架图 (58)
- bootstrap框架 (43)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- jpa框架 (47)
- laravel框架 (46)
- express框架 (43)
- springmvc框架 (49)
- 分布式事务框架 (65)
- scrapy框架 (52)
- java框架spring (43)
- grpc框架 (55)
- orm框架有哪些 (43)
- ppt框架 (48)
- 内联框架 (52)
- winform框架 (46)
- gui框架 (44)
- cad怎么画框架 (58)
- ps怎么画框架 (47)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)
- oracle提交事务 (47)