cript0

Soluciones a la Competición de Criptografía UPV “Año Turing” en la ETSINF

Desde hace unos instantes acaba de terminar el Concurso de Criptografía  en la ETSINF  conmemorando el centenario de el gran científico Alan Turing . El concurso lo han organizado el DSIC , la escuela de Informática ETSINF y la empresa de seguridad S2Grupo . En la presentación del Concurso varias personas de S2Grupo y el profesor de Criptografía de la ETSINF comentaron un poco de historia referente a la criptografía clásica y lo importante que fué Alan Turing en la 2ª guerra mundial con la máquina enigma.

 

Sino quieres leer la entrada, las soluciones están aquí.

Tras una pequeña introducción comentaron las bases del Torneo, y ello consistía en atacar el Cifrado Vigenere.Este cifrado, que es parecido al Cifrado de Cesar pero incluye una clave con la que cifra ,como todo el mundo sabe , Vigenere es vulnerable a ataques estadísticos de frecuencias también llamados tests de Kasiski.Este ataque intenta sacar la longitud de la clave con la que se ha cifrado y luego intenta bruteforcear con la regla AEO.Intentará reconocer fragmentos repetidos en el texto y sabiendo la longitud de la distancia  de los fragmentos hallar su máximo común divisor. Una vez tenemos fragmentos de longitud de la clave, se ataca intentando sustituir por las letras más usadas en Español(A-E-O). Pues con esto estuvé leyendo y buscando algo de código de Vigenere y los tests de Kasiski. Ante la fustración de ver resultados dudosos pensé en programar un script en Python, para poco a poco habituarme a este lenguaje que tan poco conozco y tanto me gusta.El script no es ninguna maravilla , pero funciona correctamente si se respeta la entrada de parámetros, asi que todo a mayúsculas y el fichero con letras desde A a la Z incluyendo nuestra cariÑosa Ñ. Los primeros problemas que me surgieron fueron la codificación, ya que python codifica en ascii de 7 bits, ni siquiera el extended de 8 bits. Así que una idea buena es usar UTF8 y pasar las letras a numérico (la A vale 0 , la B vale 1, … la Z vale 26.) Ya que la codificación de la Ñ en UTF8 es wide char,lo que quiere decir que ocupa doble. Por lo que en el código hay varias funciones de limpieza de eÑes. Veamos los argumentos de como funciona:

$ python vigenere.py
     <<<  Crypt and decrypt with Vigenere  in Spanish language >>>       
                        < ednolo[a]inf.upv[dot]es >                       

[+] Usage: vigenere.py [Dd | Cc]  KEY FILE.txt                              
                        --d  or D         --decrypt                         
                        --c  or C         --crypt                           
                        --KEY             --in uppercase                    
                        --cipheredFile    --all characters in uppercase     
                        --plaintextFile   --all characters in uppercase     

[!] Example:   python vigenere.py D EDUARDO ciphered.txt                    
[!] Example:   python vigenere.py c ISCOOL  plaintext.txt

Pues cifrar y descifrar sería preparar el fichero a mayúsculas y sin puntos ni acentos ni comas ni simbolos raros y correrlo de la siguiente manera:

Vale muy bien ya tenemos algo para empezar, pero ahora sabemos que nos van a dar un texto grande cifrado y tendremos que saber la KEY para poder leer el mensaje. Y la verdad que fuerzabruta contra >=8 caracteres con un charset “ABCDEFGHIJKLMNÑOPQRSTUVWXYZ” de 26 dígitos es morir en el intento, además que habria que crear un algoritmo que supiese si toda decodificación es exacta, vamos que es 100% legible en español. Asi que ahora toca preparar Kasiski, y suerte que buscando en la red ya está programado y funcional excepto una función de factorizar para hallar el MCD (máximo común divisor).Si te aburres y la modificas hazmelo saber, sino lo haré con cuando tenga un rato.

 

