NMAP Masscan python识别端口运行服务 常用命令速查表

本文详述了Nmap和Masscan的使用,包括端口扫描、主机探测、服务识别和操作系统检测等功能。介绍了Python调用Nmap和Masscan的方法,以及如何通过Nmap的NSE进行漏洞扫描。此外,文章还讨论了如何通过端口服务数据库和Banner指纹识别技术来识别端口运行的服务。
摘要由CSDN通过智能技术生成
带上你的千军万马,即使最后难免孤军奋战。

阅读提要

全文约1.5W字,大致阅读完约15分钟,包含主要知识点:Nmap命令详解Masscan命令详解python调用Nmap、python调用Masscan端口运行服务识别、IPY库生成相关IP段,其中关键部位文字使用橙色重点标注。

Nmap功能

端口扫描:扫描开放的端口并且识别运行服务

主机探测:Nmap可査找目标网络中的在线主机。默认情况下,Nmap通过4种方式—— ICMP echo请求(ping)、向443端口发送TCP SYN 包、向80端口发送TCP ACK包和ICMP 时间戳请求——发现目标主机。

服务/版本检测:在发现开放端口后,Nmap可进一步检查目标主机的检测服务协议、应用 程序名称、版本号等信息。

操作系统检测:Nmap 向远程主机发送一系列数据包,并能够将远程主机的响应与操作系统 指纹数据库进行比较。如果发现了匹配结果,它就会显示匹配的操作系统。它确实可能无法 识别目标主机的操作系统;在这种情况下,如果您知道目标系统上使用的何种操作系统,可 在它提供的 URL 里提交有关信息,更新它的操作系统指纹数据库。

网络路由跟踪:它通过多种协议访问目标主机的不同端口,以尽可能访问目标主机。Nmap 路由跟踪功能从TTL的高值开始测试,逐步递减TTL,直到它到零为止。

Nmap脚本引擎:这个功能扩充了Nmap的用途。如果您要使用Nmap实现它(在默认情况 下)没有的检测功能,可利用它的脚本引擎手写一个检测脚本。目前,Nmap可检査网络服务 的漏洞,还可以枚举目标系统的资源。

常用功能

直接扫描

nmap 118.24.11.235

获取开放端口与运行服务

检测指定端口

nmap -p 8080 118.24.11.235

检测8080端口是否开放

-p端口范围:只扫描指定的端口。扫描1〜1024号端口,可设定该选项为–p 1-1024。扫描1 〜65535端口时,可使用-p-选项。

扫描网段

扫描网段的信息

 

nmap  -p 22,21,80 192.168.1.1-253

 

识别运行服务

服务版本识别(-sV),Nmap可以在进行端口扫描的时候检测服务端软件的版本信息。版本信息将使后续的漏 洞识别工作更有针对性。

nmap -sV 118.24.11.235 -p 80

识别操作系统

操作系统检测(-O),Nmap还能识别目标主机的操作系统。

nmap -O 118.24.11.235

强力优化检测

强力检测选项(-A),启用-A选项之后,Nmap将检测目标主机的下述信息
服务版本识别(-sV);
操作系统识别(-O);
脚本扫描(-sC);
Traceroute(–traceroute)

可以看到获取了更多详细的数据

nmap -A 118.24.11.235

禁用主机检测

禁用主机检测(-Pn),如果主机屏蔽了ping请求,Nmap可能会认为该主机没有开机。这将使得Nmap无法进行进一 步检测,比如端口扫描、服务版本识别和操作系统识别等探测工作。为了克服这一问题,就 需要禁用Nmap的主机检测功能。在指定这个选项之后,Nmap会认为目标主机已经开机并会 进行全套的检测工作

nmap -Pn -A 118.24.11.235

常用片段

nmap -sP 192.168.0.0/24   判断哪些主机存活
nmap -sT 192.168.0.3   开放了哪些端口
nmap -sS 192.168.0.127 开放了哪些端口(隐蔽扫描)
nmap -sU 192.168.0.127 开放了哪些端口(UDP)
nmap -sS -O  192.168.0.127 操作系统识别

输出选项

Nmap可以把扫描结果保存为外部文件。在需要使用其他工具处理Nmap的扫描结果时,这一 功能十分有用。即使您设定程序把扫描结果保存为文件,Nmap还是会在屏幕上显示扫描结果。

Nmap支持以下几种输出形式。

正常输出(-oN):不显示runtime信息和警告信息。

XML 文件(-oX):生成的 XML 格式文件可以转换成   HTML    格式文件,还可被Nmap    的图 形用户界面解析,也便于导入数据库。本文建议您尽量将扫描结果输出为XML文件。

