如何构建自定义的用户名侦查工具:开源调查技术

  • 本文将向您展示如何构建自己的自定义开源情报用户名搜索工具。

用户名是任何网络调查的主要利用点之一。

许多网站都使用用户名来识别个人帐户,并且,⚠️用户经常在其拥有帐户的许多网站和应用程序中保持相同的或相似的用户名。

这使得跨平台追踪目标人变得非常容易。

不足为奇的是,许多开源情报网站提供了跨多个平台进行用户名搜索的方法;但是,开发这样的站点的主要问题是,它不可能收集所有当前活动平台的列表。也就是难以全网覆盖

此外,某些网站可能会更改其URL结构或显示个人资料的方式。这就会“破坏”用户名搜索工具,并且通常需要用户等待程序员来修复被破坏的查询。

有些时候用户可能还希望运行一个自定义的网站列表,对于这些网站当前没有现成的用户名搜索工具可以支持它们,或者只想运行少数几个利基网站来进行更有针对性的追踪调查。

所有这些原因就是为什么 sinwindie 构建了 SULTAN,这是一个简单的(纯正的)Python 脚本,用于在用户指定的或通过众包的可扩展网站列表上运行用户名搜索。

SULTAN 旨在使最终用户能够仅针对他们想要的平台来创建自己的自定义用户名搜索工具,而不必等待站点或平台的所有者进行更新。

它的思考方式可以给未来的开发者一些提示,以便更加完善。

sinwindie

识别网站

目前并非所有网站都能与 SULTAN 一起使用。

在网址中包含用户名的网站是开源情报调查最容易定位的网站(例如这样:https://www.reddit.com/user/USERNAME/),因为可以使用脚本轻松地将 USERNAME 换成您当前正在搜索的任何用户名。

另外有些网站在 USERNAME 部分添加了不包含用户名的用户ID或其他数字标识符,这就很难办了。在这些情况下 SULTAN 难以运行查询,因为无法预测数字ID。

一个不起作用的网站的示例是 Meetup,它使用用户ID代替用户名 (例如这样 https://www.meetup.com/NAMEOFMEETUPGROUP/members/11401753/profile/)

sinwindie

设置电子表格

要为需要调查的网站组织 Python 脚本,您需要首先记下每个目标网站的四个主要变量。

对于您要在其上搜索用户名的每个网站,请将以下内容记入一个电子表格中(或使用在下文中 Github 页面提供的电子表格):

UrlA:这是URL的第一部分,将包括直到用户名之前的所有内容(不包括用户名本身)。请注意不要忘记斜杠或任何前导符号。

UrlB:这是URL的第二部分,将包括用户名之后的所有内容,也不包括用户名本身。 Tumblr 是使用以下格式的平台之一:用户名位于URL的其余部分之前而不是其后。

Error:这是导航到不存在的个人资料(用户名)时在网站上显示的一小段文字。有些通常使用“ 404”,有些则重定向到主页,有些则具有自己独特的有时是有趣的文本。这是运行 Python 脚本时要检查的变量。

不要依赖浏览器中显示的内容。使用一个小的请求脚本来返回 HTML,因此可以对其进行搜索。

Known Working:这是您跟踪已知有效用户名的位置,以便以后可以运行验证测试。

如果您搜索此用户名,但 SULTAN 无法在平台上找到此处列出的帐户,则需要返回并查找其他唯一错误文本,然后重试,或者查看是否有其他问题导致脚本无法提取已知有效的帐户。

一些站点无法正常工作,因为它们会动态加载 error text,而某些站点会在不同情况下使用多种版本的 error text,导致无法仅选择其中一个。

sinwindie

检查 Python 代码 

这里不会做更多深入解释,但似乎有必要向那些想进一步了解其工作原理但没有背景知识的读者解释一下该工具所使用的编码逻辑,这一点很重要。

首先,需要导入必要的模块以使代码正常运行(requests 和 xlrd)。如果您不定期在计算机上使用 Python,则可能需要在首次运行 SULTAN 之前安装 requests 和 xlrd。

接下来将提示用户输入用户名,并将该输入保存为变量。

使用 xlrd,将读取 Excel 文件的列,然后将我们在上面的电子表格中设置的变量分配给以后可以从中提取的数组。

这些部分中的每一个都将进入各自的数组,因此请确保所有数组中的项目数量相同,否则稍后将出现错误。

接下来将建立一个循环以获取用户名,并将其放在URL数组的两个部分(URL A 和 UR LB)之间。URL A +用户名+ URL B 将是您的变量。

连接到网站后,它将获取 HTML 并进行解析,以查找目标个人资料不存在时应显示的错误文本。

如果找到错误文本,则该帐户不应该存在,并且将继续到下一个URL。否则,如果 HTML 缺少错误文本,则该帐户应该存在,并且它将在转到下一个平台之前将完整的URL输出给用户。

结论

SULTAN 仍在进行中,还远远不够完善。因为某些网站确实会阻止搜索。

话虽这么说,所提供的逻辑和代码应该足以使您在一些主要站点上正常运行。您可以下载代码和示例 Excel 文件(开箱即用,可搜索约100个平台)。

Github:https://github.com/sinwindie/OSINT/tree/master/SULTAN ⚪️

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据