lunes, 18 de marzo de 2013

Kali Linux, Nueva Distribución de Pentesting.

Kali Linux, Nueva Distribución de Pentesting de los creadores de Backtrack


Hace ya algún tiempo se anunciaba en el blog oficial de Offensive Security (creadores de Backtrack) que saldría una nueva Distribución GNU/linux de Pentesting que se llamaría Kali, esta es descrita por sus mismo creadores como la más avanzada, robusta y estable distribución para Pentesting a la fecha.


Según se lee en web oficial de Backtrack, esta decisión llevaba tiempo en la mente de los desarrolladores, además de la inclusión de otras funcionalidades. Finalmente, lo mas importante de esta distro ,será el entorno de desarrollo con la creación de más de 300 paquetes y repositorios compatibles con Debian y 8 idiomas diferentes.


En cuanto a las novedades que presenta Kali Linux, el más obvio es el cambio a Debian lo cual permitirá llamar a cualquier herramienta desde cualquier lugar del sistema. Algunas de las ventajas de este cambio serían:
Sincronización con los repositorios de Debian 4 veces al día, lo que facilita la disponibilidad de los últimos paquetes de actualizaciones y parches de seguridad.
Compatibilidad con Debian de todas las herramientas disponibles en Kali.
Últimas versiones disponibles de todas las herramientas para auditorías.
Mayor facilidad para desarrollar, personalizar e instalar la distribución.
Gran mejora del soporte para hardware ARM respecto a Backtrack 5.
Flexibilidad a la hora de usar nuevos entornos gráficos.
Mejor y más fácil actualización a futuras versiones de Kali Linux.

Descarga Kali Linux v1.0

Página oficial: http://www.kali.org/
Documentaciòn en Español: http://es.docs.kali.org/introduction-es
Repositorios Git: http://git.kali.org/gitweb/






lunes, 11 de marzo de 2013

Qué debe saber un Técnico en Sistemas


Ya tenia un tiempo sin escribir empezare la tanda con un articulo muy interesante

Desde hace unos años, la aplicación y uso de los sistemas informáticos como elemento preferente en casi todos los modelos de negocio es decir, no hay ninguna empresa de reciente creación que no cuente como mínimo con un ordenador que gestione su contabilidad.

Otros, además de gestionar su economía, también instalan un complejo sistema informático para permitir agilizar todos los procesos y servicios que su empresa ofrece, veamos el caso de las administraciones públicas, donde todos los trámites ya se gestionan expresamente a través de un computador o bien son gestionados y procesados por los diferentes programas creados específicamente para tal función.
Esto, sumado al ya habitual uso doméstico que le damos a la informática, hace que se requiera de la presencia y habilidades de los expertos en el mantenimiento de estos equipos y todas sus funciones, donde en este caso nos centraremos especialmente en los Técnicos en Sistemas, una profesión muy demandada y con un gran futuro por delante.

A pesar de que resultan ser uno de los títulos con los que más puertas se abren al mercado tecnológico, las funciones que lleva a cabo el Técnico en Sistemas también son generalmente requeridas por aquellas empresas que desean implantar o gestionar un nuevo sistema informático, independientemente del sector al que pertenezcan.

Para comprender un poco más cuáles son todas sus responsabilidades, realicemos un breve repaso por algunas de las funciones más genéricas que se espera que un Técnico con esta cualificación debería dominar.
Mantenimiento y supervisión de equipos informáticos. Independientemente de su tamaño, el Técnico en Sistemas deberá saber cómo mantener los ordenadores en un estado óptimo, garantizando su buen funcionamiento. Por lo que resulta imprescindible conocer detalladamente el hardware y software que habitualmente dan forma al ordenador.

Reparación de equipos. Al igual que se encarga de mantener los sistemas en buen funcionamiento, también debe saber reaccionar ante posibles amenazas y problemas para encontrar una solución lo antes posible y no comprometer la información que en los equipos se almacena.

Instalación de Software y aplicaciones. Será el encargado de asegurar que todos los equipos disponen de las aplicaciones y programas necesarios para garantizar su buen funcionamiento. Esta tarea es más bien empleada en el ámbito laboral, ya que los ordenadores personales generalmente son gestionados por sus dueños, salvo que la tarea revista una gran dificultad y se deba llevar a un experto para proceder con su instalación.
Seguridad en la red, ordenadores y servidores. También debe conocer la estructura de todos ellos para aplicar las medidas de seguridad que crea convenientes para asegurar una buena protección contra ataques y posibles fallos de los equipos.

Sistemas Operativos. Su formación debe garantizar un dominio absoluto sobre todas las funciones de los sistemas operativos que se ofrecen actualmente en el mercado, sabiendo gestionarlos, mantenerlos, instalarlos y/o desinstalarlos.

Crear redes de trabajo compartidas. Para las empresas esta es una necesidad elemental, ya que generalmente se precisa conectar todos los equipos con el fin de poder compartir todos los recursos e información que se procesa. Aquí, además de las redes cableadas, también cumple un papel importante la conexión inalámbrica.

Gestión de contenidos web. A pesar de que se trata de una función que bien podría ser llevada a cabo por cualquier otro experto con conocimientos informáticos, el Técnico en Sistemas también debe saber cómo instalar, administrar y actualizar los diferentes gestores de contenidos web que existen actualmente.
Debes saber que la formación que se ha recibido para esta titulación y el dominio de todas estas secciones no implican que las deba de llevar a cabo en su totalidad en la empresa contratante, puesto que gracias a lo extenso que es el campo de la informática y las diferentes ramas de especialización que existen, las empresas siempre tienden a diversificar algunas de las funciones más complejas entre determinados profesionales informáticos.

jueves, 23 de agosto de 2012

Santoku: distribución de seguridad para dispositivos móviles


Santoku es una distribución Linux basada en
OWASP’s MobiSec especializada en pruebas de seguridad, análisis de malware y análisis forenses para teléfonos móviles, válida para dispositivos con Android, BlackBerry, iOS y Windows Phone. 

La versión Santoku Community Edition es un proyecto colaborativo para proveer un entorno Linux preconfigurado con utilidades, drivers y guías para este campo. La versión alpha puede ya descargarse:


Descarga (+3Gb): Santoku-0.1-alpha.iso
md5:54e48ea0cd133da04a1b55d4531e35bb


E incluye las siguientes herramientas:


Herramientas de desarrollo:

Android SDK Manager
Apple Xcode IDE
BlackBerry JDE
BlackBerry Tablet OS SDK
BlackBerry WebWorks
DroidBox
Eclipse IDE
Windows Phone SDK
Android 2.3.3, 3.2, and 4.0.3 Emulators
SecurityCompass Lab Server (HTTP and HTTPS)
BlackBerry Ripple
BlackBerry SimulatorsPenetration Testing:

CeWL
DirBuster
Fierce
Nikto
nmap
Burp Suite
Mallory
w3af Console
w3af GUI
ZAP
BeEF
Ettercap
iSniff
Metasploit Console
Metasploit GUI
NetSed
SET
SQLMap
SSLStrip
Ingeniería inversa:
APK Tool
Dex2Jar
Flawfinder
Java Decompiler
Strace
Analizadores wireless:
Aircrack-ng
Kismet
Ubertooth Kismet
Ubertooth Spectrum Analyzer
Wireshark
Forense de dispositivos:
AFLogical Open Source Edition
Android Encryption Brute Force
BitPim
BlackBerry Desktop Manager
Foremost
iPhone Backup Analyzer
MIAT
Paraben Device Seizure
Sift Workstation
Sleuth Kit
SQLiteSpy
Infraestructura móvil:
BES Express
Google Mobile Management
iPhone Configuration Tool





lunes, 6 de agosto de 2012

Conviértete en un Excelente Administrador de Debían GNU/Linux

Ebook: The Debian Administrator’s Handbook


Navegando en la Web me conseguí con este maravilloso, poderoso y util ebook , un libro que muy seguramente le servira a cada uno de los usuarios de Debian, tanto novatos, intermedios u expertos, donde se dan pautas y consejos para convertirse en un buen Administrador de debian. A continuacion una reseña del libro y su estructura


Accesible a todos, este libro enseña los elementos básicos para cualquier persona que quiera convertirse en un eficaz e independiente administrador de Debian GNU/Linux.

Abarca todos los temas que un administrador competente de GNU/Linux debe dominar, a partir de la instalación y la actualización del sistema, hasta la creación de paquetes y la compilación del kernel, pero también una vigilancia, seguridad y migración, sin olvidar temas avanzados como SELinux ,configurar a los servicios de seguridad, instalaciones automatizadas, o la virtualización con Xen, KVM o LXC.
Estructura del libro

