miércoles, 19 de noviembre de 2014

Resultado de los Premios bitácoras

Hace semana y media terminaron las votaciones de los Premios bitácoras. Y aquí tengo dos noticias: una buena y una mala.

La buena es que muchos de los colegas que nos dedicamos a este mundillo han llegado hasta el final. PabloYGlesias () ha quedado cuarto, Angelucho ( ) sexto, Security by Default () octavo, Chema (el Maligno, ) segundo... Y puedo seguir enumerando. El blog de Kinomakino (), Inseguros, junto con el que escriben Pablo ( ) y Juanan ( ) [ya sabéis, Flu-Project ( )] y Roberto () con su Giga de Información... También en el top twenty.

A ver, tampoco es por despreciar aquellos que no lo han alcanzado, como puede ser Infospyware (, al que reconozco que no lo sigo con mucha asiduidad) o Hispasec Una al día () , Pentester  (de José Selvi,  ), el blog de Eleven Paths ( ), Seguridad a lo Jabalí ( )... Todos ellos en los 50 primeros clasificados.

Espero no dejarme a nadie de los conocidos, que me da un algooo!

Y ahí os preguntaréis: ¿Que pasa con esta santa casa (como diría alguno que nosotros sabemos)?. Puuees.. que este año no ha podido ser. Y esa es "la mala noticia". En la penúltima clasificación parcial (la cuarta) sí que alcancé el puesto 44. Pero ahí se quedó la cosa. Aún así ya es mucho teniendo en cuenta que me apunté tan tarde como Pablo. Por lo tanto, me puedo dar con un canto en los dientes que llegase a ese puesto en algún momento. Eso sí... ¡¡El año que viene vamos a por todas!! Trabajaré más duro, para poder escribir contenido de calidad y que ésta no decaiga.

Una vez más, mi más sincera enhorabuena a todos.

lunes, 3 de noviembre de 2014

Crónicas: No Con Name 2014

Un año más, he tenido la posibilidad de visitar Barcelona para ir a la No Con Name. 

Como de costumbre, me lo he pasado muy bien, y he podido  encontrarme con unas magníficas personas. Por ejemplo, en la sobremesa del primer día, nos hicimos esta foto:

En la sobremesa del primer día de la No Con Name 2014
En la sobremesa del primer día de la No Con Name 2014
Ahí estábamos, Pablo (@pablogonzalezpe), Edu (@eduSatoe), Miguel (@Miguel_Arroyo76), Valentín... 

La verdad es que me lo pasé muy bien. Y disfruté mucho de las charlas. Teníamos de todo:

  • La HackStory por parte de Mercé (@mercemolist), 
  • Daniel O'Grady nos habló del área de servicio de los discos duros y cómo con su driver es posible ver la información que hay en ella o, incluso, ocultar algún fichero ahí dentro. 
  •  Jordi Serra nos habló de comunicaciones ocultas. Sobretodo se habló de esteganografía, tanto en imágenes como en ficheros de audio.
  • Ruth (@ruth_legal), se la que ya os he hablado unas cuantas veces, y Selva (@selvaorejon) nos hablaron de cómo se debía llevar un caso de extorsión por internet. Entre otras cosas, nos dieron su punto de vista de cuándo denunciar y cómo. Pusieron un ejemplo real de un caso bastante grave. 
  • David Meléndez (@TaiksonTexas) nos habló de cómo implementó su propio protocolo de gestión de señales wifi, con el fin de que un ataque de deauth no le haga perder el control de su drone construido por él mismo.
  • Sergi Casanova y Pol Matamoros nos hablaron de ataques a java security cards (smartcards). 
  • Albert Puigsech (@apuigsech) y Albert Sellares (@whatsbcn) nos contaron el funcionamiento de criptomonedas poniendo el ejemplo de los bitcoins como base. Se enfocó en posibles ataques al sistema: robo de claves privadas, romperlas, hacer una técnica que denominaron "doble gasto"...
  • En el coloquio sobre "La necesidad de profesionales de la seguridad" se estuvo haciendo incapie en si hacía falta una formación específica en materia de seguridad, cuántos de nosotros somos autodidactas, qué hace falta para ser un buen profesional de la materia o si es necesaria una base. 
  • David Sancho (@dsancho66) nos habló de cómo una banda criminal consiguió saltarse el factor de doble autenticación de un banco suizo. El resumen es que consiguieron que las victimas ejecutasen un bicho, que les hacía un pequeño cambio en el sistema (añadir un certificado nuevo al almacén y cambios de DNSs). La página a la que llegaba al introducir la URL del banco le indicaba que tenía que instalar un programa en el móvil. A pesar de todas la advertencias de los sistemas, las víctimas terminaron picando. 
