当前位置: 首页 > article >正文

基于Python编程语言的自动化渗透测试工具

摘 要

近些年来网络安全形势变得越来越严峻,全球数百万个政企遭遇过不同程度的网络攻击。渗透测试是一种对目标进行信息安全评估的方法,而目前该行业仍在存在着安全服务行业价格昂贵,安全人才缺口巨大,在渗透测试时步骤繁琐、效率低下等问题。且现阶段的渗透测试工具存在着学习成本高,自动化程度低,功能难以扩展等问题。

针对以上问题,本文设计了一款基于Python编程语言的自动化渗透测试工具,面向的主要群体是爱好漏洞挖掘的SRC白帽子们和专业的渗透测试人员。这款工具会自动模拟人工渗透测试的过程,对目标网站进行分步进行信息收集、漏洞检测、报告输出等步骤,并在检测网站安全性的同时,实时打印出相关的信息。最后再按测试人员意愿进行漏洞的利用等操作,可以大大减轻渗透测试人员在渗透测试的各个阶段所需要的工作量,方便测试人员快速地完成典型的渗透测试任务。

关键词:自动化 渗透测试 漏洞扫描

ABSTRACT

In recent years, millions of governments and enterprises around the world have encountered different degrees of network attacks, and the situation of network security has become more and more serious. Penetration test is a method to evaluate the information security of the target. At present, there are still many problems in this industry, such as the high price of security service industry, the huge shortage of security talents, the tedious steps and low efficiency in penetration test. At present, the penetration testing tools still have many problems, such as low automation, learning cost expensively and difficult to expand functions.

In order to solve the above problems, this paper designs an automatic penetration testing tool based on python programming language. The main group is SRC white hats who are fond of vulnerability mining and professional penetration testers. This tool will automatically simulate the process of manual penetration test, and carry out step-by-step information collection, vulnerability detection, report output and other steps for the target website, and at the same time of testing the website security, print out the relevant information in real time. Finally, according to the intention of the testers, the exploitation of the vulnerabilities can greatly reduce the workload of the penetration testers in each stage of the penetration test, and facilitate the testers to complete the typical penetration test tasks quickly.

Key words: automatic penetration test vulnerability scanning

目录

第一章 绪论1

1.1 课题背景与意义1

1.2 国内外发展概况1

1.3 研究目标及内容2

1.4 论文结构2

1.5 本章小结2

第二章 开发工具及主要技术3

2.1 开发工具及环境3

2.1.1开发语言 Python3

2.1.2数据库 SQLite4

2.2 主要技术4

2.2.1网络爬虫简介4

2.2.2 Masscan网络扫描工具4

2.2.3 Nmap网络探测工具5

2.2.4 Wappalyzer网站指纹识别工具5

2.2.5 Xray漏洞扫描工具5

2.3 本章小结5

第三章 系统设计6

3.1 系统需求6

3.2 系统结构设计6

3.3 系统功能模块设计7

3.3.1 信息收集模块7

3.3.2 漏洞检测模块10

3.3.3 漏洞利用模块10

3.3.4 结果输出模块11

3.3.5 其他工具模块11

3.3 数据库设计11

3.4 本章小结12

第四章 系统实现13

4.1系统总体实现13

4.2系统功能模块实现13

4.2.1 信息收集模块13

4.2.2 漏洞检测模块16

4.2.3 漏洞利用模块20

4.2.4 结果输出模块21

4.2.5 其他工具模块22

4.3 本章小结23

第五章 系统测试24

5.1 测试目的24

5.2 测试环境24

5.3 测试内容与结果25

5.3.1 信息收集25

5.3.2 漏洞检测27

5.3.3 漏洞利用29

5.3.4 结果输出30

总结与展望33

项目总结33

未来展望33

参考文献34

致谢34

第一章 绪论

1.1 课题背景与意义

随着政企机构逐渐拥有各式各样的网络资产,越来越多重要的信息被储存在互联网上,网络安全也逐渐变得越来越重要。由于网络资产的繁多、漏洞更新速度的频繁,暴露在网络上的资产脆弱面也逐渐增多,使用人工进行渗透测试已逐渐无法日常的安全需求。

渗透测试是一种模拟黑客对网络资产进行攻击的安全体系评估,要求渗透测试人员需有着不俗的技能与经验。有着强大的知识面与知识链的渗透测试工程师自然是薪资不菲,所以不管在哪里的政企,不管时间还是财力上,信息安全都是一大消耗。在这种情况下,使用自动化渗透工具可以大大地减轻政企的负担。

但是目前市面上提供的自动化渗透工具的能力还比较弱,仍然具有非常多的功能可以完善。而在渗透工作的角度来看,在个人层面上,自动化的渗透工具能够大大地提高渗透测试人员的工作效率,而不必花费大量的人力去做重复性的工作。在企业层面上,可以提供到漏洞探测和威胁感知的功能,辅助建立起企业的安全架构,定时对网络进行渗透,一旦出现新的漏洞可以及时地覆盖与发现。

1.2 国内外发展概况

目前国外的比较出名的自动化渗透工具就是美国的HD Moore等人开发的Metasploit了,它是一个目前比较流行的渗透测试框架[1],它拥有可用性高的渗透攻击荷载。它能够给予了渗透测试人员可自定义,灵活多变的检测方法和攻击能力。虽然该平台已经进行了大量的优化,但是使用较为复杂,对测试人员的要求比较高,并且没有集成一体对某个目标一体的扫描并且得出结果,只能算是半自动化。

然而国内的自动化渗透工具,一般则为椰树扫描器,啊D扫描器等注入类扫描器,虽然可以有一定的情况下一键获取到服务器的权限,但是工具功能单一,跨平台性差,没有集成到一体,自动化程度低,只能提供于新手使用,不能给高级的渗透测试人提供更为准确的中间参数设置选项,无法更精确地完成任务。

通过以上对国内外的渗透测试框架以及工具的研究,可以看到目前市面上的渗透测试工具存在着操作不便,集成度差以及自动化程度低等问题,而且在网络上不能够有效地发现安全风险,所以设计一个操作方便,集成度好,以及自动化程度高的自动化渗透测试平台是非常有必要的。

1.3 研究目标及内容

为了弥补上面渗透测试工具所出现的缺点,本文要设计一款基于Python开发语言的自动化渗透工具,主要面向的群体是专业的渗透测试工程师以及爱好漏洞挖掘的SRC白帽子们。这款工具会自动模拟人工渗透测试的过程,对目标网站进行分步进行信息收集、漏洞扫描、报告输出等步骤,并在检测网站安全性的同时,实时打印出相关的信息。最后再按测试人员意愿进行漏洞的利用等操作,可以大大减轻渗透测试人员在渗透测试的各个阶段所需要的工作量,方便测试人员快速地完成典型的渗透测试任务。