La primera parte trata temas importantes para cualquier usuario de Debian:

  • Como funciona el proyecto Debian y como otros proyectos y/o distribuciones se benefician de el
  • Como utilizar eficazmente el sistema de paquetes y las herramientas asociadas (dpkg, apt, etc.)
  • Como instalar Debian con el instalador de Debian;
  • Como encontrar la documentación/ayuda requerida
  • Como configurar nuevos servicios
  • Como resolver problemas que puedan surgir
La segunda mitad del libro se refiere a los administradores de sistemas que han deconfigurar y administrar un servidor de Debian, o un gran conjunto de máquinas de escritorio:
Como configurar todos los servicios más comunes (Apache, Postfix, OpenLDAP,Samba, NFS, …)
  • Como configurar máquinas virtuales con KVM/XEN/ LXC
  • Como proteger el servidor.
  • Como automatizar instalaciones.
  • La forma de gestionar el almacenamiento con LVM y RAID


Sin más preámbulos, Aquí está el link de descarga de este magnífico libro.

Aprende Criptografía y Seguridad informática (Gratis)






Crypt4you es un nuevo formato de enseñanza en seguridad de la información, masiva, online y gratuita. Un MOOC, Massive Open Online Course, que nace en marzo de 2012 dentro la Red Temática de Criptografía y Seguridad de la Información Criptored, en la Universidad Politécnica de Madrid, España. Cada nuevo tema que se ofrezca en estos cursos estará compuesto por un conjunto de lecciones que se publicarán en el sitio Web del proyecto cada quince días, siendo sus autores investigadores y profesores miembros de esta red temática. El objetivo de Crypt4you es convertirse en el Aula Virtual de referencia de seguridad de la información en lengua hispana. Para solucionar cualquier duda, por favor consulta las FAQs (Frequently Asked Questions) o contacta con nosotros por correo electrónico.

En esta lección utilizaremos el software estándar de criptografía OpenSSL, que entre sus muchas funciones contempla la generación de claves RSA. Comprobaremos si todas las claves que generamos en modo comando son óptimas y usaremos los parámetros que nos entrega este programa para el descifrado con el teorema chino del resto.

Frequently Asked Questions (FAQ)

1. ¿Qué tienen de novedoso los cursos de Crypt4you?

Crypt4you es una forma de estudio diferente dentro del nuevo paradigma de la formación abierta, online y gratuita que se denomina MOOC, Massive Open Online Course. En este caso con características propias: contenidos actualizados, una orientación práctica, un plan de estudio de acuerdo a los intereses de cada estudiante, entrega por fascículos y cursos siempre abiertos.

2. ¿Qué me aportará Crypt4you?

Te aportará información contrastada por el perfil de sus profesores, destacados profesionales de la seguridad y preferentemente miembros de la Red Temática Criptored.

3. ¿Debo matricularme y pagar algo para seguir sus cursos y ser un alumno del Aula Virtual?

No, es gratis. Los cursos de Crypt4you están abiertos a todo público y no es necesario realizar ninguna inscripción.

4. ¿Los cursos que se ofrezcan tendrán una vigencia en el tiempo?

No, el curso seguirá abierto en el sitio web del Aula Virtual indefinidamente; puedes comenzarlo cuando lo estimes oportuno.

5. ¿Existe alguna lista de alumnos de los cursos de Crypt4you?

No existe esa lista de alumnos inscritos en un curso de Crypt4you porque cada alumno puede crearse su propio plan de formación. Por lo tanto no existirá una simultaneidad en el tiempo de alumnos siguiendo una lección en particular.

6. ¿Debo tener conocimientos de matemáticas u otras ciencias de la ingeniería para poder seguir las lecciones?

Es recomendable tener un nivel básico, pero no es necesario. Esto es debido a que los temas se tratarán siempre desde un punto de vista muy práctico y conceptual, y dentro de lo posible con un perfil medio de ingeniería.

7. ¿Los temas tratados en Crypt4you seguirán un programa académico?

Crypt4you no es un programa académico estructurado. Por lo tanto, los cursos que se irán publicando no seguirán un orden predefinido, ni un temario, ni tampoco tendrá una secuencia docente. No obstante, cada nuevo curso que se ofrezca publicará sus lecciones cada 15 días de forma ininterrumpida hasta la última entrega.

8. ¿Cuándo se publican las lecciones de un curso?

Se publicará una nueva lección de un curso en Crypt4you en torno a los días 1 y 15 de cada mes.

9. ¿Cuál será el formato de las lecciones?

Las lecciones de Crypt4you contarán con un contenido preciso sobre una temática en particular, incluyendo prácticas y ejercicios, propuestos y resueltos, cuestiones para el trabajo personal y un test final.

10. ¿Cuánto tiempo debo dedicarle a cada lección?

El tiempo máximo recomendado para el estudio de cada lección en el formato Cryp4you será de 15 días.

11. ¿Existe algún método de lectura rápida de sus lecciones?

Como los ejercicios y las prácticas intercaladas entre el texto de la lección se recogen en un documento pdf anexo, puedes seguir o consultar las lecciones online de una forma más rápida y cómoda sin tener que abrir ese archivo de ejercicios y prácticas.

12. ¿La cantidad de lecciones y su contenido podrán cambiar con el tiempo?

Las lecciones podrán actualizarse de forma dinámica, indicándose la fecha de esa modificación en el comienzo de dicha página. También podrán abrirse nuevas lecciones dentro de un curso ya existente, si su profesor así lo estima oportuno.

13. ¿Existe algún tipo de evaluación?

Cada lección contará con un test al final de la misma. Con la última lección de cada curso se entregará además un examen final. Ambas evaluaciones son sólo de carácter personal, una autoevaluación en la que no interviene el profesor.

14. Si tengo dudas con las lecciones, test o examen, ¿quién me las puede solucionar?

No existirá una tutorización personalizada por parte del profesor del curso. Crypt4you tiene sus redes sociales Facebook y Twitter y a través de ellas puedes realizar comentarios, consultas y aportes. Es muy importante la participación de los alumnos en la resolución de dudas porque forma parte del espíritu colaborativo de este nuevo formato de enseñanza MOOC.

15. ¿Me entregarán algún certificado o créditos por seguir el curso?

No se entregará certificación. En el futuro se estudiará esta posibilidad a través de un formato especial de cursos online.

16. ¿Cuál será el primer curso de Crypt4you?

El primer curso es El algoritmo RSA, que cuenta con 10 lecciones y su primera entrega ha sido el 15 de marzo de 2012.

17. ¿Qué otros cursos se ofrecerán a través de Crypt4you?

Crypt4you ofrecerá cursos de todos los temas relacionados con la seguridad de la información. Se informará oportunamente los próximos títulos de cursos en sus redes sociales, en Criptored y a través de Notas de Prensa en Internet.

18. ¿Puedo usar estos contenidos?

Todo el material de Crypt4you está liberado bajo licencia Creative Commons (CC) NoCommercial-Attribution-ShareAlike. Ante cualquier duda al respecto, por favor contacta con nosotros en nuestro correo electrónico.


Equipo creador de Crypt4you:


Dr. Jorge Ramió. Profesor Titular de la Universidad Politécnica de Madrid. Desde el año 1994 imparte asignaturas relacionadas con la criptografía. Entre sus facetas destaca su interés por la difusión de la seguridad informática en Iberoamérica. Algún ejemplo destacable es la autoría del libro electrónico de Seguridad Informática y Criptografía en 2006, de libre distribución en Internet y con más de 100.000 descargas, la creación en 1999 de la Red Temática de Criptografía y Seguridad de la Información Criptored, la organización de los congresos iberoamericanos CIBSI y TIBETS y la creación y dirección de la Enciclopedia de la Seguridad de la Información Intypedia, o su participación como profesor invitado en cursos de posgrado en España y diversos países de Latinoamérica impartiendo asignaturas de criptografía.  
Contacto: jorge@crypt4you.com




Dr. Alfonso Muñoz. Doctor de Telecomunicaciones por la Universidad Politécnica de Madrid e investigador postdoctoral en Computer Security & Advanced Switching Network en la Universidad Carlos III de Madrid. Especialista en protección de datos digitales y diseño de sistemas seguros (criptografía, esteganografía, dpi, etc.). Ha publicado más de 20 artículos científicos en revistas y congresos en el campo de la seguridad informática, y ha trabajado en proyectos con organismos europeos, ministerios y multinacionales. Su trabajo de investigador lo combina con su faceta de divulgación. Algún ejemplo destacable es la creación y dirección técnica de Intypedia, artículos de divulgación en revistas o blogs del sector o la participación en conferencias de seguridad informática y hacking.
                                               Contacto: alfonso@crypt4you.com


sábado, 21 de julio de 2012

Herramientas para monitorear un servidor linux


