viernes, 30 de octubre de 2015

Comando System en Asterisk: Systemstatus devuelve APPERROR

Llevaba tiempo sin publicar. Además, como donde estoy ahora no tengo disponible mi centralita, voy a intentar contarlo lo mejor posible. estaba no tenía disponible la centralita. Después de terminar de escribirlo, he llegado a ella y todo lo que tenía aquí expuesto estaba bien, excepto alguna sintáxis. Sobretodo el poner (o no) comillas, como si de cadenas se trataran, en las llamadas a las funciones de Asterisk

Ahora, tenemos en nuestro home: /home/myUser/ un script, dateFile.sh que hace:

date >> fileDate.log

Con unos permisos:

-rwxr--r-- myUser asterisk

A la hora de trabajar en los contextos en Asterisk, además de usar sus propios comandos, se pueden hacer llamadas al sistema o a scripts que tengamos en él. Por lo que, podríamos tener algo similar a lo siguiente:

[mi_contexto]
exten => s,1,Playback(hello-world)
exten => s,n,System(/home/myUser/dateFile.sh)
exten => s,n,Playback(thank-you-for-calling)
exten => s,n,Hangup

Después, resulta, que miras en los logs y te dice que se ha ejecutado (o, a veces, ni eso), pero mirando en la misma carpeta donde se encuentra el script te encuentras con que no se ha obtenido ningún resultado. Por lo tanto, buscando, te encuentras que el resultado de la operación se guarda en la variable SYSTEMSTATUS.

Por lo tanto, volviendo al contexto (siempre me sale el nombre de ámbito [scope]):

[mi_contexto]
exten => s,1,Playback(hello-world)
exten => s,n,System(/home/myUser/dateFile.sh)
exten => s,n,NoOp("Systemstatus is: " ${SYSTEMSTATUS})
exten => s,n,Playback(thank-you-for-calling)
exten => s,n,Hangup

Y volvemos a pasar el mismo. Ahora, después de lanzarlo, nos devuelve que el resultado es: APPERROR. No es SUCCESS. No es FAILURE.

Resulta, que al buscar qué significa ese error, todos terminan diciendo, más o menos que está indocumentado y que devuelve un resultado distinto de 0 (cero).

¿Y qué hago? No he visto resultados cuando Asterisk ha llamado al script. ¿Y si lo lanzo desde consola? Es importante saber que va a funcionar. Y en efecto, así es. Desde la misma consola funciona.

Bien: para resumir dónde puede estar el problema, volvamos a los permisos asignados. Porque ahí es donde radica el quid de la cuestión.

Nuestro usuario tiene permisos para ejecutar ese script. Asterisk no puede hacerlo. No sólo es cuestión de mirar a qué usuario pertenece dicho fichero, o el grupo al que quieres asignarlo, sino también los permisos de lectura, ejecución, ¿escritura? que quieras asignarle.

Si en vez de tener los permisos de arriba, tuviese:

-rwxr-xr-- myUser asterisk

Y volviésemos a ejecutarlo, ahora ya no nos devolvería ese error tan raro que no da ninguna información. La única pega que alguien podría poner es que lo asigne al grupo de asterisk, en vez de permitir que sean otros. A parte de eso, creo que esto es algo seguro, y, lo más importante de todo: ya hemos obtenido la respuesta de una de las posibles causas de este error.

lunes, 5 de octubre de 2015

Nava negra / ConectaCON 2015

Este fin de semana pasado han sido las Navajas Negras / ConectaCON. Este año han fusionado las dos conferencias en una, y, como los años anteriores, se han realizado en la Universidad de Albacete.

Tal y como hice el año pasado, quedé con Julián (@Txambe) para ir a Albacete en coche.

Una vez llegamos, nos dirigimos directamente a registrarnos y asistir a los talleres que nos interesaban. En mi caso fui a relacionado con Burp y él fue al que daba Pedro (@NN2ed_s4ur0n).

Una vez finalizados los talleres, a la hora de comer, la organización nos tenía preparada la comida con el cátering. Resulta que la gente empezó a comer antes de tiempo porque con la comida ahí a la vista.. Hubo gente que cuando salió del último taller, se encontró con que ya quedaba poca comida. Un buen capón por parte de la organización para todos haciendo que en las próximas comidas las "precintaran" hasta que todo el mundo estuvo listo para comer.

Después de comer, empezamos con las distintas charlas del día.