1.4 论文结构

本文主要由六个章节构成,现在就每个章节进行简单介绍。

第一章:绪论。本章指出了安全行业中的背景与痛点,对比了国内外的自动化渗透工具优缺点,阐述了本文的研究目标与内容,概括了论文的整体结构情况。

第二章:开发工具及主要技术。本章简述了安全开发最常用的编程语言Python与数据库SQLite,并介绍了在本工具中使用到的第三方工具。

第三章:系统设计。本章的系统的结构设计描述了系统由五大功能模块组成,五大模块下的子模块,在系统功能模块设计中详细描述了每个子模块的功能设计,在最后简述了数据库中五个表的设计。

第四章:系统实现。本章根据第三章的设计思路,详细地描述了自动化渗透工具每个功能模块的实现方法。

第五章:系统测试。本章对系统进行了简单的测试,描述了本工具的优点与有待完善的地方。

第六章:总结与展望。本章主要是本人在做完此次的自动化渗透工具的一些总结,并对工具未来可以完善地方做的阐述。

1.5 本章小结

介绍了目前渗透测试的背景与痛点,如人工成本高,水平参差不齐等问题,并介绍了国内外自动化渗透工具的发展情况,分析出了目前市面上的渗透测试工具存在着操作不便,集成度差以及自动化程度低等问题。由于存在这些问题,所以本文设计出一款适合于广大渗透测试人员与爱好漏洞挖掘的白帽子们的自动化渗透测工具,从而减轻测试人员在渗透测试的各个阶段所需要的工作量,在最后补充了本文的结构安排。

第二章 开发工具及主要技术

2.1 开发工具及环境

开发环境在Windows 10,版本为1909,开发工具为PyCharm 2019.2.1 (Professional Edition),在实际部署的时候需要部署在装有Masscan、Nmap、Xray等工具的Linux机器上使用。

表2-1 软件版本

软件

版本

Python

3.7.4

PyCharm

2019.2.1 (Professional Edition)

Masscan

1.0.3

Nmap

7.8

Xray

0.20.0

表2-2 包版本

软件

版本

beautifulsoup4

4.8.2

aiohttp

3.6.2

gevent

1.4.0

lxml

4.5.0

python-docx

0.8.10

python-nmap

0.6.1

requests

2.23.0

urllib3

1.25.8

2.1.1开发语言 Python

Python是一门动态的、面向对象的解释型编程语言[2],在设计之初就是为了快速地编写出自动化的脚本(Shell)。Python中有许多非常有用的第三方库,使得它能够快速地进行独立、大型的系统开发。Python有2和3的版本,基于程序的灵活性和编写的方便,选择了使用Python 3.7.4作为主要的编程语言。其中大部分的模块都是以插件式地进行编写,每个模块都可以单独拿出来使用,并且可以继续增加新的模块进去。

2.1.2数据库 SQLite

SQLite是一个轻量级的SQL数据库引擎,也是一款自给自足、零配置、事务性的SQL数据库引擎[3],并且数据库以文件形式存储,非常适合在渗透环境复杂、多变的情况下使用。

2.2 主要技术

2.2.1网络爬虫简介

Web网络爬虫的主要功能是获取网页上的数据,在本工具中就大量地使用了爬虫技术,如获取网站的网页标题,获取网站的ICP备案信息,获取网站注册人的信息等,并且获取网站上敏感信息,如IP地址、手机号、邮箱号、账号、密码等,都为渗透的后续步骤提供了有用的信息。

2.2.2 Masscan网络扫描工具

Masscan被称之为世界上扫描速度最快的网络端口扫描工具,是一款无状态扫描器的典型代表[4]。Masscan相比Nmap之所以快很多,是因为Masscan是直接通过驱动程序发送数据包,减少了系统开销造成的延时,并且可以保持巨大的连接数量,采用了异步线程的扫描方式,减轻了线程的时间延迟。Nmap则需要记录TCP/IP的状态。此外,Masscan也极其地灵活,能够Windows、Linux等多个平台下运行,且允许自定义任意地址范围和端口范围进行扫描,在扫描的时候会对目标随机化地发送数据包以免触发目标网络的IDS(入侵检测系统)。

添加图片注释,不超过 140 字(可选)

图2-1 无状态扫描

本工具使用了Masscan进行网络的快速探测,可以快速地分析出网络中存活主机开放的端口信息,从而为端口探测进行下一步的漏洞探测。

2.2.3 Nmap网络探测工具

Nmap (Network Mapper) 是一款开源免费的网络探测工具,常用的功能有主机发现、端口扫描、版本侦测、操作系统侦测、防火墙/IDS规避、NSE脚本引擎,它是网络安全工作者必备的工具之一[5]。

本工具使用了Nmap进行操作系统的识别,并且通过接收Masscan扫描获取的端口数据,进一步获取端口的banner信息,如 SSH、FTP等服务的版本号,从而方便进行下一步的漏洞检测。

2.2.4 Wappalyzer网站指纹识别工具

Wappalyzer可以通过指纹对比分析,能够识别出网站是用什么编程语言开发的,识别出网站的中间件是什么,识别出网站的前后端框架是什么,并且它是开源免费的。在本工具中,使用了Wappalyzer进行对目标网站的识别,以提供对应的漏洞检测。

2.2.5 Xray漏洞扫描工具

Xray是一款社区免费版的WEB漏洞扫描工具,是从长亭科技研发的核心引擎中提取出来的。Xray扫描速度快、并发能力强,支持多种WEB漏洞类型检测。目前社区版闭源,但提供多个平台编译后的可执行文件使用,可跨平台使用。

在本工具中,集成了Xray的webscan漏洞扫描功能,用户可以按照自己所需配置所检测网站的漏洞类型。

2.3 本章小结

本章主要介绍了自动化渗透工具的开发环境与主要技术。在开发语言上选择了灵活性与编写方便的Python3作为开发语言,考虑到了渗透场景的多变,选择使用的是SQLite这种轻量级的数据库引擎。主要技术使用了Python的网络爬虫来进行获取网页上的信息,使用了Masscan与Nmap相结合来获取系统层面的信息,使用了Wappalyzer进行网站架构的识别,使用了协程技术进行了网络请求的IO操作,调用了Xray安全评估工具来进行WEB层面的漏洞识别,全面地扫描出系统可能存在的脆弱点。

第三章 系统设计

3.1系统需求