La mayoría del tiempo de un sysadmin (administrador de sistemas) se la pasa monitoreando. Especialmente si se estas a cargo de muchos servidores necesitamos herramientas que te hagan la tarea mas facil; a continuación varias herramientas que nos facilitaran eltrabajo.

Monitoreo de ancho de banda

Esto es muy importante, ya que al monitorear cuanto ancho de banda consume un servidor en tiempo real podemos determinar cuales son sus horas pico y así optimizarlo.

 Para monitorear ancho de banda  iptraf nos puede ayudar a verificar todo lo que esta sucediendo en nuestra interface de red. Les adjunto algunas imágenes:








Monitoreo de consumo de CPU y Memoria

Otra de las tareas de un sysadmin es monitorear el consumo de CPU y Memoria (RAM y SWAP), linux viene con el comando “top”. A mi en lo personal no me gusta, así que uso el programa htop. Este programa es muy completo ya que nos detalla el consumo de CPU y Memoria por proceso, así como el consumo general de los recursos del sistema. Es mucho mas amigable a comparación del top normal. Incluso conforme se va usando el procesador o los núcleos del procesador el programa lo indica de una manera “gráfica” tal como lo muestra la siguiente imagen que tome de un servidor en producción:






Monitoreo de consumo de disco duro


Cada cierto tiempo necesitamos saber cuanto espacio en disco hay libre en los servidores que manejamos. Para saber el espacio en disco duro se ejecuta el comando “df” en linux. A mi en lo personal no me gusta, prefiero uno mas amigable así que utilizo uno llamado discus. Este programa es que te indica cuanto espacio esta usado y cuando espacio hay libre, así como los porcentajes de los mismos. Aquí les adjunto una foto con la comparación del “df” con el “discus”. 



Monitoreo de peticiones de DNS

Si administras un servidor de DNS, en alguna ocasión vas a querer saber cuantas peticiones tu servidor de DNS tu servidor recibe. Para monitorear esto utilizo el programa dnstop con este se puede monitorear cuantas peticiones esta teniendo tu servidor ya sea por clase de dominio .net .org, direcciones ip, por dominio o por sub dominios.
Para ejecutarlo solo ejecutas el comando:
dnstop eth1
Tienes que especificar la interface en la cual quieres que “escuche” el programa. Presionando los botones de 1 2 3 4 puedes ver los diferentes tipos de reportes que tiene.
Adjunto imagen del programa:
          

                             dnstop

Monitoreo de trafico WEB
La mayoría de nosotros estamos a cargo de un servidor que sirve paginas web, es muy importante el monitoreo en tiempo real para saber que archivos estamos sirviendo, cuantas peticiones por segundo estamos manejando y el trafico que estamos teniendo (en megas). El servidor web mas usado es apache, yo utilizo la herramienta llamada “apachetop“.
Con este programa podemos monitorear que archivos servimos con mayor frecuencia, cuantos bytes/kylobytes/megabytes servimos, cuantas peticiones por segundo, peticiones totales y un promedio general de todo lo que sirve el apache.
Adjunto una imagen del apachetop corriendo en un servidor en producción:

                                     apachetop

Monitoreo de puertos abiertos

Otra de las tareas de un sysadmin es estar al tanto de que puertos hay abiertos en un servidor. Como lo dice la regla, si un servicio no te sirve, quitalo del sistema. Para monitorear puertos uso la herramienta llamada nmap.
Con el comando:
nmap -v 127.0.0.1
Saque un listado de puertos abiertos en el servidor. Si su servidor tiene varias direcciones IP es importante que hagan un escaneo de puertos a todos los IP.
Adjunto imagen del resultado que muestra nmap:


Estas herramientas basicas pero poderosas nos ayudaran en la tarea de mantener nuestros servidores linux al dia así como estas herramientas hay miles de herramientas e incluso pueden haber mejores.

Compartir archivos entre Debian Squezee y Windows con Samba

 Samba es una implementación libre del protocolo de archivos compartidos de Microsoft Windows (antiguamente llamado SMB, renombrado recientemente a CIFS) para sistemas de tipo UNIX. De esta forma, es posible que ordenadores con Linux o Mac actúen como clientes en redes de Windows. Samba también permite validar usuarios haciendo de Controlador Principal de Dominio, como miembro de dominio e incluso como un dominio Active Directory para redes basadas en Windows; aparte de ser capaz de servir colas de impresión, directorios compartidos y autenticar con su propio archivo de usuarios.

Samba fue desarrollado originalmente para Unix por Andrew Tridgell utilizando un sniffer o capturador de tráfico para entender el protocolo a través de la ingeniería inversa. El nombre viene de insertar dos vocales al protocolo estándar que Microsoft usa para sus redes, el SMB o server message block.

En un principio, Samba tomó el nombre de smbserver pero tuvieron que cambiarlo por problemas con una marca registrada. Tridgell buscó en el diccionario de su máquina Unix alguna palabra que incluyera las letras “s”, “m” y “b” con la orden grep hasta que dio con Samba.

Samba configura directorios Unix-Linux (incluyendo sus subdirectorios) como recursos para compartir a través de la red. Para los usuarios de Microsoft Windows, estos recursos aparecen como carpetas normales de red. Los usuarios de Linux pueden montar en sus sistemas de archivos estás unidades de red como si fueran dispositivos locales, o utilizar la orden smbclient para conectarse a ellas muy al estilo del cliente de la línea de órdenes ftp. Cada directorio puede tener diferentes permisos de acceso sobrepuestos a las protecciones del sistema de archivos que se esté usando en Linux. Por ejemplo, las carpetas home pueden tener permisos de lectura y escritura para cada usuario, permitiendo que cada uno acceda a sus propios archivos; sin embargo, deberemos cambiar los permisos de los archivos localmente para dejar al resto ver nuestros archivos, ya que con dar permisos de escritura en el recurso no será suficiente.

En este caso la instalacion sera en una red de hogar con un grupo de trabajo.

Para llevar a cabo la instalacion se necesitaran los siguientes paquetes:

samba
samba-client
samba-common


Para la configuración en Windows sólo hay que tener en cuenta el nombre del grupo de trabajo y el nombre de cada equipo en la red.

Comenzamos instalando Samba en Debian, Abrimos la terminal como root, colocamos:

apt-get install samba smbfs samba-common samba-client

Editamos el fichero de configuración de samba en la siguiente ruta:
vim /etc/samba/smb.conf


Buscamos la linea que dice workgroup = MSHOME, y la cambiamos por:

workgroup = nombre del grupo de trabajo


el nombre de nuestro grupo de trabajo deberá ser el mismo que usamos en la red de Windows.


Guardamos cambios y salimos.


Antes de crear los usuarios de Samba, deberemos crearlos en nuestro Debian.

 adduser nesalpa


Después creamos el usuario para Samba:

  smbpasswd -a nesalpa


el usuario deberá ser el mismo el cual creamos en  Grupos y Usuarios en Debian.

Pedirá la contraseña a utilizar, en donde también pondremos la misma del usuario que creamos en Debian, y pedirá finalmente repetir la contraseña.

Crearemos otro archivo con la lista de los usuarios:

 vim  /etc/samba/smbusers

Ahí, agregaremos lo siguiente: usuario debian = equipo  windows

usuario debian se refiere al usuario que acabamos de crear, equipo winodws se refiere al nombre del equipo con windows con el que deseamos compartir.

Volveremos a editar samba.conf:  vim  /etc/samba/smb.conf

Buscamos la linea que dice:

; security = user

Y le quitamos el ;

Además, en una siguiente linea agregamos lo siguiente:

username map = /etc/samba/smbusers

Deberá quedar así:

security = user
username map = /etc/samba/smbusers






Con esto estamos diciéndole a Samba que vamos a autentificar por usuario y donde está la lista de los usuarios permitidos.


Ahora, para compartir archivos, deberemos dar persmisos al directorio de usuarios de samba. Para esto, tecleamos en la terminal de root lo siguiente:

 chmod 777 /var/lib/samba/usershares

Y por último sólo queda elegir los directorios que deseamos compartir.
Para dar acceso a los usuario a los directorios home o personales, hacemos lo siguiente editamos

vim  /etc/samba/smbusers


[homes]
comment = Home Directories;
browseable = no
valid users = %S
writable = no

Quitamos el ";" para descomentarlos, y en writable cambiamos "no" por "yes" para que el usuario pueda escribir en el directorio.

En servicios de red de nuestro Debian, podremos acceder a la red de Windows y en Mis sitios de red de Windows, se podrá acceder a los directorios que seleccionamos para compartir en Debian.

domingo, 8 de abril de 2012

TestDisk y PhotoRec son software gratuitos para recuperacion de datos y particiones de discos.

Recientemente me paso algo que es un dolor de cabeza para cualquier informatico, (se daño el disco duro de mi laptop) el cual me dio muchos dolores de cabeza ya que tenia casi 20 dias que no realizaba respaldos de mis datos importantes hay guardados.

