Nieuw NadMesh-botnet jaagt op blootliggende AI-services voor cloudsleutels en Kubernetes-tokens

Er is een Go-botnet gebeld NadMesh verscheen begin juli op jacht naar blootgestelde AI-diensten, en het eigen dashboard van de operator claimt 3.811 unieke AWS-sleutels.

Een Shodan-harvester houdt de scanwachtrij gevuld met ComfyUI, Ollama, n8n, Open WebUI, Langflow en Gradio: de beeldgeneratoren, lokale modelrunners en workflowbouwers waarmee teams snel opstaan ​​en laat firewallen.

De informatie achter die teller toont 47 gegevensverzamelingen en 41 modelinventarisaties in de laatste 100 records. Deze inventarissen bevatten DeepSeek-, GLM- en Kimi-identifiers met de tag:cloud, wat suggereert dat wat de botscatalogus verder reikt dan de doos zelf.

XLab van QiAnXin publiceerde vrijdag een rapport, noemde de malware naar de string “n4d mesh controller” in de broncode, en maakte een screenshot van het paneel. De cijfers erop zijn van de exploitant zelf, vastgelegd op 10 juli, en ze zijn het niet met elkaar eens.

Een teller die in totaal 17.700 implementaties aangeeft, staat boven een trechter die in de afgelopen 24 uur 95.700 claimt. Op één tegel staan ​​16 actieve bots; op de volgende staat 12. Het identificatienummer is minstens het nummer dat er tweemaal staat. De eigen sensoren van XLab geven een externe maatstaf, en het is ook geen bottelling: verschillende bron-IP’s die NadMesh pushten, bleven tot eind juni bijna nul, en gingen vervolgens in de eerste week van juli verticaal naar ongeveer 139 per dag.

Wat een bot mee naar huis neemt, zijn cloudsleutels die uit omgevingsvariabelen worden gehaald, k8s-serviceaccounttokens en de inhoud van ~/.aws/config, .env en ~/.docker/config.json.

De onderzoekers zeggen het duidelijk: de operator is op zoek naar “niet de host zelf, maar de cloudreferenties en Kubernetes-clusterrechten”. Modeltoegang en opvraagbare MCP-tools ronden de lijst af.

MCP leidt de prioriteitsvolgorde van de controller voor exploitatie, boven Kubernetes, Docker API en Redis, en de vector XLab-records ernaast zijn een JSON-RPC tools/aanroep naar execute_command. Er is geen CVE aan deze lijn gekoppeld, en het rapport claimt er ook geen.

De eerste specificatie van MCP plaatste authenticatie volledig buiten het kernprotocol, en de autorisatiestroom die in maart 2025 werd toegevoegd, is nog steeds optioneel in de eigen woorden van de specificatie. Veel implementaties slaan dit over. Censys telde op 28 april 12.520 bereikbare MCP-diensten op 8.758 IP-adressen, op 6 mei ruim 21.000, en ongeveer 90 maakten reclame voor een tool die opdrachten uitvoert.

Bij 39 daarvan kreeg de tool de naam execute_command, de exacte aanroep bovenaan de tabel van NadMesh. De eigen MCP-tellers van het botnet komen niet overeen: 12.100 MCP-services vermeld als exploiteerbaar, 21 MCP-kwetsbaarheden in het algemeen, en helemaal geen van de 100 informatierecords op het scherm.

Dan is er wat XLab daadwerkelijk zag gooien. Het bedrijf bracht het exploitverkeer dat het observeerde in kaart en docker_containers_api_rce neemt daarvan 30,31% voor zijn rekening, en jenkins_scripttext_rce nog eens 22,28%. Zwakke wachtwoorden bij Telnet zijn goed voor 10,36%, Redis 8,29%.

mcp_cmd_execute staat op de kaart, dus de vector bevindt zich in het waargenomen verkeer van XLab, maar bevindt zich in de niet-gelabelde staart onder het kleinste segment dat iemand de moeite heeft genomen om te labelen, met 0,78%. De labels van het diagram komen niet overeen met de eigen statusreeksen van de controller, dus het is XLab’s sensorweergave van pogingen, niet het succesboek van de operator.

De AI-targeting is dus reëel bij de inname en bij de buit, en het grootste deel van het exploitverkeer gaat nog steeds naar Docker-sockets en Jenkins-consoles.

Het scannen voert zichzelf uit. Subnetten die hits produceren, worden elke vijf minuten opnieuw gesampled; IP’s die de afgelopen 24 uur als gevaarlijk zijn gemarkeerd, komen elk kwartier terug omdat /32 opnieuw scant, waarbij de AI-poorten eerst worden gebruikt; een volledige sweep sleept alles wat de afgelopen zeven dagen als gevaarlijk is gemarkeerd, terug naar de top.