在本工具中,由于旨在面对大量资产信息时可以快速获取到对应的信息,即用户拿到大量的目标网络资产,如域名、IP等,只需要放入一个文本内,启动扫描器,即可获取到对应目标的渗透测试信息,以方便渗透测试人员进行下一步的渗透测试步骤。

由于工具是提供给专业的渗透测试人员使用的,所以只需要提供命令行的窗口进行信息的交互即可。由于信息繁多复杂,可以在命令行上显示的数据上添加颜色。用户可以等待扫描完成后,获取到扫描结束的渗透报告,里面会总结目标服务器的信息收集情况、漏洞的检测情况、以及可利用的Playload。并且由于扫描的时间一般会比较长,用户可以设置以微信的方式接收到通知,以清晰地知道目标的哪一个资产存在着漏洞的情况。

3.2 系统结构设计

添加图片注释,不超过 140 字(可选)

图3-1系统总体结构

根据以上对自动化渗透的需求分析,系统结构设计设计出以下的5个功能模块:信息收集模块、漏洞检测模块、漏洞利用模块、结果输出模块、其他工具模块。

在信息收集模块中,又有8个小模块,分别是探测CDN子模块、探测WAF子模块、IP归属地子模块、网站ICP备案子模块、网站Whois信息查询子模块、子域名爆破子模块、WEB信息收集子模块、端口服务信息获取子模块。

而在漏洞检测模块中有4个小模块,分别是Xray工具扫描子模块、WEB敏感信息爬取子模块、系统端口检测子模块、目录地址检测子模块。

漏洞利用模块则有2个小模块,分别时POC检测子模块和EXP检测子模块。

结果输出模块分别有输出显示子模块、报告输出模块和微信通知模块。

还有一个其他工具模块,主要是解决数据与网络之间的问题的模块。

3.3 系统功能模块设计

3.3.1 信息收集模块

信息收集是渗透测试的本质,被行业人士认为其占了渗透测试中的百分之八十的工作,信息收集模块收集而来的信息,直接决定了后面漏洞检测和漏洞利用等渗透方法。所以在这一模块中需要实现的功能也比较多,具体有7个模块,分别是探测CDN存在模块、探测WAF存在模块、服务器归属地查询模块、网站ICP备案查询模块、网站whois信息查询模块、子域名爆破模块、WEB信息获取模块、端口信息获取模块组成。

(1)探测CDN存在模块

CDN(Content Delivery Network),即内容分发网络,它可以根据发起请求的地址重新分配离它近、访问速度快的节点,用户就可以快速地取得所需的内容。

但是在渗透测试的过程当中,目标若是使用了CDN,则会导致无法正确地获取到服务器真实的ip地址,导致后面的渗透工作都会失败,所以需要对目标域名进行一个判定是否使用了CDN,若是使用了CDN则直接跳过此域名,进行下一个域名的扫描。

  1. 探测WAF存在模块 WAF(Web Application Firewall),一般是在WEB层面上进行保护服务器以免被黑客攻击的硬件或软件。在渗透的过程当中,若是目标网站存在着WAF,则需要消耗大量的人力进行攻防对抗使攻击手法绕过检测。 在本工具中,由于目标是面向大量资产的脆弱性扫描,若是只针对单一网站的防护做绕过措施,效果会非常不理想,所以本工具需要探测目标网站是否存在WAF,进行判定。若是存在WAF,则跳过下面的检测,直接进行下一个目标的扫描,若是不存在WAF,则继续正常执行。

  2. 服务器归属地查询模块 服务器IP归属地查询可以判断出该服务器是存放在哪个地区的。一般在对非法网站进行渗透时,经常需要用到此模块进行定位。

  3. 网站ICP备案查询模块 ICP备案(网络内容服务商)主要用于规范网络内容。做了ICP备案的网站,信息都是公开可以查询的,也就泄露了许多网站管理者的信息,对渗透有一定帮助。这些信息可以在ICP备案的网站上查询,只需要爬虫爬取下来即可。

  4. 网站whois信息查询模块 为了方便网络用户的故障排除,打击非法犯罪,世界上各级Internet管理机构设立了whois服务器,可通过whois服务器查询到域名所有者登记的信息。可以根据目标域名的后缀,分别向对应的whois服务器的43端口发起查询,即会返回域名所有者的登记资料。查询的结果中需着重注意网站的注册人和注册的邮箱,所以应使用正则匹配提取相关的信息。 表3-1 常见的whois服务器

域名后缀

对应whois服务器

.cn.com

whois.centralnic.net

.net

whois.verisign-grs.com

.com

whois.verisign-grs.com

.org

whois.pir.org

.cn

whois.cnnic.cn

.edu

whois.educause.edu

.edu.cn

whois.edu.cn

.club

whois.club

.jp

whois.jprs.jp

  1. 子域名爆破模块 子域名是属于域名系统级别中较高级别域的域,在本工具中指的是二级域名,如mail.example.com,oa.example.com等。 通常主域名网站的安全防御措施都会做得非常地好,但是它的子域名下的网站,则有可能是一些其他的测试网站,安全防护级别不会太高的网站,这些网站往往是渗透过程当中的突破点,所以需要着重注意子域名发现的效率与准确率。

  2. WEB信息识别模块 WEB信息识别主要调用Wappalyzer工具进行识别,若是在子域名和端口上发现了目标服务器上开启着存在着其他的http或https的网站,则会调用此模块进行WEB信息的获取,如网站的标题信息,网站的开发语言,网站的架构,网站的前端语言等。 Wappalyzer识别网站的原理主要是使用了常见的WEB指纹库进行匹配,如“指纹名称|检测的地方|属性值|匹配值”,若匹配成功,则说明该网站由此中间件构成。 表3-2 Wappalyzer常见指纹库

架构

网站指纹

ASP

ASP|headers|Set-Cookie|ASPSESSION

APPX

ASPX|headers|X-Powered-By|ASP.NET

PHP

PHP|headers|Set-Cookie|PHPSSIONID

JSP

JSP|headers|Set-Cookie|JSESSIONID

宝塔

宝塔管理|headers|Set-Cookie|BT_PANEL

LNMP

LNMP|index|index|<title>.*?LNMP.*?</title>

  1. 端口信息获取模块

在端口扫描层面上,选择使用Masscan这款端口扫描工具,因为它采用的是无状态的端口扫描方式,所以在速度层面上有着明显的优势。Masscan是可跨平台使用的,编译后的程序支持Windows、Linux操作系统,在本工具中先调用了Masscan对目标服务器的IP进行扫描特定端口,再读取Masscan生成的文件进行数据操作。Masscan扫描的特定端口和扫描的速率,可由用户自定义,工具默认内置扫描常见的脆弱端口。

