Recon-ng信息收集的框架
Recon-ng是一个功能强大的信息收集框架,它专为渗透测试工程师设计,旨在提供一个可扩展的平台,用于执行各种信息收集任务。Recon-ng提供了许多内置的模块,以及一个灵活的API,使渗透测试工程师能够轻松地编写自己的模块和扩展。
在本文中,我们将详细介绍Recon-ng的各个方面,包括其功能、使用方法、内置模块和API等。我们还将探讨Recon-ng在渗透测试工程师工作流程中的作用,并提供一些有用的技巧和最佳实践。
## Recon-ng的功能
Recon-ng的主要功能是执行各种信息收集任务,包括但不限于:
1.在互联网上查找目标公司和个人的公共信息,如社交媒体、在线论坛、网站和搜索引擎等。
2.端口扫描和服务识别,包括基于Nmap和其他网络扫描工具的功能。
3.在目标网站上查找漏洞和弱点,包括Web应用程序漏洞、文件上传漏洞、SQL注入漏洞等。
4.查找目标公司和个人的电子邮件地址、电话号码和其他联系方式,以及他们的社交网络账户。
5.在目标网络上查找敏感信息,如未加密的数据库、敏感文件和配置文件等。
6.利用各种OSINT(开放源代码情报)工具和技术来获取目标公司和个人的信息。
Recon-ng还具有以下功能:
1.可扩展性:Recon-ng提供了一个灵活的API,使渗透测试工程师能够编写自己的模块和扩展。
2.自动化:Recon-ng可以自动化执行各种信息收集任务,从而节省时间和精力。
3.可视化:Recon-ng提供了一个Web界面和命令行界面,使渗透测试工程师能够可视化地查看和分析收集到的信息。
## Recon-ng的使用方法
Recon-ng可以在KaliLinux等Linux发行版上运行,也可以在Windows和MacOS X上运行。在Linux上安装Recon-ng非常容易,只需要在终端中输入以下命令:
```
sudo apt-get update
sudo apt-get installrecon-ng
```
安装完成后,可以通过以下命令启动Recon-ng:
```
recon-ng
```
启动后,Recon-ng将显示一个命令行界面,类似于Metasploit框架的界面。渗透测试工程师可以在这个界面中执行各种命令和操作,以执行信息收集任务。
Recon-ng的命令结构类似于Linux的命令结构,包括命令、选项和参数。以下是一些常用的Recon-ng命令:
1. help:显示帮助信息。
2.show:显示当前可用的模块或配置。
3. use:选择要使用的模块。
4. set:设置模块的参数。
5. run:运行当前选择的模块。
6.back:返回上一个菜单或退出Recon-ng。
以下是一个示例,演示如何使用Recon-ng来查找目标公司的公共信息:
1. 启动Recon-ng:
```
recon-ng
```
2. 显示可用的模块:
```
[recon-ng][default]> show modules
```
3. 选择要使用的模块:
```
[recon-ng][default]> use recon/domains-hosts/bing_domain_web
```
4. 设置模块的参数:
```
[recon-ng][bing_domain_web]> set source example.com
[recon-ng][bing_domain_web]> set pages 2
```
5. 运行模块:
```
[recon-ng][bing_domain_web]> run
```
执行完成后,Recon-ng将显示在Bing搜索引擎上找到的与example.com相关的网站列表。
## Recon-ng的内置模块
Recon-ng具有许多内置模块,可以执行各种信息收集任务。以下是一些常用的模块:
1.recon/domains-hosts/bing_domain_web:在Bing搜索引擎上查找与目标域名相关的网站。
2.recon/domains-hosts/google_site_web:在Google搜索引擎上查找与目标网站相关的网站。
3.recon/domains-hosts/brute_hosts:使用暴力破解技术查找目标网络中的主机。
4.recon/hosts-hosts/resolve:解析目标主机的IP地址。
5.recon/hosts-hosts/ipinfodb_lookup:查找目标主机的地理位置信息。
6.recon/hosts-hosts/ssl_san_lookup:查找目标主机的SSL证书中的主题备用名称(SAN)信息。
7.recon/hosts-ports/nmap:使用Nmap进行端口扫描和服务识别。
8.recon/hosts-ports/port_scan:使用TCPSYN扫描进行端口扫描。
以上只是一些常用的模块,Recon-ng还有许多其他的模块,可以执行各种信息收集任务。渗透测试工程师可以通过使用这些模块来收集有关目标公司和个人的各种信息。
## Recon-ng的API
Recon-ng提供了一个灵活的API,使渗透测试工程师能够编写自己的模块和扩展。该API基于Python编写,可以通过脚本调用。以下是一些常用的API函数:
1.add:向Recon-ng添加一个新的模块或资源。
2.get:从Recon-ng中获取一个模块或资源。
3.update:更新Recon-ng中的一个模块或资源。
4.delete:从Recon-ng中删除一个模块或资源。
5.execute:执行一个模块或任务。
以下是一个示例,演示如何使用Recon-ngAPI编写一个简单的模块来查找目标公司的电子邮件地址:
```
fromrecon.core.module import BaseModule
fromrecon.mixins.resolver import ResolverMixin
fromrecon.mixins.threads import ThreadingMixin
import re
classModule(BaseModule, ResolverMixin, ThreadingMixin):
meta = {
'name':'Company Email Address Harvester',
'author':'Your Name',
'version':'1.0',
'description': 'Harvest email addresses from target company domain.',
'query':'SELECT DISTINCT domain FROM domains WHERE domain IS NOT NULL',
'options': (
('threads', 10, True, 'Number of threads to use.'),
),
}
defmodule_run(self, domains):
for domainin domains:
self.alert('Harvesting email addresses for domain: %s' % domain)
try:
ip =self.resolve(domain)
url= 'https://www.whois.com/whois/%s' % domain
response = self.request(url)
emails = re.findall(r'[w.-]+@[w.-]+', response.text)
foremail in emails:
self.add_emails(email, domain=domain, source=url)
exceptException as e:
self.error(str(e))
continue
```
该模块通过访问whois.com网站来查找目标公司的电子邮件地址。在执行该模块之前,渗透测试工程师需要将其添加到Recon-ng中,使用以下命令:
```
[recon-ng][default]> module import /path/to/module.py
```
然后,可以使用以下命令运行该模块:
```
[recon-ng][default]> use module_name
[recon-ng][module_name]> run
```
##Recon-ng在渗透测试工程师工作流程中的作用
当渗透测试工程师在进行信息收集和侦察时,Recon-ng可以提供以下优势:
1.自动化信息收集:Recon-ng可以帮助渗透测试工程师自动化信息收集过程,从而节省时间和精力。通过使用Recon-ng的模块和数据源,渗透测试工程师可以轻松地收集大量有关目标的信息。
2.多样化的数据源:Recon-ng支持多种数据源,例如搜索引擎、漏洞数据库、DNS服务器等等。这些数据源可以提供不同类型的信息,帮助渗透测试工程师更全面地了解目标。
3.自定义和扩展:Recon-ng是一个开源工具,可以自定义和扩展。渗透测试工程师可以编写自己的模块或修改现有模块,以满足特定的需求。
4.易于使用:Recon-ng具有简单的命令行界面和直观的操作流程,使得渗透测试工程师可以快速上手并进行信息收集。
5.提高测试效率:通过使用Recon-ng的模块和数据源,渗透测试工程师可以收集更全面和准确的信息,从而提高测试效率和测试质量。
总之,Recon-ng是一个非常有用的工具,可以帮助渗透测试工程师在信息收集和侦察阶段更加高效地工作,并且可以提供更全面和准确的信息,以支持后续的渗透测试工作。
theHarvester:一款用于从公共资源中搜集电子邮件地址和域名的工具
theHarvester是一款用于从公共资源中搜集电子邮件地址和域名的工具,它可以帮助渗透测试工程师在信息收集和侦察阶段快速获取目标的相关信息。在本文中,我将从渗透测试工程师的角度详细介绍theHarvester的特点、使用方法和注意事项。
一、theHarvester的特点
1.多种数据源:theHarvester可以从多种数据源中搜集信息,包括搜索引擎(Google、Bing、Yahoo等)、PGPkey服务器、LinkedIn、Shodan等等。这些数据源可以提供不同类型的信息,例如电子邮件地址、域名、IP地址、证书等等。
2.多种输出格式:theHarvester支持多种输出格式,包括txt、csv、html、xml等等。这些输出格式可以方便地导入到其他工具中进行分析和处理。
3.自定义和扩展:theHarvester是一个开源工具,可以自定义和扩展。用户可以编写自己的插件或修改现有插件,以满足特定的需求。
4.易于使用:theHarvester有简单的命令行界面和直观的操作流程,使得渗透测试工程师可以快速上手并进行信息收集。
5.快速高效:theHarvester可以快速地搜集目标的相关信息,从而提高测试效率和测试质量。
二、theHarvester的使用方法
1. 安装theHarvester
theHarvester可以通过GitHub获取,使用以下命令进行安装:
```
$ git clonehttps://github.com/laramies/theHarvester.git
$ cd theHarvester
$ pip3 install -rrequirements.txt
```
2. 运行theHarvester
theHarvester的运行方式非常简单,只需要在命令行中输入以下命令:
```
$ python3theHarvester.py -d example.com -l 500 -b google
```
其中,参数-d指定目标域名,参数-l指定最大结果数,参数-b指定使用的数据源。在上面的例子中,我们使用Google作为数据源,搜索域名为example.com的相关信息,并且最多返回500个结果。
3.查看theHarvester的输出结果
theHarvester的输出结果可以保存到文件中,例如:
```
$ python3theHarvester.py -d example.com -l 500 -b google -f output.txt
```
输出结果将保存到output.txt文件中。可以使用文本编辑器或其他工具打开文件并查看结果。
4. 使用theHarvester的插件
theHarvester有多个插件可供使用,例如搜索电子邮件地址、搜索子域名、搜索IPv4地址等等。可以使用以下命令查看所有可用的插件:
```
$ python3theHarvester.py -h
```
可以使用以下命令使用特定的插件:
```
$ python3theHarvester.py -d example.com -l 500 -b google -m plugins_name
```
在上面的例子中,我们使用名为plugins_name的插件搜索域名为example.com的相关信息,并且最多返回500个结果。
三、theHarvester的注意事项
1.合法性:在使用theHarvester进行信息收集时,必须遵守相关法律法规和道德规范。搜集信息必须是合法的,并且必须获得相关方的授权。
2.数据质量:theHarvester获取的数据可能存在一定的误差和不完整性,因此在进行后续的渗透测试工作时需要进行进一步的验证和分析。
3.资源限制:theHarvester使用的搜索引擎和数据源存在一定的限制,例如每天的查询次数有限制,需要考虑这些限制对信息收集的影响。
4.数据保护:在使用theHarvester进行信息收集时,需要注意保护搜集到的数据的安全和隐私。可以使用加密、备份和访问控制等措施来保护数据。
总之,theHarvester是一款非常有用的工具,可以帮助渗透测试工程师在信息收集和侦察阶段快速获取目标的相关信息。但是,在使用theHarvester进行信息收集时,需要遵守相关法律法规和道德规范,注意数据质量和保护数据的安全和隐私。
Maltego:一款可视化的信息收集工具
Maltego是一款可视化的信息收集工具,它可以帮助渗透测试工程师在信息收集和侦察阶段快速获取目标的相关信息。在本文中,我将从渗透测试工程师的角度详细介绍Maltego的特点、使用方法和注意事项。
一、Maltego的特点
1.多种数据源:Maltego可以从多种数据源中搜集信息,包括搜索引擎(Google、Bing、Yahoo等)、社交媒体(Facebook、Twitter等)、公共数据库(Whois、DNS等)等等。这些数据源可以提供不同类型的信息,例如电子邮件地址、域名、IP地址、人员信息等等。
2.多种数据类型:Maltego可以处理多种数据类型,包括实体(如人员、组织机构、域名等)、关系(如拥有、联系、属于等)和属性(如电子邮件地址、IP地址等)。这些数据类型可以被组合和分析,以提供更全面的信息。
3.可视化展示:Maltego可以将搜集到的信息可视化展示,包括实体之间的关系、实体的属性等等。这种可视化展示可以帮助渗透测试工程师更直观地理解目标的结构和特征。
4.自定义和扩展:Maltego是一个开源工具,可以自定义和扩展。用户可以编写自己的转换器(transform)或修改现有转换器,以满足特定的需求。
5.易于使用:Maltego有直观的图形界面和简单的操作流程,使得渗透测试工程师可以快速上手并进行信息收集。
二、Maltego的使用方法
1. 安装Maltego
Maltego可以从官方网站(https://www.maltego.com/)下载安装包,也可以从GitHub获取源代码进行编译。在安装之前,需要注册一个Maltego账号。
2. 运行Maltego
运行Maltego后,需要选择一个工作区(workspace)和一个转换器(transform)。工作区用于存储和管理收集到的信息,转换器则是用来从不同的数据源中获取信息的工具。
3. 收集信息
在Maltego中,可以通过多种方式收集信息。以下是几种常用的方式:
(1)使用转换器:在Maltego中,转换器是用来从不同的数据源中获取信息的工具。用户可以选择一个转换器,输入目标信息(如域名、电子邮件地址等),然后运行转换器获取相关信息。转换器可以通过右键单击实体或者使用工具栏中的按钮运行。
(2)使用手动输入:用户可以手动输入实体和关系信息,然后通过Maltego的可视化展示来分析目标结构。
(3)使用外部工具:Maltego可以与其他工具(如Nmap、Metasploit等)集成使用,以便更全面地搜集信息。
4. 分析信息
收集到信息后,用户可以使用Maltego的分析工具来分析数据。以下是几种常用的分析工具:
(1)实体分析:用户可以选择一个实体,然后查看该实体的属性和关系。用户还可以查找该实体的关联实体,以获得更多的信息。
(2)路径分析:用户可以选择两个实体,然后查找它们之间的路径。路径可以显示实体之间的关系和属性信息。
(3)社交网络分析:用户可以选择一个实体,然后查找与该实体相关的其他实体。这些实体可以组成一个社交网络,用户可以通过这个网络来理解目标的组织结构和人员关系。
5. 生成报告
最后,用户可以使用Maltego的报告工具来生成报告。报告可以包含收集到的信息、分析结果和建议措施等内容,以便用户更好地理解目标和制定下一步的攻击方案。
三、注意事项
1.遵守法律法规:在使用Maltego进行信息收集和侦察时,需要遵守当地的法律法规。不得使用Maltego进行非法活动。
2.注意隐私和安全:在使用Maltego进行信息收集和侦察时,需要注意目标的隐私和安全。不得泄露目标的敏感信息或造成目标的损失。
3.注意误判和误导:在使用Maltego进行信息收集和侦察时,需要注意误判和误导。有些信息可能是虚假的或者误导性的,需要进行验证和分析。
4.使用合适的转换器:Maltego的转换器可以从多种数据源中获取信息,但不是所有的转换器都适合所有的目标。用户需要根据目标的特点选择合适的转换器。
总之,Maltego是一款非常实用的信息收集工具,它可以帮助渗透测试工程师快速获取目标的相关信息,并进行分析和报告。使用Maltego需要注意法律法规、隐私和安全、误判和误导等问题,同时需要选择合适的转换器和分析工具,以达到最好的效果。
本文暂时没有评论,来添加一个吧(●'◡'●)