前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python-Iocextract:高级入侵威胁标识符IoC提取工具

Python-Iocextract:高级入侵威胁标识符IoC提取工具

作者头像
FB客服
发布于 2019-06-20 13:00:28
发布于 2019-06-20 13:00:28
2.3K00
代码可运行
举报
文章被收录于专栏:FreeBufFreeBuf
运行总次数:0
代码可运行

工具介绍

Python-Iocextract是一款高级入侵威胁标识符IoC提取工具,它可以从文本语料库提取URL、IP地址、MD5/SHA哈希、电子邮件地址和YARA规则,其中还包括某些已编码或已被“破坏”的入侵威胁标识符。

因为网络犯罪分子为了防止暴露自己的恶意活动以及攻击内容,通常都会想办法“破坏”类似URL和IP地址这样的入侵威胁标识符。在这种情况下,有效提取和汇总这些IoC对于安全分析人员来说就非常有价值了。但不幸的是,对于现有的IoC提取工具来说,标准的正则表达式往往无法捕捉到这些东西。

比如说,下面这个样本就使用了括号来进行IoC隐藏:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
127[.]0[.]0[.]1

这种情况下,基于简单正则表达式匹配的工具就无法提取出这种IoC了。

但是对于Python-Iocextract来说,情况就不一样了。通过使用精心设计的正则表达式以及反混淆检测技术,我们既可以检测到“被破坏”的IoC,也可以还原初始的IoC,为分析人员节省了时间和精力。

工具安装

在使用Python-Iocextract之前,我们需要安装Python开发环境以及regex依赖。在UbuntuDebianLinux系统中,可以使用下列命令完成安装:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt-get install python-dev

接下来,使用pip命令安装iocextract:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install iocextract

Windows平台下,点击【这里】下载regex安装包:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install regex-2018.06.21-cp27-none-win_amd64.whl

工具使用

提取某些已被破坏的URL地址:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>>content = """... Ireally love example[.]com!...All the bots are on hxxp://example.com/bad/url these days....C2: tcp://example[.]com:8989/bad...""">>>import iocextract>>>for url in iocextract.extract_urls(content):...     print url...hxxp://example.com/bad/urltcp://example[.]com:8989/badexample[.]comtcp://example[.]com:8989/bad

如果匹配到多个正则表达式的话,可能会有某些URL地址出现两次。

如果有需要的话,你还可以还原IoC并移除某些常见的混淆技术:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>>for url in iocextract.extract_urls(content, refang=True):...     print url...http://example.com/bad/urlhttp://example.com:8989/badhttp://example.comhttp://example.com:8989/bad
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
你甚至还可以提取并解码十六进制编码或Base64编码的URL地址:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>>content ='612062756e6368206f6620776f72647320687474703a2f2f6578616d706c652e636f6d2f70617468206d6f726520776f726473'>>>for url in iocextract.extract_urls(content):...     print url...687474703a2f2f6578616d706c652e636f6d2f70617468>>>for url in iocextract.extract_urls(content, refang=True):...     print url...http://example.com/path

该工具中所有的extract_*函数返回的都是迭代器,而不是列表。因此,iocextract可以处理大量数据输入。但如果你想要迭代处理多次IoC,你将需要把结果存储为列表:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>>list(iocextract.extract_urls(content))['hxxp://example.com/bad/url','tcp://example[.]com:8989/bad', 'example[.]com','tcp://example[.]com:8989/bad']
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
命令行工具还包括:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$iocextract -husage:iocextract [-h] [--input INPUT] [--output OUTPUT] [--extract-emails]              [--extract-ips] [--extract-ipv4s][--extract-ipv6s]              [--extract-urls] [--extract-yara-rules][--extract-hashes]              [--custom-regex REGEX_FILE][--refang] [--strip-urls]              [--wide] AdvancedIndicator of Compromise (IOC) extractor. If no arguments arespecified,the default behavior is to extract all IOCs. optional arguments:  -h, --help            show this help message and exit  --input INPUT         default: stdin  --output OUTPUT       default: stdout  --extract-emails  --extract-ips  --extract-ipv4s  --extract-ipv6s  --extract-urls  --extract-yara-rules  --extract-hashes  --custom-regex REGEX_FILE                        file with custom regexstrings, one per line, with one                        capture group each  --refang              default: no  --strip-urls          remove possible garbage from the endof urls. default:                        no  --wide                preprocess input to allowwide-encoded character                        matches. default: no
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
目前,该工具只支持恢复URL、电子邮件以及IPv4地址。

