Entradas

From Python to PHP. An example

PHP es poco amigable cuando queremos trabajar con "big integers". Lo que se muestra poco menos que insufrible cuando queremos adaptar códigos de otros lenguajes más potentes en ello como Python. Aquí pongo algunos ejemplos para ayudar a adaptar de uno a otro lenguaje. 1- struct.pack & ord def pack(data):     target = []     for i in data:         target.extend(struct.pack('>I', i))     target = [ord(c) for c in target]     return target En este caso PHP nos permite realizar el proceso en un solo bucle. El proceso Python realiza en  un primer bucle un struct.pack('>I', i) de cada elemento del array data, y en un segundo bucle convierte cada uno de los elementos (caracteres) anteriores a su valor numérico ASCII. Con PHP tenemos el solo comando   array_values(unpack("C*",pack("N",$i))) function packk($data) { $target = array(); foreach ($data as $i) {$target=arra...

Compendio de hacking ético

Imagen
Comenzamos reseñando una serie de s itios relevantes para el hacking ético , para luego manejar una serie de h erramientas básicas para obtener información de servidores externos , como ping, whois y nmap. El manejo de  Wireshark  se mostró interesante a la hora de analizar las conexiones en general, lo que se aplicó al estudio del telnet, ssh y ssl. Posteriormente sobrevolamos los rudimentos básicos de la  SQL injection  sobre la plataforma DVWA. Concluimos esta fase con una  Reflexión  general de lo hecho hasta entonces. Para continuar se requirió resolver un enigma que consistía en descifrar un archivo gpg cuya clave se encontraba oculta en un servidor DVWA. Usando inyección SQL con la pista de Yoda  buscamos la tabla guestbook de la que volcamos todos sus campos: http://pruebas.euskalert.net/vulnerabilities/sqli/?id=%25%27+and+1%3D0+union+select+null%2C+concat%28comment_id%2C0x0a%2Ccomment%2C0x0a%2Cname%29+from+guestbook+%23&Submit=Su...

2.4. Reflexión

Bien, parece claro que herramientas hay para poner en jaque la seguridad de cualquier sitio en Internet, o al menos de aquellos que no se preocupen por su seguridad. De entrada, por lo tanto, parece interesante que todo el mundo sea consciente de esto para que al menos se les active la alerta y pongan los medios para protegerse. Como ejemplo de unas cuantas herramientas básicas para preocupar a cualquiera tenemos el ping, whois y sobre todo nmap. Podemos así averiguar si un host está activo, quién lo gestiona (para mediante ingeniería social sacarle información útil) y a qué vulnerabilidades puede estar expuesto en función de los servicios que tenga instalados. Usando por otro lado herramientas como Wireshark (u otras) podemos capturar tráfico de red que nos permita obtener información sensible de conexiones telnet (no tanto de SSH). Apostar por canales encriptados se muestra entonces necesario, y cuanta más encriptación mejor. Precisamente el uso de algoritmos de encriptac...

SQL injection

Imagen
Tras instalar correctamente la unidad virtual y loguear extraemos los hashes md5 de los usuarios: Usando John the Ripper sacamos que la contraseña para admin (y para Bob) es password. Para  Gordon abc123 Hack charley Pablo letmein John the Ripper   John the Ripper

2.1. Capturando tráfico con Wireshark

Imagen
Primera parte:  Análisis de   la traza  telnet-raw.pcap Hay dos sesiones Telnet 1ª- SO : OpenBSD/i386  login fake password user comandos  ls  ls -a /sbin/ping www.yahoo.com exit 2ª- SO: OpenBSD 2.6-beta login fake password user comandos :  ls ls -a /sbin/ping www.yahoo.com exit Segunda parte:  Analizamos  esta traza con tráfico SSL   El certificado se recibe en el paquete dos, server hello SSL 3.0 Cipher Suite: TLS_RSA_WITH_RC4_128_MD5 (0x0004) Significa que se usará un algoritmo de llave pública RSA  para verificar las firmas e intercambiar información encriptada RC4, siendo MD5 la función hash para verificar el contenido.    Tiene una longitud de 1020 bytes emitido por http://ocsp.verisign.com para             login.passport.com válido         01/09/2004 hasta 02/09/2005  Se p...

Herramientas básicas para obtener información de servidores externos

Imagen
Vamos a ver cómo obtener información de un site como www.euskalert.net Primero usaremos algún tipo de utilidad de ping para obtener información previa, como si el host está vivo, cuanto tarda en responder. Usamos la utilidad   hping3 bajo debian Podemos afinar el ping de esta manera Explicación: Se envía al puerto 80 un paquete con el flag TCP SYN activado recibiendo nosotros otro paquete SYN y ACK activados (flags=SA). Sabemos además que el host de destino tiene una ventana de 65535 (cantidad máxima de información en bytes que el receptor está preparado para recibir). Después podemos ver algunos datos administrativos usando whois : Por último podemos hacerle un scan general para ver si podemos saber qué sistema operativo está corriendo, aplicaciones y puertos abiertos. Usamos nmap (con gui o sin ella): Vemos que el puerto 80 está abierto y que probablemente corre aplicaciones como CISCO IOS 10.x en un switch CISCO 3000. Consultando la...