位置: 编程技术 - 正文

巧用python和libnmapd,提取Nmap扫描结果(python libnum)

编辑:rootadmin

推荐整理分享巧用python和libnmapd,提取Nmap扫描结果(python libnum),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python怎样用,python结合,python lib,利用python进行,python和geany怎么用,python与门,python与门,python与门,内容如对您有帮助,希望把文章链接给更多的朋友!

每当我进行内网渗透面对大量主机和服务时,我总是习惯使用自动化的方式从 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”位于当前工作目录下)

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

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

开放端口数量

显示一系列主机开放端口的数量。生成一个包含端口数量(int)的列表,并进行排序。 主机开放端口对应的服务,按端口号进行分组

显示所有主机开放的端口号,按端口号进行分组和排序。生成一个包含多个列表的列表(即列表的每个元素也为列表),其中每个成员列表第一个元素为端口号(int),第二个元素为一个包含开放对应端口主机 IP 地址(string)的列表。

使用 SSL 的主机和端口

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

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

包含 web 服务的主机和端口

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

这里还是相同的信息,只不过是在原先包含协议、主机和端口号的列表中增加了url(string)。

其他服务信息未知服务

显示所有 nmap 无法识别的服务。生成一个包含多个列表的列表,其中每个成员列表包含地址(string)、端口号(int)和 nmap 扫描的端口指纹(string)。生成这些信息,主要是为了方便后续人工审查那些特定的服务,而不会参与到任何自动化的过程中。

nmap 识别出的软件显示 nmap 扫描中识别出的所有软件。生成按产品字母排序的列表。

巧用python和libnmapd,提取Nmap扫描结果(python libnum)

软件对应的主机和端口号,按产品分组显示扫描出软件对应的主机和端口,按产品分组。生成一个包含多个列表的列表,其中每个成员列表的第一个元素为软件的名称(string),随后是另一个列表包含地址(string)和端口号(int)。

同上相同的信息,只是输出略有不同。同样还是生成一个包含多个列表的列表,成员列表的第一个元素还是软件的名称(string),但第二个是一个包含 “主机:端口号” 的列表。

搜索指定关键词相关的主机和端口显示所有与给定关键词相关联的主机和端口,从 nmap 扫描结果的原始文本中查找包含产品名称、服务名称等等。下面以 “Oracle” 为例。生成一个包含多个列表的列表,其中每个成员列表包含主机地址(string)和端口号(int)。 同上一样的方法,只是将存储的信息修改后一律使用小写进行搜索(下面示例为小写的 “oracle”),输出格式还是跟上面一样。 其他的事情

相同的证书名称显示找到的 SSL 证书和使用 nmap 脚本解析后得到证书名称相同的部分。这样在当你从一个 IP 地址开始扫描且反向 DNS 失效的时候,可以帮助确定系统的主机名。生成一个包含多个列表的列表,其中每个成员列表包含 IP 地址(string)和提取出的主机名(string)。

处理以上结果的方法

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

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

让我们来给上面这段代码的结果分配名为 “ssl_services” 变量,以方便后续的调用。

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

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

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

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

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

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

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

总结

希望你在阅读完本文后,可以自己灵活的使用 Python 解析 nmap 扫描结果。

利用Python自动监控网站并发送邮件告警的方法 前言因为有一些网站需要每日检查是否有问题,所以需要一个报警监控的机制,这个需要你指定你发送的邮箱和你接收的邮箱,就可以做到对网站自动

简单谈谈python中的Queue与多进程 最近接触一个项目,要在多个虚拟机中运行任务,参考别人之前项目的代码,采用了多进程来处理,于是上网查了查python中的多进程一、先说说Queue(队

Python设计模式之抽象工厂模式 python面向对象编程入门,我们需要不断学习进步"""抽象工厂模式的实现"""importrandomclassPetShop:"""宠物商店"""def__init__(self,animal_factory=None):"""宠物工厂是我

标签: python libnum

本文链接地址:https://www.jiuchutong.com/biancheng/386192.html 转载请保留说明!

上一篇:Python中属性和描述符的正确使用(python特性和属性)

下一篇:利用Python自动监控网站并发送邮件告警的方法(python自动化监控)

  • 小规模企业需要交哪些税
  • 厂房出租开发票怎么交税
  • 小规模纳税人到底能不能收专票
  • 纺织品产量
  • 做电商没有进货码怎么办
  • 销售预付卡纳税税率
  • 出售无形资产计入资产处置损益还是营业外收入
  • 法人存入现金的会计分录
  • 医院收到工会的钱怎么办
  • 个税多交了怎么退税
  • 当月增次月是什么意思
  • 个人劳务报酬所得汇算清缴
  • 税务局领普通发票需要多少钱
  • 2018劳务费个人所得税税率表
  • 增值税专普票清卡失败的原因是什么?
  • 企业如何实现资源共享
  • 开土地租赁发票需要交哪些税费
  • 一般企业财务报表格式2019选是还是否
  • 工厂电线
  • 财产清查的账务处理原则
  • 低值易耗品的界定标准何时修改的
  • 小型微利企业怎么认定最新标准
  • 公司股权分红款需要税吗
  • 收到生育津贴会计分录
  • 公司收到加盟费怎么做会计分录
  • linux怎么操作
  • 公司从超市购买东西缴纳印花税吗
  • win10更新错误0x8000402
  • vue中使用v-for指令时 为什么要加 key解释正确的是
  • 百香果的副作用及禁忌是哪些
  • linux乱码怎么改
  • 马德拉群岛旅游攻略
  • 朱顶雀的饲养
  • 个人信息提供者
  • yii框架连接数据库
  • php加密方式有哪些
  • 深度学习中的注意力机制模型及代码实现(SE Attention、CBAM Attention)
  • php数组的类型有哪些
  • 收到转账怎么写分录
  • 公司给员工发放福利会计分录
  • discuz手机标准版
  • 增值税为什么不能在税前扣除
  • 固定资产清理的金额怎么算
  • 个人独资所得
  • 九月份个人所得税的调整
  • 增值税纳税申报表在哪里查询
  • 企业哪些行为可以避税
  • 资产减值损失如何计算
  • 资产减值准备怎么提
  • 现金流量表补充资料的作用
  • 销售货物退款会计分录
  • 固定资产融资租出计入什么科目
  • 银行开手续费发票怎么做账
  • 车票抵扣税款
  • 联营公司是关联方吗
  • 建账是啥意思
  • sqlserver完全删除
  • 在window中
  • windows8.
  • mac 锁屏
  • win7安装软件出现乱码
  • linux必会的20种服务
  • 使用NGUI发布报错的解决方案
  • jquery中attr和prop
  • python hashcode
  • node.js操作文件
  • 全国哀悼日的意义
  • nodejs爬取数据
  • unity游戏开发的技术路线有哪些
  • js的调试
  • js处理时间
  • python3.9爬取网页教程
  • 多线程python爬虫
  • JQuery之proxy实现绑定代理方法
  • 一般纳税人出租房屋增值税税率
  • 保定市国税局车管所所长
  • 发票税额小数点打印不全能报销吗
  • 国家税务局总局咨询平台
  • 福建地税网上办事大厅
  • 孵化企业税收优惠
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设