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"
}

Segunda Edición: Héroes Digitales

¡¡Hola a todos!!

Resulta que hace poco, Roberto aka @1gbdeinfo, nos comunicó que participaba en la segunda edición de Héroes Digitales, llevada a cabo por Eset. Y que le votásemos. ¡¡Y resulta que yo también me he apuntado!! No voy a negar que lo dudé un instante. Nos pedía una votación para luego, coger, y apuntarme, quitándole votos (ya que nuestros blogs son similares en tipo de contenido).

De hecho, prácticamente hemos puesto la misma descripción de nuestros blogs.

Por lo tanto, por favooor... ¡Votadme! Además, dicen que a partir del día 15, se quedarán sólo las 10 candidaturas más votadas. ¡Y he perdido mucho tiempo! Por lo tanto, ya sabéis: en el enlace podréis votaaaar por mí, pero, como dicen en las bases, no se podrá votar por más de una candidatura por sección.

lunes, 8 de septiembre de 2014

¡Navajas Negras están ya muy cerca!

¡¡Hola a todos!!

Hacía tiempo que no sacaba tiempo para escribir. Además, que mucho material para poder mostrar no es que tuviera, pero bueno. Ya os iré enseñando más cosas que recientemente he conseguido hacer.

Simplemente anunciar que hace dos meses, cuando aún estaban abiertos los CFP (Call For Papers), postulé para poder enseñar alguna que otra idea que tenía. Alguno me ha dicho que se lo imaginaba, y no iba mal encaminado: Firmar las llamadas. Realmente la grabación de las mismas. Desde aquí, quería dar mi enhorabuena a los seleccionados y a la organización por el magnífico trabajo realizado.

Poco más os puedo contar. Espero que hayáis pasado un buen verano. Pronto seguiré escribiendo cosas.