$ ./kasiskyAttack.py < cifrado.txt
Give me ciphered text?
GGMP       262
YEDS        73
VNUE       281
UÑE        17
HASE       157
VSUE        32
GGMP       105
SDE         29
RPW        206
EÑ        136
MTI        103
WUE        325
DSE         84
ETF        168
HLB         13
ÑE        260
RNB        171
EÑ        222
LPW        113
RSF        137
GRP         89
EUE        127
GGR         69
UEE          8
TGR         29
TGG         20
TGG         48
UOT         32
PBVRQ VICAD SKAÑS DETSJ PSIED BGGMPSLRPW RÑPWY EDSDE ÑDRDP CRCPQ
MNPWK UBZVS FNVRD MTIPW UEQVV CBOVN UEDIF QLONM WNUVR SEIKA ZYEAC
EYEDSETFPHLBHGU ÑESOM EHLBX VAEEP UÑELI SEVEF WHUNM CLPQP MBRRN
BPVIÑ MTIBV VEÑIDANSJA MTJOK MDODS ELPWI UFOZM QMVNF OHASESRJWR
SFQCO TWVMB JGRPWVSUEX INQRS JEUEM GGRBD GNNIL AGSJI DSVSU EEINT
GRUEE TFGGM PORDF OGTSS TOSEQ OÑTGR RYVLP WJIFW XOTGG RPQRR JSKET
XRNBL ZETGG NEMUO TXJAT ORVJH RSFHVNUEJI BCHAS EHEUE UOTIE FFGYA
TGGMPIKTBW UEÑEN IEEU

Si el texto es muy largo puede que no consigas ver todo el buffer de la shell , por ello es mejor:

$ ./kasiskyAttack.py < cifrado.txt > kasisky.txt

Llegado a este punto llego el dia de la competición y claro, si ya existen aplicaciones que atacan estos cifrados con una facilidad de escándalo, pues si te pilla el toro a usar Cryptool.Todas las pruebas han sido descifradas con Cryptool , en la versión antigua, es decir la 1. Lo único que deberéis hacer es modificar el charset y añadir la Ñ, aunque la Ñ no os dejará, asi que sustituir por un símbolo cualquiera que os recuerde, cuando tengas el texto descifrado haz la inversa y reemplaza el símbolo por la Ñ y tendrás el token.

He agrupado el PDF , las soluciones a todos los retos, los textos cifrados y el código en Python en un fichero que puedes descargar de aquí. Enjoy!

 

Aquí dejo las keys para que probéis a descifrar con Cryptool o con cualquier script que tengais.

 

Claves para descifrar los textos cifrados:

A1: JSNGJCCTWAGQCTCXMDMKA
A2: HVWBFWNFPOIPFDÑR
A3: QHDZPVSAFHYUTIRDJPUY
B1: POFRLÑBHZTBZWPÑPSQDSSX
B2: POFRLÑBHZTBZWPÑPSQDSSX
B3: ÑFQRJFBZRGPFXZIUOOKKNJUJD
C1: WVKUHNMNEMXWSPQAWOCZBEDUZAZXDW
C2: MIJFFWNOSLJUWPWMQHHDQTTDPZPXZQSRUP
C3: CMWNIOLJMREVIKMBIÑDNIPENMJUYOJLTNAÑ
D1: OÑCWIUJMÑERLKKLHYJÑDGOXSQYTRMEUDJZOZIEEMFSY
D2: AYNIXQUMTVWRPUIEAHTGIIDSSZPATHRVGIOHGQ
D3: KQDZPRNMAKLCMGGRCTNWÑEÑJFFQZSGFUKOBDWFLUAAQYJ

 

Un pequeño ejemplo de como descifrar el reto D2 una vez tenemos la key.

 

Aquí otro ejemplo descifrando con Cryptool donde se aprecia la clave que ha obtenido con el Ataque automático de Vigenere:

 

Sin más, como reflexión sobre el Wargame y desde mi punto de vista, creo que se debería:

  • Avisar también  del inicio de la competición.
  • No haber avisado ni dado pistas sobre el tipo de cifrado.
  • No avisar la cantidad de retos.
  • Faltaba un scoreboard asi como avisar si el token era correcto.

