关于InfoHound
InfoHound是一款针对域名安全的强大OSINT工具,在该工具的帮助下,广大研究人员只需要提供一个Web域名,InfoHound就可以返回大量跟目标域名相关的数据。
在网络侦查阶段,攻击者会搜索有关其目标的任何信息,以创建一个档案,而这种档案可以帮助他确定进入目标组织的可能方式。InfoHound使用了公开资源情报(OSINT)技术来对目标域名执行被动分析,且整个过程中不需要与目标进行直接交互,即可提取给定域名的大量有价值数据。
该工具支持检索域名邮箱、相关人员信息、文件、子域名、用户名和URL地址,并且之后还会对这些提取到的信息执行后续详尽分析,以尝试提取出更多有价值的信息。
工具架构
工具安装
广大研究人员可以使用下列命令将该项目源码克隆至本地:
git clone https://github.com/xampla/InfoHound.git
然后切换到项目目录中,重命名项目的配置文件:
cd InfoHound/infohound
mv infohound_config.sample.py infohound_config.py
然后启动docker-compose即可:
cd ..
docker-compose up -d
现在,我们就可以在浏览器中访问下列地址来使用InfoHound了:
http://localhost:8000/infohound/
需要注意的是,你必须要先在infohound_config.py文件中添加所需的API密钥。
工具默认模块
InfoHound提供了两种不同类型的操作模块,一个负责检索数据,另一个则负责对检索数据进行深入分析以提取更多相关的信息。
检索模块
*模块名称* | *模块描述* |
---|---|
Get Whois Info | 查询相关的Whois信息 |
Get DNS Records | 查询DNS记录 |
Get Subdomains | 使用Alienvault OTX API、CRT.sh和HackerTarget作为数据源来搜索缓存的子域名 |
Get Subdomains From URLs | 检查所有的URL以发现新的子域名 |
Get URLs | 搜索Wayback缓存的所有URL,并将其存储到数据库中,之后可以有助于发现其他类似文件或子域名之类的数据条目 |
Get Files from URLs | 循环搜索数据库表中的URL以查找文件,并将其存储到文件数据库中已备后续分析,支持的文件类型包括:doc, docx, ppt, pptx, pps, ppsx, xls, xlsx, odt, ods, odg, odp, sxw, sxc, sxi, pdf, wpd, svg, indd, rdp, ica, zip, rar |
Find Email | 向Google和Bing发送查询请求以查找邮箱/邮件 |
Find People from Emails | 找到邮箱/邮件之后,该模块可以发现其背后的真实用户,并查找其用户名 |
Find Emails From URLs | 从URL路径检索所有的邮箱/邮件 |
Execute Dorks | 执行Dork |
Find Emails From Dorks | 从Dork执行尝试检索邮箱/邮件 |
分析模块
*模块名称* | *模块描述* |
---|---|
Check Subdomains Take-Over | 检查子域名是否可以被接管 |
Check If Domain Can Be Spoofed | 检查目标域名是否可以执行域名欺骗,以实现用户伪装 |
Get Profiles From Usernames | 从社交网络或在线服务根据用户名获取用户资料 |
Download All Files | 将文件数据库中存储的文件下载到"download_files" 文件夹中 |
Get Metadata | 从下载的文件中提取出所有的元数据,并存储到数据库中 |
Get Emails From Metadata | 由于某些元数据可能包含邮箱/邮件信息,该模块可以从所有元数据中检索邮箱/邮件信息,并将其存储到数据库中 |
Get Emails From Files Content | 从下载的文件中检索所有的邮件内容 |
Find Registered Services using Emails | 检查之前发现的邮箱是否注册过下列在线服务:Twitter, Adobe, Facebook, Imgur, Mewe, Parler, Rumble, Snapchat, Wordpress, Duolingo |
Check Breach | 检查目标邮箱是否在某次数据泄露事件中发生过泄漏 |
自定义模块
InfoHound还允许我们创建自定义模块,我们只需要将脚本添加到infohoudn/tool/custom_modules中即可。在下面的例子中,我们添加了一个自定义模块,该模块使用Holehe工具来检查之前搜索到的邮箱是否曾在Twitter、Instagram、Imgur等120多个网站上注册过:
# Import the packages you need
import trio
import httpx
import requests
from holehe import core
# Import the Django models you will work with
from infohound.models import Emails
MODULE_ID = "findRegisteredSitesHoleheCustomTask" # Set a module ID
MODULE_NAME = "Find sites with Holehe" # Set a module name
MODULE_DESCRIPTION = "Using Holehe tool, this task will find where an email has been used to create an account. Holehe checks more than 120 sites." # Set a description
MODULE_TYPE = "Analysis" # Set the type: Analysis or Retrieve
# This function is the only function it will be called by InfoHound
# Change its content and create other the functions if needed
def custom_task(domain_id):
trio.run(findRegisteredSitesHolehe, domain_id)
async def findRegisteredSitesHolehe(domain_id):
queryset = Emails.objects.filter(domain_id=domain_id)
for entry in queryset.iterator():
out = []
email = entry.email
modules = core.import_submodules("holehe.modules")
websites = core.get_functions(modules)
client = httpx.AsyncClient()
for website in websites:
await core.launch_module(website, email, client, out)
print(out)
await client.aclose()
services = []
for item in out:
if item["exists"]:
services.append(item["name"])
entry.registered_services = services
entry.save()
工具运行截图
许可证协议
本项目的开发与发布遵循AGPL-3.0开源许可证协议。
项目地址
InfoHound :【GitHub传送门】