Este fue el primer día. Eso sí, el segundo tampoco estuvo nada mal:

  • Alfonso Muñoz (@mindcrypt) y Ricardo (@ricardo090489) nos hablaron de cómo se podía montar una especie de nmap contra una víctima, haciendo que ésta visitase una página web montada a tal efecto, usando sólo etiquetas HTML de toda la vida.
  • Pau Oliva (@pof) nos contó cómo funcionan las distintas ROMs del Street Fighter y nos mostró cómo había modificado una para añadirle más funcionalidades, como, por ejemplo, un modo entreno. Incluso traía su propio joystick y parafernalia para jugar como antaño. 
Street Fighter II Turbo - Mod de Pau Oliva aka Pof
Street Fighter II Turbo - Mod de Pau Oliva aka Pof
  • Juan Carlos Ruiloba, (@juancrui) nos mostró cómo se podía ir ocultando información en cada una de las evidencias que se van encontrando. Al final, tirando del hilo, una a una, llegó a sacar como mínimo 11 claves a medida que iba encontrando más información. Entre otras técnicas, tiró de esteganografía. 
  • Vicente Aguilera (@VAguileraDiaz) nos habló de cómo conocer el comportamiento que una persona puede tener de acuerdo a los rastros que deja al utilizar sus redes sociales. Se basó en los resultados obtenidos a través de la cuenta de twitter empleada por la víctima. De hecho, nos enseño su herramienta tinfoleak, hecha en python
  • Lorenzo (@lawwait) nos habló del forensics que hizo a una clínica donde un ruso, un chino y otro ruso se metieron hasta la cocina para sacar pasta de la víctima. Es el caso que nos contó en las Navajas Negras de este mismo año. 
  • Isaac Sastre (@isakitohf), Fidel Paniagua (@Fidelpd) y Diego Suarez nos hablaron de cómo controlar los perfiles de un dispositivo android (una tablet) utilizando smartcards para evitar que un usuario entre en las carpetas de otro.
  • Albert Pugsech volvió a hacer otra charla. En esta ocasión, sobre cómo conseguir que un paquete que queremos que llegue al destino, que tendrá que estar en el mismo segmento de red, y que se componga como es debido para que se ejecute el exploit. La historia estaba en que al fragmentarse de cierta forma no terminaba de funcionar, por lo que forzó el orden en el que quería que llegasen los paquetes al destino. 
Por desgracia, tenía el tren y me perdí las dos últimas sesiones. La penúltima, parece ser que era un coloquio sobre "neutralidad en la red". La última, la de Abraham Pasamar, era la misma que hizo en las Navajas Negras sobre "Desmitificando el AntiVirus". 

Como ya dije por twitter, espero poder asistir el año que viene otra vez. 

Mi enhorabuena a la organización y a los ponentes. ¡Seguid así!

miércoles, 15 de octubre de 2014

Rooted CON 2015: Call For Papers

Rooted CON 2015: Call For Papers

Hace unos días enviaron un correo avisando de que la organización de RootedCon abría el proceso de Calle For Papers. Lo que no vi en su momento fueron las fechas: del 5 al 7 de marzo en el Hotel Auditórium.

Ahora sólo tengo a mano el enlace de Security by Default.

Escrito desde el móvil.

lunes, 6 de octubre de 2014

Navaja Negra 2014

Un año más, he podido viajar a Albacete para asistir a las Navajas Negras. Este año se han celebrado los días 2, 3 y 4 de octubre.

Desde aquí quiero agradecer, aunque ya lo hice en persona, a Txambe por el magnífico viaje de ida y vuelta.

Como va siendo habitual, me fui llevé una alegría al irme encontrando con los compañeros habituales. Espero que no se pierda la costumbre y les pueda seguir viendo.

Con respecto a cómo se fueron organizando las ponencias y los talleres estuvo bastante bien montado. El primer día hubo un pequeño fallo al empezar un pequeño taller sobre wireshark poco antes de servir la comida, por lo que cuando terminó ya quedaba poca (y aún así, sobró). Pero este pequeño fallo se subsanó al segundo día. Los talleres empezaban aproximadamente a las 9 y antes de empezar las charlas nos servían un buen desayuno:

