Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - WHK

#1321
whk@machine:~$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 111,8G  0 disk
├─sda1   8:1    0  99,9G  0 part /
├─sda2   8:2    0     1K  0 part
└─sda5   8:5    0  11,9G  0 part [SWAP]
sdb      8:16   0   1,8T  0 disk /media/whk/2TB
sr0     11:0    1  1024M  0 rom 
whk@machine:~$
#1322
Aver, cuando está en automatico es cuando no se monta solo, ahi todo bienj porque cuando inicio sesion le hago click al icono del disco y gnome lo monta solo, pero cuando lo desactivo se habilitan las demas opciones y ahi es cuando me da el error en el splash.

En cuanto al disco está en /dev/sdb.

Cuando habilito la configuración manual me queda así:

whk@machine:~$ cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda1 during installation
UUID=13007919-6a08-40cb-86bf-5555696ebe4e /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda5 during installation
UUID=54966ac8-c42d-4434-bc8c-23257365ac4e none            swap    sw              0       0
/dev/sdb /mnt/sdb auto auto,exec,rw,uid=whk,umask=000 0 0
whk@machine:~$


Y ahi es cuando me arroja el error finalmente.
#1323
Pues no, no me ha resultado, hice la configuración manual tal como me dijiste y me arrojó el error al inicio:



Es mas, cuando inició ubuntu ya ni si quiera aparecía el ícono del disco asi que tuve que cerrar sesión y volver a entrar para poder ver el icono del disco despues de haber deshabilitado esa opcion y dejarla como estaba antes :(

whk@machine:~$ cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda1 during installation
UUID=13007919-6a08-40cb-86bf-5555696ebe4e /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda5 during installation
UUID=54966ac8-c42d-4434-bc8c-23257365ac4e none            swap    sw              0       0
whk@machine:~$
#1324
Cuando le das la opcion de montar automatico aparece ese mensaje en el splash justo antes del login.

Probaré hacerlo manual como dice engel lex  aver como me va.
#1325
GNU/Linux / Problemas para automontar disco
4 Abril 2015, 21:02 PM
Hola, estou utilizando ubuntu 14 y tengo un disco duro Toshiva interno sata y ahi tengo todos mis archivos, el problema es que cuando el sistema inicia el disco no se automonta. Intenté utilizar la herramienta de discos donde dice "Automontar disco automaticamente" pero al reiniciar no se monta, es mas, me dice si quiero continuar o montar manualmente, por otro lado con nautilus cuando hago click sobre el disco se monta sin ningún problema :-/

Si dejo la opción de montaje automático no se monta y debo hacer click sobre el icono del disco en nautilus para que se monte pero si le saco esa opción y le dejo puesta la opción de montar al inicio falla.



Otra pregunta... porque por defecto gnu linux no monta todos los discos disponibles al inicio? no sería lo mas lógico?
#1326
Hola, tengo una duda... como se creaban los juegos de snes? , esta pregunta se me vino a la mente cuando se me ocurrió en un futuro dedicarme a crear roms de snes para emularlos en android y poder tener una plataforma de 16 bits totalmente estable y funcional. El tema es que estuve averiguando si existía algún sdk oficial de nintendo y me di cuenta que no existe D: ... entonces... como los fabricantes de juegos hacian los juegos?

Una idea se me ocurreo que en algún momento cuando una empresa quiso crear juegos fue hablar con nintendo para que estos les dieran un sdk con su respectiva documentación y algún hardware para hacer las pruebas... o talves utilizaban emuladores como nosotros, no lo se.

De todas maneras si alguna ves existió algún lenguaje y hubieron instrucciones sobre como hacer oficialmente un juego... donde están esos documentos y herramientas? he buscado y no he encontrado nada, ni si quiera un solo video, con suerte he encontrado tarjetas para programar en snes y herramientas en linux para crear y editar roms, pero nada es oficial... por lo cual... como lo hacian entonces midway, aclaim, capcom, etc?
#1327
Bien! ya solucioné lo de las expresiones regulares, el tema era simplemente que snort no detectaba nada, tuve que configurar /etc/snort/snort.conf y cambiar

config checksum_mode: all

por

config checksum_mode: none
#1328
GNU/Linux / Dificultades para utilizar Snort
27 Marzo 2015, 13:38 PM
Hola, pues eso, que se me ha ocurrido probar snort y poder crear mis propias regl de seguridad en mis servidores web, pero he tenido varias complicaciones que se las describiré ahora ya que me h costado solucionarlas.

Lo primero que hago sin conocimientos previos de instalación de snort es ir al sitio web oficial:
https://snort.org/

Ahora me fijo en la descarga que dice tener diferentes verisones para diferentes distribuciones mas el código fuente... en mi caso uso CentOS para mis servidores, especificamente centOS 6, pero la descarga de snort solo está disponible para CentOS 7, y bueno, no quiero instalar una versión obsoleta de snort o antigua ya que si lo voy a comenzar a usar no quiero tener que migrar todo denuevo en el corto plazo asi que... me dije... tengo dos opciones, o formateo todos los servidores e instalo centos 7 o lo instalo desde el código fuente, y bueno, preferí instalar centos 7 ya que no me gusta la idea de tener que estar migrando cuando algo queda obsoleto o sin soporte (pero ojo, aun no formateo nada, aun sigo usando centos 6).

Asi que con estas conclusiones instalé en mi pc vmware e instalé centos 6 y centos 7 para hacer las pruebas correspondientes.

En centos 7 no tuve ningún problema con la instalación, tuve que instalar daq y luego snort y mucho ojo, porque instalar snort a traves de las instrucciones oficiales arroja un problema conocido, por ejemplo donde dice:
yum install https://snort.org/downloads/snort/snort-2.9.7.2-1.centos7.x86_64.rpm

Arroja un error de unas dependencias raras o paquete corrupto, lo que si funciona es descargarlo con wget y luego instalar con yum install *.rpm

En fin, pero eso no es problema. Intalé las reglas corretamente sin utilizar pulledpork (porque prefiero hacerlo manualmente con un cron y wget).


Primer problema

El primer problema lo tuve al intentar crear una regla en expresión regular para solicitudes peligrosas via http_uri:

alert tcp any any -> $HOME_NET any ( \
        msg:"SQLI"; \
        content:"/"; http_raw_uri; pcre:"/union(.*)select/"; \
        classtype:web-application-attack; \
        sid:3000007; \
        rev:1; \
)


Y hecho a correr snort:
# snort -i eno16777736 -u snort -g snort -c /etc/snort/snort.conf

y  reviso el log:
# tail -f /var/log/snort/alert

Ahora hago la famosa solicitud peligrosa:
http://192.168.120.137/?test='; union select 1,2,3,4,5 -- +

Y el log de alertas no arroja nada :-\

Pero bueno, de todas maneras tiene un sin fin de reglas muy buenas aunque entiendo que snort no cuenta con buenas reglas de prevención contra ataques vía http como un xsrf, xss, sqli, etc, asi que de todas maneras quise instalarlo en mis semás servidores pero quise intentar hacer la instalación en centos 6 para no tener que formatear todos mis servidores y hacerlo de manera progresiva, asi que hice la prueba en el servidor virtual con centos 6.

Ya me di cuenta que snort oficialmente está disponible unicamente para centos 7 asi que de todas maneras hice el mismo proceso que centos 7 y me arrojó mil y un problemas de dependencias, especificamente porque necesitaba librerias mas actualizadas que las que proporciona centos 6, asi que decidí hacer la instalación manualmente desde el código fuente, asi que descargé el tag zg de libdnet, daq y snort e instalé todo en ese mismo orden. Lamentablemente libdnet es una dependencia critica para snort y es la que da mas problemas tanto de compatibilidad como de disponibilidad ya que solo está en googlecode y googlecode cerrará sus puertas pronto (asi que me bajé una copia de respaldo).


Segundo problema

Hasta acá todo bien, config... make, make install y ya... ahora voy a ejecutar snort y me arroja un error que falta libdnet D: asi que vuelvo a compilar libdnet y ahi funciona :D y voy a buscar el directorio directorio /etc/snort y no existe D: asi que no puedo instalar las reglas y no se si creando el directorio /etc/snort sea suficiente ya que me faltarian los archivos de configuracion y quien sabe que otras cosas mas.

El tema es que no puedo llevar a un servidor en producción un snort a medio instalar, en el camino se me han presentado muchos otros problemas que ya he solucionado como problemas de versión y link de la famosa libreria libdnet (que ya estoy comenzando a odiar) pero ya lo tengo bajo control.


El tema es el siguiente...

1. Como hago una regla para que me filtre una solicitud uri en expresión regular? ya que actualmente uso un script en php para mi web con muchas reglas y basta con procesarlas con preg_match() y $_SERVER["REQUEST_URI"] mas $_GET[] pero en snort parece un poco mas complicado y tengo otras reglas que arrojan error de sintaxis, etc.

2. Como hago la instalación de la última versión de snort en centos 6?

De verdad que hacer la instalación en centos 6 no me quita el sueño porque de todas maneras en algun momento voy a tener que migrar a centos 7 pero sin reglas no hay filtros y sin filtros no hay snort :(
#1329
Hacking / Re: Captcha de jquery RealPerson.js
25 Marzo 2015, 15:07 PM
Vamos, esa captcha es muy fácil de bypasear por dos razones, una que la captcha no interactua con el servidor para generar el código válido asi que el código se está generando por navegador y no por servidor. Segundo, todas las letras son iguales, o sea, la letra R siempre va a tener la misma forma asi que solamente buscas el patrón de los puntos y listo.

Veamos como funciona:
Entramos a la pagina web de pruebas de la captcha:
http://keith-wood.name/realPerson.html

Si vemos el código fuente veremos que el plugin genera un hash el cual debe ser comprado por php para saber si tu texto coincide con la captcha, en este caso el hash es la suma de un "salt" y el valor de la captcha, pero que es el salt? es un texto obtenido por el mismo sitio WEB hacia un archivo externo:
http://keith-wood.name/rpSalt.php

Mucho ojo, es necesario mantener las cookies entregadas por este archivo, estas cookies deben ser enviadas en respuesta a la solicitud final del servidor ya que el sitio WEB guarda el salt en una sesión de php el cual está identificada en una cookie (PHPSESSID).

Ahora veamos el algoritmo para que generemos nuestro propio hash:

Código (javascript) [Seleccionar]
inst.hash = hash(text + salt);

/* Compute a hash value for the given text.
  @param value {string} The text to hash.
  @return {number} The corresponding hash value. */
function hash(value) {
var hash = 5381;
for (var i = 0; i < value.length; i++) {
hash = ((hash << 5) + hash) + value.charCodeAt(i);
}
return hash;
}


Y listo, ya tenemos toda la información necesaria para engañar al servidor, ahora cada ves que necesites enviar tu documento a validar en tu sitio web con esa captcha antes de eso debes revisar en el código fuente del portal hacia que archivo se está solicitando el salt, luego en tu robot haces que haga la solicitud primeramente a ese archivo y obtienes el valor y la cookie y luego con ese salt te generas tu propio hash sumando la captcha con el valor hash(AAAAAA + salt) y luego lo mandas via postdata de esta manera:

defaultReal=AAAAAA&defaultRealHash={hash}

Claramente la manera de generar el hash dependerá de tu lenguaje de programación ya sea en c#, php , python, java, etc, por lo menos ya tienes el algoritmo en javascript, ahora lo debes traducir al lenguaje de tu robot :)


Vamos a la práctica:

1.Creamos un robot que ingresa a http://keith-wood.name/rpSalt.php , en mi caso el valor del salt fue "29310" (recordemos guardar la cookie, en mi caso es PHPSESSID=segfcli9fos1ok4ea1p3ufr5t2) .

Ahora inventemos el valor de la captcha, en mi caso el valor será EKEAGF y le hago la suma:
Código (php) [Seleccionar]
echo getHash('EKEAGF'.$salt);

El valor entregado es -2431022777 , esto quiere decir que para mi la captcha EKEAGF tiene valor de hash igual a -2431022777 asi que ahora enviaré mi consulta HTTP a traves de mi robot con esos datos mas la captcha:

http://keith-wood.name/realPerson.php

POST /realPerson.php HTTP/1.1
Host: keith-wood.name
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0
Cookie: PHPSESSID=segfcli9fos1ok4ea1p3ufr5t2;
Connection: close
Type: application/x-www-form-urlencoded
Content-Length: 46

defaultReal=EKEAGF&defaultRealHash=-2431022777


y listo!

CitarYou have entered the "real person" value correctly and the form has been processed.

Es mas, me acabo de dar cuenta de una falla de seguridad de la misma captcha por parte del script en php, y es que el archivo rpSalt.php siempre entrega el mismo código y es reutilizable :) , ese plugin no tomó la precaución de destruir la sesion o el valor del token al ser utilizado asi que esto es aun mas fácil, basta con que entres con un navegador normal y entres a ese archivo y captures el valor y la cookie, luego le das al robot esos dos valores y se lo mandas junto con tu archivo a revisar :) ya que el valor siempre será el mismo.

