Archivo por meses: Agosto 2015

#FelizDiaGamer Lo que he jugado en 2015

#DiaGamer #FelizDiaGamer #DiaDelGamer

El tiempo pasa volando, recuerdo como si hubiera escrito ayer el post que escribí el año pasado donde hablaba acerca de los videojuegos que jugaba durante mi tiempo de estudiante y en mis ratos libres.

Pues este año ya termine mis estudios universitarios 🙂 y actualmente soy consultor de seguridad informática (yeiii), ya dedicándome de tiempo completo a la vida de profesionista uno pensaría que tiene mas oportunidad para jugar videojuegos, pero la verdad es que no XD, el tiempo de ocio que tengo es bastante limitado, puesto que tengo mis responsabilidades como consultor y a parte tengo mis propios clientes a los que les desarrollo software, sin embargo con todas estas responsabilidades me las he arreglado para dedicarle algo de tiempo a los videojuegos.

The Last of Us

the-last-of-us-remastered

Este año como explicaba en uno de mis post anteriores salí un poco del mundo del pc master race y me compre un ps4 y una pantalla de 55 pulgadas, lo que me permitió jugar varios títulos épicos de esta consola, The Last of Us fue sin duda un juego que me marco, una obra maestra en mi opinión. La combinación de horror, acción, narrativa, soundtrack y sobre todo la historia fue algo que me mantuvo atrapado durante meses (tarde un par de meses en terminarlo), pocos videojuegos en mi vida me han dejado con una necesidad de querer mas y mas, buscar mas y mas, terminar el juego e ir inmediatamente a los foros para participar en las discusiones de los fans, descargar soundtracks / fanArt, y en general querer saber todo en detalle de su universo.


Para que sientan los feels

The Witcher 3: Wild Hunt

witcher3_en_wallpaper_wallpaper_4_1920x1080_1433245801

The Witcher 3, un juego que salió en la primavera de este año, aun no lo termino pero con lo que llevo hasta el momento puedo decir que valió cada peso que invertí en el. En algún momento llegue a jugar The Witcher 1 (recuerdo que hubo un paquete en steam donde podías adquirir el 1 y el 2 por menos de 10 usd), así que cuando anunciaron The Witcher 3 mis amigos y yo nos emocionamos y todos lo compramos para empezarlo a la par, creo que soy el único que no lo ha terminado, pero hasta el momento me ha gustado bastante la historia, el estilo de combate, los personajes y el mini juego de cartas Gwent.

Counter Strike: Global Offensive

csgo

Regresando un poco al terreno de los juegos para PC uno de los videojuegos multiplayer que he jugado bastante este año es CS:GO, Counter Strike es uno de esos shooters que juegas por que tus demás amigos lo juegan y termina siendo divertido, es uno de esos juegos donde al jugar tu primera partida eres tan malo que terminas 0/20/0 (K/D/A), pero conforme vas practicando mas y mas tu score va mejorando y vas agarrando el mismo nivel de vicio que aquellos jugadores que llevan meses o años jugando. Como en la gran mayoría de estos juegos, CS tiene su modo de juego casual y competitivo, así que si estas en busca de verdaderos retos en el modo competitivo te enfrentaras a jugadores que pueden atinarte un headshot con la Desert Eagle a los 5 segundos de iniciada la partida.

La saga Mass Effect (1,2 y 3)

masseffect_all_lr2

Que puedo decir… una de las mejores sagas que he jugado jamás, acción, aventura, romance, etc. Mass Effect es uno de esos juegos que te marca por su historia y narrativa pues el destino de toda la galaxia esta sobre tus hombros!

En lo personal me agradan bastante los juegos donde tienes que tomar decisiones que tiene consecuencias inmediatas o a largo plazo, y lo mejor de esta saga es que las decisiones que tomes por ejemplo en Mass Effect 1, afectan la historia del Mass Effect 2 y asi sucesivamente.

Mass Effect es un juego con una inmersión tan fuerte que te hace desarrollar empatía y cariño hacia los personajes (aun recuerdo el intro de Mass Effect 2 o.o), durante la historia tendrás que tomar decisiones realmente difíciles que te harán meditar y preguntarte si lo que estas haciendo y el camino que estas tomando es el correcto, durante el juego te enfrentas con dilemas morales muy fuertes que en mi opinión podrían ser mucho mejores casos éticos que cualquiera que haya tomado en alguna clase de la universidad XD.

Dota 2

dota-2-official

Como muchos saben mi MOBA favorito es League of Legends, y como ya lo describí en el post de gaming del año pasado no veo razón para hablar de el de nuevo, por el contrario este año empecé a dar un poco mas de atención a DOTA 2, estuve atentó a su evento “The International” y lo he jugado mas seguido con mis amigos, creo que mi héroe favorito es Storm Spirit, después de ver como lo usaban durante el torneo me he decidido a masterizarlo 🙂

Heroes Of The Storm

Digc1RgXjF7p.878x0.Z-Z96KYq