虽然Masscan扫描端口的速度相当快,但是对目标服务器各个端口使用的服务识别却并不准确。在本工具中,在Masscan扫描出服务器开放的端口后,再调用Nmap来进行端口具体的banner信息获取识别。若是是识别出来端口是HTTP协议,则加入网站列表中,再调用WEB信息获取模块对目标网站信息获取。

表3-3 默认扫描的高危端口

21,22,23,80-90,161,389,443,445,873,888,1099,1433,1521,1900,2082,2083,2222,2601,2604,3128,3306,3311,3312,3389,4440,4848,5432,5560,5900,5901,5902,6082,6379,7001-7010,7778,8080-8090,8649,8888,9000,9200,10000,11211,27017,28017,50000,50030,50060

3.3.2 漏洞检测模块

(1)漏洞检测模块

端口漏洞检测需要检测常见的默认登录控制端口如22(SSH)、21(FTP)、1433(Mssql)、3306(MySQL)、6379(Redis)、27017(MongoDB)、5432(Postgresql)等是否存在弱口令或未授权登录的情况。

(2)目录地址检测模块

对于一个大型的网站来说,网站的管理入口是不能够被别人所发现的,若是被他人发现,则可能会存在被他人进入管理后台的风险。由于并不是对单个域名进行后台爆破的操作,本工具只需要对常用的后台地址检测即可,如 /admin.php, /login.php, /Admin_login 等常用后台地址。

敏感文件的扫描是渗透测试中也是必不可少的一步,主要是要扫描出网站管理员因错误配置而放置在网站根目录的数据库文件、网站源码备份文件等重要文件。若是网站的重要文件泄露出去,对整个服务器来说都是相当危险的一件事情。在不知道网站管理员把重要的文件命名的情况下,只能进行常见的敏感文件的猜测扫描,通常为/www.rar、/backup.zip、/备份.sql等格式,由于因扫描而并发的数量多,所以使用多线程来进行解决。

(3)网站敏感信息爬取模块

在渗透过程中,发现网站上的敏感信息也是非常重要的,如网页上出现的邮箱、电话号码、IP地址、网页链接等,这些敏感的信息可以存入数据库当中,为渗透测试人员提供猜测弱密码的帮助。而且部分网站开发者为了安全意识低下,也有可能会在网站的JavaScript文件中写入敏感的数据,在渗透中去逐个检查这些JS文件显然会很浪费时间,所以网站中的JavaScript的文件也需要去扫描检测,可以使用正则匹配来匹配这些关键信息。

(4)Xray漏洞扫描模块

Xray漏洞扫描模块是本工具中比较核心的一个模块,主要是用于扫描WEB网站中存在的漏洞,如xss、sql注入、常见的中间件漏洞等。这部分会使用子进程的方式进行调用Xray进行扫描,再把数据传递到数据库中。

3.3.3 漏洞利用模块

漏洞利用模块中包含了POC模块与EXP模块。负责验证漏洞存在情况则调用POC模块,而EXP模块则是对漏洞进行利用的模块。由于EXP可能会对目标主机造成损坏,所以并不加入到批量使用的场景,而是单独使用。POC模块则是可以进行批量的检测,主要是弥补Xray中没有检测出来的漏洞,用户可以在特定的目录下,准备特定扫描的POC模块,如一些新出的漏洞POC脚本等。

3.3.4 结果输出模块

由于本工具是在命令行下操作的,所以输出显示的内容尤为重要。为了让输出的字体带有颜色,使用的是termcolor这个第三方模块来控制打印出来文字的颜色。

在结果输出这个模块中,首先会把信息收集和漏洞检测两大模块的信息以报告的形式填入Word文档中。Word文档中会有报告的标题、测试的目标、信息收集的情况、存在的漏洞风险、报告的声明与建议等。并且会使用第三方服务“Server酱”在微信上进行通知扫描的情况,以及时获取目标服务器的漏洞信息。

3.3.5 其他工具模块

数据请求模块是重新被封装成了一个Request类,在这个模块里面,不仅重新定义了User Agent等信息,还随机生成了md5值的cookie值,以发现部分未授权就能访问的系统,利用socks5技术,用户可以自定义socket的值,让扫描器使用特定的代理来进行扫描。在扫描网站时,一般需要向网站发起大量的网络请求,若是使用了相同的请求头向一个服务器发送大量信息,则很容易被探测出来,所以在数据请求时,进行请求头的随机化处理,使得每一个UserAgent都不相同,以绕过特定防护机制的检测。

3.3 数据库设计

添加图片注释,不超过 140 字(可选)

图3-2 数据库表

  1. 端口信息表(port):存储扫描出来目标主机的端口信息,定义了扫描的时间,目标服务器的IP地址,主域名地址,开放的服务,开放的端口,还有扫描出来的其他信息。

  2. 网站信息表(web_info):主要存放的是目标服务器的IP、域名,扫描的时间,WAF的探测情况,CDN加速的探测情况,主机存放的地方,ICP备案信息,whois查询,子域名,目标网站的标题,架构,操作系统等信息。

  3. 敏感信息表(crawl_info):主要存放的是主域名,爬取到网站页面的敏感信息,信息的类型,在哪个链接地址泄露的信息等。

  4. 敏感文件泄露表(dir_scan):主要存放的是扫描目标泄露的文件信息,如域名,响应码,向网站发送探测数据回来的响应码,返回来的数据长度,识别到的标题,敏感文件的链接地址的信息。

(5)漏洞信息表(vuln):主要存放的是使用Xray扫描目标网站的web上存在的漏洞,记录下域名、漏洞地址、请求体、响应体、攻击载荷、其他信息等字段。

3.4 本章小结

本章主要是介绍了自动化渗透测试工具整个系统的结构设计,并且介绍了系统的整体架构,介绍了系统的信息收集模块、漏洞检测、漏洞利用、结果输出、其他工具五个功能模块设计。

  1. 系统实现

4.1系统总体实现

用户通过输入指定的目标,系统会按顺序启动信息收集、漏洞检测、漏洞利用、结果输出这4个模块,而其他工具模块则会在每个模块与网络数据之间交互时起到作用,如检验输入的文本是否符合格式,发送数据包是否超时等。

添加图片注释,不超过 140 字(可选)

图4-1 系统实现图

信息收集模块收集到的信息,会为漏洞检测模块提供有效的帮助,如信息收集中扫描到的端口信息,在漏洞检测模块中将会对其中的敏感端口进行检测。漏洞检测模块中检测中来的漏洞,则可以提供给漏洞利用模块进行利用,最后所有的信息都会被记录在渗透测试报告中。

4.2系统功能模块实现

4.2.1 信息收集模块

(1)探测CDN存在模块

