获取有关IP地址的数据
know_your_ip的Python项目详细描述
了解您的IP
获取有关IP地址的数据。了解它们的位置(纬度/经度, 国家、城市、时区),无论是否被列入黑名单(根据 abuseipdb , virustotal , ipvoid ,等等)和什么(以及什么时候 黑名单),哪些端口打开,哪些服务正在运行(通过 shodan ,以及ping或发出时获得的内容 追踪路线。
如果您对该软件包的潜在应用感兴趣,我们有一个 演示文稿on 它在网络安全分析工作流程中的应用。
你可以用两种不同的方式使用这个包。你可以从外壳中调用它,也可以 将其用作外部库。从shell中,您可以运行 know\u your\ip 。它需要一个csv 只有一列IP地址(示例输入文件: input.csv ), 有关API密钥的详细信息(请参见"know-your-ip/know-your-ip.cfg" rel="nofollow">know-your-ip.cfg) 以及您希望从哪个服务中选择哪些列(在这个示例columns.txt中) 并将请求的结果附加到IP列表(示例输出文件: output.csv )。 这个简单的设置允许您轻松地混合和匹配。
如果要将其用作外部库,包也会提供该功能。查询ip的函数依赖于 在 知道你的IP 的相同配置文件上,并获取一个IP地址。我们在下面说明它的用途。你可以 还可以从特定服务获取数据。例如,如果你只关心获取maxmind数据, 使用 maxmind_geocode_ip 。如果希望从abuseipdb获得数据,请调用 abuseipdb_api 函数等。 这些函数仍然依赖于全局配置和列文件。关于如何使用包的示例, 请参见 example.py 或Jupyter笔记本 example.ipynb
功能简介
地理编码IP :没有简单的方法可以识别 IP。地点很典型根据延迟和 拓扑结构以及来自私有和公共数据库的信息。 例如,一个算法从 各种"地标",计算最后一个 路由器在IP之前从地标使用网速,并建立 路由器必须存在的边界,然后 它的质心。这些推论的准确性一般是 未知,但可能相当"差"。例如,大多数地理位置 服务部门把我的IP放在离我所在位置30英里以外的地方。 尝试http://www.geoipinfo.com/" rel="nofollow">http://www.geoipinfo.com/
脚本提供了到maxmind city lite的钩子 dB<a/>期待一个 要在其中运行脚本的文件夹中的数据库副本。 要下载数据库,请转到 这里 。这个 函数 maxmind_geocode_ip 返回城市、国家、纬度/经度等。
时区 :理论上,有24个时区。实际上,一些 更多。例如,像印度这样的国家有半小时的补偿。 基于 经度为15度。对于实际映射,一个策略 将(最近的)城市映射到时区(回想一下 你可以在电脑的时间/日期程序中滚动。) 获取时区的各种服务,包括但不包括 限于,
为了方便起见,我们选择了python hook to nodejs lat/long to 时区。为了得到时区,我们先 需要对IP进行地理编码(见上文)。函数 tzwhere_timezone 纬度/经度,返回时区。
ping :发送ICMP回显请求并等待答复。 测量往返时间(最小、最大和平均),报告错误和 数据包丢失。如果有超时,函数将不产生任何结果。如果 有一个回复,它返回:
packets_sent, packets_received, packets_lost, min_time, max_time, avg_time
traceroute :发送一个udp(或icmp)数据包。为如何 请求被路由,记录路由器和时间。
背景知识 :
- censys.io :执行ZMAP和ZGRAB扫描 IPv4地址空间。要使用censys.io,必须先注册。 一旦注册并拥有api密钥,就可以将 这里 。函数接受一个IP并返回 ASN、时区、国家等。有关完整列表,请参阅 https://censys.io/ipv4/help
- shodan.io :扫描连接到 Internet提供服务、开放端口等。您必须注册才能使用 肖丹尼。查询要花钱。一旦你注册并拥有 API密钥,放在这里。脚本实现 两个api调用:shodan/host/ip和shodan/scan。函数接受 IP和返回的列表
黑名单和背景信息 :服务数量 保持黑名单是巨大的。下面是一些 服务:tornevallnet,黑名单,spamhaus,mywot,spamrats, 马尔科德,斯皮耶,谷歌安全兄弟wsing、projecthoneypot等 服务报告是其他服务的结果,作为它们的一部分 结果。在这个脚本中,我们实现了以下三个钩子:
- virustotal.com :一家谷歌公司 分析并跟踪可疑文件、URL和IP。你必须 注册使用virustotal。一旦注册并拥有api 键,在这里输入。函数实现 检索IP地址报告方法。
- abuseipdb.com :跟踪IPS上的报告。 必须注册才能使用API。一旦你注册并拥有 API密钥,放在这里。有一个限制 每月5千平。我们在这里实现的函数是 由于api不返回 提交的报告。
- ipvoid.com :跟踪有关IP的信息。 没有api。我们搜集IP的信息,包括状态 在各种黑名单网站上。