如何在地图上轻而易举找到一个 Skype 用户的具体地理位置?#OSINT - iYouPort
如何在地图上轻而易举找到一个 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 文件,您可以在浏览器中打开该文件,然后您将看到一个可以浏览的地图。我看起来像这样:
您还可以探索从 geoip2 模块返回的其他字段,以输出城市和国家。也许你可以真正想象并抽出一个可以导入其他工具的 CSV 文件。全世界都在你的菜!⚪️
文章版权归原作者所有。