由于网站使用了CDN加速后,DNS解析此网站时会出现多个不同的IP指向此网站,此时可以使用的技术是Python中的dns.resolver模块,分别向114.114.114.114,8.8.8.8,223.6.6.6等公共DNS服务器进行查询,若返回多个IP地址,则判定为存在CDN加速。

(2)探测WAF存在模块

在检测WAF是否存在的模块上,选择使用的手法是先向目标网站发送准备好的攻击荷载(playload),如xss攻击中的JS语句、常用的SQL注入语句、/etc/passwd关键文件等,一般只要发起这种明显的攻击请求,都会触发WAF的拦截机制,此时就可以根据响应头的字段或者响应体的拦截内容来判断是否存在WAF,存在着什么WAF。

(3)服务器IP归属地查询模块

这个模块相对于其他模块实现比较简单,只要知道真实的IP地址,在国内的一些站长之家的工具网页接口即可查询到具体的IP来源信息,只需要把响应的内容爬取下来即可。

添加图片注释,不超过 140 字(可选)

图4-2 归属地查询模块

(4)网站ICP备案查询模块

此模块的实现使用的是是网络爬虫技术,需要保存的信息有ICP备案的主办单位名称、备案时的网站标题、域名、备案时间、备案号,具体使用的是Python中的etree模块定位到具体的前端信息,并把该css选择器内的内容保存下来。

(5)网站whois信息查询模块

在渗透过程中,whois信息查询往往能够获取到对整个渗透过程非常有效的关键信息。在本工具中,使用的是socket向对应的whois服务器发起查询信息,再提取出whois查询中的域名注册人名称、email地址等信息。

添加图片注释,不超过 140 字(可选)

图4-3 Whois信息查询

(6)子域名爆破模块

实现子域名爆破功能,选择使用的是协程的方式进行子域名的爆破,在速度上比单线程要远远地快上许多倍。它的技术实现原理是先读取指定的子域名字典,里面存放着大量的二级域名可能会使用的词汇,然后与主域名进行拼接,在使用Python异步传输中的aiodns.DNSResolver模块进行DNS解析,若获取到数据则记录下来成为目标服务器的二级域名。

添加图片注释,不超过 140 字(可选)

图4-4子域名爆破

(7)WEB信息获取模块

web信息获取这一模块,主要使用的是wappalyzer来识别网站的整体架构。首先要获取Web信息,就要知道它的网页标题是什么,这里就要使用网页爬虫技术了。本工具会使用Python的第三方模块BeautifulSoup对网站的html进行解析的操作,然后再调用wappalyzer进行网站架构的识别操作。

添加图片注释,不超过 140 字(可选)

图4-5 WEB信息获取

(8)端口服务信息获取模块

  1. Masscan扫描 由于Masscan是第三方工具,所以在python中需要使用os模块进行对系统命令行的操作,扫描的端口和速率由用户设置的选项中导入。

添加图片注释,不超过 140 字(可选)

图4-6 Masscan扫描运行图

  1. Nmap扫描

Nmap扫描目标服务器操作由于是一个网络请求操作,使用协程来进行调度操作是非常合适的,这里使用的是gevent第三方模块进行协程操作,速度比单线程扫描要快上许多。

添加图片注释,不超过 140 字(可选)

图4-7 Nmap扫描运行图

下面是是gevent模块协程调用Nmap扫描代码:

with gevent.Timeout(180, False):

task = []

for port in ports:

g = gevent.spawn(NmapScan, ip, port)

task.append(g)

gevent.joinall(task, raise_error=False, timeout=180)

result = {}

for i,g in enumerate(task):

result.update(g.value)

4.2.2 漏洞检测模块

(1)端口漏洞检测模块

  1. SSH弱密码检测(22端口) 22是Linux常用的SSH远程登录控制端口,本工具使用了笛卡尔积的方法组合用户自定义的账号和密码尝试对目标服务器进行不断地登录操作,直到登录成功。

添加图片注释,不超过 140 字(可选)

图4-8 SSH爆破运行图

  1. FTP弱密码检测(21端口) FTP通常用于服务器的文件管理,21端口是FTP常用的登录端口。在本工具中需要对目标服务器进行FTP的未授权访问检测和不断地进行弱密码的登录尝试操作。

添加图片注释,不超过 140 字(可选)

图4-9 扫描FTP匿名登陆

添加图片注释,不超过 140 字(可选)

图4-10 FTP爆破运行图

  1. 多种数据库的端口弱密码检测

除了SSH、FTP外,还有多种数据库的端口可以进行漏洞的检测,如常见的3306(MySQL)、1443(Myssql)、27017(MongoDB)、6379(Redis)、5432(Postgresql)端口等,都可能存在未授权或弱密码等漏洞,需要进行对应的检测操作。

添加图片注释,不超过 140 字(可选)

图4-11 数据库端口检测

下面是典型MySQL数据库爆破的代码:

def mysql(self, ip):

for user in users:

or pwd in passwd:

try:

pwd = pwd.replace('{user}', 'root')

conn = MySQLdb.connect(host=ip, user=user, passwd=pwd)

console('dbscan',ip+':3306','Mysql存在弱口令: {} {}'.format(user,pwd))

conn.close()

break

except Exception as e:

Pass

(2)目录地址检测模块

  1. 后台地址发现 网站后台地址的发现首先会使用/admin.php, /login.php, /Admin_login 等常用后台地址与域名进行拼接,再向这个链接发起请求,若返回的状态码是200,且返回的报文中存在admin、login、登录、后台、管理等字样,即认定为此页面为网站管理后台。

添加图片注释,不超过 140 字(可选)

图4-12扫描后台运行图

  1. 敏感文件发现

在本工具中,就准备了大量的常见的备份文件名称与敏感的后缀名称,首先会使用笛卡尔积的方式把两者组合成一个重要文件的名称,再与域名拼接后发送数据探测,若是存在该路径,则记录下文件的名称、文件的大小等重要信息。由于需要探测的路径相当多,所以这里使用的是多线程的扫描方式扫描,大大提升了扫描的速度。

添加图片注释,不超过 140 字(可选)

图4-13 扫描敏感文件运行图

(3)网站敏感信息爬取

  1. 网页敏感信息爬取 在本工具中,首先对整个网页进行爬取与解析,再使用多线程的方式在页面中使用正则匹配的方式进行提取数据,并记录下URL地址与敏感的信息。 表4-1 HTML的正则匹配语句

匹配类型

正则语句

说明

Email

\b[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)+

匹配邮箱地址

手机号

\b(?:139|138|137|136|135|134|147|150|151|152|157|158|159|178|182|183|184|187|188|198|130|131|132|155|156|166|185|186|145|175|176|133|153|177|173|180|181|189|199|170|171)[0-9]{8}\b

