Entradas

Cuidado con los bytes ocultos (variante Arc4 y base64)

Aquí una versión PHP de una variante de la encriptación ARC4 (Alleged- Rivest Cipher,  parte de los protocolos de cifrado más comunes como WEP, WPA para tarjetas wireless y TLS). function varc4($clave,$string)                 { $x=strlen($ clave ); for($h=0;$h<256;$h++)                       {$b[$h]=$h;} for($h=0;$h<256;$h++) { $f=($f+$b[$h]+ord($ clave [$h%$x]))%256;   //swap $i=$b[$h]; $b[$h]=$b[$f]; $b[$f]=$i; } $f=$h=0; for($q=0;$q<strlen($ string );$q++) { $h=($h+1)%256; $f=($f+$b[$h])%256; //swap $i=$b[$h]; $b[$h]=$b[$f]; $b[$f]=$i; $d.=chr(ord($ string [$q])^$b[($b[$h]+$b[$f])%256]);                         } return $d; } Supongamos que usamos la clave...

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...