Por lo demás gracias a las personas que gracias a ellas se producen este tipo de eventos en la Universidad y a esperar a ver si me toca con suerte algun premio.

Gracias.

0day_thumb

Got root? III “0day en Wicd : Escalada de Privilegios en Linux CVE-2012-2095″

 

Hace algunas entradas escribía sobre escalada de privilegios en Linux, y es que hace un día un estudiante durante un CTF encontró una vulnerabilidad en el conocido gestor de redes de sistemas Linux : WICD (Wireless Interface Connection Daemon). Al principio hubo algo de revuelo al enunciar un 0day en BackTrack5R2 ( la verdad que no entendí como en un sistema que solo existe un user logueable que es “root” podía existir esto, en fin, es que los chicos de Backtrack van a pelo, no gastan ni sudo!!!) en varios canales de noticias de seguridad. La noticia ha corrido como la pólvora y no es para menos.

Pues sin más preámbulos vayamos a explotarlo y obtener nuestra rootshell. Imagino que habrá muchas maneras más elegantes de explotarla, pero yo he elegido una shell reversa con netcat.

Lo primero es localizar el exploit y el write-up explicando como se obtiene el bug. Todo empieza en una validación en la función ‘SetWiredProperty()’ que se encuentra en el código wicd-daemon.py, el cual al hacer uso de la interface DBUS se consigue inyectar código con permisos de superusuario.

Lo primero nos crearemos un shellscript, por ejemplo de nombre shellreverse.sh,  que genere una shell reversa en el puerto 666 a la escucha en local:

 

 

Una vez tengamos el exploit descargado , la shell preparada en un script y asegurándonos no tener nada a la escucha en el puerto 666 , podemos empezar a lanzar los cohetes:

 

 

Vemos como parece que ha funcionado, veamos si esta el puerto disponible, y antes nos aseguramos que no haya nada corriendo :

 

 

Y ya tenemos la shell de root. Podemos probar ejecutar comandos como ‘halt’ o ‘reboot’ en el –scriptPath= y también funcionara,lo que no he enetendido porque no acepta la variable de entorno $SHELL , la cual lleva la ruta de /bin/bash. Aunque espero cualquier mejora a esta escalada de privilegios.

 

Existe parche para parchear y el desarrolador ha creado una nueva release. La versión 1.7.2.1 está “libre” de bugs.

 

Probando todas las versiones me quedo con la 1.7.2.1 que está solucionado.

dudu@d3b1an:~$ python wicdexploit.py --scriptPath="/home/dudu/shellreverse.sh"
[$] WICD =< 1.7.0Day
[*] WICD Connection Initialized! (Version: 1.7.1)
[*] Attempting to exploit:
[*] Exploit appears to have worked.
dudu@d3b1an:~$ python wicdexploit.py --scriptPath="/home/dudu/shellreverse.sh"
[$] WICD =< 1.7.0Day
[*] WICD Connection Initialized! (Version: 1.7.2.1)
[!] WICD Warning: version print exceeds 1.7.1: Trying anyhow.
[*] Attempting to exploit:
[!] Exploit Error: Unable to exploit (SetWirelessProperty() failed.)

 

Hasta la próxima entrada, os recuerdo las anteriores:

Got root? I  “Escalando privilegios con Mempodipper CVE-2012-0056″

Got root? II “Vulnerabilidad en el Formato de Cadena en sudo CVE-2012-0809″

Got root? III “0day en Wicd : Escalada de Privilegios en Linux CVE-2012-2095″

 

 

rooted

Prueba4 del RootedArenaCTF2012 “Sender”

Siguiendo con la RootedCON que la tenemos reciente, voy a comentar una prueba del CTF RootedArena, vamos a ver una simple donde al conectarnos por ssh veiamos un binario de linux llamado “sender”.