生成便于Grep使用的文件(-oG):虽然这种文件格式已经过时,但仍然很受欢迎。这种格 式的文件,其内容由注释(由#开始)和信息行组成。信息行包含6个字段,每个字段的字段 名称和字段值以冒号分割,字段之间使用制表符隔开。这些字段的名称分别为Host、Ports、Protocols、Ignored State、OS、Seq Index、IP ID   Seq 和Status。这种格式的文件便于 grep或awk之类的UNIX指令整理扫描结果。

输出至所有格式(-oA)利用-oA<basename>选项 可将扫描结果以标准格式、XML格式和Grep格式一次性输出。分别存放在 <basename>.nmap,<basename>.xml和 <basename>.gnmap文件中。也可以在文件名前 指定目录名,如在UNIX中,使用~/nmaplogs/foocorp/, 在Window中,使用c:\hacking\sco on Windows。

为使用方便,利用-oA选项 可将扫描结果以标准格式、XML格式和Grep格式一次性输出。分别存放在.nmap,.xml和.gnmap文件中。

时间排程控制选项

Nmap可通过-T选项指定时间排程控制的模式。它有6种扫描模式。

paranoid(0):每5分钟发送一次数据包,且不会以并行方式同时发送多组数据。这种模式 的扫描不会被IDS检测到。

sneaky(1):每隔15秒发送一个数据包,且不会以并行方式同时发送多组数据。

polite(2):每0.4  秒发送一个数据包,且不会以并行方式同时发送多组数据。

normal(3):此模式同时向多个目标发送多个数据包,为   Nmap    默认的模式,该模式能自 动在扫描时间和网络负载之间进行平衡。

aggressive(4):在这种模式下,Nmap   对每个既定的主机只扫描5    分钟,然后扫描下一 台主机。它等待响应的时间不超过1.25秒。

insane(5):在这种模式下,Nmap   对每个既定的主机仅扫描75   秒,然后扫描下一台主 机。它等待响应的时间不超过0.3秒。

默认的扫描模式通常都没有问题。除非您想要进行更隐匿或更快速的扫 描,否则没有必要调整这一选项。

脚本引擎功能(Nmap Scripting Engine,NSE)

Nmap本身已经很强大了,但是加上它的脚本引擎更加开挂了,NSE 可使用户的各种网络检査工作更为自动化,有助于识别应 用程序中新发现的漏洞、检测程序版本等Nmap原本不具有的功能。虽然Nmap软件包具有各 种功能的脚本,但是为了满足用户的特定需求,它还支持用户撰写自定义脚本。

auth:此类脚本使用暴力破解等技术找出目标系统上的认证信息。

default:启用--sC  或者-A    选项时运行此类脚本。这类脚本同时具有下述特点:执行速度快;输出的信息有指导下一步操作的价值;输出信息内容丰富、形式简洁;必须可靠;不会侵入目标系统;能泄露信息给第三方。

discovery:该类脚本用于探索网络。

dos:该类脚本可能使目标系统拒绝服务,请谨慎使用。

exploit:该类脚本利用目标系统的安全漏洞。在运行这类脚本之前,渗透测试人员需要获取 被测单位的行动许可。

external:该类脚本可能泄露信息给第三方。

fuzzer:该类脚本用于对目标系统进行模糊测试。

instrusive:该类脚本可能导致目标系统崩溃,或耗尽目标系统的所有资源。

malware:该类脚本检査目标系统上是否存在恶意软件或后门。

safe:该类脚本不会导致目标服务崩溃、拒绝服务且不利用漏洞。

version:配合版本检测选项(-sV),这类脚本对目标系统的服务程序进行深入的版本检 测。

vuln:该类脚本可检测检査目标系统上的安全漏洞。
在Kali   Linux系统中,Nmap脚本位于目录/usr/share/nmap/scripts。

-sC 或--script=default:启动默认类NSE  脚本。

--script    <filename>|<category>|<directories>:根据指定的文件名、类别名、目录名,执行 相应的脚本。

--script-args   <args>:这个选项用于给脚本指定参数。例如,在使用认证类脚本时,可通过 这个选项指定用户名和密码

使用方法:

nmap --script http-enum,http-headers,http-methods,http-php-version  -p  80 192.168.1.101

增强版漏洞扫描

上提供的脚本虽然强啊,但是数量相对较少,于是乎我们来隆重推荐一下Vulscan,它是Nmap的一个漏洞扫描增强模块,通过它可以把Nmap打造成一款实用高效免费的漏洞扫描器。Vulscan目前包含了CVE、OSVDB、Exploit-db、openvas等多个漏洞平台指纹数据,具备离线扫描功能,对主机系统漏洞有很好的探测识别效果。

下载地址:https://github.com/scipag/vulscan

安装

通过其程序Github或官网压缩包下载,解压后把其中的文件释放到以下Nmap文件夹内:

Nmap\scripts\vulscan\*

使用1

如下命令对目标主机开始扫描:

nmap -sV –script=vulscan/vulscan.nse www.example.com

该-sV是绝对必要的。使用-sV,我们告诉Nmap探测版本信息的目标地址。如果Nmap不生成版本信息,nmap-vulners将不会有任何数据来查询Vulners数据库。使用这些NSE脚本时始终使用-sV

我们可以像nmap-vulners一样使用vulscan NSE脚本:

nmap --script vulscan -sV <目标IP>

默认情况下,vulscan会一次查询所有前面提到的数据库!正如我们在上面的图片中看到的那样,消化的信息量非常大。这比我们需要的信息要多得多。我强烈建议一次只查询一个数据库。我们可以通过将vulscandb参数添加到我们的Nmap命令并指定数据库来实现此目的,如下面的示例所示。

nmap --script vulscan --script-args vulscandb = database_name -sV <目标IP>
nmap --script vulscan --script-args vulscandb = scipvuldb.csv -sV <目标IP>
nmap --script vulscan --script-args vulscandb = exploitdb.csv -sV <目标IP>
nmap --script vulscan --script-args vulscandb = securitytracker.csv -sV <目标IP>

使用2

合并为一个命令,NSE脚本作为安全扫描器显着提高了Nmap的多功能性,范围。为了充分利用Nmap的版本扫描,我们可以在一个命令中使用nmap-vulners和vulscan。要执行此操作,请在终端中输入以下命令。

nmap --script nmap-vulners,vulscan --script-args vulscandb = scipvuldb.csv -sV <目标IP>

漏洞库数据

scipvuldb.csv – https://vuldb.com

cve.csv – http://cve.mitre.org

osvdb.csv – http:/
  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浪子燕青啦啦啦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值