Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
ics-forensics-tools — 开源取证框架,用于分析工业PLC元数据和项目文件。扫描ICS环境中的可疑工件,以支持事件响应和手动调查。 | Kitploit
工具/GitHubGitHub/microsoft/ics-forensics-tools
漏洞分析SCADA/ICS安全取证分析数字取证事件响应
GitHubmicrosoft/ics-forensics-tools

ics-forensics-tools

开源取证框架,用于分析工业PLC元数据和项目文件。扫描ICS环境中的可疑工件,以支持事件响应和手动调查。

查看仓库
371431年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

ICSpector: Microsoft ICS 取证框架

Microsoft ICS 取证工具框架是一个开源取证框架,用于分析工业 PLC 元数据和项目文件。
该框架为调查人员提供了一种便捷的方式,可以扫描 PLC 并识别 ICS 环境中的可疑工件,可用于手动检查、自动监控任务或事件响应操作,以检测遭到入侵的设备。
作为一款开源工具,ICS 取证工具允许调查人员审查输出并根据特定需求进行定制。

入门

以下说明将帮助您在本地机器上获取项目副本,并使其运行,以便进行开发和测试。

root@kitploit:~
git clone https://github.com/microsoft/ics-forensics-tools.git

前置条件

  • 安装 Python >= 3.9:https://www.python.org/downloads
  • 安装 Microsoft Visual C++ 14.0。可通过 "Build Tools for Visual Studio" 获取:https://visualstudio.microsoft.com/downloads/

安装

  • 安装 Python 依赖

    root@kitploit:~
    pip install -r requirements.txt
    

使用

通用应用参数:

特定插件参数:

命令行执行示例

root@kitploit:~
 python driver.py -s -v PluginName --ip ips.csv
 python driver.py -s -v PluginName --ip ips.csv --analyzer AnalyzerName
 python driver.py -s -v -c config.json --multiprocess

作为库导入的示例

root@kitploit:~
from forensic.client.forensic_client import ForensicClient
from forensic.interfaces.plugin import PluginConfig
forensic = ForensicClient()
plugin = PluginConfig.from_json({
    "name": "PluginName",
    "port": 123,
    "transport": "tcp",
    "addresses": [{"ip": "192.168.1.0/24"}, {"ip": "10.10.10.10"}],
    "parameters": {
    },
    "analyzers": []
})
forensic.scan([plugin])

架构

添加插件

在本地开发时,请确保将 src 文件夹标记为“Sources root”

  • 在 plugins 文件夹下,以您的插件名称创建新目录
  • 使用您的插件名称创建一个新的 Python 文件
  • 使用以下模板编写您的插件,并将 'General' 替换为您的插件名称
root@kitploit:~
from pathlib import Path
from forensic.interfaces.plugin import PluginInterface, PluginConfig, PluginCLI
from forensic.common.constants.constants import Transport


class GeneralCLI(PluginCLI):
    def __init__(self, folder_name):
        super().__init__(folder_name)
        self.name = "General"
        self.description = "General Plugin Description"
        self.port = 123
        self.transport = Transport.TCP

    def flags(self, parser):
        self.base_flags(parser, self.port, self.transport)
        parser.add_argument('--general', help='General additional argument', metavar="")


class General(PluginInterface):
    def __init__(self, config: PluginConfig, output_dir: Path, verbose: bool):
        super().__init__(config, output_dir, verbose)

    def connect(self, address):
        self.logger.info(f"{self.config.name} connect")

    def export(self, extracted):
        self.logger.info(f"{self.config.name} export")


  • 确保在 plugins 文件夹下的 __init__.py 文件中导入您的新插件
  • 在继承 PluginInterface 的类中,有 'config' 参数,您可以使用它来访问 PluginConfig 对象中的任何可用数据(插件名称、地址、端口、传输、参数)。
    有两个必需函数(connect, export)。
    • connect 函数接收单个 IP 地址,从设备中提取所有相关信息并返回。
    • export 函数接收从 所有 设备中提取的信息,您可以在此处将其导出到文件。
  • 在继承 PluginCLI 的类中,您需要在 init 函数中指定与此插件相关的默认信息。
    有一个必需函数(flags),您必须在此函数中调用 base_flags,并且可以添加您想要的任何额外标志。

添加分析器

  • 在 analyzers 文件夹下,以与您的分析器相关的插件名称创建新目录
  • 使用您的分析器名称创建一个新的 Python 文件
  • 使用以下模板编写您的插件,并将 'General' 替换为您的插件名称
root@kitploit:~
from pathlib import Path
from forensic.interfaces.analyzer import AnalyzerInterface, AnalyzerConfig


class General(AnalyzerInterface):
    def __init__(self, config: AnalyzerConfig, output_dir: Path, verbose: bool):
        super().__init__(config, output_dir, verbose)
        self.plugin_name = 'General'
        self.create_output_dir(self.plugin_name)

    def analyze(self):
      pass

  • 确保在 analyzers 文件夹下的 __init__.py 文件中导入您的新分析器

资源和技术数据与解决方案:

Microsoft Defender for IoT 是一款无代理的网络安全层解决方案,使组织能够在 IoT/OT 和工业控制系统(ICS)设备(无论是本地还是 Azure 连接环境)中持续监控和发现资产、检测威胁并管理漏洞。

MSRC 博客下的 Section 52
关于该工具的 ICS 讲座
Section 52 - Investigating Malicious Ladder Logic | Microsoft Defender for IoT Webinar - YouTube

贡献

本项目欢迎贡献和建议。大多数贡献需要您同意一份 贡献者许可协议(CLA),声明您有权并确实授予我们 使用您贡献的权利。有关详细信息,请访问 https://cla.opensource.microsoft.com。

当您提交拉取请求时,CLA 机器人会自动确定您是否需要提供 CLA 并适当装饰 PR(例如状态检查、评论)。只需遵循机器人提供的说明。 您只需在所有使用我们 CLA 的仓库中执行一次此操作。

本项目已采用 Microsoft 开源行为准则。 有关更多信息,请参阅行为准则常见问题解答或 联系 [email protected] 提出其他问题或意见。

商标

本项目可能包含项目、产品或服务的商标或徽标。Microsoft 商标或徽标的授权使用必须遵守并遵循 Microsoft 商标和品牌指南。 在本项目的修改版本中使用 Microsoft 商标或徽标不得造成混淆或暗示 Microsoft 赞助。 任何第三方商标或徽标的使用均受该第三方的政策约束。

法律免责声明

版权所有 (c) 2018 Microsoft Corporation。保留所有权利。

本软件按“原样”提供,不提供任何明示或暗示的保证, 包括但不限于适销性、特定用途适用性和非侵权性的保证。 在任何情况下,作者或版权持有人均不对任何索赔、损害或其他 责任负责,无论此类责任是基于合同、侵权或其他行为,均与 本软件的使用或其他交易有关。

下载工具
参数描述必需/可选
-h, --help显示此帮助信息并退出可选
-s, --save-config保存配置文件以便将来轻松使用可选
-c, --config配置文件路径,默认为 config.json可选
-o, --output-dir输出生成文件的目录,默认为 output可选
-v, --verbose将日志输出到文件以及控制台可选
-p, --multiprocess按插件/分析器数量以多进程模式运行可选
参数描述必需/可选
-h, --help显示此帮助信息并退出可选
--ip地址文件路径、CIDR 或 IP 地址 CSV(需要 ip 列)。
可添加更多列以提供每个 IP 的额外信息(用户名、密码等)
必需
--port端口号可选
--transporttcp/udp可选
--analyzer要运行的分析器名称可选