Elk doelwit dat tien inzetpogingen absorbeert zonder ooit een resultaat te retourneren, wordt automatisch op de zwarte lijst gezet als een vermoedelijke honeypot. XLab beschouwt dat als een teken waarvan de auteur weet dat onderzoekers meekijken. Als de wachtrij leeg raakt, genereren bots een willekeurige /24 en gaan door.

Vijf buildversies draaien gelijktijdig, elf bots op 33.8-GO-TITAN en de achterblijvers terug op 30.0. Een kanarie-eindpunt voert nieuwe builds uit voor een deel van de vloot, 5.448 reacties ontvangen en 84.024 nul. Een trechter volgt taken via implementaties bij live hosts.

De eigen voetnoot van het panel is de boodschap: succes wordt gescoord op een toelatingslijst voor resultaten die expliciet de Ollama- en AWS-oogst uitsluit. Het scorebord van de operator telt niet mee wat de operator meeneemt.

Verwijdering is gebouwd om te mislukken. De agent volhardt op drie manieren tegelijk, dus het trekken van de ene laat de anderen over om hem terug te brengen. Elke build gaat via Garble-verduistering, UPX-9-verpakking en willekeurige opvulling, wat betekent dat geen twee agenten een hash delen. De gepubliceerde voorbeeld-hash zal die ene build opvangen en de rest missen.

Als u dit allemaal uitvoert

Het meeste van wat NadMesh gooit, is gericht op blootgestelde services en beheerdersfunctionaliteit die opvraagbaar blijft: een open Docker API op 2375, een Jenkins-scriptconsole, niet-geverifieerde Redis, zwakke Telnet- en SSH-wachtwoorden. Geen enkele patch sluit deze af.

Haal ze achter auth of buiten het openbare internet, te beginnen met de vier poorten die de herscantaak als eerste plaatst: 8188 (ComfyUI), 11434 (Ollama), 7860 (Gradio) en 5678 (n8n).

Er is ook een patch-wachtrij, en deze is niet allemaal oud. Het diagram bevat CVE-2026-39987, de pre-auth RCE in Marimo-notebooks vóór 0.23.0. CISA plaatste het in april op KEV nadat het binnen enkele uren na openbaarmaking werd uitgebuit.

Ernaast bevindt zich CVE-2026-41176, waarmee een niet-geverifieerde beller rc.NoAuth kan omdraaien op rclone RC-servers van 1.45.0 tot 1.73.5 die zijn gestart zonder HTTP-authenticatie. rclone-configuraties zijn cloudreferenties. Bij oudere vermeldingen moeten de voorwaarden worden gecontroleerd voordat u in paniek raakt: CVE-2022-22947 met 6,48% werkt alleen als het Spring Cloud Gateway Actuator-eindpunt is ingeschakeld en onbeveiligd wordt weergegeven, en CVE-2017-12611 met 4,15% is de fout in de Struts Freemarker-tag.

Controleer vervolgens de droppaden:

  • ~/.ssh/authorized_keys, voor sleutels waarvan niemand zich herinnert dat ze zijn toegevoegd
  • /dev/shm/.a, /var/tmp/.a, /tmp/.a
  • /etc/cron.d/.sys_monitor, /etc/cron.d/.s

Als iets hiervan opduikt, isoleer dan de host en trek alle inloggegevens die hij kan zien onmiddellijk in: AWS-sleutels, clustertokens, .env-inhoud, registeraanmeldingen. Intrekken is niet roterend. Trek de persistentie weg voordat u vervangingen uitgeeft, anders gaan de nieuwe sleutels de weg van de oude.

Bekijk vervolgens waar de oude werden gebruikt terwijl ze live waren. De indicatoren van XLab zijn een C2 op 209.99.186(.)235, het domein cdnorigin(.)net en één agentvoorbeeld, SHA1 31c69b3e12936abca770d430066f379ec1d997ec.

The Hacker News berichtte in april over een andere operator die in dezelfde doelgroep werkte: Censys had ontdekt dat het landbouwbedrijf ComfyUI had blootgesteld voor de GPU-, Monero- en Conflux-mijnbouw, plus een Hysteria-proxyknooppunt voor wederverkoop. Drie maanden later heeft NadMesh een veel breder netwerk, maar ComfyUI en Docker op 2375 staan ​​op beide doellijsten.

Wat veranderd is, is de uitbetaling: de operator van april wilde de GPU, en NadMesh wil waar de box op kan inloggen. Censys beëindigde zijn MCP-telling met een gok op de minst slechte uitkomst voor al die blootgestelde shell-tools, waarbij de host “onderdeel werd van een toekomstig botnet of misbruikinfrastructuur.” Dat was 27 mei. XLab publiceerde zeven weken later een botnet met mcp_cmd_execute in zijn exploit chart.

Thijs Van der Does