Mira acá tienes un código en javascript para generar el hsh a partir de un valor y un salt:

Código (javascript) [Seleccionar]
captcha_inventada = "AAAAA";
salt = 29310

value = captcha_inventada + salt;
var hash = 5381;
for (var i = 0; i < value.length; i++) {
hash = ((hash << 5) + hash) + value.charCodeAt(i);
}
console.log(hash);



Como debería funcionar una captcha segura?

Normalmente una captcha bien hecha como recaptcha genera una imagen no un texto o puntos y el servidor es el encargado de generarla y darla a mostrar y el valor real debe viajar a través del navegador y no generarla el mismo navegador y el transporte debe ser de manera oculta o cifrada como un hash de una cookie el cual indica el lugar donde se encuentra el hash real en el servidor no el valor en si, de esta manera previenes que el  hash pueda ser manipulado o generado como lo hicimos nosotros. Otro punto importante es que una captcha jamás debe poder ser reutilizada, esto quiere decir que si ves dos veces una captcha la primera debe ser invalidada inmediatamente y cuando se resuelve debe ser destruida, también se debe considerar que las imágenes nunca se alojan ni se pasan por el disco del servidor, siempre se generan y se despliegan en tiempo real, esto previene que el servidor colapse por exceso de archivos si te lanzan un ataque de denegación de servicio distribuido (ddos).