Gracias a TestDisk y Photorec pude reparar mis partciones y pude recuperar todos mis datos sin muchas complicaciones a si que quise escribir sobre estos maravillosos programas Testdisk y PhotoRec son aplicacionestotalmente independiente pero vienen los dos en el mismo paquete y los puedes descargar en el siguiente enlace: http://www.cgsecurity.org/wiki/TestDisk_ES


Con TestDisk puede:

  • Arreglar la Tabla de Particiones, recuperar particiones eliminadas
  • Recuperar sectores de arranque FAT32 de su copia de seguridad
  • Reconstruir sectores de arranque FAT12/FAT16/FAT32
  • Arreglar tablas de arranque de tipo FAT
  • Reconstruir sectores de arranque NTFS
  • Recuperar sectores de arranque NTFS de su copia de seguridad
  • Arreglas la MFT usando la MFT imagen
  • Localizar el Superblock de copia de seguridad de ext2/ext3/ext4
  • Recuperar archivos del sistema de archivos FAT, NTFS y ext2
  • Copiar archivos de particiones FAT, NTFS y ext2/ext3/ext4 eliminadas


TestDisk: tiene características para expertos y principiantes. Para aquellos que saben poco o nada sobre técnicas de recuperación de datos, TestDisk puede ser usado para recolectar información detallada sobre un disco que no se inicia o arranca, la cual puede ser analisada posteriomente paso a paso.

TestDisk una herramienta útil para realizar recuperación de datos sin muchos problemas es bastante amigables y facil de usar viene con otro programa PhotoRec

PhotoRec: es un software diseñado para recuperar archivos perdidos incluyendo videos, documentos y archivos de los discos duros y CDRoms así como imágenes perdidas de las memorias de las cámaras fotográficas, MP3 players, PenDrives, etc.

PhotoRec ignora el sistema de archivos y hace una búsqueda profunda de los datos, funcionando incluso si su sistema de archivos está muy dañado o ha sido re-formateado.

Gracias a este programa pude recuperar archivos e incluso recupere imagenes y archivos que tenia cuando tenia instalado otro sistema operativo.


Como funciona PhotoRec

Los sistemas de archivo FAT, NTFS, ext2/ext3/ext4 guardan los archivos en bloques de datos (también llamados clusters en Windows). El tamaño de cluster ó bloque es constante luego de haber sido definido al formatear el sistema de archivos. En general, la mayoría de los sistemas operativos intentan guardar los datos de forma contigua para minimizar el nivel de fragamentación. El tiempo de búsqueda de los discos mecánicos es bastante significante para escritura y lectura de datos, desde y hacia el disco rígido, por eso es que es importante mantener el nivel de fragmentación en un nivel mínimo.

Cuando un archivo es eliminado, la meta información sobre este archivo (Nombre, fecha/hora, tamaño, ubicación del primer bloque ó cluster, etc.) se pierden; por ejemplo, en un sistema ext2/ext3, los nombres de los archivos eliminados siguen presentes, pero la ubicación del primer bloque de datos es eliminada. Esto significa que los datos siguen estando presentes, pero solamente hasta que sean sobreescritos en parte o por completo por un nuevo archivo.

Para recuperar estos archivos 'perdidos', PhotoRec primero intenta encontrar el tamaño del bloque (ó cluster). Si el sistema de archivos no está dañado, este valor puede ser leído del superblock (ext2/ext3/ext4) ó del Volume Boot Record (FAT, NTFS). Sino, PhotoRec lee el volumen, sector por sector, buscando los primeros diez archivos, de los cuales calcula el tamaño de bloque/cluster de acuerdo a sus ubicaciones. Una vez que el tamaño de bloque es conocido, PhotoRec lee el volumen bloque a bloque (ó cluster a cluster). Cada bloque es revisado contra una base de datos de firmas; la cual viene con el programa y ha estado creciendo en cuanto a tipos de archivos que se pueden recuperar desde que la primera versión de PhotoRec salió.

sábado, 10 de marzo de 2012

Revela el password que hay atras de los asteriscos con JavaScript

¿Nunca te pasó haber escrito algún password y necesitar saber que es lo que hay atrás de los asteriscos?

Acá les traigo un script realizado en JavaScript que permite revelar que es lo que hay escrito en los campos password de JavaScript. Y revelará la contraseña que normalmente se esconde detrás de la '*' Esta no es una solución mágica ni tampoco se trata de explotar alguna vulnerabilidad se ha sabido por mucho tiempo sólo la quería compartir

 El código es el siguiente y voy a mostrar cómo utilizarlo:

javascript:(function(){var s,F,j,f,i; s = ""; F = document.forms; for(j=0; j<F.length; ++j) { f = F[j]; for (i=0; i<f.length; ++i) { if (f[i].type.toLowerCase() == "password") s += f[i].value + "n"; } } if (s) alert("Passwords in forms on this page:nn" + s); else alert("There are no passwords in forms on this page.");})();

Modos de uso

1. Lo colacamos en marcadores marcadores (favoritos o bookmarks) del navegador que estemos usando y listo.

2. Completamos los datos del marcador de la siguiente manera:

Nombre: cualquiera

URL: javascript:(function(){var s,F,j,f,i; s = ""; F = document.forms; for(j=0; j<F.length; ++j) { f = F[j]; for (i=0; i<f.length; ++i) { if (f[i].type.toLowerCase() == "password") s += f[i].value + "n"; } } if (s) alert("Passwords in forms on this page:nn" + s); else alert("There are no passwords in forms on this page.");})();

3. Luego, cuando estés en un sitio con passwords, aprieta el botón del marcador que creaste y automáticamente aparecerá un pop-up con la clave

4. Posibles usos:
  •  Hace mucho tiempo que guardaste la contraseña en el navegador  la olvido y ahora la desea cambiar
  •  Se encuentra en un lugar secreto de suma importancia y el usuario privilegiado salvo la contraseña a un recurso web muy importante.

Cómo formatear un medio estraible en Linux

En ocasiones los pendrive, memorias sd,etc... Pierden la estructura del formato, en especial si hemos sacado el dispositivo en el momento en el que esta guardando alguna informacion. La tarea de recuperar el formato y dejar el dispositivo limpio puede realizar fácilmente desde la línea de comandos.

Primero nos aseguramos cuál es el dispositivo a formatear con el comando:

 $ mount

/dev/sda1 on /boot type ext4 (rw,relatime,seclabel,user_xattr,barrier=1,data=ordered)
/dev/mapper/VolGroup-lv_home on /home type ext4 Disco duro

(rw,relatime,seclabel,user_xattr,barrier=1,data=ordered)
/dev/sdb1 on /media/BLACKBERRY type vfat (rw,nosuid,nodev,relatime,uid=500,gid=500,fmask=0022,dmask=0077,codepage=cp437,iocharset=ascii,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks) Memoria Mini-SD


/dev/sdc1 on /media/HP_607 type vfat (rw,nosuid,nodev,relatime,uid=500,gid=500,fmask=0022,dmask=0077,codepage=cp437,iocharset=ascii,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks) Memoria SD
Normalmente los dispositivos como pen drive y memorias extraibles  van formateados en vfat mientras que los discos duros de linux son ext3 o ext4 depende de la version.

Una vez localizado el dispositivo en este caso la Memoria SD, desmontamos y formateamos con los siguientes comandos: 


$ umount /dev/sdc1 desmontamos


$ sudo mkfs -t vfat /dev/sdc1 formateamos

jueves, 23 de febrero de 2012

Nueva Version de Nessus 5


 
 
Nessus 5 que salió hace poco con muchas mejoras y con la calidad de siempre.
Nessus es un escáner de vulnerabilidades de la empresa estadounidense Tenable Network Security, sus funcionalidades son las de:
  • Descubrimiento activo de redes
  • Escaneo de vulnerabilidades
  • Política de auditoria
