Hace dias corregi el algoritmo de busqueda de sitios y definiciones para google, pero no lo habia subido. Ya esta disponible la version 1.0.5 del ooPhBot y lo puedes descargar desde este link.
Página 43 de 51
Este es un resumen de los distintos scripts y utilidades que he publicado en mi blog, con una breve descripcion y link de descarga.
- dirhack: Script escrito en bash que nos ayudará al momento de querer hacer auditorias en nuestro servidor web con multiples usuarios. El script buscara en los directorios especificados los ficheros con información sensible que esten legibles y/o modificables por otros usuarios. Se puede ejecutar desde el explorador web o desde algun tipo de terminal o consola.
- password salt cracker: Tambien escrito en bash, este script será útil cuando queramos romper algun password encriptado con un salt. Sirve para cualquier tipo de encriptacion como md5, sha, shadow, etc. La forma en que trabaja es netamente fuerza bruta y se basa en un diccionario de palabras. Lee palabra por palabra y la encripta con el salt especificado, si las password coinciden entonces bingo!.
- web login por fuerza bruta/brute force web login: Con esta utilidad podremos realizar pequeñas pruebas a nuestro sistema de autentificacion y tambien verificar la calidad de nuestras contraseñas. Consiste en realizar determinadas peticiones POST a paginas que validen el login de una sesion. Debido a que esta basada en un diccionario de palabras, podría tardar horas en dar algun resultado.
- firewall-router: Este es otro script en bash que facilita la creacion de reglas sobre iptables. Nos puede servir para que nuestra maquina sea un router y tambien firewall. Permite el routeo de paquetes, redireccionamiento de puertos, bloqueo de puertos, etc. Es bastante util y facil de usar, ademas permite el uso de ficheros externos para definir redirecciones de puertos, direcciones ip para bloquear, etc.
- twitsh/twitbash: Lo desarrolle pensando en facilitar el uso te twitter en fluxbox. Esta herramienta no nos servira para leer los twits de otra gente pero si para enviar nuestros updates.
La idea de balancear la carga manualmente es poder definir más de un gateway para distintos destinos, especificados por nosotros mismos. De esta manera, podremos tener dos o más salidas a internet y definir salidas hacia distintos rangos de direcciones ip.
Esto sirve de gran utilidad cuando nos conectamos a una red wifi que –por casualidad– llega hasta nuestro lugar de trabajo o nuestras casas e inocentemente queremos usarla. Por ejemplo, si tenemos un lugar de descargas, podemos dejar una máquina con una ruta estática que haga que cuando conecte a una IP x.x.x.x su salida a internet sea por el gateway predefinido por nosotros.
Para esto vamos a usar el comando route.
El Viernes pasado se anunciaron, en la lista de seguridad de debian, actualizaciones para el kernel, que solucionaba varias vulnerabilidades.
CVE-2009-0028 Chris Evans discovered a situation in which a child process can send an arbitrary signal to its parent. CVE-2009-0834 Roland McGrath discovered an issue on amd64 kernels that allows local users to circumvent system call audit configurations which filter based on the syscall numbers or argument details. CVE-2009-0835 Roland McGrath discovered an issue on amd64 kernels with CONFIG_SECCOMP enabled. By making a specially crafted syscall, local users can bypass access restrictions. CVE-2009-0859 Jiri Olsa discovered that a local user can cause a denial of service (system hang) using a SHM_INFO shmctl call on kernels compiled with CONFIG_SHMEM disabled. This issue does not affect prebuilt Debian kernels. CVE-2009-1046 Mikulas Patocka reported an issue in the console subsystem that allows a local user to cause memory corruption by selecting a small number of 3-byte UTF-8 characters. CVE-2009-1072 Igor Zhbanov reported that nfsd was not properly dropping CAP_MKNOD, allowing users to create device nodes on file systems exported with root_squash. CVE-2009-1184 Dan Carpenter reported a coding issue in the selinux subsystem that allows local users to bypass certain networking checks when running with compat_net=1. CVE-2009-1192 Shaohua Li reported an issue in the AGP subsystem they may allow local users to read sensitive kernel memory due to a leak of uninitialized memory. CVE-2009-1242 Benjamin Gilbert reported a local denial of service vulnerability in the KVM VMX implementation that allows local users to trigger an oops. CVE-2009-1265 Thomas Pollet reported an overflow in the af_rose implementation that allows remote attackers to retrieve uninitialized kernel memory that may contain sensitive data. CVE-2009-1337 Oleg Nesterov discovered an issue in the exit_notify function that allows local users to send an arbitrary signal to a process by running a program that modifies the exit_signal field and then uses an exec system call to launch a setuid application. CVE-2009-1338 Daniel Hokka Zakrisson discovered that a kill(-1) is permitted to reach processes outside of the current process namespace. CVE-2009-1439 Pavan Naregundi reported an issue in the CIFS filesystem code that allows remote users to overwrite memory via a long nativeFileSystem field in a Tree Connect response during mount.
Se publicaron dos exploits para explotar vulnerabildades de escalacion de provilegios local. Estos exploits se aprovechan de la funcion ptrace_attach() para ejecutar un codigo arbitrario que nos permita ejecutar una shell del tipo /bin/sh como root.
El primer exploit es el shoryuken, lo probé en distintas versiones del kernel de debian y archlinux, pudiendo ser explotada solo la version 2.6.26-1-686 de Debian 5.0, de forma aleatoria, es decir, hay veces que ejecuto el exploit y funciona y otras veces no. El segundo script fue probado por su autor en la version del kernel 2.6.29rc1 de Gentoo.
Estos exploits funcionan bajo situaciones especificas y no todos los sistemas son vulnerables.
La importancia que tiene la seguridad de la información y el poder que implica manejar información es un tema muy delicado que no está en el conocimiento de muchos. En el contexto de internet, muchos usuarios no le dan mayor importancia a su información que publican en la red y de qué forma lo hacen y más aún, muchos no diferencian lo privado de lo público, no por que no quieran o por que no saben como diferenciar una cosa de la otra, simplemente es por ignorancia. Para mucha gente es normal pertenecer en redes sociales y publicar su vida, mientras más conocidos sean y más amigos tengan en esa red social más importante se creen y es esta “vulnerabilidad” la que se está explotando: La ingenuidad y/o ignorancia del usuario. Por otro lado están las empresas, quienes son las encargadas de manejar la información privada y/o pública que los usuarios les confían, por ejemplo en el caso de un concurso, típicamente los datos que piden son nombre, apellido, ciudad, rut/dni, etc. Personalmente me pregunto ¿Para qué quieren mi rut/dni en un concurso, si con mi teléfono es suficiente para que me puedan ubicar? La respuesta es simple, todos esos datos van a una base de datos que puede ser vendida o usada para enviar publicidad no deseada, más conocido como spam. Estoy seguro que a nadie nos gustaria que esto fuese realidad, pero lo es. Por más que la empresa nos intente explicar por medio de “letra chica” o “términos y condiciones” que el uso de nuestra información está fuera de peligro y que serán usados sólo para tal y tal fin. Pues eso es mentira. He tenido experiencias y tengo las pruebas necesarias que eso no ocurre, ni si quiera las entidades del gobierno son capaces de cumplir con algo tan básico como es la protección de la información privada y, de hecho, ni si quiera los mismos usuarios son capaces de proteger su información.
En Chile, la falta a la protección de datos es algo que se da demasiado seguido, ya sea por empresas privadas o publicas (estatales o gubernamentales).
Hace un tiempo se publicó una base de datos con la información de más de 5 millones de chilenos y posteriormente, se publicó un buscador que nos permitia encontrar los datos de cualquier persona. Existen entidades encargadas de proteger esa información, en este caso es el sitio web de el Servicio Electoral (Servel), de donde fue obtenida la información. Poco tiempo despues de ésta publicación, realizamos una prueba de concepto programando un algoritmo capáz de obtener los datos desde ese sitio nuevamente, lo que tuvo un resultado positivo para nosotros. Pudimos obtener más de 4 millones de datos sobre los chilenos. En este intento, el sitio web del servel se cayó dos veces, estando el sitio abajo mas de 12 horas, cada véz que se cayó. Al entrar al sitio se podia ver un mensaje de que el espacio en disco estába lleno debido a los logs, esto quiere decir que cuando reactivaron el sitio, los encargados del sitio debieron haber vaciado ese directorio de logs y obviamente no se dieron el trabajo de analizarlo sino hasta el tercer intento que fue cuando decidieron colocar un captcha y, aunque el captcha es “basico”, no gastariamos tiempo en programar un algoritmo que lo rompa si nustra misión ya cumplió su objetivo. Una véz realizado este experimento procedimos a eliminar toda la información que descargamos.
Hace un par de dias venia en el bus hacia mi casa y se me ocurrio una idea. Muchos pensara que ya existe esto que se me ocurrio, que existen frameworks, etc. Pero mi idea es hacer algo mas simple aun, se me ocurrio la idea de desarrollar un ORM (Object Relational Mapping) simple, que me permita de manera sencilla abstraer la base de datos para poder trabajarla como objeto. Mientras veina en el bus, pensaba el modelo logico para llevar acabo esta idea, luego de unos dias por fin he podido empezar a codificar lo que será desde ahora en adelante: Saporm. Como Hibernate para Java o Doctrine para PHP, la idea de este ORM es hacer las cosas aun mas faciles y mi idea, principalmente, es orientarla a proyectos pequeños y no a enterprise.
La idea es que este ORM/Framework haga todas las tareas de consultas y accesos a la base de datos de manera mas simple, por ejemplo, en Saporm, para que el framework sea capaz de abstraer la base de datos solo hay que crear una clase con los atributos correspondientes, segun los campos que tenga la tabla de la base de datos.
Por ejemplo, tenemos dentro del directorio “model” la siguiente clase:
(Usuarios.class.php)
-
< ?php
-
class Usuarios extends Core{
-
/* Variables necesarias por el ORM, es necesario que se declaren */
-
public $table_name;
-
public $socket;
-
-
/* Variables del usuario */
-
public $id;
-
public $username;
-
public $password;
-
}
-
?>
Saporm se encargará, automaticamente, de mapear la tabla “Usuarios” con sus atributos “id, username y password” y nos permitirá trabajarla como si de un objeto se tratara. La herramienta nos creara un objeto con el nombre Usuarios que contará con varios métodos y atributos, como por ejemplo:
$usuarios->search();
$usuarios->loadData();
$usuarios->select();
$usuarios->query();
$usuarios->insert();
$usuarios->update();
…
© 2024 El rincón de Zerial
Tema por Anders Norén — Subir ↑
Comentarios recientes