Esto crea un ambiente seguro entre el dueño de la información y el usuario final.


Ahora, si quieres mi recomendación personal te digo que sigas el consejo de engel lex y pidas el acceso como corresponde al administrador del sitio y que tarde o temprano cuando noten que hay un proceso automatizado te van a cambiar la captcha o te van a llamar la atención. Toma esta situación como una oportunidad de aprender mas sobre las captchas nada mas, cuando te toque hacer una sabrás como hacerlo bien.

Saludos.
#1330
Redes / Re: Cada navegador con una IP
19 Marzo 2015, 03:35 AM
Acá en Chile, cuando viene telefónica o movistar te dan una caja que se llama spliter el cual tiene una boca de entrada el cual se conecta el cable de la señal telefonica y dos bocas mas, una salida de telefono y otra de internet, la que sale a internet se conecta a un modem adsl el cual se conecta a traves de una conexión ppoe (user, clave, dominio) y este modem a traves de un cable único sale a un router a la boca wan el cual da internet a toda la casa, a veces te dan un modem-router el cual cumple ambas funciones en un solo equipo.

Ahora, cuando tu te conectas desde el pc al router solo te estas conectando a la red local, el que realmente sale a internet es el router a traves del modem, no puedes cambiar de ip desde el pc porque el pc no es el que se conecta al modem el que le asigna la ip final es el modem, mientras el modem esté encendido no hay cambios de ip, por eso algunas personas tienen el modem al lado de su pc y cuando quieren cambiar de ip simplemente lo apagan y lo vuelven a encender, de esta manera el router debe volver a reconectarse y te asignará una nueva ip.

Para que tu pc sea el que asigne la ip debes utilizar el cable que sale del spliter directamente a tu pc para que la tarjeta pci del modem pueda realizar la conexión a traves de una nueva conexión ppoe, eso quiere decir que el pc hace la marcación y no el modem de la compañía, esto da la ventaja de que puedes manipular tu hardware desde el mismo driver haciendo que trabaje en diferentes canales como si tuvieras multiples conexiones paralelamente, por esto dije que probara conectando el cable directo al pc y luego hiciera una conexión ppoe y luego lo hiciera en virtualbox sin cerrar la primera y esto debería generar multiples canales de comunicación a traves de un mismo cable, el tema es que tiene un límite de conexiones (no recuerdo cuantas).

Ahora, algunos notebooks nuevos y desktops ya no vienen con la tarjeta de modem xD, afortunadamente yo si la tengo pero debes comprarla, cuesta algo así como 20 dolares y para los notebooks debes comprar una tarjeta de esos que se colocan por el costado (no recuerdo el nombre, pcmcia o algo así).

Para pc:


Para notebook: