Ikasten.IO
Learning, Aprendiendo

HackIt! 2017 Level 3 29 Julio, 2017


usbmon es una funcionalidad ofrecida por el kernel Linux para recolectar trazas de entrada/salida que usen el bus USB. El level 3 nos plantea unas trazas de texto plano obtenidas a través de usbmon.

Tras mucho analizar, allá donde esperábamos información sobre el dispositivo USB en concreto, vimos que había tres líneas censuradas.

Intentamos también convertir la salida ascii de usbmon a formato .pcap para manejar el dump más cómodamente desde wireshark, pero no lo conseguimos. Así que tocaba parsear el fichero de texto. Antes de ponernos a programar un parser, buscamos alguno ya existente y encontramos varias alternativas, entre ellas este script en python que además generaba su salida en un bonito HTML.

Lo intentamos por todos los medios. Lo primero fue extraer los datos de tipo isochronous e interpretarlos: como raw image, como audio, como señal de unos y ceros… agua.

Hasta muchas horas después de planteado el reto, nadie lo solucionó. Si no recuerdo mal, el lunes 24 pusieron la primera pista: “Audio parece, pero audio no es.” que nos dejó igual que estábamos (bueno, redujo el espacio de búsqueda, eso sí). La madrugada del lunes al martes (a eso de las 4am) se publicó la segunda pista, pero nos pilló exhaustos, y a la mayoría dormidos. La segunda pista restauraba parte de las líneas del dump eliminadas, facilitando información sobre el dispositivo que las generó. Un láser. Seguramente se nos tenía que haber ocurrido antes, conociendo al autor de la prueba y su afición por estos dispositivos

No sé si w0pr solucionó este reto con esta segunda pista o con la primera… pero ¡lo solucionó! Así que espero que publiquen el write-up para actualizar este post con el enlace directo.

UPDATE (30/07/2017): w0pr ha publicado la solución completa a este reto.

No hay comentarios en HackIt! 2017 Level 3
Categorias: HackIt

HackIt! 2017. Level 2 28 Julio, 2017

¡Y vamos a por bingo! El nivel 2 nos pide que encontremos el secreto que esconde una captura de tráfico de red. Realmente esto me sonaba a otra prueba del hackit… de 2007 (!). Abriendo la captura con un wireshark moderno, vemos tramas bluetooth. Probablement de algún dispositivo que envía datos, y en concreto, este SoundCore-Sport-XL-Bluetooth-Speaker.

Seleccionamos Telephony / RTP / RTP Streams…

Y oímos la señal, pero muy distorsionada. Aquí tuvimos un problema: queríamos exportar el audio para poderlo tratar con Audacity. Pero oh, sorpresa, no era posible:

Aquí se nos ocurrió una solución tal vez no muy “ortodoxa”, pero que funcionó perfectamente 🙂 Abrimos Camtasia, lo configuramos para grabar sonido del sistema y le dimos al Play stream en Wireshark. Exportamos luego el resultado de la grabación a formato mp4 (en Camtasia) y lo abrimos con Audacity, aplicándole el efecto de cambio de speed, encontrando la solución (fuaaaa!) 🙂

No hay comentarios en HackIt! 2017. Level 2
Categorias: HackIt

HackIt! 2017. Soluciones que me quitan de las manos 27 Julio, 2017

Gooood morning Vietnam! Siguiendo con la tradición (2014,2013,2012,2010,2009,2008,2007) que lamentablemente dejé de lado en 2015 y 2016, quiero volver a publicar soluciones para el HackIt! de la Euskal Encounter de este año (25 ediciones ya, OMG, cómo pasa el tiempo…) Lo primero, saludos a @marcan42 e @imobilis, por organizar el evento un año más. Lo segundo, pedirle a @marcan42 que suba las pruebas que faltan (have you stopped being lazy yet?) };-)

Vamos con el Level 1. Facilito, pero más complejo que otros años para ser una prueba de calentamiento.

Nos presentan un mapa de reservas de sitios… algo modificado:

Si abrimos el código y miramos las diferencias con el mapa de ocupación original, vemos algo raro (¡en el código de producción!):

Funciones xor, magic numbers y uno de ellos 31337 (eleet!, elite)… huele a que vamos por el buen camino 😉