Desayuno Navaja Negra 2014
Desayuno Navaja Negra 2014
y también una suculenta comida:

Comida Navaja Negra 2014
Comida Navaja Negra 2014
Me parece un gran acierto el que se tuviera todo el servicio de comidas en el mismo lugar. Muchas veces se pierde tiempo buscando un sitio para comer o para ponerse de acuerdo a dónde se va y al final, a comer rápido y corriendo y se llega tarde a la siguiente ponencia. Con este sistema, se tiene todo en el mismo lugar y da tiempo incluso y a bajar la comida.

Pero, por supuesto, lo importante eran los talleres y las ponencias. Además, éstos habían sido votados por todos nosotros, los asistentes.

Nada más llegar a Albacete pudimos asistir al taller de hardware hacking.

Pudimos ver el proyecto Tortazo, por parte de @kontrol0 y @jdaanial. Lo importante: conocer tu tráfico para saber dónde está el malicioso.

También tuvimos a Adrián aka @winshock nos presentó Merovingio. Una gran herramienta que nos permitía ejecutar un potencial bicho en una serie de sandboxes, y después, realizando una serie de análisis automáticos, permitía averiguar si era realmente un programa maligno o no. Al final, se obtendría un informe muy a lo VirusTotal, pregunta que le hice: ¿Y si se le integrase Virus Total? ¿Y viceversa: integrar Merovingio en VirusTotal?

Pedro Sánchez, @conexioninversa, nos mostró un caso real y judicializado sobre una empresa que gestionaba unos cuantos parkings. Sus sistemas SCADA se vieron comprometidos. Un poltergeist en vivo y en directo: las barreras se abrían y cerraban solas.

Después, @virtualminds_es, Iñaki Rodriguez, nos contó el análisis que se le hizo a un banco y las distintas pruebas que se le hicieron.

Ahora viene una de las partes que para mí es de las más interesantes en este mundo del hácking: el scpace law. 4 horas de presentaciones por parte de las fuerzas y cuerpos de seguridad del estado (y autonomías), fiscalía, abogados... El fiscal D. Francisco Hernandez. Por parte del GDT tuvimos al Capitán Cesar Lorenzana. Y la Unidad de Investigación Tecnológica de la Policía Nacional nos envió a David Perez. No sólo eso, sino que los Mossos d'Esquadra nos prestó a Ruben Mora y la Ertzantza a Manual Viota. De la Ertzantza también estuvo Patxi (al cual le doy las gracias por los anímos para seguir escribiendo) acompañado de Ruth Sala, la abogada que ya pudimos ver el año pasado en la NoConName. Pero no fue la única abogada, también estuvo Luir Jurado.

En este espacio también tuvimos la oportunidad de ver cómo puedes tener complicaciones para recuperar tus bitcoins, tal y como nos contó Pablo (@pablofb).

Aquí tenemos todos los participantes:

Todos los participantes del Space Law
Todos los participantes del Space Law
Y la mesa redonda, que, como de costumbre, muy interesante.

Y el segundo día también nos lo pasamos muy bien.

Jose Manuel Ortega, @jmorguegac, nos habló sobre desarrollo seguro en aplicaciones móviles.

Un tocayo suyo, @TheXC3LL, nos mostró lo vulnerable que son casi todos los plug-ins para wordpress.

José Selvi nos mostró cómo consiguieron colarle un bicho al móvil del CEO de una multinacional teniendo en cuenta que este CEO apenas utilizaba el smartphone. Muchas gracias si tiraba de Whats Up.

Chema Alonso, @chemaalonso, nos contó cómo se gestiona desde los buscadores la información: indices, cachés... Qué se guarda y dónde se guarda.

Pedro, componente de la organización del evento, tuvo su oportunidad de dar su ponencia, que también salió votada. Pudimos ver cómo cifrábamos información y su descifrado usando ataques de factorización. Nos presentó su herramienta Metijoso.

Lorenzo, @lawwait, nos explicó otro caso forense. En este caso de una clínica en la que tuvieron comprometidos su servidor, en el que los datos se vieron cifrados, y, por supuesto, una solicitud de rescate. Al final, Lorenzo pudo enserñarnos cómo fue tirando del hilo para saber qué pasó y cómo consiguió recuperarlos casi en su totalidad.