Permite la exportación de informes en varios formatos donde posteriormente pueden ser asociados con Metasploit y otras herramientas de pentest.
Nessus en su versión 5 ha renovado alguna de sus muchas funcionalidades y ha añadido numerosas mejoras y/o actualizaciones:

  • Cambios en la criticidad de las vulnerabilidades encontradas: de las categorías anteriores se pasa a los niveles de Info, Low, Medium, High y Critical, más acordes y compatibles con otras herramientas de seguridad existentes. 
  • Cambios en los reportes: posibilidad de crear reportes personalizados además de los nuevos formatos pre-configurados y las plantillas existentes. También se incluyen diversos formados compatibles a la hora de exportar cualquier informe, como, por ejemplo, PDF, HTML, etc. También se incluye la posibilidad de combinar diferentes informes en un único reporte. 
  • Mejoras en la instalación: nuevo asistente de instalación que facilita enormemente la puesta en marcha de la herramienta y su posterior administración. En esta versión 5.0, todo se configura a través del interface de navegación Web, independientemente del Sistema Operativo donde esté instalado Nessus 5.0, inclusive la actualización de los plugins de Nessus y demás. 
  • Cambios y mejoras en la creación de políticas: se han añadido nuevos plugins que facilitan el sistema de filtros de nessus y la creación de políticas para realizar escaneos más precisos. Se añaden filtros como la fecha de publicación de una determinada vulnerabilidad, el tipo de plugin de Nessus (local o remoto), la información de la vulnerabilidad publicada en las bases de datos de Bugtraq, CERT Advisory, Secunia y OSVDB, etc. 
  • Nueva visualización de los datos de la auditoria: para proporcionar una visión inmediata del resultado de cualquier revisión de seguridad realizada sin necesidad de recurrir a cargar el reporte correspondiente. Con un sólo click se puede ver el nivel de riesgo y la criticidad de la vulnerabilidad.
Estas y otras funcionalidades hacen de nessus 5 la herramienta por excelencia a la hora de realizar un escaneo de vulnerabilidades, los dejo con el video oficial de las novedades implementadas en nessus 5



sábado, 11 de febrero de 2012

IP Forwarding con Linux

El mecanismo de “IP forwarding” se encarga de la retransmisión de los paquetes que se reciben por una interfaz física y de retransmitirlos por otra interfaz hacia otro nodo.


Cuando un paquete IP se recibe por una interfaz física, el modulo IP de entrada (IPinput ) procesa el paquete. 
 
Si la dirección IP destino del paquete se corresponde con la del dispositivo se procesa el paquete y se pasa al modulo TCPinput.
 
En caso de que la dirección IP destino no se corresponda con la del dispositivo y
 
el módulo IP forwarding está desactivado, el paquete IP se descarta.
En el caso de que la dirección IP destino no se corresponda con la del dispositivo y el módulo IP forwarding esté activado, se pasa el paquete al módulo IP de salida (IPoutput ), se consulta la tabla de encaminamiento y el paquete se retransmite por la interfaz correspondiente.



Imaginemos el escenario de la imagen. Tenemos uno o varios ordenadores en nuestra red (da igual que sistema operativo sean) y queremos que compartan una IP de salida a internet (o a otra red cualquiera). Lo que haremos es decirles a los equipos locales que su router es la ip del equipo con Linux:

Equipo Linux:
tarjeta de red 1: 10.10.0.1
tarjeta de red 2: DHCP con nuestro proveedor de Internet

IP Local 1:
tarjeta de red 1: 10.10.0.2  (Con router apuntando a 10.10.0.1)

IP Local 2:
tarjeta de red 1: 10.10.0.3  (Con router apuntando a 10.10.0.1)

Al equipo Linux le vamos a decir que todos los paquetes que provengan de la red 10.10.0.x (que recibiremos por su tarjeta de red 1) nos los encamine a otra red, internet o la que sea, sacando los paquetes por su tarjeta de red 2. Para ello lo haremos de la siguiente manera:


Modificamos el valor booleano de /proc/sys/net/ipv4/ip_forward

echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward


Descomentamos, modificamos o añadimos la siguiente linea en /etc/sysctl.conf

net.ipv4.ip_forward=1


Aplicamos los cambios con

sysctl -p


Y ahora enrutamos los paquetes segun nuestras redes:

iptables -F
iptables -F -t nat
iptables -t nat -A POSTROUTING -s 10.10.0.0/24 -o eth0 -j MASQUERADE
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


Para listar las normas introducidas (y comprobar que estan bien aplicadas);

iptables -L
iptables -L -t nat


Con esto ya queda funcionando nuestro Linux (Ubuntu,Fedora,Debian) en modo router.

lunes, 23 de enero de 2012

Despues de Instalar Fedora 16

Después de incursionar en el mundo de Linux y probar varias distribuciones decide quedarme con fedora desde la versión 11 (Leónidas) desde entonces he probado cada una de sus versiones cada una mejor que la otra hasta que llegamos al brusco cambio de fedora 15 (Lovelock)

Muy diferente a las versiones anteriores eliminando los menús tradicionales, iconos en el escritorio y otras ideas que había heredado de Windows, logrando una interfaz más limpia.

Una de las principales novedades que trajo esta versión fue el cambio a la interfaz de escritorio a Gnome 3, siendo la primera de las distribuciones “grandes” en adoptar este sistema por defecto.

Hoy llego el día en que me decidí actualizar de fedora 15 a 16, Fedora 16 trae nuevos cambios, utiliza gnome 3.2, que lo hace un poco incompatible con los temas anteriores de gnome3 ( bueno eso dicen), espero que se hayan arreglado algunos problemas con network manager ya que tuve varios problemas con el en fedora 15, es hora que comencemos a experimentar con esta nueva versión que nos trae el equipo de fedora.



Fedora 16, liberada el 8 de noviembre de 2011 bajo el nombre de Verne. 




Mejoras y actualizaciones:
Kernel 3.1.0
Actualización de GNOME 3 a 3.2
Actualización de KDE 4.6 a 4.7
Soporte mejorado para la nube incluyendo Aeolus Conductor, Condor Cloud, HekaFS, OpenStack y pacemaker-cloud
Actualización de GRUB 2 y eliminación de HAL
Cambios en el rango UID (Los valores de UID y GID para cuentas de usuario ahora empiezan en 1000, a diferencia de 500 como era en las versiones anteriores.)
Complemento en GCC Python Plugin, abarca las versiones de python 2 y 3
Actualización de Perl 5.14
Spice 0.10
Herramientas para desarrolladores de Ada
Actualizado GHC a su versión 7.0.4
Actualización de Boost a 1.47


Después de Instalar Fedora 16


1.- Actualizar Fedora 16

Antes de comenzar es muy recomendado actualizar nuestro sistema


su (PASSWORD ROOT)
yum -y update

2.- Utilidades para Yum

yum -y install yum-plugin-fastestmirror yum-presto yum-langpacks

3.- Instalar RPMFusion

yum localinstall --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm

Actualizamos nuevamente

yum update

4.- Instalar Codecs Multimedia


yum install gstreamer-plugins-bad gstreamer-plugins-bad-free-extras gstreamer-plugins-bad-nonfree gstreamer-plugins-ugly gstreamer-ffmpeg libdvdread libdvdnav gstreamer-plugins-good lsdvd libdvbpsi ffmpeg ffmpeg-libs gstreamer-ffmpeg libmatroska xvidcore xine-lib-extras-freeworld

5.- Instalar LibreOffice

yum install libreoffice-writer libreoffice-calc libreoffice-impress libreoffice-draw libreoffice-langpack-es

6.- Compresores de Archivos

yum install p7zip p7zip-plugins


7.- Utilidades (wget y nano)

yum install wget nano



8.- Tweak Tools y temas

yum install gnome-tweak-tool gnome-shell-extensions-user-theme gnome-themes-legacy gnome-theme-curvylooks clearlooks-compact-gnome-theme bluecurve-gnome-theme


9.- Instalar Java Openjdk


sudo yum install java-1.6.0-openjdk java-1.6.0-openjdk-plugin


10.- Instalar Java Oracle

Lo descargamos del siguiente enlace: Java Linux Versión 1.7.0

Aceptamos la licencia y descargamos el archivo rpm ya que lo descargemos nos dirigimos a la carpeta que lo contiene, en mi caso es Downloads y lo instalamos.


cd Downloads
su (PassWordRoot)
rpm -ivh jdk-7-linux-i586.rpm
rm -Rf jdk-7-linux-i586.rpm


Con esto ya esta instalado java en nuestro sistema, ahora lo que nos toca es configurar el plugin para firefox, lo que haremos es crear un enlace simbólico de una libreria.


cd /home/TU_NOMBRE_DE_USUARIO/.mozilla/plugins/
ln -s /usr/java/jdk1.7.0/jre/lib/i386/libnpjp2.so


Con esto tenemos instalado y configurado java-jre y jdk por si queremos iniciar a programar en java, pueden verificar si su instalación se completo satisfactoriamente en su sistema dando click en el link, antes de verificar tienes que reiniciar tu navegador: verificacion java.

Regresar al Menu


11.- Instalar Winrar


Descargar winrar

tar xvf rarlinux-4.0.1.tar.gz
cd rar/
make
cd ..
rm -Rf rar
rm -Rf rarlinux-4.0.1.tar.gz


12.- Instalar VirtualBox

Descargamos el repositorio y lo habilitamos


wget http://download.virtualbox.org/virtualbox/rpm/fedora/virtualbox.repo
mv virtualbox.repo /etc/yum.repos.d/


Actualizamos e instalamos virtualbox


