全文约1.5W字,大致阅读完约15分钟,包含主要知识点:Nmap命令详解、Masscan命令详解、python调用Nmap、python调用Masscan、端口运行服务识别、IPY库生成相关IP段,其中关键部位文字使用橙色重点标注。
目录:
Nmap常用命令
Nmap漏洞扫描
Python调用Nmap
IPY库生成相关IP段
Masscan常用命令
Python调用Masscan
拓展内容之主机运行服务检测
提要:随着的颁布与完善,恶意扫描也将会面临法律责任哦,请大家规范使用工具,祝大家能开开心心上班,安安全全下班~
Nmap功能端口扫描:扫描开放的端口并且识别运行服务
主机探测:Nmap可査找目标网络中的在线主机。默认情况下,Nmap通过4种方式——ICMPecho请求(ping)、向端口发送TCPSYN包、向80端口发送TCPACK包和ICMP时间戳请求——发现目标主机。
服务/版本检测:在发现开放端口后,Nmap可进一步检查目标主机的检测服务协议、应用程序名称、版本号等信息。
操作系统检测:Nmap向远程主机发送一系列数据包,并能够将远程主机的响应与操作系统指纹数据库进行比较。如果发现了匹配结果,它就会显示匹配的操作系统。它确实可能无法识别目标主机的操作系统;在这种情况下,如果您知道目标系统上使用的何种操作系统,可在它提供的URL里提交有关信息,更新它的操作系统指纹数据库。
网络路由跟踪:它通过多种协议访问目标主机的不同端口,以尽可能访问目标主机。Nmap路由跟踪功能从TTL的高值开始测试,逐步递减TTL,直到它到零为止。
Nmap脚本引擎:这个功能扩充了Nmap的用途。如果您要使用Nmap实现它(在默认情况下)没有的检测功能,可利用它的脚本引擎手写一个检测脚本。目前,Nmap可检査网络服务的漏洞,还可以枚举目标系统的资源。
常用功能直接扫描nmap.24.11.
获取开放端口与运行服务
检测指定端口nmap-p.24.11.
检测端口是否开放
-p端口范围:只扫描指定的端口。扫描1?号端口,可设定该选项为–p1-。扫描1?端口时,可使用-p-选项。
扫描网段扫描网段的信息
nmap-p22,21,..1.1-
识别运行服务服务版本识别(-sV),Nmap可以在进行端口扫描的时候检测服务端软件的版本信息。版本信息将使后续的漏洞识别工作更有针对性。
nmap-sV.24.11.-p80识别操作系统
操作系统检测(-O),Nmap还能识别目标主机的操作系统。
nmap-O.24.11.强力优化检测
强力检测选项(-A),启用-A选项之后,Nmap将检测目标主机的下述信息服务版本识别(-sV);操作系统识别(-O);脚本扫描(-sC);Traceroute(–traceroute)
可以看到获取了更多详细的数据
nmap-A.24.11.禁用主机检测
禁用主机检测(-Pn),如果主机屏蔽了ping请求,Nmap可能会认为该主机没有开机。这将使得Nmap无法进行进一步检测,比如端口扫描、服务版本识别和操作系统识别等探测工作。为了克服这一问题,就需要禁用Nmap的主机检测功能。在指定这个选项之后,Nmap会认为目标主机已经开机并会进行全套的检测工作
nmap-Pn-A.24.11.常用片段
nmap-sP..0.0/24判断哪些主机存活nmap-sT..0.3开放了哪些端口nmap-sS..0.开放了哪些端口(隐蔽扫描)nmap-sU..0.开放了哪些端口(UDP)nmap-sS-O..0.操作系统识别输出选项
Nmap可以把扫描结果保存为外部文件。在需要使用其他工具处理Nmap的扫描结果时,这一功能十分有用。即使您设定程序把扫描结果保存为文件,Nmap还是会在屏幕上显示扫描结果。
Nmap支持以下几种输出形式。
正常输出(-oN):不显示runtime信息和警告信息。XML文件(-oX):生成的XML格式文件可以转换成HTML格式文件,还可被Nmap的图形用户界面解析,也便于导入数据库。本文建议您尽量将扫描结果输出为XML文件。生成便于Grep使用的文件(-oG):虽然这种文件格式已经过时,但仍然很受欢迎。这种格式的文件,其内容由注释(由#开始)和信息行组成。信息行包含6个字段,每个字段的字段名称和字段值以冒号分割,字段之间使用制表符隔开。这些字段的名称分别为Host、Ports、Protocols、IgnoredState、OS、SeqIndex、IPIDSeq和Status。这种格式的文件便于grep或awk之类的UNIX指令整理扫描结果。输出至所有格式(-oA)利用-oAbasename选项可将扫描结果以标准格式、XML格式和Grep格式一次性输出。分别存放在basename.nmap,basename.xml和basename.gnmap文件中。也可以在文件名前指定目录名,如在UNIX中,使用~/nmaplogs/foocorp/,在Window中,使用c:\hacking\scoonWindows。
为使用方便,利用-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秒。
默认的扫描模式通常都没有问题。除非您想要进行更隐匿或更快速的扫描,否则没有必要调整这一选项。
脚本引擎功能(NmapScriptingEngine,NSE)Nmap本身已经很强大了,但是加上它的脚本引擎更加开挂了,NSE可使用户的各种网络检査工作更为自动化,有助于识别应用程序中新发现的漏洞、检测程序版本等Nmap原本不具有的功能。虽然Nmap软件包具有各种功能的脚本,但是为了满足用户的特定需求,它还支持用户撰写自定义脚本。
auth:此类脚本使用暴力破解等技术找出目标系统上的认证信息。default:启用--sC或者-A选项时运行此类脚本。这类脚本同时具有下述特点:执行速度快;输出的信息有指导下一步操作的价值;输出信息内容丰富、形式简洁;必须可靠;不会侵入目标系统;能泄露信息给第三方。discovery:该类脚本用于探索网络。dos:该类脚本可能使目标系统拒绝服务,请谨慎使用。exploit:该类脚本利用目标系统的安全漏洞。在运行这类脚本之前,渗透测试人员需要获取被测单位的行动许可。external:该类脚本可能泄露信息给第三方。fuzzer:该类脚本用于对目标系统进行模糊测试。instrusive:该类脚本可能导致目标系统崩溃,或耗尽目标系统的所有资源。malware:该类脚本检査目标系统上是否存在恶意软件或后门。safe:该类脚本不会导致目标服务崩溃、拒绝服务且不利用漏洞。version:配合版本检测选项(-sV),这类脚本对目标系统的服务程序进行深入的版本检测。vuln:该类脚本可检测检査目标系统上的安全漏洞。在KaliLinux系统中,Nmap脚本位于目录/usr/share/nmap/scripts。-sC或--script=default:启动默认类NSE脚本。--scriptfilename
category
directories:根据指定的文件名、类别名、目录名,执行相应的脚本。--script-argsargs:这个选项用于给脚本指定参数。例如,在使用认证类脚本时,可通过这个选项指定用户名和密码
使用方法:
nmap--script