La idea consistió en poner un breakpoint en la función w() de producción y otro en el de la prueba. En la ventana de la prueba, recogemos el array de datos y lo inyectamos en el de producción, para ver qué pintaba en pantalla esa función. ¡Sorpresa!

UPDATE: los compañeros de w0pr han empezado a publicar un write-up con sus impresiones. ¡Imprescindible lectura!

1 comentario en HackIt! 2017. Soluciones que me quitan de las manos
Categorias: HackIt

Running GUI applications with Docker in OSX 22 Julio, 2017

A quick guide on how to run docker containers requiring a GUI with Mac and XQuartz. First, you’ll need to download and install XQuartz. Run it.
Now, start socat to expose local xquartz socket on a TCP port:

$ socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\"$DISPLAY\"

Pass the display to container :

docker run -e DISPLAY=192.168.99.1:0 pygame xclock

I’m assuming that 192.168.99.1 is your vboxnet IP address and that “pygame” is the name of the docker image that contains your GUI application (in this case, my container’s name is pygame and the GUI is xclock)

For security purposes, you can use socat option range=/32 to filter the IP address (allowing only your primary IP to connect). Check also your XQuartz Preferences / Security tab:

Magic!

You can also launch a bash shell first and from there, run your GUI apps.

Sources:
[1] https://github.com/moby/moby/issues/8710#issuecomment-71113263
[2] http://fabiorehm.com/blog/2014/09/11/running-gui-apps-with-docker/
[3] https://github.com/CustardCat/pygame-docker

No hay comentarios en Running GUI applications with Docker in OSX
Categorias: docker

Online-pasahitzen segurtasun politikak. Oinarrizko gomendioak 22 Mayo, 2017

Pasahitzen inguruan, askotan entzun dut kexu hau: “ezin ditut hainbeste pasahitz gogoratu!”. Jakin badakigu zein den horren ondorioa: webgune ezberdinetan pasahitza aukeratzerako unean, burua asko nekatu nahi ez eta pasahitz berdintsua aukeratzea ( superpasahitza, ikusietaikasi!, hegoakebakibanizion2002…). Agian gidoia, azpimarra edo zenbaki sinple bat erantsiz. Edo alderantziz idatzi. Bai, badakit noizbait hori egin duzula. Ez, azkenengo puntua ez, denak.

Enpin, beste estrategia aurreratuago bat maila ezberdinetako pasahitzak erabiltzea litzateke. Alegia, babestu nahi dudan hori oso garrantzitsua bada, pasahitz sendo bat aukeratuko dut: _?=superpasahitzasinkronikopatologikoa2014! . Ez bada hain garrantzitsua, zerbait errazago: -IkusiEtaIkasietaOndoEntzun-. Eta gainontzeko webgune guztietarako, pasahitz ziztrin bat: emoiztazumuxutxuemaitie 🙂

Horrela, pasahitz bat esku zikinetan eroriz gero, beno, ez da munduko ezer onik galtzen. Baina ondo pentsatu: zer gerta daiteke? zure izenean bidalitako mehatxuak, mezu -oso- iraingarriak zabaldu, pribatutasun falta… Eta hori guztia kontutan izan gabe batzuetan “maila altuko” pasahitza beste webgune garrantzitsu batetan erabili duzula, edo hainbat webgunetan.

Ez baduzu pasahitzak sortu eta kudeatzeko politika sendo bat, zure pasahitzak ez dira inolaz ere sendoak. Are gehiago, zure eta zure inguruko segurtasuna ahultzen ari zara pasahitz bat berrerabiltzen duzun guztietan. Eta bai, ziur asko zure pasahitza, jada, cracker-en eskuetan egongo da. Ez al duzu sinisten? Zuk-zeuk proba dezakezu hemen. 3752 miloi kontuen pasahitzak daude bertan. Edo kasurik hoberenean, hash-ak. Baina hash baten esanahia eta zergatian ez naiz orain sartuko, beste artikulu batentzako utziko dut. Demagun zuzenean pasahitzak direla. Zure kontua bertan agertzen al da?
Nirea bai, 14 ALDIZ, leku ezberdinetan. Eta ez da nire errua izan ez bakar batean. Nire kontua kudeatzen zuten enpresek ez zuten, ikusten denez, hain ondo kudeatu.