yum update
yum install gcc dkms VirtualBox-4.1
usermod -G vboxusers -a tu_nombre_de_usuario


13.- Instalar Google Chrome

Primero descargamos el instalador del siguiente enlace: Descargar Google Chrome, para instalarlo abrimos un terminal


su (PASSWORD ROOT)
yum -y update
yum install lsb
cd ~/Downloads
rpm -ivh google-chrome-stable_current_i386.rpm

sábado, 14 de enero de 2012

Tails, distribución que preserva tu privacidad y anonimato


Tails ("The Amnesic Incognito Live System") es una distribución linux, basada en Debian de tipo live cd, que se caracteriza por preservar el anonimato y la privacidad del usuario a la hora de navegar por internet o realizar otro tipo de acciones gracias a contener multitud de herramientas que se encargan de ello. 

Surge como la continuación de Incognito, que fue descontinuado en marzo de 2010 por su autor. Existen otros muchos proyectos que pretenden el mismo efecto, como podréis encontrar en la última sección de esta página.

Distribuciones anonimizadoras 
Como otras live cd, la imagen ISO puede ser grabada en CDROM o en un USB, y poder ser arrancada en cualquier sistema. Como os podréis imaginar viendo el logo superior, todo el sistema se apoya del proyecto Tor, "torificando" cualquiera de las comunicaciones que generemos al exterior. Los datos permanecen en la memoria RAM, y por ello cuando salgamos de la livecd, ésta se borrará sin dejar rastros.

Escritorio Tails 0.10
Algunas herramientas del sistema

Herramientas de internet

No existe la perfección en estos temas de la privacidad, y obviamente, al final no dejan de ser un conjunto de herramientas que pueden tener vulnerabilidades y que, justamente, esto comprometa nuestro anonimato pudiéndonos dejar expuestos. Tor NO es invencible y ha quedado patente en multitud de ocasiones.

A principios de enero se informaron de varias vulnerabilidades que afectaban a Tails, principalmente porque diferentes paquetes de la Debian utilizada tenían problemas de seguridad, y como no, el propio proyecto Tor actualiza sus paquetes con bastante frecuencia. Es por ello que actualmente y desde el 4 de enero de 2012, se encuentra la versión 0.10 de Tails disponible para su descarga.
 
[+] Numerous security holes in Tails 0.9 (tails.boum.org/security)
[+] Tails 0.10 is out (blog.torproject.org)
 
 

jueves, 12 de enero de 2012

Cómo instalar LibreOffice en Debian y Fedora



 







Instalación en Debian

1.- Descargá el archivo .DEB LibO_3.4.4_Linux_x86_install-deb_en-US.tar.gz



2.-
Luego de descargar descomprimimos:

 
Entramos en la carpeta descomprimida US/DEBSm y ejecutamos:
dpkg -i *.deb

Este comando instalará todos los DEB en ese directorio.

3.-
Para agregar LibreOffice al menú de Debian sólo hace falta ir a la carpeta “desktop-integration” y  ejecutar una vez más el comando anterior. Si no hay problemas, ya deberías poder ver los accesos a LibreOffice desde el menú Sistema > Oficina.




Instalación en Fedora 


 1.- Descargá el archivo .RPM LibO_3.4.4_Linux_x86_install-rpm_en-US.tar.gz




2.-
Luego de descargar descomprimimos:

 
Entramos en la carpeta descomprimida LibO_3.4.4rc2_Linux_x86_install-rpm_en-US.

Luego entramos en la Carpeta RPMS y ejecutamos:
rpm -ivh *rpm
  
3.- Para agregar LibreOffice al menú de Fedora sólo hace falta ir
 a la carpeta “desktop-integration” y  ejecutar rpm -ivh libreoffice3.4-redhat-menus-3.4-402.noarch.rpm 

Si no hay problemas, ya deberías poder ver los accesos a LibreOffice desde el menú Aplicaciones > Oficina.

Conociendo LibreOffice........

LibreOffice: es una suite ofimática libre y gratuita, compatible con Microsoft Windows, Mac y GNU/Linux.

Cuenta con un procesador de texto (Writer), un editor de hojas de cálculo (Calc), un creador de presentaciones (Impress), un gestor de bases de datos (Base), un editor de gráficos vectoriales (Draw), y un editor de fórmulas matemáticas (Math).

LibreOffice fue creada por la fundación The Document Foundation como una bifurcación de la suite OpenOffice.org .

Nació cuando muchos de los desarrolladores de OpenOffice renunciaron a su empleo al ser comprada Sun por Oracle. El futuro de OpenOffice y las políticas del nuevo dueño no parecían estar de acuerdo con la filosofía original del producto, apoyada por Sun, por lo que muchos de sus programadores decidieron terminar su relación laboral con Oracle.
 
Para aquellos que no estén familiarizados con esta terminología podríamos decir que es una rama del mismo desarrollo.

En septiembre del 2010 las diferencias entre OpenOffice y LibreOffice eran más de organización que en lo que se refiere a código.

Pero ahora LibreOffice está trabajando a ritmo acelerado y han añadido unas 7.7 millones de nuevas líneas de código, Ahora es más rápido y da más valor en comparación con Microsoft Word y OpenOffice.

Michel Meeks, comentó en su blog que las diferencias de código entre OpenOffice y LibreOffice es ya muy amplia. En el futuro será difícil portar código entre ambos productos porque las diferencias ya oscilan en millones de líneas de código.

LibreOffice está disponible bajo la licencia GNU.

LibreOffice 3.3 ha sido descargado más de 1,3 millones de veces.

Es la suite ofimática predeterminada en Debian (Versión testing),Ubuntu, openSUSE y Fedora.

martes, 13 de diciembre de 2011

Protege archivos o carpetas rápidamente en GNU/Linux

Una forma fácil de impedir el borrado de archivos

Todos disponemos en nuestros PC de datos que no nos gustaría perder de manera accidental, o en el caso de compartir el ordenador, que puedan ser vistos por otros usuarios. La forma más sencilla de asegurar esos datos es protegerlos, para ello podemos utilizar un sistema de encriptado, aunque la mayoría de las veces es suficiente con cambiarle los permisos o atributos.

Para este ultimo caso la mejor y más rápida opción la tenemos en nuestra terminal con el comando chattr, ya que podemos ejecutarlo en cualquier distribución GNU/Linux al formar parte del sistema.


El comando no necesita mucha explicación, permite cambiar los atributos de archivos y carpetas, pero hay que tener en cuenta que es un comando de Root, por lo que solo el administrador del equipo podrá ejecutarlo.
La sintaxis es muy simple:
# chattr +i nombre_o_ruta_de_archivo
Si buscamos la carpeta en modo gráfico, veremos el famoso candado en el archivo. Para deshacer esto solo tenemos que cambiar el signo positivo por el negativo.
# chattr -i nombre_o_ruta_de_archivo
Para hacerlo con una carpeta es exactamente igual, pero si además también queremos cambiar los atributos de los archivos que se encuentran dentro, solo hay que añadir -r al comando.
# chattr -r +i nombre_o_ruta_de_carpeta
Como siempre, podemos encontrar más funciones de este comando tecleando en vuestro terminal man chattr.



fuente: http://www.linuxzone.es

martes, 30 de agosto de 2011

Http Fingerprint.

Fingerprint, ¿Qué es? ¿Para qué sirve?

fingerprint En el caso de un criminalista forense, las huellas dactilares son marcas que quedan impresas en las superficies cuando alguien las toca e identifican inequívocamente a un sujeto. Para nosotros son algo un poco distinto.
Una huella, fingerprint, o como prefieras llamarla no es mas que una respuesta de “alguien”, llamémoslo destino, ante una petición determinada.


Nosotros <—– Comunicación —–> Destino

Analizando esas respuestas y comparándolas con unos patrones podríamos deducir qué tipo de servicio, sistema operativo, etc. esta del otro lado.

Ejemplo:
Petición
HEAD / HTTP/1.1 host: www.unaweb.org 
en el puerto 80.

Respuesta:
HTTP/1.1 200 OK
Date Mon, 20 Oct 2008 20:42:27 GMT
Server: Apache
X-Powered-By: PHP/4.3.9
….
Dado que las técnicas de fingerprinting no son mas que un análisis de respuestas, entonces podemos aplicarlas a prácticamente cualquier servicio que tenga interacción con el cliente como por ejemplo ftp, telnet, http, etc.

Si por ejemplo hacemos:
david@sat:~$ ftp ftp.yyyy.es
Connected to xxx.yyyy.es
220-Welcome to Pure-FTPd
Name (ftp.yyyy.es:david): anonymous
Password:
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 

Ya tenemos algo de información. Eso, a groso modo, es una huella:

