精华内容
下载资源
问答
  • 本文将会讲述一系列如何使用一行代码解析 nmap 扫描结果,其中会在 Python 环境中使用到 libnmap 里的 NmapParser 库,这个库可以很容易的帮助我们解析 nmap扫描结果
  • 脚本说明nmap2sqlite可以把Nmap导出的扫描结果XML文件进行解析,提取出关键信息保存到SQLite数据库中(其中关键在于可以把nmap加载扫描脚本的输出信息也提取到数据库中,而不是简单的保存主机IP...Nmap扫描结果入库 ...

    脚本说明

    nmap2sqlite可以把Nmap导出的扫描结果XML文件进行解析,提取出关键信息保存到SQLite数据库中(其中关键在于可以把nmap加载扫描脚本的输出信息也提取到数据库中,而不是简单的保存主机IP、端口、服务之类)

    导入效果

    2018-08-13.png

    项目地址

    nmap2sqlite:Nmap扫描结果入库

    展开全文
  • 骇人的XSLT,可将nmap扫描结果转换为CherryTree( )格式。 为什么? 在学习攻势安全认证专业培训时,我发现自己不断地手动将nmap扫描结果数据复制到CherryTree中。 这非常麻烦且耗时,这不利于学习过程。 因此,...
  • 使用nmap-converter将nmap扫描结果XML转化为XLS实战 1、前言 作为网络安全从业人员,有时候需要使用端口扫描利器nmap进行大批量端口扫描,但Nmap的输出结果为.nmap、.xml和.gnmap三种格式,还有夹杂很多不需要的信息...

    使用nmap-converter将nmap扫描结果XML转化为XLS实战

    1、前言

    作为网络安全从业人员,有时候需要使用端口扫描利器nmap进行大批量端口扫描,但Nmap的输出结果为.nmap、.xml和.gnmap三种格式,还有夹杂很多不需要的信息,处理起来十分不方便,而将输出结果转换为Excel表格,方面处理后期输出。因此,有技术大牛分享了将nmap报告转换为XLS的Python脚本。

    2、nmap-converter

    1)项目地址: https://github.com/mrschyte/nmap-converter

    2)环境要求

    (1)Python(本次测试的python2.7)

    (2)依赖python模块:python-libnmap、XlsxWriter,安装:pip install python-libnmap、pip install XlsxWriter

    3)使用方法:nmap-converter.py [-h] [-o XLS] XML [XML ...]

    示例:nmap-converter.py -o test.xlsx test.xml

    (test.xlsx为转化后的Excel,test.xml为nmap输出xml格式结果)

    3、使用实战

    1)准备文件

    将python转换脚本nmap-converter.py、nmap扫描输出的xml文件test.xml放在同一个目录下,如图1所示:

    图1 nmap-converter.py、test.xml放在同一个目录下

    2)打开cmd,执行:nmap-converter.py -o test.xlsx test.xml,如图2所示:

    图2执行:nmap-converter.py -o test.xlsx test.xml

    3)转换结果

    转换完成后,在目录中生成了一个test.xlsx文件,如图3所示:

    图3 生成的test.xlsx文件

    结果如图4所示,可使用Excel进行处理了。

    图4 Excel结果

    转载于:https://blog.51cto.com/linhong/2114087

    展开全文
  • Nmap扫描结果输出报告 废话: 之前公司给了两个网段让扫描端口,并找出所有存在web界面的地址。 给的网段为: 59.152.xx.0/22 xx.xx.xx.0/22 可用IP是(1024-2)265535端口,还要整理报告,我直接就哭了 之后找了个...

    Nmap扫描结果输出报告
    废话:
    之前公司给了两个网段让扫描端口,并找出所有存在web界面的地址。
    给的网段为:
    59.152.xx.0/22
    xx.xx.xx.0/22
    可用IP是(1024-2)265535端口,还要整理报告,我直接就哭了

    之后找了个github工具成功解决,下面分享下经验,个人感觉还是很实用的,尤其是HVV期间打点。

    Nmap扫描常用端口

    53,80,81,110,111,123,U:123,135,U:137,139,U:161,389,443,445,465,500,515,U:520,U:523,548,623,636,873,902,1080,1099,1433,1521,U:1604,U:1645,U:1701,1883,U:1900,2049,2181,2375,2379,U:2425,3128,3306,3389,4730,U:5060,5222,U:5351,U:5353,5432,5555,5601,5672,U:5683,5900,5938,5984,6000,6379,7001,7077,8080,8081,8443,8545,8686,9000,9001,9042,9092,9100,9200,9418,9999,11211,27017,37777,50000,50070,61616
    

    命令:

    nmap  -p 1-10000  -oX 103_port_10000.xml  10x.20x.13x.0/22  
    

    这个命令扫描时间太久了,端口我替换成了常见web端口

    接下来用工具对扫描结果分析并导出xls文件

    工具:nmap-converter
    地址:git搜nmap-converter
    或者文末关注公众号下载

    安装依赖

    python3 -m  pip install python-libnmap
    python3 -m  pip install XlsxWriter
    

    使用方法

    python3 nmap-converter.py  -o /root/test.xls   103122.xml
    
    

    在这里插入图片描述

    扫描结果
    在这里插入图片描述
    筛选HTTP服务的
    在这里插入图片描述
    筛选端口Open
    在这里插入图片描述
    在这里插入图片描述

    完美解决,就是最初在安装python-libnmap
    的时候出了点问题,,不过时间有点长我都忘了是啥问题了,安装有问题的小伙伴可以加关注我公众号私聊一下我。我真的忘了。

    安装依赖环境的包我放在百度网盘了,公众号回复“namp报告输出”获取
    微信公众号欢迎各位点点关注,哈哈
    在这里插入图片描述

    展开全文
  • 本文将会讲述一系列如何使用一行代码解析 nmap 扫描结果,其中会在 Python 环境中使用到 libnmap 里的 NmapParser 库,这个库可以很容易的帮助我们解析 nmap扫描结果 每当我进行内网渗透面对大量主机和服务时,我...

    本文将会讲述一系列如何使用一行代码解析 nmap 扫描结果,其中会在 Python 环境中使用到 libnmap 里的 NmapParser 库,这个库可以很容易的帮助我们解析 nmap 的扫描结果
    每当我进行内网渗透面对大量主机和服务时,我总是习惯使用自动化的方式从 nmap 扫描结果中提取信息。这样有利于自动化检测不同类型的服务,例如对 web 服务进行路径爆破,测试 SSL/TLS 服务使用的密钥或协议,以及其他有针对性的测试。
    我在渗透测试中也会经常使用到 IPthon 或 *nix shell,而这些又都能够通过 Python 来访问,无论是直接在脚本中使用、在 REPL 环境下使用,还是将代码写入到磁盘上然后通过 shell 命令访问都是非常好用的。

    为了完成这些,libnmap 库会提供很好的帮助。本文将会讲述一系列如何使用一行代码解析 nmap 扫描结果,其中会在 Python 环境中使用到 libnmap 里的 NmapParser 库,这个库可以很容易的帮助我们解析 nmap 的扫描结果。
    我希望本文不仅仅是提供给你可以直接复制粘贴的代码,还可以了解到 IPython 也是渗透测试时一个非常好用的数据处理工具。

    配置
    解析 nmap 扫描结果的第一步是你要进行一次 nmap 扫描。我不打算在这里关注过多的细节部分,但是你想要直接使用本文的代码,你需要将扫描结构保存到一个 xml 文件中(-oX 或者 -oA)并且在开放端口上执行了服务侦测(-sV)和运行相关脚本(-sC)。
    本文的命令假设你在一个 Python REPL 环境如 IPython 并且安装 libnmap 模块(可以使用easy_install 或 pip 安装)的环境下执行。
    开始前,你需要设置下相应的环境,首先导入 NmapParser 模块并读入你的 xml 扫描结果文件(实例中名为”up_hosts_all_ports_fullscan.xml”位于当前工作目录下)

     from libnmap.parser import NmapParser
    nmap_report = NmapParser.parse_fromfile('up_hosts_all_ports_fullscan.xml')
    

    本文的余下部分会包含一系列使用一行代码提取各种各样有用的信息。全部的示例都假设 nmap 扫描结果保存在一个如上所示的文件中。下面的会给出一些基本的示例代码,如果你想在 IPython 中直接运行它们,请先运行上面的代码,这样它会直接在控制台输出方便你的查看。我通常会先做好这一步,这样我就可以确保输出的数据跟预期的一样。
    然后,你可以选择一个变量名并使用 “=” 将数据赋值给这个变量,这样你就可以在随后的代码中直接调用,或者将其写入到磁盘上以便 shell 命令使用。如果有些东西你想使用多次,可以粘贴一些代码段到 Python 脚本中,或者想加入一些更加复杂的逻辑但这样可能会使 REPL 环境难以处理,我会在最后一节中讲述如何快速的执行这些操作。

    端口信息
    开放指定端口号的主机
    显示所有开放指定端口号的主机。生成一个包含主机地址(string)的列表。下面以 443 端口为例,你可以修改成你自己需要的值。

     [ a.address for a in nmap_report.hosts if (a.get_open_ports()) and 443 in [b[0] for b in a.get_open_ports()] ]
     
    

    开放端口数量

    显示一系列主机开放端口的数量。生成一个包含端口数量(int)的列表,并进行排序 sorted(set([ b[0] for a in nmap_report.hosts for b in a.get_open_ports()]), key=int)
    主机开放端口对应的服务,按端口号进行分组
    显示所有主机开放的端口号,按端口号进行分组和排序。生成一个包含多个列表的列表(即列表的每个元素也为列表),其中每个成员列表第一个元素为端口号(int),第二个元素为一个包含开放对应端口主机 IP 地址(string)的列表

    [ [a, [ b.address for b in nmap_report.hosts for c in b.get_open_ports() if a==c[0] ] ] for a in sorted(set([ b[0] for a in nmap_report.hosts for b in a.get_open_ports()]),key=int) ]
    SSL/TLS 和 HTTP/HTTPS
    

    使用 SSL 的主机和端口

    显示所有使用 SSL 的主机和端口。这是通过查找是否有服务使用了 “SSL” 通道或者相关脚本检测的结果中包含 pem 证书。生成一个包含一系列列表的列表,每个成员列表中包含主机地址(string)和端口号(int)。

     [ [a.address, b.port] for a in nmap_report.hosts for b in a.services if b.tunnel=='ssl' or "'pem'" in str(b.scripts_results) ]
    

    下面的内容包含上述相同的信息,但不在是一个包含列表的列表,而是使用 join 函数创建了一个包含 “主机:端口号”(string) 的列表。

      [ ':'.join([a.address, str(b.port)]) for a in nmap_report.`在这里插入代码片`hosts for b in a.services if b.tunnel=='ssl' or "'pem'" in str(b.scripts_results) ]
    

    包含 web 服务的主机和端口

    显示所有的 web 服务及其对对应的端口号和协议(http 或 https)。这会生成一个包含多个列表的列表,其中每个成员列表包含协议(string)、地址(string)和端口号(int)。但这里会有些问题,nmap 在报告使用 https 的网站时,有些时候会显示服务是 “https”,而有时则会显示为使用 “ssl” 通道的 “http”,所以我调整了下数据格式以便统一输出。

      [ [(b.service + b.tunnel).replace('sl',''), a.address, b.port] for a in nmap_report.hosts for b in a.services if b.open() and b.service.startswith('http') ]
    

    这里还是相同的信息,只不过是在原先包含协议、主机和端口号的列表中增加了url(string)。[ (b.service + b.tunnel).replace('sl','') + '://' + a.address + ':' + str(b.port) + '/' for a in nmap_report.hosts for b in a.services if b.open() and b.service.startswith('http') ]
    其他服务信息
    未知服务

    显示所有 nmap 无法识别的服务。生成一个包含多个列表的列表,其中每个成员列表包含地址(string)、端口号(int)和 nmap 扫描的端口指纹(string)。生成这些信息,主要是为了方便后续人工审查那些特定的服务,而不会参与到任何自动化的过程中。
    [ [ a.address, b.port, b.servicefp ] for a in nmap_report.hosts for b in a.services if (b.service =='unknown' or b.servicefp) and b.port in [c[0] for c in a.get_open_ports()] ]
    nmap 识别出的软件
    显示 nmap 扫描中识别出的所有软件。生成按产品字母排序的列表。
    sorted(set([ b.banner for a in nmap_report.hosts for b in a.services if 'product' in b.banner]))
    软件对应的主机和端口号,按产品分组
    显示扫描出软件对应的主机和端口,按产品分组。生成一个包含多个列表的列表,其中每个成员列表的第一个元素为软件的名称(string),随后是另一个列表包含地址(string)和端口号(int)。
    [ [ a, [ [b.address, c.port] for b in nmap_report.hosts for c in b.services if c.banner==a] ] for a in sorted(set([ b.banner for a in nmap_report.hosts for b in a.services if 'product' in b.banner])) ]
    同上相同的信息,只是输出略有不同。同样还是生成一个包含多个列表的列表,成员列表的第一个元素还是软件的名称(string),但第二个是一个包含 “主机:端口号” 的列表。
    [ [ a, [ ':'.join([b.address, str(c.port)]) for b in nmap_report.hosts for c in b.services if c.banner==a] ] for a in sorted(set([ b.banner for a in nmap_report.hosts for b in a.services if 'product' in b.banner])) ]
    搜索指定关键词相关的主机和端口
    显示所有与给定关键词相关联的主机和端口,从 nmap 扫描结果的原始文本中查找包含产品名称、服务名称等等。下面以 “Oracle” 为例。生成一个包含多个列表的列表,其中每个成员列表包含主机地址(string)和端口号(int)。
    [ [a.address, b.port] for a in nmap_report.hosts for b in a.services if b.open() and 'Oracle' in str(b.get_dict()) + str(b.scripts_results) ]

    同上一样的方法,只是将存储的信息修改后一律使用小写进行搜索(下面示例为小写的 “oracle”),输出格式还是跟上面一样。

    [ [a.address, b.port] for a in nmap_report.hosts for b in a.services if b.open() and 'oracle' in (str(b.get_dict()) + str(b.scripts_results)).lower() ]
    

    其他的事情
    相同的证书名称
    显示找到的 SSL 证书和使用 nmap 脚本解析后得到证书名称相同的部分。这样在当你从一个 IP 地址开始扫描且反向 DNS 失效的时候,可以帮助确定系统的主机名。生成一个包含多个列表的列表,其中每个成员列表包含 IP 地址(string)和提取出的主机名(string)。
    [ [a.address, c['elements']['subject']['commonName'] ] for a in nmap_report.hosts for b in a.services for c in b.scripts_results if c.has_key('elements') and c['elements'].has_key('subject') ]
    处理以上结果的方法

    正向前面所说,上述的例子,当你直接粘贴进 IPython REPL 时只是将输出打印在屏幕上。这的确不错,因为这样你可以随时查看到自己感兴趣的信息,但你可能还会想做更多的事情。之所以去生成上述信息,一大好处就在于你可以根据结果轻松执行一些自动化的操作。
    如果你已经很熟悉 Python,应当可以很容易完成这些工作,那么你可以跳过这一节。但如果你不熟悉,那么本节会讲述一些很基本的知识,告诉你如何使用上述的代码段。

    保存到磁盘
    如果你想将上述代码段的输出结果保存到磁盘上的文本文件中,你需要将输出的列表转换为适当的字符串格式(具体取决于你的需求),然后在将这个字符串写入文件。在 Python 中,你可以使用 join 函数来整合这些列表并将其写入文件,这里只是一个示例。
    我们想要从生成的列表中提取出支持 SSL 的主机和端口,并将它们保存到一个新的文件中,这样可以在 bash 中使用循环来完成并使用命令行工具来进行测试。
    我通常会在 IPython 中使用一行代码来完成这些,虽然一行代码会比较方便,但这里为了方便阅读和理解,我会将代码拆分出来说。
    让我们来解析之前生成了一个包含 “主机:端口” 的列表,请注意我们使用了 str 函数将端口号从整数类型装换为了字符类型,这样使得它也能够使用 join 函数与其他字符串拼接在一起
    [ ':'.join([a.address, str(b.port)]) for a in nmap_report.hosts for b in a.services if b.tunnel=='ssl' or "'pem'" in str(b.scripts_results) ]
    让我们来给上面这段代码的结果分配名为 “ssl_services” 变量,以方便后续的调用。

    复制代码代码如下:

     ssl_services = [ ':'.join([a.address, str(b.port)]) for a in nmap_report.hosts for b in a.services if b.tunnel=='ssl' or "'pem'" in str(b.scripts_results) ]
    

    现在,让我们来使用 join 函数将列表的每一个元素拼接起来并使用 (‘\n’) 进行换行,然后给它分配一个名为 “ssl_services_text” 的变量。

    复制代码代码如下:

     ssl_services_text = '\n'.join(ssl_services)
    

    随后,我们就可以在当前工作目录下创建一个名为 “ssl_services_file.txt” 的新文建,并将 “ssl_services_text” 变量的内容写入其中。

     
     open('ssl_services_file.txt','w').write(ssl_services_text)
    

    就这么简单,后续你可以根据自己的需要来使用文件内容了。

    使用其他 Python 代码
    也许你还会想用其他的 Python 代码来完成上述工作?同样很简单,下面就是另一个示例,这里我们遍历每一个 nmap 识别出的 web 服务及其网页的请求结果。
    下面会生成一个包含 URLs 的列表,我们分配一个名为 “urls” 的变量给它。

    复制代码代码如下:

     urls = [ (b.service + b.tunnel).replace('sl','') + '://' + a.address + ':' + str(b.port) + '/' for a in nmap_report.hosts for b in a.services if b.open() and b.service.startswith('http') ]
    

    下一步,我们先进行一些准备工作,导入 requests 模块,然后设置一个简单的 getAndSave 函数进行 web 请求并将返回结果保存到磁盘上,文件名按 url 自动生成。你可能会注意到下面代码中,在 get 请求中使用了 “verify=False” 选项,这会在发送请求时忽略证书验证的错误,这个选项经常在测试内部机器时使用,因为内部机器基本不会有可信的证书颁发机构颁发的 SSL 证书。

    复制代码代码如下:

     import requests
    def getAndSave(url):
    r = requests.get(url, verify=False)
    open('_'.join(url.split('/')[2:]).replace(':',''),'wb').write(r.text.encode('utf8'))
    

    现在,让我们增加一些代码来遍历每一个 url,请求每个站点的 robots.txt 文件,并将其保存到本地以供后续使用。

    复制代码代码如下:

     for a in urls:
    getAndSave(a + 'robots.txt')
    

    这样就会将每一个站点的 robots.txt 文件爬取到当前工作目录下。这只是一个很简单的例子。

    推荐我们的python学习基地,看老程序是如何学习的!从基础的python脚本、爬虫、django、数据挖掘等编程技术,工作经验,还有前辈精心为学习python的小伙伴整理零基础到项目实战的资料,!每天都有程序员定时讲解Python技术,分享一些学习的方法和需要留意的小细节,

    展开全文
  • 本文讲的是如何把NMAP扫描结果同步到Elasticsearch?,如果您对信息安全感兴趣,那么您可能熟悉端口扫描工具nmap。扫描器是用于网络发现和安全审计的免费和开源(许可证)实用程序。许多网络管理员也会使用它发现...
  • awk处理nmap扫描结果

    2019-03-28 19:37:00
    接到个任务,要对大量的主机ip进行扫描扫描加过滤脚本贴到底下 #!/bin/bash ### use nmap scan aliyun echo "********Start scan********" cat aliyun.txt | grep -Ev '^(#|$)' | while read line; do...
  • 需求:对某网段就行C段扫描,将扫描结果保存为txt文档,并将扫描到的所有的存活主机ip进行提取并保存到txt文件中,然后倒入nessus进行批量扫描。 1. 扫描并保存结果 nmap xx.xx.38.0/24 -oN C段.txt 2. 提取存活...
  • nmap 扫描结果中提取信息。这样有利于自动化检测不同类型的服务,例如对 web 服务进行路径爆破,测试 SSL/TLS 服务使用的密钥或协议,以及其他有针对性的测试。 我在渗透测试中也会经常使用到 IPthon 或 *...
  • nmap扫描结果 Interesting ports on 172.22.43.251: PORT STATE SERVICE 23/tcp open telnet 80/tcp open http 135/tcp filtered msrpc 139/tcp filtered netbios-ssn 445/tcp filtered microsoft-ds 514/...
  • linux nmap扫描结果无法打开的原因

    千次阅读 2018-12-01 19:04:03
    在kali在nmap扫描结果在kali的谷歌、火狐浏览器打开都是空白页,放在win7下面打开报错: 无法显示 XML 页。 无法查看使用 XSL 样式表的 XML 输入。请更正错误然后单击 刷新 按钮,或稍后重试。 系统未找到指定的...
  • 近日使用nmap进行了一堆IP的扫描,但是namp的结果形式不是想要的[IP]:[PORT]格式,为方便下一步操作,进行了相关的数据提取。 使用PHP编写相关处理。 // An highlighted block <?php $file_path = "portresult....
  • Nmap扫描结果的保存和输出

    万次阅读 2019-03-26 14:29:00
    该选项可将扫描结果以标准格式、XML格式和Grep格式一次性保存,分别放在.nmap,.xml和.gnmap文件中。 nmap -F -oA test 192.168.3.2 选项--append-output 该选项可以补充保存文件,当使用前面的选项保存一个...
  • BruteSpray是一款基于nmap扫描输出的gnmap/XML文件.自动调用Medusa对服务进行爆破(Medusa美杜莎 是一款端口爆破工具,速度比Hydra九头蛇快)。BruteSpray甚至可以通过Nmap –sV参数的扫描找到非标准端口。使用方法非常...
  • MSF连接数据库并导入nmap扫描结果

    千次阅读 2019-12-22 08:38:18
    当对一个目标进行渗透时,如果目标的测试量巨大或是需要和同伴共享数据,那么将渗透报告或是所有操作存储在数据库里来共享,会是一个...查看数据库扫描结果内容: services -u 有开启端口情况及其对应服务。
  • NMAP扫描

    2015-04-01 15:26:29
    NMAP扫描
  • nmap扫描

    2019-10-10 19:45:51
    title: nmap扫描 tags: 信息收集 categories: 渗透测试 nmap是一款开源免费的网络发现和安全审计工具,扫描端口、操作系统的版本、端口对应运行的服务等等。 zenmap是nmap官方提供的图形界面工具 nmap XXX.XXX....
  • Nmap扫描

    千次阅读 2016-09-10 17:31:13
    Nmap扫描基础
  • 处理nmap扫描结果以进行报告 比较和比较nmap扫描以生成图形 批处理扫描报告 … 借助libnmap模块,上述用例将易于实现。 libnmap模块 该库当前提供以下模块: 过程:使您能够启动nmap扫描 parse :使您能够从文件,...
  • nmap扫描教程

    2016-03-24 18:59:09
    nmap扫描教程涵盖了目标主机输入,主机发现选项,扫描类型和强度,扫描结果的输入等等命令,各种命令集于一图,简单明了,无需再细读枯燥的文档说明

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 25,269
精华内容 10,107
关键字:

nmap扫描结果