Prüfung eines Magento-Shops nach StyleSmuggler? Hotfix, Forensik und Bereinigung
StyleSmuggler zeigt, wie wichtig es ist, bei einem möglichen Angriff auf einen Magento-Shop nicht nur die eigentliche Schwachstelle zu schließen. Entscheidend ist auch die Frage, ob bereits Schadcode ausgeführt wurde, verdächtige Prozesse laufen oder dauerhafte Zugänge auf dem Server eingerichtet wurden. Eine reine Installation eines Hotfixes reicht in einem solchen Fall nicht aus, wenn das System zuvor bereits kompromittiert wurde.
Dieser Beitrag zeigt konkrete Schritte, mit denen sich ein Magento-System auf typische Indicators of Compromise prüfen lässt. Dazu gehören unter anderem auffällige Prozesse wie kworker-linux, fc-cache oder chronyd, ungewöhnliche Cronjobs, verdächtige Dateien und Verzeichnisse sowie aktive Netzwerkverbindungen. Zusätzlich werden bekannte Domains, IP-Adressen, Dateipfade und Hashwerte aufgeführt, die im Zusammenhang mit den beschriebenen Angriffen beobachtet wurden.
Das Ziel ist eine möglichst strukturierte Prüfung von der ersten Kontrolle über die Forensik bis zur Bereinigung und Absicherung des Systems. Wichtig dabei ist, einzelne Treffer nicht isoliert zu bewerten. Erst das Zusammenspiel aus Prozessen, Dateien, Netzwerkverbindungen, Logs und weiteren Indicators of Compromise liefert eine belastbare Grundlage für die Einschätzung, ob ein Magento-System betroffen sein könnte.
0. Read first
https://sansec.io/research/stylesmuggler-0day
1. Backdoor check durchführen
Sie sollten nicht verifizierte Aktivitäten von Prozessen überprüfen, die üblicherweise als kworker-linux, fc-cache und chronyd bezeichnet werden.
1a. Sansec empfohlene Checks
crontab -l | grep -i gvfsd ls -la ~/.local/share/.gvfsd/ ~/.cache/fontconfig/fc-cache /tmp/.kw_* /tmp/.cache_* /tmp/.gvfsd-* /tmp/.fc-*/fc-cache /tmp/fc-cache /tmp/.chrony-*/chronyd 2>/dev/null ps -eo pid,comm,args | grep -iE 'kworker|fc-cache|chronyd' grep -r 'crontab command not allowed' /var/log/ grep -ril 'x_trace_' var/report/
1b. Check für seltsame aussehende Prozesse
ps -eo pid,comm,args | grep -iE 'kworker-linux|fc-cache|chronyd
Wir empfehle zu prüfen, ob es nicht verifizierte Prozesse gibt, die regelmäßig ausgeführt werden – zum Beispiel alle 5 Minuten.
1c. Überprüfung von Arbeitsprozessen, die von PHP, Redis und sonstigen üblicherweise benötigten Komponenten abweichen.
ps auxww | grep -v -E '\[|php-fpm|nginx|mysql|redis'
1d. Network check
Überprüfen, ob alle aktiven Verbindungen gültig erscheinen.
ss -tulnp
Die am häufigsten genutzten Ports ausschließen, gefiltert nach dem Status „established“ (eine tatsächlich offene Zwei-Wege-Verbindung, nicht LISTEN/TIME_WAIT/CLOSE_WAIT).
ss -tanp state established '( sport != :80 && sport != :443 && sport != :3306 && sport != :6379 )'
Firewall Konfiguration
Wir schlage vor, die „Indicators of Compromise“ aus dem Sansec-Artikel zu berücksichtigen.
# malware download
https://www.incofar.it/js/jquery/plugins/ajaxfileupload/mag.txt
247.cdnflare.xyz malware download host
209.141.43.95 malware download host
# C2 servers
99.84.67.186:443 C2, WebSocket over TLS
windwsecurity.run:443 remote shell, WebSocket over TLS (TCP)
ntp.timesysnc.net:123 C2, custom NTP-shaped traffic (UDP)
time.microsft.run:123 C2, custom NTP-shaped traffic (UDP)
pool.microsft.studio:123 C2, custom NTP-shaped traffic (UDP)
ntp.timesync.to:123 C2, custom NTP-shaped traffic (UDP), fc-cache build
185.157.160.251:123 C2, A record for ntp.timesync.to and ntp.timesysnc.net on 2026-09-07
ntp.synctime.to:123 C2, fallback
ntp.syncstime.to:123 C2, fallback
# attacker sources
88.216.72.181 attacker source, seen at multiple victims
88.216.72.182 attacker source
182.182.152.48 attacker source
76.31.99.207 attacker source, failed exploit attempt
209.73.130.148 attacker source, successful exploit attempt
77.239.124.107 attacker source, follow-up requests
98.224.189.28 attacker source
# exfiltration domains
checkout-cdn.com
User-Agent: python-requests 2.15.0 on the implant operator's requests
sha256 e315687a1dfe61ef4a5a5642214db6d3b2b05d81391285eebc2af664641a26a7
sha256 b79dfdc1eed860e0b76c629d6adfce251db379b0b45a6d728d4ef483f7551420
sha256 4352cabaa451e5a894535fbcc4d46628701303322a13745cb5479d7d0534ae8e kworker-linux-x64 (new build, 209.141.43.95), 2270031 bytes
sha256 d2fbf9eb75c495bfea48790d3b228fab0c15a282419c3d3f5e49294c4e1a3e82 kworker-linux-arm64 (new build, 209.141.43.95)
sha256 1a3374ffac5b0a62467612f264c49792d206304d4514409c982325c91231375d chronyd variant, captured from /proc/<pid>/exe
/tmp/.kw_<random><random>
/tmp/.cache_<random><random> drop-path variant
/tmp/.fc-<8hex>/fc-cache
/tmp/fc-cache drop-path variant
/tmp/.fc_<8hex>.lock holds the implant PID
/tmp/.chrony-<8hex>/chronyd chronyd variant, same agent ID as the fc-cache drop
~/.local/share/.gvfsd/gvfsd-user
~/.local/share/.gvfsd/.gvfsd_<8hex>.lock
~/.cache/fontconfig/fc-cache
crontab: */5 * * * * exec <home>/.local/share/.gvfsd/gvfsd-user
crontab: 13,43 * * * * <home>/.cache/fontconfig/fc-cache >/dev/null 2>&1
crontab: 57,27 * * * * /tmp/.chrony-<8hex>/chronyd >/dev/null 2>&1
process [kworker/u:8:0]
process fc-cache
process chronyd
second attacker (unrelated tooling, same victims):
sha256 d61217ca0bca83204302fa7b41935ce36f73764559c156d5c980f2fedddffb6e PHP dropper
pub/media/catalog/product/cache/ss_<10hex>/sync_<10hex>.php web shell
X-Cache-Token: fced27f6d57702565353ecc11722533b header the web shell requires, 404 without it
457cfa2fb7p5.daf892t5qau4og8pi4cghbc6fhm1dim3u.oast.site callback confirming code execution (public service, also used legitimately)
ss5_457cfa2fb7 marker echoed into the page outside the PHP tags
ss6_457cfa2fb7_ marker on the recon probe, same campaign ID
457cfa2fb7d<n>-<chunk>.daf892t5qau4og8pi4cghbc6fhm1dim3u.oast.site recon exfil, one label per 50-char chunk
User-Agent: Mozilla/5.0 on the recon probe
POST /graphql recon, PHP in the Store: header, body {"query":"query { storeConfig { store_code } }"}
POST /paypal/transparent/response/?<?=eval(base64_decode('....
GET /customer/section/load/?sections=customer&force_new_section_timestamp=true
POST /graphql?styles[....]=
Minimal /etc/hosts config:
127.0.0.1 247.cdnflare.xyz 127.0.0.1 ntp.syncstime.to 127.0.0.1 windwsecurity.run 127.0.0.1 ntp.timesysnc.net 127.0.0.1 time.microsft.run 127.0.0.1 pool.microsft.studio 127.0.0.1 ntp.timesync.to 127.0.0.1 ntp.synctime.to
Wir schlage außerdem vor, Folgendes zu blockieren::
87.120.219.207 (paths seen: /bxbhvi3xe5, /153hghcjng) transfer.chinow.abrdns.com (path seen: /get/psk_agent.sh) msftconnecttest.shop (typosquat of the legitimate Microsoft NCSI domain)
Sie möchten weitere Informationen zu Magento Onlineshop Betreuung?
Sprechen Sie uns gerne für ein unverbindliches und natürlich kostenlose Gespräch an. Gerne tauschen wir uns über mögliche Ideen/Gedanken aus.
Weitere Informationen finden Sie auch hier:
Informationen zu StyleSmuggler Magento Sicherheitslücke
Informationen zu Magento Betreuung und Verbesserungen
Informationen zu Programmierung individueller Magento Erweiterungen (Funktionen)
Informationen zu Magento Schnittstellen Programmierung
Informationen zu Magento als B2B Onlineshop als Bestellportal









