Entradas

Breaking Wireless 1

 https://www.vulnhub.com/entry/wireless-1,669/ - Más fácil de lo que parece - Enumeración 22,80,8080,8000 - En 80 está el apache plano, vamos a 8000 y está un voip. El ssh lo dejamos de momento y puede que no haga falta - El vector de entrada parece el puerto 8000, tiene página de login y el user podemos probarlo con lo que se ve en la página principal, lo que nunca debe hacerse, jinmori @voip.in.  Bruteforceamos con Burp pero no sale nada.  - Miramos más en la web, y el login.js contiene un base64 que oculta un javascript ofuscado var _0xb5c3=["\x6A\x69\x6E\x6D\x6F\x72\x69","\x54\x68\x65\x20\x71\x75\x69\x63\x6B\x20\x62\x72\x6F\x77\x6E\x20\x66\x6F\x78\x20\x6A\x75\x6D\x70\x73\x20\x6F\x76\x65\x72\x20\x74\x68\x65\x20\x6C\x61\x7A\x79\x20\x64\x6F\x67","\x63\x68\x61\x72\x43\x6F\x64\x65\x41\x74","\x66\x72\x6F\x6D\x43\x68\x61\x72\x43\x6F\x64\x65"];document.write(_0xb5c3);var u=_0xb5c3[0];var string=_0xb5c3[1];var a=string[_0xb5c3[2]](0);var b=string[_0xb...

Breaking Hacksudo 3 Máquina sencilla de verano

Wup de la máquina https://www.vulnhub.com/entry/hacksudo-3,671/  Nivel: principiante!   1- nmap , solo aparece abierto el puerto 80, accedemos y redirecciona a  http://192.168.2.50/create/   interesante el proyecto, pero de momento opaco a lo que buscamos 2- gobuster , u otros, detectamos login.php, generator.php. Con el login podemos bruteforcear pero esto es siempre lo último. Probamos en generator.php. Parece que metemos una cadena y la presenta gráficamente en lo que parece que usa figlet   https://ubunlog.com/figlet-banners-ascii-terminal/  3- figlet se ejecuta en system luego podemos probar si es vulnerable a la entrada. Metemos ';' pero no va, probamos con &: entrada post: '& whoami', y funciona: www-data.  Vamos a explotarlo mirando con ls y lo primero es volcar el login.php: & cat login.php, sacamos las claves del login, entramos y nos dice   you have logged in successfully , 0x Open The Next Door key is...

Actualizando a LEDE (Openwrt based) el router Afoundry EW-1200

Imagen
Tenemos aquí un router "chino" que en principio llama la atención por las 6 antenas que trae. Por el precio sería un router de gama media-alta. Aquí viene una review. Me quedo con la aparente potencia del procesador  Mediatek  MT7621   de 2 núcleos a 880 Mhz y la capacidad de emitir wifi simultáneamente en las bandas de 2.4 y 5 Ghz. Incorpora además -  128 MB  DDR3 RAM - 128 Mb SPI flash - 1 USB 3.0 Funciona bastante bien, pero la interfaz web es demasiado austera y deja muchos parámetros ocultos que lo harían más potente. En concreto trae instalado el Openwrt Barrier Breaker 14.07 pero modificado. Para manipularlo abrimos la carcasa y conectamos por el puerto serial que trae, en este caso de solo 3 pines Rx,Gnd,Tx. No trae JTAG. Para conectar usamos de nuevo un cable prolific  Plugable USB to RS-232 DB9  y un  Serial Port Converter  JY-R2T V1.2 RS232. Al ser una conexión de solo tres pines sin VCC (alimentació...

Openwrt en DSL524T+Jtag funcionamiento

Imagen
Aunque es un router ADSL viejo, el D-Link DSL524T puede funcionar perfectamente con las líneas actuales, y en cualquier caso como switch. Aunque el software existente permite manipularlo via WEB (recomiendo sobre todo el programa Adam2App), tiene conexiones internas serie y JTAG , esta última realmente potente y para casos extremos (bricked).  El firmware en cuestión que podemos ponerle para actualizarlo es el barrier 14.07 openwrt-ar7-generic-squashfs.bin En esta página italiana lo explican bien http://www.aracne.name/linnotes/2009/07/openwrt-su-d-link-dsl-524t/ Yo me centraré en la conexión JTAG, que en este caso es de 14 pines ( MIPS EJTAG 2.6).  Podemos fabricarlo "fácilmente": 1- conector impresora macho:  25 Pin Male Solder Cup DB25 2- resistencias 100 Ohm 3- un soldador 3- un ordenador viejo con windows xp y entrada LPT El ordenador tiene que ser antiguo por la velocidad de la CPU y el puerto LPT. En ...

Router ADSL de Yacom a Openwrt

Imagen
Así es, tenía un viejo router de yacom/orange adsl que ya no utilizaba, y un familiar me pidió que se lo dejara para usarlo con pepephone. El problema es que estos routers traen los parámetros clave capados para que solo pueda usarse con este isp. Así que me he puesto manos a la obra para descaparlo y la cosa no es tan sencilla como a priori pudiera parecer. Se requiere algo de tiempo, compilar algún programa, herramientas baratas pero inusuales y ejecutar algunas instrucciones.  El router es el modelo  arv7518pw-a-lf-lt de Arcadyan . Me decidí a publicar este post porque, aunque el procedimiento está extensamente comentado y muy bien por Internet, la información clave está en distintas páginas y falta una especie de manual paso-a-paso para que cualquiera pueda hacerlo. La idea es flashearle un firmware de código abierto como el Openwrt . 1- Herramientas Necesitaremos comunicarnos con el router a través del puerto serie que trae en placa. El que tengo trae ...

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