Este MOBA lo conocí desde que salió, pero realmente nunca me llamo la atención, hasta que descubrí que mis demás amigos @calderpwn @_hkm @lightOS en la empresa de seguridad informática con la que trabajo lo jugaban XD, un día me invitaron a jugar con ellos y vi que era bastante divertido, ha diferencia de otros MOBAS que había jugado antes, este tenia la particularidad de que es 100% orientado al trabajo en equipo, durante la partida hay una serie de Quest o objetivos que tienes que cumplir, lograr un objetivo le da a tu equipo una ventaja muy grande, por lo que entre mas objetivos cumplas a lo largo de la partida será mas fácil ganarle al equipo contrario.

Touhou Project

474104__remilia-flandre-scarlet_p

La saga Touhou Project cuenta con mas de 20 juegos tipo arcade, desde bullet shooters hasta fighters, todos desarrolladores por una misma persona, un desarrollador que se hace llamar ZUN del Team Shanghai Alice. Descubrí por casualidad acerca de Touhou Project en una lista de reproducción de Youtube, cuando lo vi por primera vez pensé “parece divertido y la música es bastante buena” así que me empecé a meter en el universo, sinceramente son demasiados juegos así que empecé a jugar algunos de los primeros que salieron para plataformas Windows y son bastantes entretenidos, como son juegos en japonés tuve que buscar los respectivos parche en ingles y creo que de todos los que he jugado mi favorito hasta el momento es Adventure of Scarlet Curiosity 🙂

Lo que sigue … Metal Gear Solid V The Phantom Pain

Captura de pantalla 2015-08-29 a la(s) 23.06.41

Esta será la siguiente saga que comenzare a jugar :), sin embargo para no ser casual antes tengo que jugar los títulos anteriores ya que nunca he jugado ningún Metal Gear Solid, amigos cercanos me recomendaron que para obtener la máxima experiencia de esta historia tendría que jugar al menos Metal Gear Solid 3: Subsistence, Metal Gear Solid: Peace Walker y Metal Gear Solid V: Ground Zeroes, solo después podría estrenar el que compre.

Creo que esto es lo mas relevante que he jugado y jugare durante este año 🙂

Si tienes una Smart Tv de LG tu vecino puede espiar lo que estas viendo

A mediados del año pasado compre una smart tv de 55 pulgadas de la marca LG, la idea era bastante simple, videojuegos xd, también ver series y películas en alta definición con la familia. La verdad es que no tengo tanto tiempo libre como para ver tv, sin embargo estos últimos días he tenido ganas de usar mi televisión, pero no de la forma convencional 🙂

TV-LG-LM7600

Me puse a leer acerca de cómo funcionan las Smart Tvs, mas que nada para tener un background del tema, y vi que específicamente para este proveedor (LG) existe toda una comunidad detrás, foros, blogs, artículos y muchísimo material enfocado en el desarrollo para su plataforma webOS, pueden descargar y leer sobre la sdk en el siguiente enlace http://developer.lge.com/webOSTV/

Como muchos saben las televisiones Smart se conectan a Internet (en general los productos smart), esto significa que tienen asignada una dirección IP en nuestra red así que procedemos a realizar un escaneo de puertos utilizando nmap.

nmap -sV -p- -oA scan/scan -d 192.168.0.11

port

Viendo los logs del escaneo y leyendo el manual técnico sabemos que hay un par de servicios web corriendo en la televisión.

De acuerdo con la documentación esta pagina es una especie de api en XML para enviar comandos directamente a la televisión :). Haciendo una búsqueda rápida en Google encontramos esta fabulosa librería en PHP de Steve Winfield que nos permite comunicarnos con las televisiones https://github.com/SteveWinfield/PHP-LG-SmartTV

Lo único que necesitamos es un PIN de 6 dígitos que no conocemos, pero que podemos encontrar utilizando un ataque de fuerza bruta, que es lo que yo he hecho :). Con ayuda de este pequeño código es posible encontrar el PIN correcto de cualquier Smart Tv de LG

<?php 
include 'PHP-LG-SmartTV/smartTV.php';
$tv = new SmartTV('192.168.0.11',8080);
$code = 100000;
while(true) {
	$response = testCode($tv,$code);
	if($response) {
		print "The pairing key is: " . $code . "\n";
		break;
	}
	print "Wrong key: " . $code . "\n"; 
	$code++;
}
function testCode($tv,$code) {
	$tv->setPairingKey($code);
	try {
		$tv->authenticate();
		return true;
	} catch (Exception $e) {
		return false;
	}
}
?>

Después de unos minutos tenemos el PIN (pairing key)

bruteforce

En esta etapa del experimento descubrí cosas interesantes

  • Durante el ataque de fuerza bruta, al inicio de cada negociación de autenticación en la pantalla de la televisión aparece el PIN de 6 dígitos (dura menos de 1 segundo y después desaparece por que estamos intentando cientos de veces cada segundo), esto es así por que se supone que tenemos acceso físico a la pantalla, ósea estamos en la misma habitación, y debemos de copiarlo para usarlo con la librería.
  • Si realizamos suficientes peticiones en un segundo esto ocasionara un ataque de denegación de servicios a la televisión! El control remoto deja de funcionar y básicamente no podemos hacer nada, la única forma de apagar la tv es desconectarla directamente de la toma de corriente.

