工业控制系统(ICS)通常被安全行业用来测试网络和应用中的漏洞。在这里,您可以找到综合工业控制系统(ICS)工具列表,其中包括在所有企业环境中执行渗透测试操作。
工业管理系统(ICS / SCADA)现在是网络攻击者的主要目标,这些攻击者试图破坏生产基地和公共设施
CSET | 网络安全评估工具(CSET®)协助组织保护其关键的国家网络资产。这个工具为用户提供了一个系统的和可重复的方法来评估他们的网络系统和网络的安全状况。它包括与所有工业控制和IT系统相关的高级和详细问题。 |
---|---|
Digital Bond’s 3S CoDeSys Tools | Digital Bond创建了三个与运行CoDeSys的PLC进行交互的工具,包括命令外壳,文件传输和NMap脚本。 |
Digital Bond’s ICS Enumeration Tools | Redpoint是一个数字债券研究项目,用于使用nmap扩展来枚举ICS应用程序和设备。它可以在评估期间用于发现ICS设备并提取有助于二次测试的信息。Redpoint工具使用合法的协议或应用程序命令来发现和枚举设备和应用程序。没有任何努力来利用或崩溃任何东西,但要明智和谨慎。 |
GRASSMARLIN | GRASSMARLIN为工业控制系统(ICS)和监控和数据采集(SCADA)网络提供IP网络环境意识,以支持网络安全。被动地映射并直观显示ICS / SCADA网络拓扑结构,同时安全地对这些关键的网络物理系统进行设备发现,记帐和报告。 |
mbtget | mbtget – 简单的perl脚本,用于从命令行创建一些modbus事务。 |
MiniCPS | MiniCPS:新加坡科技与设计大学(SUTD)网络物理系统安全研究工具包。 |
MODBUS Penetration Testing Framework | smod是一种模块化的框架,可以用来测试modbus协议所需的各种诊断和攻击功能。这是一个使用Python和Scapy的完整的Modbus协议实现。该框架可用于执行漏洞评估。 |
ModbusPal | ModbusPal是MODBUS从站模拟器。其目的是提供一个易于使用的界面,并具有复制和实际复制MODBUS环境的功能。 |
ModScan | ModScan是一种新工具,用于映射基于SCADA MODBUS TCP的网络。 |
NetToPLCSim | 用于PLC仿真软件Siemens PLCSim的TCP / IP网络扩展。 |
Opendnp3 | Opendnp3是Apache许可证下提供的IEEE-1815(DNP3)的实际参考实现。 |
PLCinject | PLCinject可用于将代码注入到PLC中。 |
plcscan | 通过s7comm或modbus协议扫描PLC设备的工具。 |
Quickdraw IDS | Digital Bond的Quickdraw IDS项目包括用于SCADA设备的Snort规则和用于网络通信的所谓预处理器。预处理器提供了显着的附加价值,因为它们能够重建Snort使用的协议和状态。 |
SCADAShutdownTool | SCADAShutdownTool是一个工业控制系统自动化和测试工具,允许安全研究人员和专家测试SCADA安全系统,枚举从属控制器,读取控制器的寄存器值并重写寄存器数据。 |
Snap7 | Snap7是一款开源的32/64位多平台以太网通信套件,用于与西门子S7 PLC进行本地连接。新款CPU 1200/1500,旧款S7200,小型LOGO 0BA7 / 0BA8和SINAMICS Drives也得到部分支持。 |
S7 Password Bruteforcer | 使用字典强制从PCAP使用的S7实例密码的工具, 由SCADAStrangelove创建。 |
splonebox | splonebox是一款专注于模块化的开源网络评估工具。它提供了对网络及其设备的持续分析。一个主要的设计决策是定制插件的开发,包括用于工业通信协议的插件。 |
Wireshark | Wireshark是世界上最重要的网络协议分析器。它可以让你从微观层面看到网络上发生的事情。这是许多行业和教育机构的事实(并且通常是法律上的)标准。它支持ICS中使用的许多协议。 |
Moki Linux | Moki是Kali的一项修改,将各种ICS / SCADA工具集成到互联网上,创建一个针对ICS / SCADA专业测试人员的定制Kali Linux。 |
---|---|
SamuraiSTFU | SamuraiSTFU为传统网络和网络渗透测试提供了最佳的安全工具,为嵌入式和射频测试增加了专用工具,在健康的能源行业背景下,文档和样本文件混合在一起,其中包括SCADA、智能仪表和其他类型的能源部门系统提供完整的测试实验室。 |
Conpot | Conpot是一款低交互式服务器端的工业控制系统蜜罐,其设计易于部署,修改和扩展。它具有易于定制和行为模拟等特点,并且可以通过真实的HMI进行扩展。在Honeynet项目下构建和维护。 |
---|---|
GasPot | GasPot是设计用来模拟Veeder Root Gaurdian AST的蜜罐。这些油罐压力表在石油和天然气工业中常见于加油站油罐,以帮助储存燃料。GasPot被设计为尽可能随机化,所以没有两个实例看起来完全一样。 |
T-Pot | T-Pot是在码头集装箱中运行的几个蜜罐的组合。Suricata和ELK堆栈用于安全监控和可视化。其中包括Conpot和eMobility,它们是ICS和下一代传输基础设施蜜罐。 |
4SICS ICS Lab PCAPS | 4SICS的“Geek Lounge”是一个包含PLC、RTU、服务器、工业网络设备(交换机,防火墙等)的ICS实验室。这些设备可用于4SICS物理参与者进行“测试”,并从这些设备中获取流量。 |
---|---|
DEF CON 23 ICS Village PCAPS | 来自第23届DEF CON的PCAPS。 |
ICS Map | 从Shodan收集的数据创建的地图显示ICS设备。数据可用于进一步分析。 |
ICS Radar | Shodan从几种ICS协议收集的数据在地球仪上可视化。 |
S4x15 ICS Village | 在比赛中使用的S4x15 CTF的PCAPS。 |
S7 PCAP samples | Wireshark S7协议解析器插件的示例文件。 |
SCADAPASS | 着名的SCADA StrangeLove默认/硬编码密码列表。 |
TRISIS/TRITON/HATMAN malware repository | 存储库包含针对Triconex安全仪表系统(SIS)控制器的TRISIS / TRITON / HATMAN恶意软件的原始和反编译文件。 |
ICS-CERT Alerts | ICS-CERT Alert提要旨在及时通知关键基础设施所有者和运营商有关可能影响关键基础设施计算网络的威胁或活动。 |
---|---|
ICS-CERT RSS Feed | 美国ICS-CERT的RSS源列出了新闻和最新发布的漏洞建议。 |
Industrial Security Alerts | 西门子通过此页面和RSS提要为其工业系统提供警报。 |
North American Electric Reliability Corporation (NERC) Alerts | NERC为大型电气系统(BES)安全建议和行业建议提供警报。 |
ABB Cybersecurity Alerts and Notifications | ABB为其网络安全事件和软件漏洞提供警报。 |
Schneider Electric Cybersecurity Alerts and Notifications | 从施耐德电气软件获取网络安全和合规性的最新更新和警报。 |
CS3STHLM | 斯德哥尔摩SCADA和工业控制系统网络安全国际峰会 – 是一次年度峰会,聚集关键流程和行业中最重要的利益相关方。CS3STHLM自2014年起组织起来,并迅速成为北欧首屈一指的ICS安全峰会。 |
---|---|
CS4CA | 关键资产网络安全是一个全球系列峰会,重点关注关键基础设施的网络安全。 |
SANS ICS Summit Archives | 全球举办的SANS ICS峰会演讲材料的中央存储库。 |
SANS ICS Cybersecurity Conference (WeissCon) | 这个会议在创始人Joe Weiss之后被称为WeissCon,现在由SecurityWeek拥有并运营,并且通常每年10月在美国不同地点运营。 |
PLC Training Org | Site组织了所有与SCADA系统相关的重要主题。安全与10个学习阶段密切相关,但这对于刚开始学习的人来说是一篇很棒的安全性文章。 |
---|---|
Control System Basics | YouTube视频解释控制系统的基础知识,包括这些系统用于感知和创建物理变化以采取行动的逻辑类型。 |
SCADA Systems – Utility 101 Session with Rusty Wiliiams | 公用事业行业专业人士Rusty Williams从电力公用事业角度解释SCADA。 |
Control System Lectures | 布赖恩道格拉斯YouTube视频系列,他以一种非常容易处理的方式涵盖了广泛的控制系统主题。 |
The PLC Professor | PLC教授和他的网站plcprofessor.com包含了很多用于学习可编程逻辑控制器(PLC)和其他类型的控制系统及其逻辑是什么以及如何工作的很好的资源。 |
Serial Communications RS232 and RS485 | Real Time Automation的John Rinaldi介绍了串行通信RS232和RS485。 |
All You Need To Know About MODBUS-RTU | Real Time Automation的John Rinaldi介绍了MODBUS-RTU。 |
MODBUS Data Structures | Real Time Automation的John Rinaldi描述了MODBUS数据结构。 |
All You Need to Know About MODBUS-TCP | Real Time Automation的John Rinaldi介绍了MODBUS-TCP。 |
How Ethernet TCP/IP is Used by Industrial Protocols | Real Time Automation的John Rinaldi介绍了以太网TCP / IP。 |
下面是部分软件用法及运行截图:
官方在Youtube提供了一些使用视频,视频地址
该脚本是基于Nmap下的脚本,下载后,您需要将其移至NSE Scripts目录中
BACnet-discover-enumerate.nse - 识别和枚举BACnet设备
codesys-v2-discover.nse - 识别并列举CoDeSys V2控制器
enip-enumerate.nse - 识别并列举来自罗克韦尔自动化和其他供应商的EtherNet / IP设备
fox-info.nse - 识别并列举Niagara Fox设备
modicon-info.nse - 识别并列举Schneider Electric Modicon PLC
omron-info.nse - 识别并列举欧姆龙PLC
pcworx-info.nse - 识别并枚举支持PC Worx协议的PLC
proconos-info.nse - 识别并列举支持ProConOS的PLC
s7-enumerate.nse - 识别并列举西门子SIMATIC S7 PLC等。。
详细的使用安装请点击
Modbus是一种标准的串行通信协议,用于连接工业PLC(以及其他许多事物)。通过该模块,您可以通过MBclient对象访问此协议的TCP和RTU版本。可以看看http://en.wikipedia.org/wiki/Modbus了解详情。
安装:
git clone https://github.com/sourceperl/mbtget.gitcd mbtget perl Makefile.PL make sudo make install
用法:
读取modbus服务器127.0.0.1上的地址1000处的字数据
root@kali:~# mbtget -a 1000 127.0.0.1values:1 (ad 01000): 52544
在modbus服务器plc-1.domaine.net的地址1000处读取10个字的数据
root@kali:~# mbtget -n 10 -a 1000 plc-1.domaine.netvalues:1 (ad 01000): 525442 (ad 01001): 336193 (ad 01002): 610104 (ad 01003): 118785 (ad 01004): 601426 (ad 01005): 217147 (ad 01006): 141828 (ad 01007): 643429 (ad 01008): 1851110 (ad 01009): 59909
在modbus服务器127.0.0.1上的地址1000处写入一个字值333,并启用转储模式
root@kali:~# mbtget -w6 333 -a 1000 -d 127.0.0.1Tx
[10 01 00 00 00 06 01] 06 03 E8 01 4D
Rx
[10 01 00 00 00 06 01] 06 03 E8 01 4D
word write ok
MODBUS渗透测试框架,smod是一个模块化框架,可以用来测试modbus协议所需的各种诊断和攻击功能。这是一个使用Python和Scapy的完整的Modbus协议实现。这个软件可以在python 2.7.x下的Linux / OSX上运行。
近年来,Summery SCADA(过程控制网络)系统已经从专有封闭网络转向开源解决方案和支持TCP / IP的网络。这使他们容易受到我们传统计算机网络面临的相同安全漏洞的影响。Modbus / TCP协议被用作参考协议来显示测试台在对电力系统协议执行网络攻击时的有效性。
#一个展示基础知识的小演示
root@kali:~/smod# python smod.py
_______
< SMOD >
-------
\ ^__^
\ (xx)\_______
(__)\ )\/\
U ||----w |
|| ||
--=[MODBUS Penetration Test FrameWork
--+--=[Version : 1.0.4
--+--=[Modules : 23
--+--=[Coder : Farzin Enddo
--=[github : www.github.com/enddo
SMOD >help
Command Description
------- -----------
back Move back from the current context
exit Exit the console
exploit Run module
help Help menu
show Displays modules of a given type, or all modules
set Sets a variable to a value
use Selects a module by name
SMOD >show modules
Modules Description
------- -----------
modbus/dos/arp DOS with Arp Poisoning
modbus/dos/galilRIO DOS Galil RIO-47100
modbus/dos/writeAllCoils DOS With Write All Coils
modbus/dos/writeAllRegister DOS With Write All Register Function
modbus/dos/writeSingleCoils DOS With Write Single Coil Function
modbus/dos/writeSingleRegister DOS Write Single Register Function
modbus/function/fuzzing Fuzzing Modbus Functions
modbus/function/readCoils Fuzzing Read Coils Function
modbus/function/readCoilsException Fuzzing Read Coils Exception Function
modbus/function/readDiscreteInput Fuzzing Read Discrete Inputs Function
modbus/function/readDiscreteInputException Fuzzing Read Discrete Inputs Exception Function
modbus/function/readExceptionStatus Fuzzing Read Exception Status Function
modbus/function/readHoldingRegister Fuzzing Read Holding Registers Function
modbus/function/readHoldingRegisterException Fuzzing Read Holding Registers Exception Function
modbus/function/readInputRegister Fuzzing Read Input Registers Function
modbus/function/readInputRegisterException Fuzzing Read Input Registers Exception Function
modbus/function/writeSingleCoils Fuzzing Write Single Coil Function
modbus/function/writeSingleRegister Fuzzing Write Single Register Function
modbus/scanner/arpWatcher ARP Watcher
modbus/scanner/discover Check Modbus Protocols
modbus/scanner/getfunc Enumeration Function on Modbus
modbus/scanner/uid Brute Force UID
modbus/sniff/arp Arp Poisoning
SMOD >
蛮力Modbus UID
SMOD >use modbus/scanner/uid SMOD modbus(uid) >show options Name Current Setting Required Description ---- --------------- -------- ----------- Function 1 False Function code, Defualt:Read Coils. Output True False The stdout save in output directory RHOSTS True The target address range or CIDR identifier RPORT 502 False The port number for modbus protocol Threads 1 False The number of concurrent threads SMOD modbus(uid) >set RHOSTS 192.168.1.6SMOD modbus(uid) >exploit [+] Module Brute Force UID Start [+] Start Brute Force UID on : 192.168.1.6[+] UID on 192.168.1.6 is : 10SMOD modbus(uid) >
在Modbus上的枚举功能
SMOD >use modbus/scanner/getfunc SMOD modbus(getfunc) >show options Name Current Setting Required Description ---- --------------- -------- ----------- Output True False The stdout save in output directory RHOSTS True The target address range or CIDR identifier RPORT 502 False The port number for modbus protocol Threads 1 False The number of concurrent threads UID None True Modbus Slave UID. SMOD modbus(getfunc) >set RHOSTS 192.168.1.6SMOD modbus(getfunc) >set UID 10SMOD modbus(getfunc) >exploit [+] Module Get Function Start [+] Looking for supported function codes on 192.168.1.6[+] Function Code 1(Read Coils) is supported. [+] Function Code 2(Read Discrete Inputs) is supported. [+] Function Code 3(Read Multiple Holding Registers) is supported. [+] Function Code 4(Read Input Registers) is supported. [+] Function Code 5(Write Single Coil) is supported. [+] Function Code 6(Write Single Holding Register) is supported. [+] Function Code 7(Read Exception Status) is supported. [+] Function Code 8(Diagnostic) is supported. [+] Function Code 15(Write Multiple Coils) is supported. [+] Function Code 16(Write Multiple Holding Registers) is supported. [+] Function Code 17(Report Slave ID) is supported. [+] Function Code 20(Read File Record) is supported. [+] Function Code 21(Write File Record) is supported. [+] Function Code 22(Mask Write Register) is supported. [+] Function Code 23(Read/Write Multiple Registers) is supported. SMOD modbus(getfunc) >
模糊读取线圈功能
SMOD >use modbus/function/readCoils SMOD modbus(readCoils) >show options Name Current Setting Required Description ---- --------------- -------- ----------- Output True False The stdout save in output directory Quantity 0x0001 True Registers Values. RHOSTS True The target address range or CIDR identifier RPORT 502 False The port number for modbus protocol StartAddr 0x0000 True Start Address. Threads 1 False The number of concurrent threads UID None True Modbus Slave UID. SMOD modbus(readCoils) >set RHOSTS 192.168.1.6SMOD modbus(readCoils) >set UID 10SMOD modbus(readCoils) >exploit [+] Module Read Coils Function Start [+] Connecting to 192.168.1.6[+] Response is :###[ ModbusADU ]### transId = 0x2 protoId = 0x0 len = 0x4 unitId = 0xa###[ Read Coils Answer ]### funcCode = 0x1 byteCount = 1L coilStatus= [0] SMOD modbus(readCoils) >
SCADAShutdownTool是一个工业控制系统自动化和测试工具,允许安全研究人员和专家测试SCADA安全系统,枚举从属控制器,读取控制器的寄存器值并重写寄存器数据。SCADAShutdownTool允许枚举控制器的所有寄存器类型,包括线圈输出,数字输入,模拟输入,保持寄存器和扩展寄存器。
SCADAShutdownTool可以以不同的模式运行,包括:
安全模式:只读并列出非零值。
实模式:仅重写非零值。
积极模式:重写所有控制器寄存器。
控制器寄存器可以用用户指定的默认值或“关闭值”重新写入。
SCADAShutdownTool仅为研究目的而开发,强烈建议您不要将此工具用于非法目的。
下载:
SCADAShutdownTool v1.0 Beta
https://0xicf.wordpress.com/tools/scada-shutdown-tool
https://github.com/0xICF/SCADAShutdownTool
使用:
./SCADAShutdownTool.py
警告:
SCADAShutdownTool允许恶意攻击者在SCADA网络,工业控制系统和控制器上扫描,模糊和执行远程命令。对于使用此工具造成的任何损害,本站概不负责。
运行截图:
splonebox是一个开源网络评估工具,专注于工业控制系统。它提供了对您的网络及其设备的持续分析。模块化设计允许编写额外的插件。
监控和数据采集(SCADA)是总结工业控制系统(ICS)设备的流行词。这些设备专门用于控制工业流程,如生产线甚至钻孔工厂。通常情况下,ICS由可编程逻辑控制器(PLC),执行器和传感器组成。通常情况下,工业网络还包括附加设备,如人机界面(HMI)或网关。
运行界面:
*本文作者:物联网安全实验四 ,转自 FreeBuf
打赏我,让我更有动力~
© 2016 - 2024 掌控者 All Rights Reserved.
徐浩洋
发表于 2022-9-2
绝了,我爱你
评论列表
加载数据中...