
PoC-эксплойт для обхода аутентификации OPC UA с использованием политики безопасности None, включая симулятор сервера для демонстрации несанкционированного доступа на чтение/запись к данным промышленного управления.
# opcua_server_sim.py - OPC UA server accepting None security policy
from asyncua import Server
import asyncio
async def main():
server = Server()
await server.init()
server.set_endpoint('opc.tcp://0.0.0.0:4840/freeopcua/server/')
server.set_security_policy([ua.SecurityPolicyType.NoSecurity]) # Allows unencrypted, unauthenticated
async with server:
while True:
await asyncio.sleep(1)
asyncio.run(main())
Сервер OPC UA настроен с политикой безопасности None, которая не обеспечивает ни шифрования, ни аутентификации. Злоумышленник в сети может подключиться и взаимодействовать с тегами системы промышленного управления, что может привести к физическому ущербу.
pip install asyncua
python opcua_server_sim.py
python exploit_opcua_none.py
Клиент успешно подключается.