匹配139|138|137|136|135|134|147|150|151|152|157|158|159|178|182|183|184|187|188|198|130|131|132|155|156|166|185|186|145|175|176|133|153|177|173|180|181|189|199|170|171开头的11位手机号码

IP

(?<=<!--).*((?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)).*(?=-->)

匹配IP地址

添加图片注释,不超过 140 字(可选)

图4-13 敏感信息获取

  1. JavaScript文件敏感信息爬取

在本工具中,向网站发起请求后,若页面中存在JavaScript文件链接,着保存为一个列表,再重新对列表中的这些JavaScript链接发起请求,探测其中的内容是否存在着敏感信息。

表4-2 JavaScript的正则匹配语句

匹配

正则语句

说明

URL

\b(?:http:|https:)(?:[\w/\.]+)?(?:[a-zA-Z0-9_\-\.]{1,})\.(?:php|asp|ashx|jspx|aspx|jsp|json|action|html|txt|xml|do|js)\b

匹配URL,如http://example.com/index.jsp

Token/密码

\b(?:secret|secret_key|token|secret_token|auth_token|access_token|username|password|aws_access_key_id|aws_secret_access_key|secretkey|authtoken|accesstoken|access-token|authkey|client_secret|bucket|extr|HEROKU_API_KEY|SF_USERNAME|PT_TOKEN|id_dsa|clientsecret|client-secret|encryption-key|pass|encryption_key|encryptionkey|secretkey|secret-key|bearer|JEKYLL_GITHUB_TOKEN|HOMEBREW_GITHUB_API_TOKEN|api_key|api_secret_key|api-key|private_key|client_key|client_id|sshkey|ssh_key|ssh-key|privatekey|DB_USERNAME|oauth_token|irc_pass|dbpasswd|xoxa-2|xoxrprivate-key|private_key|consumer_key|consumer_secret|access_token_secret|SLACK_BOT_TOKEN|slack_api_token|api_token|ConsumerKey|ConsumerSecret|SESSION_TOKEN|session_key|session_secret|slack_token|slack_secret_token|bot_access_token|passwd|api|eid|sid|qid|api_key|apikey|userid|user_id|user-id|uid|private|BDUSS|stoken|imei|imsi|nickname|appid|uname)["\s]*(?::|=|=:|=>)["\s]*[a-z0-9A-Z]{3,64}

匹配泄露的token或者密码,如ssh_key =1111111111,匹配的位数由3位到64位

域名

