
Exploit de prova de conceito para bypass de autenticação OPC UA usando a política de segurança None, incluindo um servidor simulado para demonstrar acesso não autorizado de leitura/escrita a dados de controle industrial.
# 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())
Um servidor OPC UA está configurado com a política de segurança None, que não fornece criptografia nem autenticação. Um atacante na rede pode se conectar e interagir com tags de sistemas de controle industrial, causando danos físicos.
pip install asyncua
python opcua_server_sim.py
python exploit_opcua_none.py
O cliente se conecta com sucesso.