Una respuesta que da información. A veces este tipo de respuestas no aportan por si solas los datos suficientes para llegar a una conclusión, pero sí nos van marcando un camino. La clave aquí reside en diversificar y buscar por diferentes vías para poder contrastar la información obtenida. Hay que pensar que todo es susceptible de ser modificado para proporcionar una respuesta diferente a lo que debería ser, pero esto lo veremos mas adelante.

Quizá el fingerprinting mas famoso es el TCP/IP stack fingerprinting. Es lo que hace la opción -O implementada en nmap. Básicamente esta técnica consiste en jugar con el TCP/IP sabiendo como reaccionan los distintos Sistemas Operativos ante diferentes paquetes, valores de campos, etc.

(Mas información en http://nmap.org/book/osdetect.html)

HTTP Fingerprinting, HTTP y otras cosas raras

Las técnicas que se ocupan del análisis de las respuestas de los servidores web reciben el nombre de http fingerprinting. El propósito de estas no es, como en el caso del TCP/IP stack fingerprinting, averiguar el sistema operativo remoto, sino identificar los servidores HTTP que están prestando el servicio en el otro extremo de la conexión.



Como ya se sabe, los servidores web se entienden con los clientes a través de un protocolo llamado Hypertext Transfer Protocol (HTTP). HTTP es un protocolo a nivel de aplicación que lleva funcionando desde 1990. La primera versión, muy simple, fue la 0.9. En la primera mitad de los años 90 apareció la 1.0 (http://www.ietf.org/rfc/rfc1945.txt) con bastantes mejoras para dar paso en 1999 a la versión 1.1 (http://www.ietf.org/rfc/rfc2616.txt).



Estaría bien leer un poco el RFC de HTTP/1.1 (http://www.ietf.org/rfc/rfc2616.txt), mas que nada para tener una visión global de todo y hacernos una idea de su funcionamiento. De todas maneras, como la lectura es un tanto espesa vamos a extraer lo más importante para tener una idea de la sintaxis básica de HTTP/1.1.

Las peticiones mas importantes son: GET, HEAD, DELETE y OPTIONS.


Sintaxis de los métodos GET, HEAD, DELETE y OPTIONS

Para comprender el funcionamiento de estos métodos vamos a ver unos cuantos ejemplos prácticos.


GET
Sintaxis: GET Request-URI PROTOCOL

El metodo GET ataca a cualquier información que se le pasa como argumento en Request-URI. Es una forma de “pedir” un archivo. Al hacer:
GET /pub/index.htm HTTP/1.1

Le estamos indicando al servidor que queremos el archivo /pub/index.htm y que empleamos el protocolo HTTP/1.1.

Un ejemplo práctico:
Petición:
david@sat:~$ telnet www.xxxx.com 80
Trying 22.22.22.22…
Connected to www.xxxx.com.
Escape character is ‘^]’. 
GET / HTTP/1.1
host: www.xxxx.com [ENTER][ENTER] 

 Respuesta:
HTTP/1.1 200 OK
Date: Tue, 21 Oct 2008 14:28:57 GMT
Server: Apache
X-Powered-By: PHP/4.3.9
Set-Cookie: PHPSESSID=ba7421d0b10bf48fb6d3c9e6fd79ca67; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, 
pre-check=0
Pragma: no-cache
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=ISO-8859-1
 
2000
<!DOCTYPE HTML PUBLIC-//W3C//DTD HTML 4.01 Transitional//EN
http://www.w3.org/TR/html4/loose.dtd>
<html>
….. 
</html>
 
0
 
Connection closed by foreign host. 
david@sat:~$ 

Tras escribir la línea host: www.xxxx.com deberemos pulsar dos veces enter. La primera para indicarle el fin de la línea de petición (la de host: www.xxxx.com) y la segunda para indicarle el fin de las cabeceras opcionales.

Cuando en Request-URI ponemos / quiere decir que lo que queremos es el archivo index del directorio raíz.

En HTTP/1.0 bastaba con hacer un GET / HTTP/1.0, sin embargo desde la versión 1.1 hay que identificar el nombre de host. Esto tiene una explicación: Virtual Hosts.

 

Supongamos que tenemos una IP: 22.22.22.22 y dos nombres que apuntan a esa IP: www.xxxx.org y www.yyyy.org. Bien, en HTTP/1.1 al indicar el nombre del host el servidor es capaz de devolver un contenido diferente dependiendo de cual sea la petición. Es lo que se conoce como Virtual Hosts.

Nota: Existe una alternativa a indicar el nombre de máquina en la línea de cabecera host: Hacer el GET de la ruta completa al archivo indicando en la misma el nombre de máquina. Quiero puntualizar que aquí solo trato de dar unas pautas generales para que luego cada uno se lo cocine al gusto.

HEAD

Sintaxis: HEAD Request-Uri PROTOCOL

El método HEAD es idéntico a GET excepto porque porque el servidor no devuelve el contenido del archivo solicitado sino tan solo las cabeceras.

Petición:
david@sat:~$ telnet www.xxxx.com 80
Trying 22.22.22.22…
Connected to www.xxxx.com.
Escape character is ‘^]’.
HEAD / HTTP/1.1
host:www.xxxx.com

Respuesta: 
HTTP/1.1 200 OK
Date: Tue, 21 Oct 2008 14:22:05 GMT
Server: Apache
X-Powered-By: PHP/4.3.9
Set-Cookie: PHPSESSID=cac08aaaa0b49abea7e499cbe9d742dd; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0,
pre-check=0
Pragma: no-cache
Connection: close
Content-Type: text/html; charset=ISO-8859-1


DELETE
Sintaxis: DELETE Request-URI PROTOCOL

Con este método le indicamos al servidor que debe borrar el archivo indicado en Request-URI. Lo normal por supuesto es que nos de un error del tipo 405: Method Not Allowed, 403: Forbidden o similar. Dependiendo del servidor http.

Petición:
david@sat:~$ telnet www.xxxx.com 80
Trying 22.22.22.22…
Connected to www.xxxx.com.
Escape character is ‘^]’.
DELETE / HTTP/1.1
host:www.xxxx.com

Respuesta:
DELETE / HTTP/1.0
HTTP/1.1 405 Method Not Allowed
Date: Tue, 21 Oct 2008 19:49:48 GMT
Server: Apache
Vary: accept-language,accept-charset
……


OPTIONS

Sintaxis: OPTIONS Request-URI PROTOCOL

Con este método pedimos información sobre los métodos permitidos para la petición/respuesta identificada por Request-URI.

OPTIONS permite utilizar un asterisco (*) como Request-URI. Cuando lo utilizamos se nos responde con los métodos permitidos en el servidor.

Petición:
david@sat:~$ telnet www.xxxx.com 80
Trying 22.22.22.22…
Connected to www.xxxx.com.
Escape character is ‘^]’.
OPTIONS * HTTP/1.1
host: www.xxxx.com

Respuesta: 
HTTP/1.1 200 OK
Date: Tue, 21 Oct 2008 15:25:51 GMT
Server: Apache
Allow: GET,HEAD,POST,OPTIONS,TRACE
Content-Length: 0
Connection: close
Content-Type: text/plain; charset=ISO-8859-1
 
Connection closed by foreign host.
david@sat:~$

Aunque hay mas métodos, GET, HEAD, DELETE y OPTIONS son, como ya he dicho anteriormente los mas usados dentro del http fingerprinting. Se quedan en el tintero POST, PUT, TRACE y CONNECT que también tienen mucho juego.


En el otro lado del cable

Como ya se pudo observar, las respuestas por parte del servidor que hemos visto en el apartado anterior siempre comenzaban por algo así:
HTTP/1.1 200 OK

En general la sintaxis podría ser como sigue:
PROTOCOL STATUS_CODE METAINFORMATION

¿Qué significa esto?. Bien, con esta línea el servidor nos indica si la petición del cliente se ha realizado con éxito o no y porque. En un primer lugar se especifica la versión del protocolo con la que estamos trabajando (PROTOCOL), a continuación aparece el STATUS_CODE o código de estado que consiste en tres  dígitos que nos indican el resultado de la petición efectuada y por último encontramos la metainformación (METAINFORMATION), es decir, una pequeña información sobre la respuesta devuelta por el servidor.

Los códigos de estado pueden agruparse en cinco bloques:
  • 100 – 199: De Información.
  • 200 – 299: Petición del cliente procesada correctamente. Recibida,
    entendida y aceptada.
  • 300 – 399: Petición del cliente redireccionada.
  • 400 – 499: Error en la Peticion del cliente.
  • 499 – 599: Error en Servidor. Se produce cuando el servidor falla y es incapaz de realizar alguna petición.