Tras asegurarnos con file y con un editor de texto de lo que podia estar haciendo, procedemos a su ejecución esperando la creación de un xml por parte del emisor, donde recibiremos unas credenciales para poder entrar en un challenge.La verdad que esta prueba me recordaba mucho a una del Wargame de SecurityByDefault en Valencia (antes de que llegara la crisis y nos dejara sin campus), la cual era muy similar.

En el fichero proporcionado vemos un bash script , y pasamos a analizar esta parte de código que es la que nos generará un fichero XML, vemos como comprueba la integridad con un md5 hardcodeado , como comprueba si existe ya el fichero,sino mediante el uso del algoritmo uudecode , descifrara la parte residente entre begin-end.

# ============= sender.xml ==============
if test -f 'sender.xml' && test "$first_param" != -c; then
${echo} "x - SKIPPING sender.xml (file already exists)"
else
${echo} "x - extracting sender.xml (bzipped)"
  sed 's/^X//' << 'SHAR_EOF' | uudecode &&
Xbegin 600 _sh06403/bzi
XM0EIH.3%!62936767!@<```]?@``0``#N)0`$&``OH]Z@(`!J&B:1ZGJ/4-J!
XMH`)4Q0#U,@`&1B)@443%4-W>3:O(%WK,S82,TER]*A!,1%O%>G$04$/08QA7
XFRL"V7:([S),UE"8U4R@K7F8H+P@7Z8L"J@@?B[DBG"A(.LN#`X`0
X`
Xend
SHAR_EOF
${echo} "bunzipping file sender.xml" &&

  bzip2 -d < ${lock_dir}/bzi > 'sender.xml' && \
  (set 20 12 01 25 12 33 41 'sender.xml'
   eval "${shar_touch}") && \
  chmod 0644 'sender.xml'
if test $? -ne 0
then ${echo} "restore of sender.xml failed"
fi
  if ${md5check}
  then (
       ${MD5SUM} -c >/dev/null 2>&1 || ${echo} 'sender.xml': 'MD5 check failed'
       ) << \SHAR_EOF
3a9590bd4288b6061c670669f664fe2d  sender.xml
SHAR_EOF
  else
test `LC_ALL=C wc -c < 'sender.xml'` -ne 134 && \
  ${echo} "restoration warning:  size of 'sender.xml' is not 134"
  fi
fi

Entonces ejecutamos el fichero sender a ver que transmite el emisor:

# bash sender
x - created lock directory _sh06403.
x - extracting sender.xml (bzipped)
sender: línea 86: uudecode: no se encontró la orden
restore of sender.xml failed
sender.xml: MD5 check failed
x - removed lock directory _sh06403.

Ummm parece que faltan algunos paquetes que gastan la codificación uudecode-uuencode. Esta codificación se usar para encodear binarios a texto en formato Unix-to-Unix. Buscamos que paquete incorpora estos algoritmos y lo instalamos.

# apt-get install sharutils -y

 

Vamos a ver que genera…….

# bash sender
x - created lock directory _sh06403.
x - extracting sender.xml (bzipped)
bunzipping file sender.xml
x - removed lock directory _sh06403.

Vale parece que ahora no se ha quejado con uudecode. Veamos a ver que ha creado:

-rwxr-xr-x 1 dudu dudu 3401 feb 18 23:25 sender
-rwxr-xr-x 1 dudu dudu 134 ene 25 12:33 sender.xml

Veamos el XML que tiene:

 

Vale unas credenciales , un algoritmo de cifrado y una semilla. Pues veamos que podemos generar.Con el recuerdo de la prueba de SecurityByDefault ,escribí un simple script que generase cualquier permutación de credenciales con semilla,sin semilla, sin user ,con user en busca de un hash.

 

#!/usr/bin/python
# k1f0's team :D

import md5

user='ctf04'
passwd='ppLggd099'
seed='R3Sti'

list={user+passwd+seed,passwd+user+seed,passwd+seed+user,user+seed+passwd,seed+passwd+user,seed+user+passwd}

list1={passwd+seed,
       seed+passwd,
       user+seed,
       seed+user,
      }

list2={
       user+':'+passwd+':'+seed+':'+'1',
       passwd+':'+user+':'+seed+':'+'1',
       passwd+':'+seed+':'+user+':'+'1',
       user+':'+seed+':'+passwd+':'+'1',
       seed+':'+passwd+':'+user+':'+'1',
       seed+':'+user+':'+passwd+':'+'1',
      }

print ('---------------------------------------------------------')
for i in list:
     print "%s        %s" %(i,(md5.new(i).hexdigest()))
print ('---------------------------------------------------------')
for i in list2:
     print "%s        %s" %(i,(md5.new(i).hexdigest()))
print ('---------------------------------------------------------')
for i in list1:
     print "%s        %s" %(i,(md5.new(i).hexdigest()))
print ('---------------------------------------------------------')

 

Ejecutemoslo y vayamos probandolos, en fin tampoco son tantos.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Token: 9073a59977303ebdfea39302f407cc6e

 

En la otra entrada agradecí que tuviesen las máquinas conectadas, pero parece que han pasado de lo lindo! 8====3—-

logo

WiFite v2, ahora con Reaver!

Nunca me han gustado mucho las GUIs ni los programas automatizados para hacer pentesting Wireless, quizás porque ya disponemos de una suite como aircrack que practicamente incluye de todo. Pero si tengo que nombrar varios programas automatizados recomendaría WiFite y FeedingBottle. En esta entrada voy a ver como instalar la nueva versión de WiFite , es decir la WiFite v2 BETA9 que incluye Reaver. He de decir que parece que no incluirá interfaz gráfica por incompatibilidades de Python.

En la página de la nueva versión está mas que explicado el proceso de instalación. Pero vamos a hacerlo de todas formas aquí de una manera más a lo debian, aprovechando los repositorios de la chicos de BackTrack.

Descargamos el script en python con git:

git clone git://github.com/derv82/wifite.git
cd wifite/
chmod +x wifite.py
./wifite.py

 

Ahora vamos a solventar las dependencias, segun el autor dependencias básicas serian pocas:

  • La suite de Aircrack-ng
  • Python 2.6.x o Python 2.7.x
  • Las wireless-tools (herramientas básicas de Linux como iwconfig,iw….)
Para mi gusto vamos a solventar todas las dependencias para poder realizar una auditoria en condiciones, vamos a meterle toda la bateria que Derv Merkler ha elegido para vulnerar el cifrado WPA/WPA2.
Si usas sistemas basados en Debian, como Ubuntu y derivados podeis seguir el manual,sino debereis instalar vosotros los programas dependiendo de vuestro sistema Linux.Ya que WiFite solo funciona el Linux, por ahora.

Podemos agregar los repositorios de BackTrack5 y realizar el proceso más rapido y sencillo.Editamos nuestro /etc/apt/sources.list y elegimos nuestras fuentes dependiendo de la arquitectura.

Para arquitecturas de x86:

deb http://all.repository.backtrack-linux.org revolution main microverse non-free testing

deb http://32.repository.backtrack-linux.org revolution main microverse non-free testing

deb http://source.repository.backtrack-linux.org revolution main microverse non-free testing

para arquitectura de x64:

deb http://all.repository.backtrack-linux.org revolution main microverse non-free testing

deb http://64.repository.backtrack-linux.org revolution main microverse non-free testing

deb http://source.repository.backtrack-linux.org revolution main microverse non-free testing

 

Y procedemos a añadir la clave PGP:

 wget -q http://all.repository.backtrack-linux.org/backtrack.gpg -O- | sudo apt-key add -

 

Actualizamos las listas de paquetes:

apt-get update

 

Ahora con una línea instalamos todas las dependencias:

aptitude install aircrack-ng macchanger libpcap0.8-dev libsqlite3-dev reaver pyrit cowpatty tshark -y

Yo ya puestos recomiendo un par de herramientas muy básicas tambien para cualquier pentesting wireless:

aptitude install mdk3 wireshark

 

Llegados a este punto comienza la hora de probar las nuevas funcionalidades como la integración de Reaver.

Y recordar que es una versión alpha/BETA y todavia no es oficial, podeis ir probandola e ir reportando issues al desarrollador.

 

 

¿A qué esperas a probarlo?

rootedArena

Prueba12 del RootedArenaCTF2012


Después de este fin de semana con la celebración de la RootedCON2k12 y el CTF finalizado  he retomado el Capture the flag. Este año ha sido al estilo “Arena” por lo que el que tomó las bastillas, ya se encargargo de que no se  pudiesen realizar. En primera posición acabó Eloi Sánfelix (aka @esanfelix) , ya en segunda posición acabó @infiltrandome (aka kifo)  y en tercera  Alvaro Muñoz ( aka @alvms). Enhorabuena a todos!

En a prueba12 podiamos encontrar un txt que decía : “La respuesta debes encontrarla dentro.”

Y al conectar por SSH podiamos encontrar un precioso zip con password. Lo primero fué pensar en bruteforcear el zip y me puse manos a la obra. Lo primero fué buscar alguna aplicación que realizase tal tarea. Rapidamente encontré fcrackzip y pensé como lanzarlo. Tengo que decir que no pensé que el parámetro -u fuese tan importante, y tal fué el asunto que estuve un dia y medio con 4 shells bruteforceando el zip con varios charsets. Hasta el punto de olvidarme de ella totalmente. Vemos ahora una pequeña sinopsis de la herramienta.

fcrackzip version 1.0, a fast/free zip password cracker
written by Marc Lehmann pcg@goof.com You can find more info on
http://www.goof.com/pcg/marc/

USAGE: fcrackzip
[-b|--brute-force] use brute force algorithm
[-D|--dictionary] use a dictionary
[-B|--benchmark] execute a small benchmark
[-c|--charset characterset] use characters from charset
[-h|--help] show this message
[--version] show the version of this program
[-V|--validate] sanity-check the algortihm
[-v|--verbose] be more verbose
[-p|--init-password string] use string as initial password/file
[-l|--length min-max] check password with length min to max
[-u|--use-unzip] use unzip to weed out wrong passwords
[-m|--method num] use method number "num" (see below)
[-2|--modulo r/m] only calculcate 1/m of the password
file... the zipfiles to crack

methods compiled in (* = default):

0: cpmask
1: zip1
*2: zip2, USE_MULT_TAB

Entonces procedemos a lanzarla con :

-l 8-9  --- longitud de 8 a 9 digitos

-c 1    --- Especificamos el charset a numérico de 0 a 9

-u     ---  Para que descomprima. SINO NO VERÁS EL ESPERADO PASSWORD FOUND

Vemos como si no ponemos el -u no printeará nunca la key. Una vez ya con el password y probandolo como token para pasar la prueba vinó la pesadilla. El famoso video de los patitos, con un @patowc en metamorfósis profunda. Después de probar el token del avi, strings con rootedcon,patowc, hacker………. Procedemos a editar el fichero con un editor hexadecimal, yo por ejemplo uso okteta. Gracias kifo por el tip de la zona JUNK, que por lo que parece el gran Klondike abrió la lata para encontrar el flag. Parece que en el formato de los videos existe una zona de garbage o basura, llamada zona JUNK, en ella normal debería haber offsets todo a cero. Pero podemos apreciar unos bytes que se repiten y si he aprendido algo con esta prueba, es que todo byte por extraño que parezca , puede estar cifrado con algún tipo de cifrado extrafalario. Pues aquí viene cuando se puede ver que está cifrado con ebcdic . Algo así como el ASCII.

(Extended Binary Coded Decimal Interchange Code) Código ampliado de intercambio decimal codificado en binario. Código binario para texto, comunicaciones y control de impresora de IBM. Este código se originó con el System/360 y aún se usa en mainframes IBM y en la mayoría de los computadores de medio rango de IBM. Es un código de 8 bits (256 combinaciones) que almacena un carácter alfanumérico o dos dígitos decimales en un byte. EBCDIC y ASCII son los dos códigos de mayor uso para representar datos.

Vemos como en la zona JUNK aparece un hermoso token, pasemos a descifrarlo:

http://www.pacsys.com/ebccnv.htm

Texto cifrado:

âäÉã@ä×»âäÉã@ä×»âäÉã@ä×»âäÉã@ä×»âäÉã@ä×»âäÉã@ä×»âäÉã@ä×»âäÉã@ä×»âäÉã@ä×»âäÉã@ä×»âäÉã
@ä×»âäÉã@ä×»

Texto descifrado:

SUIT UP?SUIT UP?SUIT UP?SUIT UP?SUIT UP?SUIT UP?SUIT UP?SUIT UP?SUIT UP?SUIT UP?
SUIT?? UP?SUIT UP??????????

Que quiere decir segun kifo: Ponte traje. Sacado de una serie  ”Como conoci a vuestra madre” donde Barney Stinson dice esa frase.

Token: SUIT UP

Y una vez esto debeis de ver el video:

Desde el blog quiero agradecer a la gente como yo que disfruta del CTF de la RootedCON una vez finalizado por satisfacción y superación. Aguantar hasta final de Marzo las máquinas!   =)

cacm

[Book && Contest] Programming challenges I

Pues os voy a presentar una url de lo más entretenida y adictiva, se trata de enfrentarse a retos de programación. La idea es enfrentarse a un “juez online” , que reside en la Universidad de Valladolid y es el encargado de aceptar o no nuestras soluciones. Desde el blog os animo a poder enfrentarse a diferentes retos de programación. Aquí en el blog iré resolviendo algunos, lo que no se cuando colgaré las soluciones, ya que este método es el empleado en una asignatura que estoy cursando actualmente, y puede que algún chacal rastree en busca de soluciones y tope con el blog, y por ello consigo mi nota.

 

Comentar que el juez acepta 4 lenguajes como : Java, C , C++ y Pascal. Asi que ,que esperas ?

Debéis registraros en las 2 URLs siguientes:

http://www.programming-challenges.com

http://uva.onlinejudge.org/

 

Las entregas las haceis en la UVA y los retos los podeis encontrar en la URL de Retos de Programación, también deciros que existe un Libro con los retos.

 

isaca-300x159

IV Ciclo de Conferencias ISACA en la ETSINF


La ETSINF e ISACA Valencia organizan un ciclo de conferencias durante los meses de febrero y marzo. El horario de las conferencias será de 16:00 a 18:00 horas y se impartirán en el salón de actos de la ETSINF.

El ciclo está destinado a los alumnos de la ETSINF y será impartido por profesionales de la organización ISACA con amplia experiencia en estas materias. Los asistentes a las charlas recibirán un diploma de asistencia al curso, así como 1 crédito de libre elección (alumnos de plan antiguo), siempre que asistan a un mínimo de 4 charlas. Los alumnos de grado pueden incluir estas charlas en la de los ciclos de conferencias reconocidas (0.33 créditos por un mínimo de 7 charlas).

Los alumnos que quieran asistir al ciclo deberán inscribirse antes del 6 de febrero. Las plazas son limitadas. La dirección de la ETSINF contactará por  email con los alumnos seleccionados para confirmar su inscripción.

Temario del seminario:

08/02 : De profesión Auditor de Sistemas.
16/02: Controles Técnicos Requeridos por la LOPD y la ISO 27001.
01/03: Análisis de Seguridad Web: Guía de Testeo OWASP.
08/03: Auditoria de Hacking Ético. Proceso y Resultados Esperado.
15/03: Herramientas para Gobernar los Sistemas de la Información.

Información e inscripción: http://empretsinf.blogs.upv.es/2012/02/01/iv-ciclo-de-conferencias-isaca-en-la-etsinf/

Subdirección de Relaciones con Empresas

ETSINF

 

 

gotroot-150x150

Got root? II “Vulnerabilidad en el Formato de Cadena en sudo CVE-2012-0809″

Pues siguiendo con la última entrada, y dado que ultimamente no paran de salir informes de vulnerabilidades en sistemas Linux donde los usuarios locales consiguen ganar privilegios de administrador(uid=0), produciendo  que nuestros sistemas  sean vulnerables a dia de hoy. La vulnerabilidad data del 31/01/2012 por joernchen de Phenoelit , consiste en un fallo de validación de formato en un string en la orden sudo, y concretamente en la función de debug: sudo_debug(). Con esto un atacante puede inyectar código con permisos de root en sistemas locales, por ahora  solo afecta a la rama de versiones 1.8.0 y 1.8.3p1 , donde son vulnerables a menos que actualicen e instalen el parche. Por ahora no existe  exploit “público” , ni ninguna PoC, por lo que esperaremos que exista la shellcode para explotarla en el blog.Como solución podemos actualizar a la versión 1.8.3p2 que ya ha sido parcheada. Yo he probado en unas cuantas Distribuciones de Linux, y sólo he encontrado vulnerable una Debian en la rama Testing, por su contra ,las versiones 1.7.x no son vulnerables , asi que si eres de usar rama o distribuciones no arriesgadas al update, estás a salvo. Aquí os adjunto el advisory original del autor, que es el que lleva la descripción , asi como sería para obtener una shellcode. Y también detallle de la función vulnerable .

http://seclists.org/fulldisclosure/2012/Jan/att-590/advisory_sudo.txt

Y como no….Un screenshot fresco fresco:

A la espera del exploit……Hasta la próxima!

Otras entradas:

Got root? I  “Escalando privilegios con Mempodipper CVE-2012-0056″

Got root? II “Vulnerabilidad en el Formato de Cadena en sudo CVE-2012-0809″

gotroot-150x150

Got root? I “Escalando privilegios con Mempodipper CVE-2012-0056″

Por fin han acabado los exámenes y puedo escribir algo, ya que ultimamente no he podido hacer nada. Han habido muchos noticias referentes con la Seguridad. La última ,y más reciente es el exploit llamado Mempodipper, que permite a usuarios normales , escalar privilegios permitiendo el acceso a una máquina con permisos de root. Este exploit afecta a la gran mayoria de sistemas Unix con Kernel >=2.6.39 .En sí, el exploit aprovecha una interface /proc/pid/mem setuidada ,donde la apertura no se revisan permisos pero si en la escritura. Donde aprovecha una función que parece no validar bien los permisos.

El exploit podeis bajarlo de exploitdb o de aquí. Voy a montar una  serie de entradas al Blog tratando temas de escalada de privilegios y mostrando los exploits gastados así como los kerneles afectados, por ahora empezamos fuerte por uno de impacto grave.

El exploit es datado el 21 de Enero de 2012 por zx2c4 .Las pruebas realizadas a nivel personal  han sido satisfactorias en BackTrack5 R1 con un kernel 2.6.39.4 a 32 bits , con Kubuntu 11.10 con kernel 3.0.0 de 64 bits.

 

 BackTrack 5 R1 con usuario sin privilegios

 

 Kubuntu 11.10 x64 bits

 

Aquí acompaño un video del autor probandolo en varias máquinas:

Imagen de previsualización de YouTube

 

wifiwayboot

Booteando por USB sin soporte en la BIOS con PLoP Boot Manager

¿Cuántos estamos cansados de malgastar CDs y que nuestro único CDRW ya no quiera hacernos caso? Y por descontado que nuestra última update de la BIOS no permita bootear desde USB…

La solución radica en usar esta imagen linux, PLoP Boot Manager , que nos arranca un sistema que permite poder arrancar mediante USB.

 

 

Como crear nuestro arranque:

1.-Descargar  PLoP Boot manager y descomprimirlo en vuestro sitio preferido.

2.-Graba a CD/DVD la iso ,ten en cuenta que hay tres plpbt . Debes de grabar el formtato .iso

3.- Prepara tu arsenal de Distros Linux con este software.

4.- Arranca tu pc con el CD y el USB metido. Y disfruta.

 

Próximas entradas haremos como crear USBs con muchos sistemas….

 

 

 

Related Posts Plugin for WordPress, Blogger...