bruteforce

Así que ya saben, si notan un comportamiento de este tipo significa que alguien en su red esta tratando de hackear su televisión :p

Tener el PIN de autenticación de la televisión significa que básicamente podemos controlarla como si tuviéramos en control en nuestras manos, podemos apagarla, cambiar de canal, subir volumen, bajar volumen, programar despertador, por mencionar algunos ejemplos.

Sin embargo creo que el comando mas interesante de todos es TV_INFO_SCREEN, y por el que la mayoría de ustedes esta aquí, TV_INFO_SCREEN nos permite tomar una captura de pantalla de lo que sea que se esta reproduciendo en la televisión, con ayuda de JavaScript y un poco de Ajax se puede hacer una pequeña interfaz web para visualizar las imagenes de una forma mas “cómoda”.

test

Resumiendo

  • Los servicios web que corren las televisiones se ejecutan en puertos bien conocidos y no hay forma de cambiarlos (al menos no he encontrado como todavía)
  • Un atacante remoto puede realizar ataques de fuerza bruta para obtener el PIN de 6 dígitos
  • Un atacante remoto puede ocasionar un ataque de denegación de servicios a la televisión
  • Un atacante remoto puede obtener capturas de pantalla de lo que estamos viendo

Continuare haciendo mas investigación en esta area a ver que encuentro 🙂
Happy hacking

Desbanear IPs en fail2ban de forma correcta

Este post es más un recordatorio para mí pero sigue siendo un buen material de consulta para sysadmins.

Fail2ban es una herramienta bastante popular entre administradores de sistemas ya que nos permite añadir una capa de seguridad extra a nuestro servidor, viene con algunas reglas de seguridad pre configuradas para proteger servicios como ssh y apache, sin embargo es lo suficientemente flexible y fácil de utilizar para que nosotros creemos y agreguemos todas las que necesitemos, pero bueno este tutorial no es acerca de cómo crear esas reglas sino de cómo desbanear ciertas IPs que hayamos baneado por equivocación.

En el mejor de los casos

fail2ban utiliza la utilidad iptables, lo primero que haremos será encontrar que tipo de restricción se le aplico a la ip baneada

# iptables -L -n | less

2

Como podemos ver, la ip afectada es 187.240.213.48 y está dentro del JAIL fail2ban-ssh o simplemente ssh (quiten le la parte de fail2ban-*), fail2ban utiliza un sistema de JAILS (jaulas / prisiones / cárceles) bastante interesante con el cual podemos agrupar ips en grupos y aplicar ciertas reglas a todas ellas al mismo tiempo, les dejo más documentación al respecto: control de jails en fail2ban

Si queremos saber el nombre de todas las JAILS que está corriendo fail2ban actualmente lo haremos con el comando

# fail2ban-client status

4

Este comando nos sirve para corroborar el nombre de la JAIL que vamos a manipular, podemos observar que tenemos muchas más ademas de ssh, por ejemplo apache, apache-myadmin, apache-overflows, etc … continuamos.

Ahora que conocemos en detalle la IP y la JAIL vamos a remover la restricción utilizando:

# fail2ban-client get ssh actionunban 187.240.213.48

Para versiones más nuevas de fail2ban, digamos 0.9.x seria:

# fail2ban-client set ssh unbanip 187.240.213.48

Y listo, con esto nos aseguramos de remover las restricciones solo a una dirección IP en específico 🙂

Podemos revisar si efectivamente la IP fue removida con el comando:

# iptables -L -n | grep '187.240.213.48'

Si el comando no nos regresa nada significa que no pude encontrar una coincidencia de ‘187.240.213.48’ en el output del iptables y por lo tanto la IP ya no está baneada.

En el peor de los casos

Sin embargo, si la consola les muestra algo como esto:

6

Y tienen la mala suerte de estar trabajando con un fail2ban version 0.8.6 como yo, significa que la IP no pudo ser desbaneada, haciendo un poco de investigación se trata de un bug muy nefasto popular en esta versión, intentamos remover la restricción de nuevo, esta vez utilizando el debug

# fail2ban-client -vvv get ssh actionunban 187.240.213.48

error

Ahí observamos que la falla está en los comandos que se aplican, podemos solucionar esto de dos formas, la primera es actualizando el servicio y la segunda es removiendo la dirección IP de forma manual que fue lo que yo hice, no es tan complicado 🙂

# IP=187.240.213.48
# cat /var/log/fail2ban.log | grep -v $IP > /tmp/fail2ban.tmp
# cp /tmp/fail2ban.tmp /var/log/fail2ban.log
# iptables -D  fail2ban-ssh -s $IP -j DROP

Revisamos de nuevo si efectivamente la IP fue removida

# iptables -L -n | grep '187.240.213.48'

Y esta vez no debería de mostrarnos nada.

salu2