((?:[a-zA-Z0-9](?:[a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+(?:biz|cc|club|cn|com|co|edu|fun|group|info|ink|kim|link|live|ltd|mobi|net|online|org|pro|pub|red|ren|shop|site|store|tech|top|tv|vip|wang|wiki|work|xin|xyz|me))

匹配常见域名,如www.example.com

添加图片注释,不超过 140 字(可选)

图4-14 敏感信息泄露

(4)Xray漏洞扫描模块

由于Xray目前是闭源的,所以只能使用Python的子进程进行调用。用户可自定义Xray所要扫描的插件,工具扫描完成后会输出一个json文件,里面存放的是扫描出来的WEB漏洞信息。然后工具会读取这个json文件再进行存放进数据库的操作。

4.2.3 漏洞利用模块

(1)POC模块

POC主要是漏洞存在的概念验证脚本。由于Xray工具是一款闭源的工具,所以在本工具中也提供了自行添加POC检测的模块。用户只需要在此按特定的格式进行编写POC,向服务器发送验证漏洞的数据包,放置在特定的目录下,即可增加工具的POC验证。该模块会随机地打乱加载脚本的顺序进行检测,并且考虑到运行速度的问题,使用了多线程的方式进行POC的扫描,大大提升了运行的效率。

添加图片注释,不超过 140 字(可选)

图4-15 POC模块代码实现

(2)EXP模块

EXP主要是漏洞利用的脚本。由于EXP模块存在一定的危险性,容易对目标服务器造成损坏,所以存放在此目录下的漏洞利用脚本单独分开使用,并不在工具中进行批量的数据发送操作。用户可以把与POC对应的EXP脚本放置于此模块中,当需要获取到服务器的权限时,再进行调用EXP模块。

4.2.4 结果输出模块

(1)报告输出模块

渗透测试报告是渗透测试中的非常重要的一部分,也是结果输出的呈现。在本工具中。使用的是Python的python-docx模块,会把信息收集、漏洞检测这两部分检测的内容写入到docx文档中去。

添加图片注释,不超过 140 字(可选)

图4-16 报告内容

(2)微信通知模块

在报告生成后,会在微信上使用“Server酱”这款第三方工具通知使用者,目标的自动化渗透扫描已经完成,并显示相关的目标扫描信息,如扫描的目标的ip、域名、存在的风险漏洞的个数等信息。其实现的方式是通过POST特定的数据包到Server酱的账户提供的API,即可在微信上显示相关的信息。

添加图片注释,不超过 140 字(可选)

图4-17 Server酱提示的信息

4.2.5 其他工具模块

(1)输出显示模块

在软件banner信息这里我使用了Python的第三方工具Figlet来打印本工具的banner信息“aptest”。而在命令行中为了规范输出的模板,统一使用“时间-任务-目标-信息”的方法来展示,时间使用蓝色显示,任务使用红色显示,目标使用白色显示,信息使用绿色显示。

添加图片注释,不超过 140 字(可选)

图4-18 命令行显示例子

(2)随机UA模块

为了让请求的信息更加地随机多样,本工具增加了随机UA模块,不仅随机化了UserAgent,还增加了随机的Referer字段,这个字段主要是让服务器知道网站范围跟来源的,还有就是增加了X-Forwarded-For、X-Real-IP的字段,若是目标服务器没有做好校验,则接收到这两个字段时就会认为是这个假冒的IP发起的请求,从而绕过一些服务器的防护。

(3)数据请求模块

由于在扫描网站时需要进行多次的网页交互,Python中原始的request模块需要多次进行调用,但在很多情况下无法满足,所以需要进行重新封装这个模块。在封装之后的Request类中,无论是GET请求还是POST请求,都设定了超时的时间,并且会进行验证URL使用的是HTTP还是HTTPS的协议。

(4)目标解析模块

在渗透测试项目或者是漏洞挖掘众测项目里面,一般都是需要对大量的资产目标进行扫描的,并且这些资产目标并不全是域名,有的可能只是端口,有的可能会缺少http://或者是https:// 所以系统的对目标输入的第一步应该是清洗目标所输入的数据,规范为统一的格式。

清洗完数据的格式后,还需要对目标数据进行区分,如根据URL得到主机的Host地址,如根据http://1.1.1.1:80则返回1.1.1.1,根据http://www.example.com/index.php?id=1则返回www.example.com,根据域名返回服务器的IP地址等,然后再进行目标的去重的操作。

(5)数据库存储模块

数据库存储模块使用的是SQLite轻量级的数据库系统,在本工具把管理数据库的相关函数封装为一个数据库管理的类,再在这个类中进行数据库的创建、存储和查询等操作。

4.3 本章小结

本章主要介绍了系统各个功能模块的实现,介绍了信息收集的模块中探测CDN、探测WAF、IP归属地、网站ICP备案、网站whois信息查询、子域名爆破、WEB信息收集、端口服务信息获取的实现方式,介绍了漏洞检测中端口漏洞检测的方式,讲解了敏感目录地址是如何发现的,介绍了爬取网站敏感信息的方式。还介绍了漏洞利用模块中有POC和EXP的不同,简单讲解了输出显示、随机UA、数据请求、目标解析这几个模块的实现原理。

  1. 系统测试

5.1 测试目的

为了验证了系统整体的运行情况,关键测试信息收集、漏洞检测、漏洞利用、结果输出这四大模块的运行情况,对比优缺点,提出可改进的方法。

5.2 测试环境

由于漏洞扫描的行为属于敏感操作,不能够随意地扫描他人的服务器,又因为考虑到测试的成本、测试环境的多样性,综合考虑之下,在WEB层面决定在一台服务器上以一个主域名部署多个子域名网站,各个网站的软件版本皆不一样且存在特定的漏洞,系统层面上,部署多个端口层面的漏洞,以测试自动化渗透工具的扫描检测能力。

表5-1 测试服务器环境

协议

HTTP

IP

123.207.100.38

域名

xindunt.cn

操作系统

CentOS 7.7.1908

性能

1 核 1 G

硬盘大小

50 G

宝塔面板

免费版 7.1.1

Apache

2.4.41

PHP

5.6

MySQL

5.6.47

Pure-Ftpd

1.0.49

MongoDB

4.0.10

Redis

5.0.7

Memcached

1.5.22

PostgreSQL

9.6

为了测试系统的准确性,在WEB层面上,使用子域名部署了6个存在漏洞危害极大的CMS系统作为目标,并且在主域名上,放置了个人的敏感信息。在操作系统层面上,设置了SSH、FTP的弱口令登录,设置了数据库MySQL、MongoDB、Redis、Memcached、PostgreSQL的未授权和弱口令登录。

表5-2 测试目标网站

子域名

目标系统

存在漏洞

xindunt.cn

Tyecho版本1.0 (14.5.26)

前台代码执行漏洞

php.xindunt.cn

ThinkPHP 5.0.10

远程命令执行漏洞

abc.xindunt.cn

PHP CMS V9.6.0

任意文件上传漏洞

sea.xindunt.cn

SeaCMS V6.4

任意代码执行漏洞

oa.xindunt.cn

WordPress 4.6.17

任意代码执行漏洞

test.xindunt.cn

苹果CMS V8

远程命令执行漏洞

5.3 测试内容与结果

5.3.1 信息收集

在信息收集模块中,能够非常流畅地获取到目标服务器的信息内容,扫描一个开了8个端口,6个网站的服务器共测试了三次,每次测试速度会随着网络的波动而影响,平均速度在82秒左右即可完成一个网站从系统到WEB层面的信息获取,目前这个速度我认为是可以的。

添加图片注释,不超过 140 字(可选)

图5-1 信息收集-服务器信息

在子域名爆破模块中,并发扫描的速度也是非常快,我的服务器上存在的6个子域名,只花费了3秒的时间就扫描出来了。而在子域名爆破的字典中,则存在则1334条二级域名的检测,说明这比单线程扫描要快上非常多。

添加图片注释,不超过 140 字(可选)

图5-2 信息收集-子域名

而在端口扫描模块上,由于使用了Nmap进行操作系统的识别,这需要进行一次完整的TCP连接,会出现两到三秒阻塞的情况。在调用Masscan进行端口扫描,这里几乎没有卡顿的情况即能获取服务器开放的端口。再使用Nmap获取到Masscan扫描到的端口进行服务的banner识别,由于也是完整的TCP连接,所以此处等待的时间会比较久,一般需要10秒才能完成此操作,但是此处能够完整正确地识别出端口服务的信息,对后面的渗透操作有利,我认为是值得的。

添加图片注释,不超过 140 字(可选)

图5-3 信息收集-端口及服务

WEB信息识别的速度也非常快,几乎是一秒内能识别3到5个网站的架构,但是这里存在则一点问题,就是没有做到去重的操作,比如www.example.com和example.com其实是同一个页面,但是在这个工具中还是加入了检测的队伍中,会使得工具做多了无用的工作,这个问题在后续打算使用网页的MD5值进行校验来对比是否为同一个页面来解决。

添加图片注释,不超过 140 字(可选)

图5-4 信息收集-WEB信息

5.3.2 漏洞检测

由于SSH和FTP的爆破登录、敏感信息和敏感文件的发现都使用了多线程进行调度,所以运行速度都非常快。但是在调用Xray时,多个子域名网站,无法做到多子进程地进行调用,这个有待后续的研究,目前是调用Xray工具进行逐个目标扫描操作。

添加图片注释,不超过 140 字(可选)

图5-5 漏洞检测-SSH爆破

添加图片注释,不超过 140 字(可选)

图5-6 漏洞检测-FTP爆破

敏感信息泄露检测使用的是多线程进行检测,速度极快,但是还可以进行优化,在渗透中主要是这些敏感信息有用,重复出现即可不必显示,这里可以做一个去重的操作。

添加图片注释,不超过 140 字(可选)

图5-7 漏洞检测-敏感信息爬取

网站的后台检测是通过网站中是否包含关键字来进行判断的,如果后台没有包含到准确的关键字即不会发现到网站后台,这个后续还需要扩大常见后台的词语以匹配正确的网站后台。

添加图片注释,不超过 140 字(可选)

图5-8 漏洞检测-查找网站后台

此处也是使用多线程来发现网站的文件是否泄露了,2560个数据探测只花费了2分钟的时间,并且返回了数据的大小,渗透测试来说非常有帮助。

添加图片注释,不超过 140 字(可选)

图5-9 漏洞检测-敏感文件探测

调用Xray工具扫描出来的漏洞会以红色字体在命令行中出现,由于开发能力有限,目前使用的是子程序调用Xray进行扫描,速度上不占优势。但是用户可以自定义扫描所用的插件,增强了工具本身的实用性。

添加图片注释,不超过 140 字(可选)

图5-10 漏洞检测运行图6

5.3.3 漏洞利用

由于漏洞利用模块是单独使用的,这里我以PHPCMS V9.6.0举例,在漏洞检测模块中检测到此网站存在漏洞,则可以在使用EXP模块中的脚本来获取服务器的权限。由于此CMS版本存在着任意文件上传漏洞高危漏洞,若脚本正常运行,在命令行下可输出webshell的地址与连接密码,可获取目标服务器的权限。

添加图片注释,不超过 140 字(可选)

图5-11 EXP模块Getshell

添加图片注释,不超过 140 字(可选)

图5 -12 使用EXP Getshell验证

5.3.4 结果输出

当检测结束后,会生成精美的渗透测试报告,里面填写了在工具中收集到的信息与检测到的漏洞情况。WEB扫描出的漏洞保留了检测出漏洞的请求数据包,以便复现检测出来的漏洞。

添加图片注释,不超过 140 字(可选)

图5-13 报告首页

添加图片注释,不超过 140 字(可选)

图5-14 报告页1

添加图片注释,不超过 140 字(可选)

图5-15 报告页2

添加图片注释,不超过 140 字(可选)

图5-16 报告页3

总结与展望

项目总结

本文最初的目的就是希望能够设计出一款能够进行自动化渗透的工具出来,以减轻渗透测试过程中的一些可避免人工的重复操作步骤,从而降低测试人员的成本,提高渗透测试的效率。由于本人的软件开发能力有限,此工具还有很多可以完善的地方,不过整体的运行情况还算不错。

在本次的毕业设计里,我对很多知识都有了进一步的了解,同时我也学会了很多新颖的技术,使自己的安全开发能力有了进一步的提升。我原本以为我是学安全的,不用去学习开发技术,但是经过了这次的毕业设计,我发觉这是一个错误的观点。在参加渗透测试的过程当中,需要用到非常多的渗透测试技巧,而这些手法一般都是变化多端的,所以没有通用的工具进行测试,这都是需要有开发的技术进行定制化的编写,才能达到自己希望的情况实现。

未来展望

本工具目前已经实现了正常渗透测试里面大部分人工需要做的操作,但是仍然有很多可疑改进的地方,如子域名发现的方法,还可以结合Shandon、Fofa、Zoomeye等网络搜索引擎进行发掘,而整个项目则是可以封装在Docker环境里面打包运行。再考虑到运行的性能,扫描器还可以做成分布式的对目标进行扫描。

如今各大厂商都在争先恐后地在做自动化渗透的这些项目,说明自动化渗透会是一种未来的趋势。希望我的毕业设计能够继续开发下去,并且在Github上进行开源,为我们国家的网络安全事业做出一份贡献。

参考文献

  1. 熊羿. 自动化渗透测试平台的设计与实现[D].北京邮电大学,2019.

  2. 李玉香,王孟玉,涂宇晰.基于python的网络爬虫技术研究[J].信息技术与信息化,2019(12):143-145.

  3. 张子浩,轻量级数据库Sqlite的使用[Z],https://www.cnblogs.com/ZaraNet/p/10188893.html,2018-12-28

  4. 冉世伟. 基于Masscan漏洞扫描技术的研究[D].南开大学,2016.

  5. 王凯,李志超,王荣昌,高文清,王微雅,王炅.基于Nmap&Nessus的漏洞扫描[J].通信电源技术,2020,37(03):135-136.

附录

自动化渗透工具的数据库的设计所需要的表:

端口信息表(port)

数据表项

简述

数据类型

长度

id

主键

INTEGER

time

扫描时间

varchar

255

ip

主机IP地址

varchar

255

domain

域名

varchar

255

service

开放的服务

varchar

255

port

开放的端口

varchar

255

other

其他信息

varchar

255

网站信息表(web_info)

数据表项

简述

数据类型

长度

id

主键

INTEGER

time

扫描时间

varchar

255

domain

域名

varchar

255

ip

真实IP

varchar

255

waf

WAF探测情况

varchar

255

cdn

CDN探测情况

varchar

255

address

主机存放的地址

varchar

255

ICP_check

ICP备案信息

varchar

255

whois_check

Whois查询信息

varchar

255

subdomain

子域名

varchar

255

title

网站标题

varchar

255

apps

网站架构

varchar

255

os

操作系统

varchar

255

敏感信息表(crawl_info)

数据表项

简述

数据类型

长度

id

主键

INTEGER

domain

域名

varchar

255

crawl

爬取敏感信息

varchar

255

kind

类型

varchar

255

URL

地址

varchar

255

敏感文件泄露表(dir_scan)

数据表项

简述

数据类型

长度

id

主键

INTEGER

domain

域名

varchar

255

rsp_code

响应码

varchar

255

rsp_len

varchar

255

title

标题

varchar

255

dir

敏感文件

varchar

255

漏洞信息表(vuln)

数据表项

简述

数据类型

长度

id

主键

INTEGER

domain

域名

varchar

255

target

漏洞地址

varchar

255

request

请求体

varchar

255

response

响应体

varchar

255

playload

攻击载荷

varchar

255

extra

其他信息

varchar

255


http://www.kler.cn/a/488589.html

相关文章:

  • 通过gradle发布aar或jar携带sources-jar到maven nexus
  • 简聊MySQL的顺序读写和随机读写
  • 软路由如何实现电脑手机一机一IP
  • ORB-SALM3配置流程及问题记录
  • 基类指针指向派生类对象,基类指针的首地址永远指向子类从基类继承的基类首地址
  • Python爬虫应用领域
  • CoreDNS 概述:云原生 DNS 服务的强大解决方案
  • springboot 加载本地jar到maven
  • Docker Compose etcd 服务
  • iOS 中spring动画的使用
  • 只谈C++11新特性 - std::chrono
  • 【YOLOv8杂草作物目标检测】
  • 添加到 PATH 环境变量中
  • 云商城--基础数据处理和分布式文件存储
  • Spring Security(maven项目) 3.0.2.5版本上
  • 12 USART串口通讯
  • IEC61850遥控-增强安全选控是什么?
  • 安卓硬件加速hwui
  • 一个基于Spring Boot的简单网吧管理系统
  • 实现Android应用开机自启功能
  • 【免费开源】积木JimuBI大屏集成ruoyiVue
  • Nginx反向代理请求头有下划线_导致丢失问题处理
  • yum系统报错:SyntaxError: multiple exception types must be parenthesized
  • 【git】-2 分支管理
  • 基于Springboot + vue实现的办公用品管理系统
  • Redis 安装与 Spring Boot 集成指南