Yaiza Rubio y Felix Brezo nos hablaron de su herramienta Usufy, que se encarga de recuperar datos de la persona deseada en todas las redes sociales, o fuentes de información de Internet. A todos los efectos, de forma muy resumida,

Deepak Daswani (@dipudaswani) nos habló sobre la recuperación de datos con WhatsUp. Es otra herramienta OSINT, como la anterior. A partir de las fotos obtenidas por esta aplicación, se puede conseguir saber los sitios donde se ha ido desplazando "la victima" y cuándo ha estado en ese lugar.

Más adelante, Jose Antonio, Iván y Álvaro nos presentaron las distintas vulnerabilidades que encontraron en varios routers SOHO, los objetivos que se marcaron, los que consiguieron, sus dificultades... Nos enumeraron una gran variedad de vulnerabilidades que encontraron. Además, nos deleitaron con varias demos.

Más tarde Pablo San Emeterio (@psaneme), nos habló de distintas vulnerabilidades en el código fuente y en los binarios. Entre otros ejemplos, se pueden reseñar el uso de funciones no recomendadas dado su peligro: qué hace el compilador con ellas. ¿Las muestra como que no las conoce?¿Como prohibidas?¿Las deja pasar, pero internamente las cambia para que el resultado sea el mismo, pero de una forma segura?

Después, José Selvi (@JoseSelvi), de pentester.es, nos habló de HTST y SSL: El cómo se puede forzar a tirar de un cifrado SSL, engañando al sistema para que se ponga una fecha u hora distinta a la debería de tener realmente. Entre otros sistemas implicados se encuentran los servicios NTP. También se nombraron las listas de revocación (CRL) y nuevos sistemas más eficientes. Muy remarcable la banda sonora de esta ponencia: Regreso al futuro.

La última charla del día fue por parte de Mark Ven Heuser: De esta charla no se supo de qué iba hasta aquel mismo instante. De las muchas cosas de las que nos habló, fue sobre la problemática del uso de IPv6, tanto en el lado público como en el privado. Sobretodo el hecho de que "los cambios son difíciles". O, la discusión sobre la necesidad del uso de IPv6 en una empresa: ¿Es realmente necesario pasar a la versión 6 para una red privada?

Al finalizar la ponencia, nos fuimos a cenar todos juntos. La organización también nos tenía preparada esta comida. Después, tuvimos la oportunidad de hacer más networking.

Al día siguiente, después de un desayuno, Julián y yo fuimos a nuestros respectivos talleres. De hecho, al que yo quería ir había mucha gente deseando asistir, por lo que estuvimos en la puerta (equivocada) bastante antes de tiempo. Hasta que Julián se encontró con un tweet que indicaba que ya había gente allí. Casi me da un algo, pero llegué a tiempo para poder asistir y, además, conseguir un Arduino para la práctica.

El taller estuvo bastante chulo, pero hubo ciertos momentos de no enterarse de si las cosas funcionaban o no. Vamos. que en algún instante terminé en modo "no me entero, no me entero, no me enteroooo"

Después del taller, una vez más, magnífica comida preparada por parte de la organización.

Después de comer, empezaron las charlas.

La primera del día fue por parte de Ángel Suárez: Arranque de Linux seguro. Las distintas formas en las que se puede conseguir arrancar de forma segura, los distintos sistemas que se cargan al arrancar un Linux, qué sucede si hay particiones cifradas...

Después, Dani (@cr0n), de la organización, nos habló sobre Scapy, distintas funciones que tiene para simular sistemas de red, independientemente de la pila de protocolos. Aunque es fácil de usar, no es una herramienta de botón gordo... Incluso se hablaron de automátas de Mealy y de Moore.

Más adelate, tuvimos la presentación de la empresa SIA.

Más adelante, Carlos García (@cg_sanchez) nos hablo sobre SDR. Con un simple pincho USB para TDT, se puede conseguir escuchar frecuencias para las que, en teoría, su driver no está diseñado. Eso sí, depende de la marca que funcione o no. Cosas que se pueden escuchar: beepers (buscas), datos de aviación, tren, barcos... Y muchos más. Frecuencias que se nombraron: 433MHz, 868Mhz, 1090 MHz...

La siguiente charla, Abel Valero (@sanguinawer) y Segio Llata (@sergiollata) nos hablaron sobre la ingenieria inversa en máquinas virtuales y sus instrucciones. Era un reto de un CTF del que obtuvieron el resultado esperado.

