4840 - Pentesting OPC UA
Tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die đŹ Discord groep of die telegram groep of volg ons op Twitter đŠ @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Basiese Inligting
OPC UA, staat vir Open Platform Communications Unified Access, is ân belangrike open-source protokol wat in verskeie nywerhede soos Vervaardiging, Energie, Lugvaart en Verdediging gebruik word vir data-uitruiling en beheer van toerusting. Dit maak dit moontlik dat toerusting van verskillende verskaffers met mekaar kommunikeer, veral met PLCâs.
Die konfigurasie laat sterk sekuriteitsmaatreĂ«ls toe, maar dikwels word hierdie verslap vir versoenbaarheid met ouer toestelle, wat stelsels aan risikoâs blootstel. Verder kan dit moeilik wees om OPC UA-dienste te vind, aangesien netwerkskandeerders dit moontlik nie opspoor as hulle op nie-standaard poorte loop nie.
Default port: 4840 (binary opc.tcp). Baie verskaffers openbaar aparte discovery-endpunte (/discovery), HTTPS-bindings (4843/443), of verskafferspesifieke luisterpoorte soos 49320 (KepServerEX), 62541 (OPC Foundation reference stack) en 48050 (UaGateway). Verwag meerdere endpoints per gasheer, elk wat transportprofiel, sekuriteitsbeleid en user-token ondersteuning adverteer.
| Ingeboude NodeId | Waarom dit saak maak |
|---|---|
i=2253 (0:Server) | Bevat ServerArray, verskaffer/produk stringe en namespace-URIâs. |
i=2256 (ServerStatus) | Toon uptime, huidige toestand, en opsioneel bou-inligting. |
i=2267 (ServerDiagnosticsSummary) | Wys sessie-aantalle, geaborteerde versoeke, ens. Baie nuttig vir fingerprinting van brute-force-pogings. |
i=85 (ObjectsFolder) | Ingangspunt om blootgestelde toestel-tags, metodes en alarms te deurloop. |
PORT STATE SERVICE REASON
4840/tcp open unknown syn-ack
Pentesting OPC UA
Om sekuriteitsprobleme in OPC UA servers te ontdek, skandeer dit met OpalOPC.
opalopc -vv opc.tcp://$target_ip_or_hostname:$target_port
Ontdekking & Enumerasie Speelboek
- Localiseer alle OPC UA transporte
nmap -sV -Pn -n --open -p 4840,4843,49320,48050,53530,62541 $TARGET
Herhaal op UDP-groepadresse as die omgewing LDS-ME multicast discovery gebruik.
- Fingerprint endpoints
- Roep
FindServers/GetEndpointsoor elke transport aan omSecurityPolicyUri,SecurityMode,UserTokenType, application URI en product strings vas te lĂȘ. - Enumereer namespaces sodat jy vendor-spesifieke NodeIds kan oplos; misbruik namespace-botsings om clients te dwing om aanvaller-beheerde schemas te laai.
- Gaan die adresruimte deur
- Begin by
ObjectsFolder (i=85)en voer rekursieweBrowse/Readuit om writables prosesvariabeles,Methodnodes en historian/log nodes te vind. - Vra
ServerStatus.BuildInfoaan om firmware-herkoms te verstaan, enServerCapabilities.OperationLimitsom te evalueer hoe maklik dit is om serverhulpbronne uit te put. - As anonymous toegang toegelaat word, toets dadelik
Callop onderhoudsmetodes (bv.ns=2;s=Reset,ns=2;s=StartMotor). Baie vendors vergeet om rol-permissies aan pasgemaakte metodes te bind.
- Session abuse
- Hergebruik of kloon
AuthenticationTokenwaardes van ander sessies (gevang via MITM of diagnostics exposure) om bestaande subscriptions te kap. - Forceer die server in
SessionDiagnosticsflooding deur doziende inaktiewe sessies te skep; sommige stacks crash sodra dieMaxSessionCountlimiet oorskry is.
Automated assessment with OpalOPC
- Die scanner kan interaktief of headless loop, wat handig is vir CI/CD-styl OT baselines. Pipe sy machine-readable bevindinge in jou reporting pipeline om anonymous logins, swak policies, sertifikaat-validasie-foute en writable variables binne minute te identifiseer.
- Kombineer OpalOPC output met handmatige browsing: voed die ontdekte endpoint-list terug in jou eie tooling, en weaponize dan selektief hoë-impak nodes (bv.
MotorControl/StartStop,RecipeManager/Upload).
Attacking legacy security policies (Basic128Rsa15)
- Bleichenbacher-style oracle: Systeme wat nog die verouderde
Basic128Rsa15policy toelaat (dikwels geskakel via build flags soosCMPOPCUASTACK_ALLOW_SHA1_BASED_SECURITY) leak padding validation differences. Eksploteer dit deurCreateSession/OpenSecureChannelhandshakes met vervaardigde PKCS#1 v1.5 blobs te spam om die server sertifikaat se private sleutel te herstel, en dan die server te imiteer of verkeer te ontsleutel. - Authentication bypass: OPC Foundationâs .NET Standard stack voor 1.5.374.158 (CVE-2024-42512) en afhanklike produkte laat ongeauthentiseerde aanvallers toe om daardie legacy policy af te dwing en daarna toepassingvlak-verifikasie oor te slaag. Sodra jy die sleutelmateriaal besit kan jy arbitrĂȘre
UserIdentityTokensaanbied, gesigneerdeActivateSessionversoeke replay, en die plant beheer as ân vertroude engineering workstation. - Operational workflow:
- Enumereer policies met
GetEndpointsen neem enigeBasic128Rsa15inskrywings waar. - Onderhandel daardie policy eksplisiet (
SecurityPolicyUriinCreateSession), en loop dan jou oracle-lus totdat die herwonne sleutel valideer. - Misbruik die sleutel om ân hoĂ«-privilege sessie te vervals, rolle te verander, of stil-stil ander clients af te gradeer deur as ân rowwe reverse proxy op te tree.
- CODESYS Runtime Toolkit (<3.5.21.0) heraktiveer Basic128Rsa15 wanneer integrateurs met
CMPOPCUASTACK_ALLOW_SHA1_BASED_SECURITYcompile. Skakel daardie vlag, herhaal die oracle-werkvloei hierbo, en jy kan die runtime se private sleutel leak om vertroude engineering workstations te imiteer totdat patchvlak 3.5.21.0 of later uitgerol is. - OPC Foundation het terselfdertyd CVE-2024-42513 vir HTTPS bindings gepubliseer. Selfs as jou teiken TLS beweer, maak seker dit val nie stilweg terug na Basic128Rsa15 vir die binĂȘre transport agter die proxy nie.
2024-2025 exploit watchlist
- open62541 fuzz_binary_decode (CVE-2024-53429): SecureChannel chunks wat oorgrootte
ExtensionObjectliggame verklaar laat die decoder vrygemaakte geheue dereference, sodat ân pre-auth aanvaller steeds UA servers wat open62541 â€1.4.6 embed herhaaldelik kan laat crash. Hergebruik die Claroty corpus (opcua_message_boofuzz_db) of vervaardig jou eie Boofuzz harness om gemuteerdeOpenSecureChannelversoeke te spam totdat die watchdog die proses doodmaak, en re-enumerate dan omdat baie integrateurs na anon-mode terugval nĂĄ die reboot. - Softing OPC UA C++ SDK / edgeConnector / edgeAggregator (CVE-2025-7390): Die TLS client-auth pipeline aanvaar enige sertifikaat wat ân vertroude Common Name hergebruik, so jy kan ân weggooisertifikaat mint, die CN van ân plant engineer kopieer, en inlog met arbitrĂȘre
UserNameIdentityTokenofIssuedIdentityTokendata. PĂȘer dit met ân downgrade na Basic128Rsa15 om integriteitskontroles te verwyder en volhoubare operator-imitasie te handhaaf totdat trustlists herbou is.
Crafting OPC UA clients for exploitation
- Custom clients: Drop-in biblioteke (python-opcua/asyncua, node-opcua, open62541) laat jou toe om exploit- logika self te bestuur. Forceer altyd jou teiken se namespace-index om per ongeluk kruis-namespace skryfwerke te vermy wanneer vendors namespaces na firmware-opdaterings herrangskik.
- Node abuse checklist:
HistoryReadop produksietags om proprietary recipes te snapshot.TranslateBrowsePathsToNodeIdsom mensleesbare asset name in NodeIds op te los wat in gadgets soos Clarotyâs framework gevoer kan word.Call+Methodnodes om onderhoudstake te aktiveer (firmware upload, kalibrasie, toestel-herstart).RegisterNodesmisbruik om gereeld benaderde nodes te pin en dan legitieme clients te verhonger deur die handles nooit vry te gee nie.- Session hardening tests: Probeer om dosyne subscriptions te bind met uiters lae publishing-intervalle (onder 50 ms) plus oorgrootte monitored-item queues. Baie stacks misbereken
RevisedPublishingIntervalen crash weens skeduleerder-overflows.
Fuzzing & exploit development tooling
Claroty Team82 het ân open-source opcua-exploit-framework vrygestel wat jare se Pwn2Own-grade navorsing in herbruikbare modules inpak:
- Modes:
sanity(ligte reads/browses),attacks(bv. thread pool starvation, file upload DoS),corpus(replay fuzzing payloads),server(rogue OPC UA server om clients te backdoor). - Usage pattern:
# Run a DoS attack against a Prosys Simulation Server endpoint
python3 main.py prosys 10.10.10.10 53530 /OPCUA/SimulationServer thread_pool_wait_starvation
# Replay an entire Boofuzz corpus against open62541
python3 main.py open62541 192.168.1.50 4840 / opcua_message_boofuzz_db input_corpus_minimized/opcua.db
- Rogue server scenario: Die ingeslote asyncua-gebaseerde server laat jou toe om client-software te teiken deur kwaadwillige adresruimtes te bedien (bv. responses met oorgrootte
ExtensionObjects om parsing-bugs in UA Expert clones te trigger). - Target coverage: Ingeboude profiles kaart aan Kepware, Ignition, Unified Automation, Softing SIS, Triangle Microworks, Node-OPCUA, Python OPC UA, Milo, open62541, ens., sodat jy vinnig tussen stacks kan wissel sonder om payloads te herskryf.
- Integration tips: Knoop sy output aan jou eie fuzzersâspray eers die
corpuspayloads, en laat OpalOPC dan verifieer of die crash onveilige defaults herleef het (anonymous login, setpoint write access, ens.).
Exploiting authentication bypasses
As authentication bypass kwesbaarhede gevind word, kan jy ân OPC UA client dienooreenkomstig konfigureer en sien wat jy kan benader. Dit kan enigiets toelaat van net lees van proseswaardes tot werklik die bediening van swaar industriĂ«le toerusting.
Om ân idee te kry van die toestel waartoe jy toegang het, lees die âServerStatusâ node-waardes in die address space en google vir ân gebruikershandleiding.
Shodan
port:4840port:62541 "OPC UA"ssl:"urn:opcua"product:"opc ua"
Kombineer die soektog met vendor-strings ("Ignition OPC UA", "KepServerEX") of sertifikate ("CN=UaServerCert") om hoë-waarde assets te prioritiseer voordat jy indringende toetsing begin.
References
- https://opalopc.com/how-to-hack-opc-ua/
- https://github.com/claroty/opcua-exploit-framework
- https://certvde.com/en/advisories/VDE-2025-022/
- https://nvd.nist.gov/vuln/detail/CVE-2024-53429
- https://industrial.softing.com/fileadmin/psirt/downloads/2025/CVE-2025-7390.html
Tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die đŹ Discord groep of die telegram groep of volg ons op Twitter đŠ @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
HackTricks

