Atac wikijoan 29-01-2012
Contingut
La wiki ha estat atacada (apareix OWNED en diferents pàgines). S'han modificat algunes pàgines (poques) i altres han estat eliminades (poques). L'atacant deu haver aconseguit el password general i ha modificat el password de l'usuari Joan de la taula usuaris de la wiki:
- password correcte -> :B:8a92a151:156332185b98dce93c9426815139494b (el puc recuperar d'una altra wiki amb el mateix pwd)
- password hakejat -> :B:be8a5ddc:a7d61269c9222d6d6bfe5db274221cb2
Per tant el primer que faig és un update del password per poder accedir a la wiki amb l'usuari Joan i desfer els canvis.
l'atac s'ha produït el 29 de gener.
hi ha dues causístiques: pàgines canviades, i pàgines esborrades.
faig una còpia de seguretat:
$ mysqldump --add-drop-table -i -C -u root -p -r /home/joan/copia_seguretat/mysql_backup/copia_wikidb117_300112_hack_owned.dmp -v wikidb117
jo no he treballat el dia 29.01.2012, o sigui que totes les revisions i eliminacions són del hacker.
Primer miro quines són les revisions afectades i què ha fet el hacker, mirant la taula revision i la taula logging:
mysql> select rev_id, rev_page, rev_user, rev_user_text, rev_timestamp from revision where rev_timestamp like '20120129%'; +--------+----------+----------+---------------+----------------+ | rev_id | rev_page | rev_user | rev_user_text | rev_timestamp | +--------+----------+----------+---------------+----------------+ | 248615 | 502 | 1 | Joan | 20120129011919 | | 248620 | 2 | 1 | Joan | 20120129012347 | | 248621 | 410 | 1 | Joan | 20120129012456 | | 248622 | 410 | 1 | Joan | 20120129012524 | | 248624 | 502 | 1 | Joan | 20120129012820 | | 248625 | 502 | 1 | Joan | 20120129013009 | | 248627 | 738 | 1 | Joan | 20120129013248 | | 248628 | 738 | 1 | Joan | 20120129013310 | | 248629 | 1156 | 1 | Joan | 20120129013440 | | 248631 | 1156 | 1 | Joan | 20120129013819 | | 248633 | 1156 | 1 | Joan | 20120129014113 | | 248634 | 1156 | 1 | Joan | 20120129014159 | | 248636 | 2 | 1 | Joan | 20120129014356 | | 248637 | 2 | 1 | Joan | 20120129014415 | | 248638 | 2 | 1 | Joan | 20120129014608 | | 248639 | 1315 | 1 | Joan | 20120129014608 | | 248640 | 2 | 1 | Joan | 20120129014730 | | 248641 | 502 | 1 | Joan | 20120129014943 | +--------+----------+----------+---------------+----------------+ mysql> desc logging; +---------------+---------------------+------+-----+----------------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------------+---------------------+------+-----+----------------+----------------+ | log_type | varbinary(32) | NO | MUL | NULL | | | log_action | varbinary(32) | NO | | NULL | | | log_timestamp | char(14) | NO | MUL | 19700101000000 | | | log_user | int(10) unsigned | NO | MUL | 0 | | | log_namespace | int(11) | NO | MUL | 0 | | | log_title | varchar(255) | NO | | | | | log_comment | varchar(255) | NO | | | | | log_params | blob | NO | | NULL | | | log_id | int(10) unsigned | NO | PRI | NULL | auto_increment | | log_deleted | tinyint(3) unsigned | NO | | 0 | | | log_user_text | varchar(255) | NO | | | | | log_page | int(10) unsigned | YES | MUL | NULL | | +---------------+---------------------+------+-----+----------------+----------------+ select * from logging where log_timestamp like '20120129%'; | patrol | patrol | 20120129011919 | 1 | 0 | ASI-C3-IAIG | 248615 | 52977 | 1 | 1413 | 0 | Joan | 502 | | patrol | patrol | 20120129011950 | 1 | 0 | ASI-C6-ASGBD | 248616 | 36270 | 1 | 1414 | 0 | Joan | 396 | | patrol | patrol | 20120129012010 | 1 | 0 | ASI-C6-ASGBD | 248617 | 248616 | 1 | 1415 | 0 | Joan | 396 | | patrol | patrol | 20120129012030 | 1 | 0 | ASI-C6-ASGBD | 248618 | 248617 | 1 | 1416 | 0 | Joan | 396 | | patrol | patrol | 20120129012048 | 1 | 0 | ASI-C6-ASGBD | | patrol | patrol | 20120129012347 | 1 | 0 | Pàgina_principal | | patrol | patrol | 20120129012456 | 1 | 0 | DAI-C8-EC | | patrol | patrol | 20120129012524 | 1 | 0 | DAI-C8-EC | | patrol | patrol | 20120129012616 | 1 | 0 | ASIX-M09-IAW | | patrol | patrol | 20120129012820 | 1 | 0 | ASI-C3-IAIG | | patrol | patrol | 20120129013009 | 1 | 0 | ASI-C3-IAIG | | patrol | patrol | 20120129013131 | 1 | 0 | ASIX-M09-IAW | | patrol | patrol | 20120129013248 | 1 | 0 | 5_ways_2_g | | patrol | patrol | 20120129013310 | 1 | 0 | 5_ways_2_g | | patrol | patrol | 20120129013440 | 1 | 0 | ASIX-M11-SAD | | patrol | patrol | 20120129013534 | 1 | 0 | ASIX-M09-IAW | patrol | patrol | 20120129013819 | 1 | 0 | ASIX-M11-SAD | | patrol | patrol | 20120129014017 | 1 | 0 | ASI-C6-ASGBD | | patrol | patrol | 20120129014113 | 1 | 0 | ASIX-M11-SAD | | patrol | patrol | 20120129014159 | 1 | 0 | ASIX-M11-SAD | | patrol | patrol | 20120129014303 | 1 | 0 | ASIX-M09-IAW | | patrol | patrol | 20120129014356 | 1 | 0 | Pàgina_principal | | patrol | patrol | 20120129014415 | 1 | 0 | Pàgina_principal | | move | move | 20120129014608 | 1 | 0 | Pàgina_principal | Pàgina principal1 | 1436 | 0 | Joan | 1315 | | protect | move_prot | 20120129014608 | 1 | 0 | Pàgina_principal1 | [[Pàgina principal]] mogut a [[Pàgina principal1]] | protect | unprotect | 20120129014730 | 1 | 0 | Pàgina_principal1 | | move | move | 20120129014943 | 1 | 0 | ASI-C3-IAIG | OWNED | 1 | 1439 | 0 | Joan | 0 | | protect | move_prot | 20120129014943 | 1 | 0 | | patrol | patrol | 20120129150208 | 1 | 0 | ASIX-M09-IAW | | patrol | patrol | 20120129150309 | 1 | 0 | ASIX-M09-IAW | | delete | delete | 20120129150437 | 1 | 0 | ASI-C6-ASGBD | el contingut era: «Ampliació de Sistemes Gestors | delete | delete | 20120129220715 | 1 | 0 | ASIX-M09-IAW |
Són poques pàgines afectades, i desfaig els canvis manualment.
Mirem els logs de l'Apache:
188.92.75.82 - - [29/Jan/2012:00:05:00 +0100] "GET/index.php/Wikijoan:Usuaris HTTP/1.1" 404 13233 "-" "Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1; SV1)" 188.92.75.82 - - [29/Jan/2012:00:05:15 +0100] "GET/index.php/Categoria:Classificaci%C3%B3_de_fotos HTTP/1.1" 200 13752"-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" 188.92.75.82 - - [29/Jan/2012:00:05:16 +0100] "GET/index.php?title=Especial:Registre_i_entrada&returnto=Categoria:Classificaci%C3%B3_de_fotos&returntoquery=action%3DeditHTTP/1.1" 200 14232 "-" "Mo 188.92.75.82 - - [29/Jan/2012:00:05:17 +0100] "GET/index.php?title=Categoria:Classificaci%C3%B3_de_fotos&action=edit&redlink=1HTTP/1.1" 302 411 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5 188.92.75.82 - - [29/Jan/2012:00:05:18 +0100] "GET/index.php/Categoria:Classificaci%C3%B3_de_fotos HTTP/1.1" 200 14145"-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" 188.92.75.82 - - [29/Jan/2012:00:05:19 +0100] "GET/index.php?title=Categoria_Discussi%C3%B3:Classificaci%C3%B3_de_fotos&action=edit&redlink=1HTTP/1.1" 302 426 "-" "Mozilla/4.0 (compatible; MSIE 6. 188.92.75.82 - - [29/Jan/2012:00:05:19 +0100] "GET/index.php/Categoria_Discussi%C3%B3:Classificaci%C3%B3_de_fotosHTTP/1.1" 404 14046 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT5.1; SV1)" 188.92.75.82 - - [29/Jan/2012:00:05:20 +0100] "GET/index.php/P%C3%A0gina_principal HTTP/1.1" 200 115656 "-" "Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1; SV1)" 188.92.75.82 - - [29/Jan/2012:00:05:24 +0100] "GET/index.php/DAI-C8-EC HTTP/1.1" 200 34375 "-" "Mozilla/4.0 (compatible;MSIE 6.0; Windows NT 5.1; SV1)" 188.92.75.82 - - [29/Jan/2012:00:05:25 +0100] "GET/index.php/ASIX-M11-SAD HTTP/1.1" 200 55826 "-" "Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1; SV1)" 188.92.75.82 - - [29/Jan/2012:00:05:27 +0100] "GET/index.php/ASIX-M09-IAW HTTP/1.1" 200 44356 "-" "Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1; SV1)" 188.92.75.82 - - [29/Jan/2012:00:05:29 +0100] "GET/index.php/ASI-C6-ASGBD HTTP/1.1" 200 28465 "-" "Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1; SV1)" 188.92.75.82 - - [29/Jan/2012:00:05:30 +0100] "GET/index.php/ASI-C3-IAIG HTTP/1.1" 200 31107 "-" "Mozilla/4.0compatible; MSIE 6.0; Windows NT 5.1; SV1)" 188.92.75.82 - - [29/Jan/2012:00:05:35 +0100] "GET/index.php/Ubuntu_Studio HTTP/1.1" 200 17349 "-" "Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1; SV1)" 188.92.75.82 - - [29/Jan/2012:00:05:38 +0100] "GET/index.php/Projectes_d'Inform%C3%A0tica_Musical HTTP/1.1" 200 31975"-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" 188.92.75.82 - - [29/Jan/2012:00:05:39 +0100] "GET/index.php/5_ways_2_g HTTP/1.1" 200 28064 "-" "Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1; SV1)" 188.92.75.82 - - [29/Jan/2012:00:05:41 +0100] "GET/index.php/Especial:Enlla%C3%A7os/Categoria:Classificaci%C3%B3_de_fotosHTTP/1.1" 200 15099 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT5.1; 188.92.75.82 - - [29/Jan/2012:00:05:42 +0100] "GET/index.php/Especial:P%C3%A0gines_especials HTTP/1.1" 200 24190 "-""Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" 188.92.75.82 - - [29/Jan/2012:00:05:50 +0100] "GET/index.php/Wikijoan:Pol%C3%ADtica_de_privadesa HTTP/1.1" 404 13887 "-""Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" 188.92.75.82 - - [29/Jan/2012:00:05:53 +0100] "GET/index.php/Wikijoan:Quant_a HTTP/1.1" 200 15586 "-" "Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1; SV1)" 188.92.75.82 - - [29/Jan/2012:00:05:55 +0100] "GET/index.php/Wikijoan:Av%C3%ADs_general HTTP/1.1" 404 13752 "-""Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" 65.52.110.22 - - [29/Jan/2012:00:06:56 +0100] "GET/index.php?title=Arduino&diff=248142&oldid=3903 HTTP/1.1" 200 43093"-" "Mozilla/5.0 (compatible; bingbot/2.0;+http://www.bing.com/bingbot.htm)" 82.148.109.69 - - [29/Jan/2012:00:15:55 +0100] "POST/index.php?title=Discussi%C3%B3&action=submit HTTP/1.1" 200 13608"http://wiki.joanillo.org/index.php?title=Discussi%C3%B3&action=edit""Mozill
i ja tinc la IP de l'atacant: 188.92.75.82
La direcció IP és de Latvia. Això ho trobo de
- http://www.geobytes.com/IpLocator.htm?GetLocation
- cercar en el google '188.92.75.82 whois'
Miro ara els log per veure si hi ha rastre de la IP:
$ cat /var/log/auth.log | grep 82.148.109.69 $ cat /var/log/auth.log.1 | grep 82.148.109.69
però no trobo res. No tinc clar si l'atac l'han fet perquè han entrat per SSH (en ppi no, no hi ha rastre), o senzillament han entrat a la wiki sense entrar a la màquina.
per canviar el password de l'usuari Joan de la wiki, hi ha un script:
$ cd /var/www/wikijoan117/maintenance/ $ php changePassword.php --user=Joan --password=*
si el hacker ha canviat el password de l'usuari Joan d'aquesta manera, vol dir que ha accedit a la màquina.
Altres coses:
- history del root -> mirant el history (de joan i de root), no hi ha hagut accés
- last: no hi ha hagut accés:
$ last ... joan pts/0 ies-jaumebalmes. Wed Jan 25 16:17 - 17:19 (01:02) reboot system boot 2.6.32-33-generi Wed Jan 25 00:22 - 21:20 (20:58) joan pts/0 85.98.19.95.dyna Mon Jan 16 14:13 - 14:16 (00:02) joan pts/0 ies-jaumebalmes. Mon Jan 9 17:28 - 17:58 (00:29) ...
- lastlog
$ lastlog Usuari Port Des de Últim root **No ha entrat mai** daemon **No ha entrat mai** bin **No ha entrat mai** sys **No ha entrat mai** sync **No ha entrat mai** games **No ha entrat mai** man **No ha entrat mai** lp **No ha entrat mai** mail **No ha entrat mai** news **No ha entrat mai** uucp **No ha entrat mai** proxy **No ha entrat mai** www-data **No ha entrat mai** backup **No ha entrat mai** list **No ha entrat mai** irc **No ha entrat mai** gnats **No ha entrat mai** nobody **No ha entrat mai** libuuid **No ha entrat mai** syslog **No ha entrat mai** messagebus **No ha entrat mai** avahi-autoipd **No ha entrat mai** avahi **No ha entrat mai** couchdb **No ha entrat mai** speech-dispatcher **No ha entrat mai** usbmux **No ha entrat mai** haldaemon **No ha entrat mai** kernoops **No ha entrat mai** rtkit **No ha entrat mai** saned **No ha entrat mai** hplip **No ha entrat mai** gdm **No ha entrat mai** joan pts/0 ies-jaumebalmes. dt gen 31 15:38:44 +0100 2012 mysql **No ha entrat mai** sshd **No ha entrat mai** pulse **No ha entrat mai** Debian-exim **No ha entrat mai**
En principi el visitant no ha accedit per SSH ni s'ha fet seu el control de la màquina.
Mesures preventives i canviar tots els passwords de la màquina
per canviar el pwd del mysql
mysqladmin -u root -p**** password '****'
(però abans he de localitzar tots els fitxers de configuració de les aplicacions que utilitzen el mysql:
- /var/www/wikijoan117/LocalSettings.php
- /var/www/wikijoanillo117/LocalSettings.php
- /var/www/blogjoanillo/wp-config.php
- /var/www/langtrainer/web/config_db.php
i finalment canviem el password de l'usuari joan del SO:
$ passwd (sense sudo!)
Tal com s'havia fet temps endarrere, el servidor SSH està sempre tancat, i només s'obre amb un script php quan es necessiti, tal com s'explica a Backup_LINKAT.sh, Obrir_el_SSH_des_d'una_pàgina_web
(ara bé, en comptes de posar /etc/init.d/ssh stop|start posem service ssh stop|start)
Actualitzar la màquina en línia de comandes
$ sudo aptitude update $ sudo aptitude safe-upgrade
creat per Joan Quintana Compte, gener 2012