如何在地图上轻而易举找到一个 Skype 用户的具体地理位置?#OSINT

继续这个游戏。如果能在地图上显示 Skype 呼叫的具体位置,是不是很酷呢?你也能做到!

在本系列的第一部分中,我们介绍了如何从 SQLite 数据库中提取电子邮件帐户,并从 FullContact.com 中提取其他信息,以查找与这些电子邮件地址关 联的社交媒体帐户或其他在线配置文件。

在这篇文章中,我们将应用相同的技术,只是我们将提取IP地址,并地理定位它们,然后在地图上显示结果以可视化 Skype 呼叫的位置。大部分繁重的工作都是在上一篇文章中完成的,所以我们只是建立在这个基础上。

开始!

修改正则表达

首先从这里获取 sqlite_osint.py 脚本的副本,然后将其保存为 sqlite_osint_geoip.py。我们要做的第一件事是修改正则表达式以匹配 IP 地址而不是电 子邮件地址。把第10行替换成为:

regex_match = re.compile(“””^(25[0–5]|2[0–4][0–9]|[01]?[0–9][0–9]?).(25[0–5]|2[0–4][0–9]|[01]?[0–9][0–9]?).(25[0–5]|2[0–4][0–9]|[01]?[0–9][09]?).(25[0–5]|2[0–4][0–9]|[01]?[0–9][0–9]?)$”””)

呃,好像有点复杂?没关系,现在我们已经实现了这一点,让我们继续设置将 IP 地址转换为地理位置。

地理定位 IP 地址

虽然科学不精确,但有时尝试对 IP 地址进行地理定位仍然很有用。这涉及使用具有映射到地理位置的各种 IP 子网的数据库。其中一个经过验证的真实数 据库是 Maxmind Geolite 数据库(在此下载)。下载数据库后,您需要使用7-zip(Windows)或 OSX 解压缩,只需双击即可解压缩。记下生成的文件的 位置,因为我们很快就会需要它。

Maxmind还慷慨地为我们提供了一个 Python 模块(文档在这里),这将使我们能够轻松地使用他们的数据库格式,你可以使用 pip 安装它:

pip install geoip2

很棒,现在让我们为脚本添加更多内容。在所有 import 语句的下方,添加以下内容:

这将导入 geoip2 模块,专门用于处理数据库文件(第4行),然后通过传递数据库文件的路径(第6行)来初始化数据库读取器。路径应是电脑上的当 前位置。我们现在开始设置将IP地址解析到地理位置。接下来,我们需要安装必要的映射件。

使用 Folium 构建地图

这里有一个叫做 Folium 的 Python 模块。Folium 允许您使用 Leaflet 映射创建精彩的地图可视化,并输出到 HTML 文 件。要安装 Folium,正如您可能猜到的那样,您可以使用 pip:

pip install folium

现在让我们将导入语句添加到脚本上方的第5行,如下所示:

好了,现在我们准备开始做一些真正的编码了。我们将编写一些 Python 语句来遍历我们的正则表达式的结果列表,检查 Maxmind 数据库的 IP 地址,然后 将其放在我们可以在Web浏览器中浏览的地图上。让我们开始吧。

将它们整合在一起

首先下拉到脚本的底部,在我的编辑器中,在最后一个打印语句之后的第 52 行左右。删除遍历 match_list 的两行代码(第 52 和 53 行)并修改为以下代 码:

第 52 行:初始化 Folium Map 对象,我们将使用它来添加标记。标记为你在地图上看到的那些小气球。

第 53 行:用于跟踪我们已解决的IP地址的空列表,这样我们就不会对它们进行双重解析并使地图变得混乱。

第 55–62 行:遍历提取到的IP地址(第 55 行),然后创建一个字符串,该字符串将保留IP地址并使用.分割(第 57 行)。接下来,我们检查当前 IP 是否在我们已解析地址列表中(第 59 行),如果不是,则将其添加到列表中(第 62 行)。

这是我们脚本的清理部分,现在我们需要实际利用 geoip2 模块将 IP 地址转换成位置。我们现在添加此代码:

第 64 行:使用 reader 对象并传入我们希望解决的IP地址。

第 66 行:测试 record 变量是否为有效纬度,以确保我们获得了正确的位置。

第 68 行:创建一个包含 IP 地址的 Folium Popup对象。这样我们就可以点击地图上的小气球,让它显示位置后面的 IP。

第 69 行:通过传入包含我们已解析的纬度和经度的列表以及在第 68 行创建的 Popup 对象来创建 Folium Marker 对象。

第 71 行:使用 ip_map 对象并调用 add_child 函数将标记添加到地图中。

第 73 行:将地图保存到 index.html。 就是这样! 只需将一些代码添加到我们之前构建的代码中,我们就拥有了全新的功能。让程序运行起来吧!

让它运行起来

当您针对 Skype 数据库运行时,您应该会看到一些结果(假设您已拨打 Skype 电话)结果可能会让您大吃一惊,因为您可以直观地看到您拨打 Skype 电话的位置。像这样运行脚本:

python sqlite_osint_geoip.py -d /Users/justin/Desktop/main.db

[*] Scanning table…DbMeta
[*] Scanning table…AppSchemaVersion
[*] Scanning table…Contacts
[*] Scanning table…LegacyMessages
[*] Scanning table…Calls
[*] Scanning table…Accounts
[*] Scanning table…Transfers
[*] Scanning table…Voicemails
[*] Scanning table…Chats
[*] Scanning table…Messages
[*] Scanning table…ContactGroups
[*] Scanning table…Videos
[*] Scanning table…SMSes
[*] Scanning table…CallMembers
[*] Scanning table…ChatMembers
[*] Scanning table…Alerts
[*] Scanning table…Participants
[*] Scanning table…VideoMessages
[*] Scanning table…MediaDocuments
[*] Scanning table…Translators
[*] Scanning table…tracker_journal
[*] Scanning table…MessageAnnotations
[*] Scanning table…Conversations
[*] Discovered 52 matches.
[*] Finished creating map!

现在,请您检查与脚本相同的目录,您应该会看到一个 index.html 文件,您可以在浏览器中打开该文件,然后您将看到一个可以浏览的地图。我看起来像这样:

好酷!当然,您可以调整一些 Folium 代码以显示地图中的各种数据,或者输入不同的 SQLite 文件,并查看您可以创建哪种酷炫的可视化。

您还可以探索从 geoip2 模块返回的其他字段,以输出城市和国家。也许你可以真正想象并抽出一个可以导入其他工具的 CSV 文件。全世界都在你的菜!◾️

感谢帮助 iYouPort!
PayPal 捐赠渠道已开通
https://paypal.me/iyouport