El esquema de todos los códigos de estado es el siguiente:
  • 1XX – Informational
  • 100 Continue
  • 101 Switching Protocols
  • 2XX – Succeful
  • 200 OK
  • 201 Created
  • 202 Accepted
  • 203 Non-Authoritative Information
  • 204 No Content
  • 205 Reset Content
  • 206 Partial Content
  • 3XX – Redirection
  • 300 Multiple Choices
  • 301 Moved Permanently
  • 302 Found
  • 303 See Other
  • 304 Not Modified
  • 305 Use Proxy
  • 306 (Unused)
  • 307 Termorary Redirect
  • 4XX – Client Error
  • 400 Bad Request
  • 401 Unauthorized
  • 402 Payment Required
  • 403 Forbidden
  • 404 Not Found
  • 405 Method Not Allowed
  • 406 Not Acceptable
  • 407 Proxy Authentication Required
  • 408 Request Timeout
  • 409 Conflict
  • 410 Gone
  • 411 Leght Required
  • 412 Precondition Failed
  • 413 Request Entity Too Large
  • 414 Request-URI Too Long
  • 415 Unsupported Media Type
  • 416 Requested Range Not Satisfiable
  • 417 Expectation Failed
  • 5XX – Server Error
  • 500 Internal Server Error
  • 501 Not Implemented
  • 502 Bad Gateway
  • 503 Service Unavaiable
  • 504 gateway Timeout
  • 505 HTTP Version Not Supported
Técnicas de http fingerprinting

Como ya hemos visto anteriormente, el http fingerprinting consiste en adivinar que servidor web esta corriendo mediante el análisis de las respuestas que este nos devuelve.

Quizá el primer esbozo de estas técnicas aparece con la famosa cabecera Server. Es lo que se conoce como banner string. A continuación un par de  ejemplos:

Petición:
david@sat:~$ telnet www.xxxx.com 80
HEAD / HTTP/1.1
host: www.xxxx.com

Respuesta:
HTTP/1.1 200 OK
Date: Wed, 22 Oct 2008 10:44:15 GMT
Server: Apache
X-Powered-By: PHP/4.3.9
…..

Petición:
david@sat:~$ telnet www.xxxx.net 80
HEAD / HTTP/1.1
host: www.xxxx.net

Respuesta:
HTTP/1.1 200 OK
Cache-Control: private
Content-Length: 52034
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/7.0
Set-Cookie:
 
CSAnonymous=QzAXvh01yQEkAAAAZjNiZjlmMWItZGVhMi00NjFiLTgzNjEtZTljOWY2YzljYzlj0;
domain=xxxx.net; expires=Thu, 23-Oct-2008 14:43:41 GMT; path=/; HttpOnly
…..

En el primer ejemplo tenemos un Apache (http://www.apache.org) mientras que en el segundo caso se trata de un Internet Information Server de Microsoft (http://www.iis.net). Todo esto es una suposición. ¿Por qué? simplemente porque es bastante fácil modificar el servidor web para que oculte o cambie esta cabecera. En Apache, por ejemplo, existe httpd.conf y mod_security para poder cambiar la identidad del mismo.

Si nos fijamos en las respuestas de los servidores web veremos que, además del campo Server, existen numerosas diferencias como por ejemplo:
  • Orden de las cabeceras.
  • Palabras utilizadas para el contenido de las cabeceras.
  • Uso de mayusculas y minisculas.
  • Cabeceras especificas.
  • etc.
Bien, todo esto es lo que constituye la  base del http fingerprinting.


Ejemplos y recursos

El siguiente paso es tener (o crear) alguna relación de las diferencias que hay entre los distintos servidores. Httprecon (http://www.computec.ch/projekte/httprecon) es un proyecto que se dedica a investigar sobre este campo. Tienen una base de datos bastante completa (http://www.computec.ch/projekte/httprecon/?s=database)  con mas de 320 entradas. En ella se puede navegar por las distintas peticiones (GET, HEAD, DELETE, OPTIONS y TEST) y ver que contenido y orden tienen las cabeceras de respuesta de cada servidor ante la petición formulada.

Por ejemplo, para el primer caso: GET EXISTING.

Como se nos indica en la web consiste en hacer un GET de un recurso existente. Por ejemplo podría ser GET / HTTP/1.1. Si pinchamos en el método aparecerá un listado con todas las cabeceras posibles y sus valores correspondientes según el servidor que responda.

Vamos a ver un par de casos prácticos:

Petición:
david@sat:~$ telnet www.xxxx.com 80
Trying 22.22.22.22…
Connected to 22.22.22.22.
Escape character is ‘^]’.
HEAD / HTTP/1.1
host: www.xxxx.com

Respuesta:
HTTP/1.1 200 OK
Content-Length: 600
Content-Type: text/html
Content-Location: http://www.xxxx.com/Default.htm
Last-Modified: Thu, 13 Oct 2005 07:14:52 GMT
Accept-Ranges: bytes
ETag: “07ee8cdc5cfc51:ec2″
Server: Unknown
X-Powered-By: ASP.NET
Date: Thu, 23 Oct 2008 09:08:15 GMT
 
 
Connection closed by foreign host.
david@sat:~$

El método empleado es un HEAD sobre un recurso existente. En httprecon podemos consultar la entrada de la base de datos correspondiente.
  • En este caso la cabecera “Server” no nos aporta información.
  • Lo primero es consultar el orden de las cabeceras. En este caso solo hay un candidato que presenta las cabeceras en ese orden:
a) Microsoft IIS 6.0
  • Si prestamos atención a los valores de las cabeceras Content-Type, Accept-Ranges y X-Powered by podremos comprobar que en efecto se trata de MS-IIS/6.0.
  • Dado que IIS 7.0 es la nueva versión que Microsoft saco para los sistemas Windows server 2008, todo indica que se trata de un Windows 2003.
Vamos con otro ejemplo:

Sabemos que en la IP 3.3.3.3 hay un router.

Petición:
david@sat:~$ telnet 3.3.3.3 80
Trying 3.3.3.3…
Connected to 3.3.3.3.
Escape character is ‘^]’.
HEAD / HTTP/1.1
host: 3.3.3.3

Respuesta:
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Basic realm=”P-660HW-D1″
Content-Type: text/html
Transfer-Encoding: chunked
Server: RomPager/4.07 UPnP/1.0
Connection: close
EXT:
 
083
<html>
<head>
<title>Protected Object</title></head><body>
<h1>Protected Object</h1>This object on the RomPager server is protected
0
 
Connection closed by foreign host.
david@sat:~$

En este caso el método empleado es un HEAD sobre un recurso existente. Consultamos la base de datos.
  • Según la cabecera “Server” se trata de un router ZyXEL. En cuanto a  la version del servidor web, mirando el orden de las cabeceras hay tres  opciones:
a) ZyXEL ZyWALL 10W RomPager 4.07. 
b) ZyXEL Prestige 662H-61 RomPager 4.07.
c) ZyXEL Prestige 662H-63/67 RomPager 4.07.

En algunas ocasiones se nos presentara una situación en la que nos quedamos con dos o tres candidatos y no hay diferencias documentadas entre los mismos. Aunque las técnicas empleadas no sean una ciencia exacta si pueden ser muy útiles para guiar al intruso potencial en su recopilación de información.

En este caso, teniendo en cuenta lo que dice la cabecera WWW-Authenticate, el país (España) y que telefónica ha vendido ese modelo de router a diestro y siniestro probablemente no cueste demasiado llegar a la conclusión de que tenemos un router P660HW.

Lógicamente es imposible conocer de memoria todas las diferencias entre los servidores web, y, a veces, consultar las bases de datos puede hacerse eterno.

Todo este proceso (al igual que ocurre con el TCP/IP stack fingerprinting) está automatizado en programas como httprecon (http://www.computec.ch/projekte/httprecon/?s=download), httprint (http://net-square.com/httprint/#downloads) y muchos mas. Aquí entra en juego el gusto y las preferencias de cada uno.


Defensa

¿Qué hacer para defendernos de estas técnicas?

Para ponerlo un poco mas difícil se podrían tomar algunas medidas, como por ejemplo cambiar el campo Server, el orden y contenido de las cabeceras, etc.. La idea es modificar el servidor web para que cambie algunas respuestas y así sea mas complicada la identificación. En Apache, por ejemplo, podemos utilizar mod_security (http://www.modsecurity.org) para hacer algunas modificaciones.

Para Microsoft IIS tenemos disponible ServerMask (http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1268), desarrollado por port80software.

Podríamos decir que estas técnicas siguen el principio de lo que se conoce como Security by obscurity, es decir, algo así como conseguir que sea mas seguro evitando que alguien de fuera pueda saber que es exactamente lo que esta al otro lado.









Agradecimientos a: http://www.totalsec.com.ar


Artículo original publicado por David Carbajo Carralero, Alicante, 2010 (http://desistemas.net/2010/03/16/http-fingerprinting/)