Ya, el último día, tuvimos la oportunidad de ver cómo un troyano como es el DarkComet, que desde VirusTotal lo detectaban veintimuchos antivirus, pudo hacer que se ocultase y terminar consiguiendo que ninguno lo marcase, ni siquiera, como sospechoso.

Alejandro Nolla, @z0mbiehunt3r, la forma de realizar un ataque DDoS dirigido, detectar si hay un balanceador, firewalls...

La empresa Cyberoam, nos mostró cómo funcionaba su producto.

Dani, @cr0hn, nos mostró los 12 problemas en el desarrollo de software con python y sus 12 soluciones, basadas en su experiencia.

Oscar Tebar, @infiltrandome, nos descubrió las puertas traseras que tienen algunos routers que nos instalan nuestros ISPs. Por ejemplo: cómo se meten dentro de nuestro router para resetearlo de fábrica, actualizarlo...

La última presentación antes del cierre fue Almudena Alcaide, de parte de Deloitte CyberSOC Academy, mostrándonos sus planes para dar formación.

Espero que el año siguiente pueda volver a asistir, porque seguro que lo vuelven a bordar. Incluso una de las noches tuve la oportunidad de cortar jamón en uno de los bares donde estuvimos. Estaban tan liados...

Cortando jamón
Cortando jamón






viernes, 26 de septiembre de 2014

Shellshock y los User-Agent

Alguna vez ya os he hablado de los user-agent y de la posibilidad de engañar al servidor web indicándole que se está utilizando un cliente web distinto al real.

¿Qué más se puede hacer?

Bueno. Se puede explotar la vulnerabilidad que ha recibido el nombre de shellshock.

Esta se encuentra en la conocida shell: bash.

Así es como funciona: defines una variable que contendrá una función anónima (no me acordaba que se llamaban así) y además, cuando la cierras, más código. El problema está en que al llamar a dicha variable, no detecta el fin de la función y continua ejecutando el resto del código.

Desde el blog de @jordi_prats, Systemadmin, nos cuenta cómo se puede hacer. (Escrita la URL a mano).

También hay otro ejemplo desde el blog de Eleven Paths. Aquí se puede ver más el alcance de esta vulnerabilidad.

miércoles, 10 de septiembre de 2014

Leak de 5.000.000 cuentas gmail

Esta semana parece que tengo mucho que contar.

A lo largo de la tarde/noche he podido saber que se ha producido un filtrado de prácticamente cinco millones de cuentas de correo de gmail. ¡5.000.000! ¡5*10^6!

Según se comentaba en las listas de correo de la Rooted y NoConName y similares, se tratan de cuentas antiguas. En ForoSpyware comentan que tienen más de cinco años. Y así lo confirman desde las listas, que algunos reconocen contraseñas que hacia casi 10 años que no utilizaban.

De todas formas, localizando la lista, que aquí no se va a publicar, se podrá saber si esta vez nos han publicado los datos, o no. Por supuesto, por nada del mundo introducir la contraseña en sitios que te indiquen si estás en el leak.

Cambiar la hora en Windows con NTP por consola: PowerShell

¡¡Hola!!

Ultimamente estoy viendo que la hora de mi equipo se va retrasando poco a poco. Además, me doy cuenta cuando ya lleva unas cuantas horas de retraso. Y me da que es cuestión de la pila de la BIOS, cosa que me da una pereza enorme cambiarla.

Ya sé que desde la interfaz gráfica de Windows se puede cambiar la hora, e, incluso, forzar a que se sincronice contra un servidor NTP para que esté perfecta.

Cambiar la hora en Windows utilizando NTP - GUI
Cambiar la hora en Windows utilizando NTP - GUI
Ahora bien, quería ir más allá. Quería conseguir cambiar la hora utilizando powershell y tirando, a su vez, de un servidor NTP.

En mi búsqueda localicé algún enlace que otro que permitía obtener un montón de datos de comparativas de la hora del sistema contra el servidor indicado. Es el cmlet llamado Get-NtpTime. Una vez importado, podríamos obtener los datos que se muestran por pantalla:

Cmlet Get-NtpTime, por Chris J. Warwick, @cjwarwickps
Aún así, le faltaba algo muy, muy importante. ¿De qué me sirve ver todos estos datos si no puedo ponerle al sistema la hora que me ha indicado el servidor? Por lo tanto, busqué la forma de cambiarla. ¿Cómo lo he hecho? Fusilando el script para adecuarlo a mis necesidades. Algunos datos no sé para qué los quiere, o si supondrán una gran diferencia. Como por ejemplo, el tiempo que tarda en conectarse y desconectarse utiliza dos variables de tiempo inicial y final. 

Por lo tanto, después de hacer varias pruebas, algunas con más éxito que otras, ya tengo un cmlet que permite cambiarte la hora utilizando la que te devuelve el servidor NTP pasado como parámetro. El script se llama Set-NtpTimeV2 (por las distintas pruebas y esas cosas), y tiene un resultado como el siguiente:

Cmlet Set-NtpTimeV2, por Agux

Y el código fuente, tal cual lo he dejado, eliminando las cosas que no hacían falta del original y poniendo las necesarias (las que menos, la verdad):

Function Set-NtpTimeV2 {
#Parametros
[CmdletBinding()]
Param (
[String]$Server = 'pool.ntp.org',
[Int]$MaxOffset = 10000     # (Milliseconds) Throw if network time offset is larger
)
# Construct a 48-byte client NTP time packet to send to the specified server
# (Request Header: [00=No Leap Warning; 011=Version 3; 011=Client Mode]; 00011011 = 0x1B)
[Byte[]]$NtpData = ,0 * 48
$NtpData[0] = 0x1B    # NTP Request header in first byte
# NTP Transaction -------------------------------------------------------
$Socket = New-Object Net.Sockets.Socket([Net.Sockets.AddressFamily]::InterNetwork,
[Net.Sockets.SocketType]::Dgram,
[Net.Sockets.ProtocolType]::Udp)
Try {
$Socket.Connect($Server,123)
}
Catch {
Write-Error $_
Throw "Failed to connect to server $Server"
}
$t1 = Get-Date    # Start of transaction... the clock is ticking...
Try {
[Void]$Socket.Send($NtpData)
[Void]$Socket.Receive($NtpData)  
}
Catch {
Write-Error $_
Throw "Failed to communicate with server $Server"
}
$t4 = Get-Date    # End of transaction time
$Socket.Close()
# -----------------------------------------------------------------------
# -----------------------------------------------------------------------
# Check the Leap Indicator (LI) flag for an alarm condition - extract the flag
# from the first byte in the packet by masking and shifting (dividing)
$LI = ($NtpData[0] -band 0xC0)/64    # Leap Second indicator
If ($LI -eq 3) {
Throw 'Alarm condition from server (clock not synchronized)'
}
# We now have the 64-bit NTP times, t3 is in the last 8 bytes of the received data.
# The NTP time is the number of seconds since 1/1/1900 and is split into an 
# integer part (top 32 bits) and a fractional part, multipled by 2^32, in the 
# bottom 32 bits.
# Convert Integer and Fractional parts of the (64-bit) t3 NTP time from the byte array
# $IntPart=0;  Foreach ($Byte in $NtpData[40..43]) {$IntPart  = $IntPart  * 256 + $Byte} 
# $FracPart=0; Foreach ($Byte in $NtpData[44..47]) {$FracPart = $FracPart * 256 + $Byte} 
$IntPart = [BitConverter]::ToUInt32($NtpData[43..40],0)
$FracPart = [BitConverter]::ToUInt32($NtpData[47..44],0)
# Convert to Millseconds (convert fractional part by dividing value by 2^32)
$t3ms = $IntPart * 1000 + ($FracPart * 1000 / 0x100000000)
# Make sure the result looks sane...
If ([Math]::Abs($Offset) -gt $MaxOffset) {
# Network time is too different from server time
Throw "Network time offset exceeds maximum ($($MaxOffset)ms)"
}
# Create Output object and return
echo "Cogiendo hora y fecha presente en el equipo..."
$currentDate = Get-Date
echo "La fecha y hora actual del sistema es: $currentDate"
echo "Obteniedo la fecha y hora real del servidor NTP..."
echo "Configurando la fecha y hora real..."
$nuevaFechaHora=New-Object DateTime(1900,1,1,0,0,0,[DateTimeKind]::Utc)   
$nuevaFechaHora = $nuevaFechaHora.AddMilliseconds($t3ms).ToLocalTime()
$nuevaFecha = Set-Date -Date $nuevaFechaHora
echo "La hora y fecha configurada es... $nuevaFecha"
}