Mirolav Stampar nos habló de su experiencia como voluntario en la organización que desarrolla SqlMap. No nos habló de cómo funciona la herramienta, pero sí de cómo la gente que utiliza la herramienta se comporta: los que donan, los que dicen que la herramienta falla y exigen que se arregle (pero, no toman la iniciativa de decir "mira, esto falla y te lo he arreglado")...

Al terminar, se hizo una pequeña presentación del próximo CyberCamp y... ¡una subasta de hackers!! Estuvo muy divertida la puja.

Una vez finalizada la charla, nos fuimos a cenar  otra vez. Después de la cena, tuvimos la oportunidad de asistir a los talleres nocturnos. Entre otros, Lorenzo (@lawwait) habló sobre UTMs. En mi caso, asistí al taller relacionado con aprender a memorizar de una manera efectiva, impartido por Alberto Cartier. Cuando terminó, estuve pululando un poco más por la sala, donde me indicaron que había un grupo de compañeros haciendo lockpicking. Hice una prueba con una cerradura de entrenamiento (después de unas pocas instrucciones), y conseguí que funcionase. Claro, viendo los cilindros...

Ya para el día siguiente, la primera ponencia fue por parte de David Barroso (@lostinsecurity), OPSEC: Seguridad operacional. Averiguar datos de una situación, persona o grupo de personas a partir de otros. Me recordó un poco a Locard. Puso de manifiesto diversos casos reales, a partir de los cuales, se llegó a descubrir quién era responsable de una situación en concreto a partir de las pistas que dejaron (usar una captura muy similar, comprar unos móviles que casualmente se usaron en un presunto delito y justo después de cometerse desactivarlos....). Como de costumbre, se puso de manifiesto el balance entre seguridad y usabilidad.

Más adelante, Arán Lorca (@4r4nL) nos habló de las distintas vulnerabilidades que encontró en un UTM y cómo fue capaz de, prácticamente, destriparlo. Teniendo en cuenta las distintas particiones cifradas del sistema, consiguió descifrarlas, manipularlo para conseguir actualizaciones y distintas características no contratadas en el mismo... No se indicaron marcas, pero ahí quedó la cosa. ¿Se podría conseguir hacer lo mismo con los UTMs de otras empresas?

Después tuvimos una pequeña charla comercial de 15 minutos por parte de Sophos.

Después del desayuno, Pepelux (@pepelux) nos habló una vez más de VoIP y los peligros que tiene no controlar cómo se configuran las centralitas Asterisk. Cómo terminan comprometidas de tal forma que otros usuarios que no deberían de poder usarla terminan sacándole provecho económico. La cosa es que estuve hablando con él en el desayuno, preguntándole cosas, y casi, casi le reviento una parte de la charla porque estaba muy relacionado con cómo evitar precisamente eso. xD. Nos hizo una demo en la que pude participar: conseguir que se marque un número de teléfono (mi móvil) y que saliera un origen distinto. Se esperaba otro comportamiento más, pero no pudo ser. :( Sobretodo, hay que acordarse muy bien de que SIP puede llegar a hacer llamadas con comando INVITE, sin REGISTER, si no se tiene cuidado. Y así se consigue que te carguen las llamadas a tí. Por eso es muy importante tener definidas unas políticas que permitan controlar, al menos, que los usuarios puedan hacer ciertas llamadas (o no) y a qué hora pueden hacerlas.

Más adelante, Deloitte CyberSOC hizo aparición para mostrar sus cursos de formación.

Para terminar las ponencias, Chema Alonso (@chemaalonso) volvió a hablar de Tacyt y cómo funciona su BigData, pudiendo hacer búsquedas de las aplicaciones de móviles.

Y, ya para terminar el evento, se hicieron los distintos sorteos y entrega de premios del CTF. Entre otros premios, cursos impartidos por Securizame (@Securizame), la empresa de Lorenzo (@lawwait). Hubo un juego que varios intentamos hacer y no lo conseguimos. Resulta que unos de los compañeros, lo terminaron... Tirando del servicio de CPUs de Amazón.

Para finalizar el evento: nos fuimos a ponernos las botas al hotel Universidad, donde nos pusieron un montón de comida muy, muy rica

Me quedo con que también me encontré con un montón de compañeros de otros años, con los que pude compartir muy, muy buenos momentos. Espero poder vernos el año que viene... O en un próximo evento.