您的位置:

nmap-sc介绍和应用

nmap-sc是一款基于Nmap开发的脚本扫描工具,可以提供更多的扫描选项和结果分析,支持主机探测、语法扫描、端口扫描、漏洞扫描和服务识别等功能。本文将从nmap-sc的脚本功能、扫描函数作用和nmap-script vuln的选取等方面进行介绍和应用。

一、nmapscript

nmap-script特指Nmap脚本引擎,该引擎是基于LUA脚本语言实现的,支持对目标主机进行各种探测,如服务探测、漏洞探测、操作系统探测等。Nmap脚本库中包含了大量的有用脚本,这些脚本可以帮助我们提取有价值的信息。而nmap-sc正是在这些脚本库的基础上,增加了更多的脚本,使得扫描器更加灵活和全面。

举一个简单的例子,我们通过nmap-sc对目标主机进行TCP端口扫描,可以使用以下命令:

nmap -sC target

其中-sC选项是针对目标主机运行所有的默认脚本,也可以使用脚本名称进行调用。

除此之外,nmap-sc还支持多种脚本类别,如网络发现、漏洞扫描、Web扫描等,可以根据需要选择和调用脚本。

二、nmapscan函数作用

nmapscan函数是nmap-sc中最常用的函数之一,可以用于对主机进行端口和服务探测。

举一个简单的例子,我们可以使用以下的代码进行端口扫描:

import nmap

def nmap_port_scan(target, ports):
    nm = nmap.PortScanner()
    nm.scan(target, ports)
    for host in nm.all_hosts():
        for port in nm[host]['tcp']:
            print('port : %s\t state : %s' % (port, nm[host]['tcp'][port]['state']))

上述代码中,我们导入了nmap库,并定义了nmap_port_scan函数,该函数接收两个参数,分别是目标主机和端口范围。在函数体内,我们实例化了nmap.PortScanner对象,并使用scan方法进行扫描。最后,我们可以遍历扫描结果,并打印出端口状态。

除了可以使用该函数进行端口扫描之外,也可以使用nmapscan函数进行服务识别和版本探测等操作。

三、nmap script vuln选取

在nmap-sc中,我们可以选择很多不同的nmap-script vuln进行扫描,这些脚本可以有效地识别安全漏洞和弱点,帮助我们更好地保护我们的网络安全。

以下是一些常用的nmap-script vuln脚本:

  • http-csrf.nse:用于检测是否存在Cross Site Request Forgery(CSRF)缺陷,该漏洞可能导致用户在不知情的情况下执行恶意操作。
  • http-fileupload-exploiter.nse:用于测试Web应用程序的文件上传功能,检测是否存在任意文件上传漏洞。
  • mysql-vuln-cve2012-2122.nse:用于检测MySQL数据库是否存在CVE-2012-2122漏洞,该漏洞允许攻击者绕过身份验证,以未经授权的方式访问系统。
  • smb-vuln-ms17-010.nse:用于测试目标系统是否受到EternalBlue漏洞的影响,该漏洞是WannaCry勒索软件的主要传播手段之一。
  • ssl-heartbleed.nse:用于检测SSL心脏滴血漏洞,该漏洞可以允许攻击者在不需要提供验证的情况下从目标系统中提取敏感数据。

使用nmap-sc进行漏洞扫描的示例代码如下:

import nmap

def nmap_vuln_scan(target, vuln_script):
    nm = nmap.PortScanner()
    nm.scan(arguments='-sV -O --script=' + vuln_script, hostnames=target)
    for host in nm.all_hosts():
        if 'osmatch' in nm[host]:
            os = nm[host]['osmatch'][0]['name']
        for port in nm[host]['tcp']:
            if 'script' in nm[host]['tcp'][port]:
                for output in nm[host]['tcp'][port]['script']:
                    if 'output' in output:
                        print('[%s][%s] %s: %s' % (host, port, os, output['output']))

上述代码中,我们定义了nmap_vuln_scan函数,该函数接收两个参数,分别是目标主机和漏洞脚本。在函数体内,我们使用arguments参数传递了命令行脚本选项,并调用了scan方法进行扫描。最后,我们打印出漏洞扫描结果。