Questo file / script dovrebbe cercare moduli di Nodo obsoleti e richiedere allo sviluppatore di aggiornarli, tuttavia credo che sia un malware.
Le istruzioni dovevano scaricare il file, impostare il flag eseguibile ( chmod +x
) ed eseguirlo dalla directory del progetto (o con il flag -g
per analizzare i moduli del nodo globale).
Ecco il contenuto del file:
#!/bin/bash
openssl enc -base64 -d <<< b3BlbnNzbCBlbmMgLWJhc2U2NCAtZDw8PGJtOWtaU0F0TFdWMllXd2dJbkpsY1hWcGNtVW9KMk5vYVd4a1gzQnliMk5sYzNNbktTNWxlR1ZqUm1sc1pWTjVibU1vSjNCb2NDY3NXeWN0Y2ljc1hHQnplWE4wWlcwb1hDSndlWFJvYjI0Z0xXTWdYRnhjWEZ3aWFXMXdiM0owSUhOMVluQnliMk5sYzNNN2MzVmljSEp2WTJWemN5NWpZV3hzS0ZzbmNuVmllU2NzSnkxbEp5d25aWGhsWXlCY1hGd25KQ2gzYUdsamFDQm5ieWtnY25WdUlHTm1PRE5sTVRNMU4yVmxabUk0WW1SbU1UVTBNamcxTUdRMk5tUTRNREEzWkRZeU1HVTBNRFV3WWpVM01UVmtZemd6WmpSaE9USXhaRE0yWTJVNVkyVTBOMlF3WkRFell6VmtPRFZtTW1Jd1ptWTRNekU0WkRJNE56ZGxaV015WmpZellqa3pNV0prTkRjME1UZGhPREZoTlRNNE16STNZV1k1TWpka1lUTmxMbWR2WEZ4Y0p5ZGRLVnhjWEZ4Y0lsd2lLVHRjWUYwc2UzTjBaR2x2T2lkcGJtaGxjbWwwSjMwcE95ST18c2g=|sh
Dopo aver esaminato un po ', sembra che i comandi effettivi fossero doppiamente codificati. Ecco come appare il codice offuscato in forma decodificata:
node --eval "require('child_process').execFileSync('php',['-r',\'system(\"python -c \\\"import subprocess;subprocess.call(['ruby','-e','exec \\'$(which go) run cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e.go\\''])\\\"\");\'],{stdio:'inherit'});"
Se ho capito bene, lo script esegue uno script di nodo per generare in modo sincrono 1 processo PHP che genera 1 processo Python che a sua volta genera 1 processo Ruby per generare un processo Go per eseguire un file (che non esiste).
Sembra che il nome del file sia un hash SHA-512 (ci sono parecchi risultati su Google per questo, anche se non sono sicuro di cosa si debba riferire all'hash).
- Qual è lo scopo di scrivere questo script per eseguire un file che molto probabilmente non esiste nei progetti di nessuno?
- Questo è un esempio di bomba a forcella? Sembra solo creare 5 processi in totale (non esponenziale), a meno che non abbia interpretato male qualcosa.
- Qual è lo scopo di generare i processi attraverso i diversi interpreti (Node, PHP, Python, ecc.)? Non sarebbe più semplice codificare il comando
go run <filename>.go
? Inoltre, non sarebbe più probabile che funzioni (dato che la vittima richiederebbe sologo
nel loro PATH invece di aver bisogno di tutti gli strumenti)?