Python-Iocextract支持的IoC

IP地址

1、 完全支持IPv4

2、 部分支持IPv6

URL地址

1、 协议标识符:http, https, tcp,udp, ftp, sftp, ftps

2、 [.]锚点

3、 十六进制编码URL:http, https, ftp

4、 URL编码URL:http, https, ftp, ftps, sftp

5、 Base64编码URL:http, https, ftp

电子邮件地址

支持部分@或at锚点

YARA规则

导入、包含和注释

哈希

1、 MD5

2、 SHA1

3、 SHA256

4、 SHA512

针对IPv4地址,支持扫描下列混淆技术:

针对电子邮件地址,支持扫描下列混淆技术:

针对URL地址,支持扫描下列混淆技术:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
一个基于Java的开源URL嗅探器
今天,我们很高兴做一个分享,因为我所在的 Linkedin 公司 开源了我们做的一个ULR探测工具:URL-Detector Java 库。 Linkedin 在每一秒钟,会检查数十万数量级的 UR
用户1667431
2018/04/18
1.7K0
一个基于Java的开源URL嗅探器
从基础到最佳实践:精通Python正则表达式
Python re模块精通:解锁Regex文本处理能力!从数据提取、用户验证到自动化任务,掌握字符类、量词、锚点等核心概念。更有re.search()、re.sub()等函数,结合IGNORECASE等修饰符,提升数据处理效率,玩转Cloud Native!
云云众生s
2025/03/20
2390
Machinae:一款信息收集自动化工具
Machinae这款开源工具可以帮助广大研究人员从各个开放网站/feed收集跟网络安全有关的数据,例如IP地址、域名、URL、电子邮件地址、文件哈希和SSL指纹等等。该工具受到了Automater的启发,旨在从以下四个方面提升原工具的功能:
FB客服
2019/06/18
7690
Python正则表达式入门到精通
正则表达式(Regular Expression)是一种用于模式匹配和文本处理的强大工具。在 Python 中,正则表达式通过 re 模块提供支持。本文将详细介绍 Python 中如何使用正则表达式,包括基础语法、常用函数、进阶用法及实际应用示例,帮助深入理解和高效使用正则表达式。
sergiojune
2024/06/25
3230
Python正则表达式入门到精通
Python正则表达式:面试中的难点与解题思路
Python正则表达式(regex)作为文本处理的强大工具,在编程面试中占据重要地位。然而,其复杂性和灵活性也使得它成为许多候选人的痛点。本文将深入剖析Python正则表达式面试中的难点问题,揭示易错点,并提供解题思路与代码示例,助您在面试中从容应对。
Jimaks
2024/04/18
1380
[Python攻防] 二.Python能做什么渗透?正则表达式、网络爬虫和套接字通信入门
Python黑帽第二篇文章将分享Python网络攻防基础知识,看看Python能做什么,以及正则表达式、网络爬虫和套接字通信入门基础。本文参考了i春秋ADO老师的课程内容,这里真心推荐大家去学习ichunqiu的课程,同时也结合作者的经验进行讲解。希望这篇基础文章对您有所帮助,更希望大家提高安全意识,也欢迎大家讨论。
Eastmount
2021/12/03
1.4K0
[Python攻防] 二.Python能做什么渗透?正则表达式、网络爬虫和套接字通信入门
whatweb----web指纹探测工具
WhatWeb是一款kali自带的工具。可以识别网站。它认可网络技术,包括内容管理系统(CMS)、博客平台、统计/分析包、JavaScript库、网络服务器和嵌入式设备。 WhatWeb有900多个插件,每个插件都可以识别不同的东西。它还可以识别版本号、电子邮件地址、帐户ID、web框架模块、SQL错误等。
cultureSun
2023/05/18
5130
curl和wget的真正区别!
说到curl和wget,大家的第一反应就是用来下载文件。是的,没有问题,那么除了下载功能,二者还有什么区别吗?或者说就没有区别了?今天就来简单讨论一下。
liuzhen007
2023/09/21
2.4K0
让你的 Linux 命令骚起来
本文将为读者提供许多不同 Linux 命令的简要概述。 将特别强调解释如何在执行数据科学任务的上下文中使用每个命令。 我们的目标是让读者相信这些命令中的每一个都非常有用,并且让他们了解每个命令在操作或分析数据时可以扮演什么角色。
叉叉敌
2020/01/27
2.3K0
【网络编程】正则表达式快速上手指南
可以通过 std::regex_constants 中的标志调整正则行为:
修修修也
2025/03/31
990
【网络编程】正则表达式快速上手指南
简单的 IOC 提取器
在安全领域中,个人或机构组织每周都会发出威胁情报报告,数量比较多,这些威胁情报报告中包含许多非常有价值的 IOC 情报,这些 IOC 能在一些 blog 结尾处或者给出的补充文档找到,有些很短,有些很长,但不管怎样,手动进行复制粘贴这些内容显得有点力不从心,好消息的是,在 Github 上有一些 IOC 自动提取器,以下只是做个小笔记展示如何使用 MSTICpy 库中的 IOCextractor 模块从一个链接当中取出 IOCs,包括其它任何源。
帝旭科技
2022/11/23
5440
简单的 IOC 提取器
Mitaka:针对开源情报收集任务的浏览器扩展
今天给大家介绍的是一款针对开源情报收集任务的浏览器扩展,这款扩展名叫Mitaka,希望该工具可以给广大研究人员的OSINT搜索研究提供帮助。
FB客服
2019/11/01
1.2K0
Mitaka:针对开源情报收集任务的浏览器扩展
如何使用Photon高效率提取网站数据
Photon提供的各种选项可以让用户按照自己的方式抓取网页,不过,Photon最棒的功能并不是这个。
知识与交流
2023/03/25
1.4K0
如何使用Photon高效率提取网站数据
C++正则表达式攻略:从基础到高级应用
正则表达式是一种用于匹配、搜索和编辑文本的字符串模式。它由一系列字符和特殊符号构成,可以灵活地表达文本的模式、结构和特征。正则表达式在各种编程语言和应用程序中广泛应用,包括C++。它可以用来在文本中查找特定模式的字符串、验证输入的格式、提取信息和进行文本替换等操作。
Lion 莱恩呀
2025/01/19
2710
C++正则表达式攻略:从基础到高级应用
30分钟玩转「正则表达式」
推荐阅读:Jeffrey Friedl 《精通正则表达式(第3版)》,本文是该书的读书笔记。
Yano_nankai
2020/12/01
9020
警惕!Python 中少为人知的 10 个安全陷阱!
原题:10 Unknown Security Pitfalls for Python
Python猫
2022/02/14
6500
《C++11》深入剖析正则表达式库:解锁文本处理的高效之道
在现代编程领域,文本处理是一项不可或缺的任务,而正则表达式无疑是这一领域的强大利器。C++11标准库的引入,为C++开发者带来了正则表达式库,极大地丰富了C++在文本处理方面的能力。本文将全方位、多角度地深入探讨C++11正则表达式库,从基本概念到高级应用,从理论到实践,助你彻底掌握这一高效工具。
码事漫谈
2025/01/15
3160
《C++11》深入剖析正则表达式库:解锁文本处理的高效之道
python核心编程(正则表达式)
with os.popen('who','r') as f: for eachLine in f: print(re.split(r'\s\s+|\t',eachLine.strip())) 18、实例tasklist
用户5760343
2022/05/14
1.5K0
python核心编程(正则表达式)
SQL Server 2005 正则表达式使模式匹配和数据提取变得更容易
目录 CLR 用户定义函数 模式匹配 数据提取 模式存储 匹配 在匹配项中进行数据提取 总结 尽管 T-SQL 对多数数据处理而言极其强大,但它对文本分析或操作所提供的支持却很少。尝试使用内置的字符串函数执行任何复杂的文本分析会导致难于调试和维护的庞大的函数和存储过程。有更好的办法吗? 实际上,正则表达式提供了更高效且更佳的解决方案。它在比较文本以便标识记录方面的益处显而易见,但是它的用途并不仅限于此。我们将介绍如何执行各种简单或令人惊异的任务,这些任务在 SQL Server™ 20
菩提树下的杨过
2018/01/22
6.7K0
30分钟玩转「正则表达式」
推荐阅读:Jeffrey Friedl 《精通正则表达式(第3版)》,本文是该书的读书笔记。
Yano_nankai
2018/10/08
1.9K0
30分钟玩转「正则表达式」
相关推荐
一个基于Java的开源URL嗅探器
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验