Orduan, zer egin? Alde batetik, ez errepikatu pasahitzak. INOIZ. Beste aldetik, pasahitz sendoak hautatu. Eta azkenik, pasahitza-kudeatzaile bat erabili.

Pasahitz sendoak erabili

Noski, pasahitz sendoak erabiltzeak ez dituzula errepikatuko suposatzen du alde batetik. Eta bestetik, asmatzeko errazak ez direnak aukeratuko dituzula: hainbat karaktere ezberdin, letra larri eta xeheak uztartuz, ikurrak eta zenbakiak erantsiz. Nahiko luzeak. Adibidez:

(16 karakterez osatutakoa). Nik asmatu dut txurro hori? Ez, http://passwordsgenerator.net/ webgunetik hartu dut. Ausaz aukeratzen ditu zuk esandako irizpideak betetzen dituen pasahitzak. Horrelako webgune asko daude, aukeratu nahi duzuna, edo zuk-zeuk asmatu pasahitzak.

Pasahitz-kudeatzaileak erabili

Aurreko pasahitza gogoratzea posible bada ere (nemonikoak erabiliz: fruit ” EGG 7 ` zip USA park skype KOREAN < TOKYO / rope XBOX = ) ez da erraza. Eta ezin baditugu errepikatu (EZ! Ezin ditugu errepikatu!). are gutxiago. Orduan zer? Pasahitz-kudeatzaile bat erabili. Asko daude merkatuan, online, lokalak, software jabeduna, software librea... Ez dizut burua nekatu nahi. Nik erabiltzen dudana gomendatuko dizut: KeepassX. Software librea da (GPL), plataforma anitzetan dabil (Win, OSX, Linux). Erraz ikasiko duzu erabiltzen baina hona hemen argibide batzuk.

KeepassX aplikazioak bi fitxategi nagusi erabiltzen ditu: datubasea eta gakoa. Datubasean zure erabiltzaile/pasahitz/webgune hirukote guztiak gordeko ditu. Datubasea zifratu egingo du (inoiz galdu egiten baduzu, ez da ezer gertatuko, datuak zifratuak baitaude). Zifratzeko AES algoritmoa erabiltzen du (Advanced Encryption Standard, AES). Algoritmo hori simetrikoa da, alegia, pasahitz bat behar du zifratzeko eta pasahitz bera deszifratzeko. Segurtasunaren aldetik oso algoritmo sendoa da, lasai erabili dezakegu.
Beraz, KeepasX erabiltzen dugun guztietan gure pasahitzen datubasea deszifratzeko pasahitz nagusia eskatuko digu. Hori da, pasahitz sendo bat buruz ikasi eta gogoratu beharko duzu. Baina soilik bat.

Beste segurtasun neurri gisa gako fitxategi bat eskatu ahal dizu (defektuz horrela egiten du). Beraz, 2FA (Two Factor Authentication) edo bi faktoreetan oinarritutako kautotze prozesu bat erabiltzen duela esan dezakegu: alde batetik zuk dakizun zerbait behar du (pasahitza) eta bestetik zuk duzun zerbait (key edo gako fitxategia).

KeepassX aplikazio lokala da. Eta jada entzun ditut zure kexuak: “nik hainbat ordenagailuetan egiten dut lan, nola kudeatuko dut dena modu lokalean egiten badu lan?” Trikimailu bat erabiliko dugu hemen: KeepasX-ek behar dituen fitxategiak (datubasea edoeta key fitxategia) Dropboxen utzi. Gogoratu, zifratuta daude. Edo segurtasun neurri sendoago bat jarraituz: datubasea Dropboxen utzi eta key fitxategia USB batean (poltsikoan edo motxilan eramaten duzun USB horretan 😉

Esandakoa, erabili nahi duzun aplikazioa eta segurtasuna politika, baina mesedez, ez berrerabili pasahitzak.

PRO-TIP: KeepassX erabiltzea aukeratuz gero, ez dituzu online pasahitz sortzailerik erabili behar. Aplikazioak berak eskainiko dizkizu ausaz sortutako pasahitz sendoak.

1 comentario en Online-pasahitzen segurtasun politikak. Oinarrizko gomendioak