MachineHackeeExemple
Exemple d'une machine hackée
Un petit exemple d'une machine bien hackée:
# ps auxw
nobody 8889 47.8 1.6 13140 2092 ? R Dec08 2711:09 /usr/local/apache/bin/httpd
nobody 7208 0.0 0.2 2100 260 ? T Dec09 0:00 ./telek
nobody 20546 0.0 0.0 0 0 ? Z Dec09 0:00 telek
nobody 14831 20.4 1.8 11556 2332 ? R Dec10 600:46 /usr/local/apache/bin/httpd
nobody 9472 20.5 1.8 10288 2296 ? R Dec10 600:48 /usr/local/apache/bin/httpd
nobody 19874 0.0 0.1 1352 212 ? T Dec10 0:00 /tmp/c
nobody 18338 0.0 0.0 0 0 ? Z Dec10 0:00 c
nobody 18390 0.0 0.1 1352 212 ? T Dec10 0:00 /tmp/c
nobody 590 0.0 0.0 0 0 ? Z Dec10 0:00 c
nobody 1486 0.0 0.1 1352 212 ? T Dec10 0:00 /tmp/c
nobody 11311 0.0 0.0 0 0 ? Z Dec10 0:00 c
nobody 2231 0.0 0.1 1356 216 ? T Dec10 0:00 /tmp/c
nobody 16076 0.0 0.0 0 0 ? Z Dec10 0:00 c
nobody 21115 19.6 0.2 1348 252 ? R Dec11 178:08 ./kmod
nobody 27214 0.0 0.1 1360 212 ? S 02:15 0:00 ./x0x
nobody 15064 0.0 0.2 2104 288 ? S 03:03 0:00 getty
On peut penser que la machine est
MachineSemiHackee, mais ...
# netstat -tanpu
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:2600 0.0.0.0:* LISTEN 11133/psybnc
tcp 0 0 0.0.0.0:6668 0.0.0.0:* LISTEN 31528/psybnc
Tiens 2 bounceurs IRC.
#ps auxw |grep 11133
root 23763 0.0 0.5 1832 672 pts/5 S 12:18 0:00 grep 11133
Le process n'est pas vu par la commande
ps.
# cd /proc/11133/
#ls -l
total 0
-r-r-r- 1 nobody nobody 0 Dec 12 12:19 cmdline
lrwxrwxrwx 1 nobody nobody 0 Dec 12 12:19 cwd -> /var/tmp/psybnc
-r- 1 nobody nobody 0 Dec 12 12:19 environ
lrwxrwxrwx 1 nobody nobody 0 Dec 12 12:19 exe -> /var/tmp/psybnc/psybnc
dr-x- 2 nobody nobody 0 Dec 12 12:19 fd
-r-r-r- 1 nobody nobody 0 Dec 12 12:19 maps
-rw- 1 nobody nobody 0 Dec 12 12:19 mem
-r-r-r- 1 nobody nobody 0 Dec 12 12:19 mounts
lrwxrwxrwx 1 nobody nobody 0 Dec 12 12:19 root -> /
-r-r-r- 1 nobody nobody 0 Dec 12 12:19 stat
-r-r-r- 1 nobody nobody 0 Dec 12 12:19 statm
-r-r-r- 1 nobody nobody 0 Dec 12 12:19 status
# cat stat
11133 (psybnc) S 1 10133 21624 0 -1 134217792 1052 0 790 0 3107 1321 0 0 9 0 0 0 173526992 2871296 253 4294967295 134512640 135116556 3114546144 3114545452 134716030 0 0 4096 28367 3223080614 0 0 17 0
#cat cmdline
./psybnc
Alors que le process existe bien,
psest donc modifié et donc le hackeur a pu être root.
La machine est foutue, mais on va regarder en profondeur.
# lsattr /bin/
suSiadAc- /bin/login
suSiadAc- /bin/ls
suSiadAc- /bin/netstat
suSiadAc- /bin/ps
Les hackeurs font toujours cette manipulation: ils mettent en place leur commande et ils changent les droits sur les executions pour eviter les mises à jour.
Maintenant on pourra regarder mieux
# ps auxw
nobody 8889 47.7 1.6 13140 2092 ? R Dec08 2713:27 /usr/local/apache/bin/httpd
nobody 7208 0.0 0.2 2100 256 ? T Dec09 0:00 ./telek
nobody 20546 0.0 0.0 0 0 ? Z Dec09 0:00 telek
nobody 14831 20.4 1.8 11556 2332 ? R Dec10 603:04
nobody 9472 20.5 1.8 10288 2296 ? R Dec10 603:07 /usr/local/apache/bin/httpd
nobody 19874 0.0 0.1 1352 212 ? T Dec10 0:00 /tmp/c
nobody 18338 0.0 0.0 0 0 ? Z Dec10 0:00 c
nobody 18390 0.0 0.1 1352 212 ? T Dec10 0:00 /tmp/c
nobody 590 0.0 0.0 0 0 ? Z Dec10 0:00 c
nobody 1486 0.0 0.1 1352 212 ? T Dec10 0:00 /tmp/c
nobody 11311 0.0 0.0 0 0 ? Z Dec10 0:00 c
nobody 2231 0.0 0.1 1356 212 ? T Dec10 0:00 /tmp/c
nobody 16076 0.0 0.0 0 0 ? Z Dec10 0:00 c
nobody 11133 0.0 0.8 2804 1012 ? S Dec10 0:44 ./psybnc
nobody 11598 0.0 0.7 2500 948 ? S Dec10 0:13 ./psybnc
nobody 31528 0.0 1.2 3788 1504 ? S Dec11 1:04 ./psybnc
nobody 25517 0.0 0.5 2304 712 ? S Dec11 0:01 ./psybnc
nobody 21115 19.6 0.2 1348 252 ? R Dec11 180:27 ./kmod
nobody 27214 0.0 0.1 1360 212 ? S 02:15 0:00 ./x0x
nobody 15064 0.0 0.2 2104 284 ? S 03:03 0:00 getty
nobody 27439 0.0 2.6 13552 3292 ? S 10:10 0:07 /usr/local/apache/bin/httpd
On voit des choses.
kmod notamment lancé en ligne de commande ! C'est probablement un soft
qui essaie d'exploiter une faille sur ptrace sur le noyau < 2.4.20. Sauf que le noyau est 2.4.21.
Et sur ce noyau il existe une autre faille. Il faut passer en 2.4.23.
On arrete là. La machine part en reinstallation.
#halt
Broadcast message from root (pts/5) Fri Dec 12 12:37:54 2003...
The system is going down for system halt NOW !!
Comment la machine a été hackée ?
Le hackeur a d'abord trouvé une faille dans un script php. Il a donc pu avoir l'accès shell
en nobody. Puis avec le bug de securité sur noyau < 2.3.23 il a pu passer root grâce aux
exploits qu'on peut trouver sur l'internet. Le noyau de la machine est 2.4.21.