miércoles, 18 de noviembre de 2009

Arbol de directorios

* / (raíz): Es el nivel más alto dentro de la jerarquía de directorios. De aquí cuelgan el resto de carpetas, particiones y otros dispositivos. Es por esto que donde se instala el sistema, se selecciona la partición deseada y se le indica que el punto de montaje es justamente /.

* /bin (binarios): Los binarios son los ejecutables de Linux. Aquí tendremos los ejecutables de los programas propios del sistema operativo, entre ellos comandos como cp, mv, cat, chown, etc. No es el único directorio que contiene ejecutables como veremos más adelante. Importante, cualquier usuario puede ejecutarlos y los preinstala el sistema.

* /boot (arranque): Aquí nos encontramos los archivos necesarios para el inicio del sistema, desde los archivos de configuración de Grub Lilo, hasta el propio kernel del sistema.

* /dev (dispositivos): Linux se basa en la simpleza y en el tratamiento homogéneo de la información. Linux trata los dispositivos como si fueran un fichero más para facilitar el flujo de la información. En esta carpeta tenéis los dispositivos del sistema, por ejemplo los usb, sda (o hda) con sus respectivos números que indican las particiones, etc.

* /etc (etcétera): Aquí se guardan los ficheros de configuración de los programas instalados, así como ciertos scripts que se ejecutan en el inicio del sistema. Los valores de estos ficheros de configuración pueden ser complementados o sustituidos por los ficheros de configuración de usuario que cada uno tiene en su respectivo “home” (carpeta personal).

* /home (hogar): Es la carpeta donde se guardan los archivos personales de todos los usuarios, documentos, configuración específica de ciertos programas, etc. Viene a ser algo como el Documents and Settings de Windows. Dentro, existe una carpeta con el nombre de cada usuario. Generalmente, cada usuario tiene acceso sólo a su directorio home. Los usuarios normales tienen total control (lectura, escritura, ejecución) de los archivos de su “home” y en caso que un usuario común haga algo realmente desastroso con el sistema, sólo afectará su home, dejando el del resto de usuarios y el resto del SO intacto. El superusuario (root) tiene acceso total a todos los directorios de los demás usuarios (recuerden la frase: “cada user en su home y el root en el de todos”).

* /lib (bibliotecas): Contiene las bibliotecas (también mal conocidas como librerías) del sistema, así como módulos y controladores (drivers).

* /lost+found (perdido y encontrado): Es una carpeta que nos podemos encontrar en todas las particiones. Cuando por cualquier circunstancia se cierra mal el sistema (un apagón por ejemplo), cuando éste se reinicie comprobaréis que se llamará al programa fsck para restaurar la integridad del sistema de ficheros. En esta carpeta encontraremos la información que se mal-guardó debido a la incidencia.

* /media (media/medios): Es donde se montan las unidades extraíbles como los dispositivos USB, disqueteras, unidades de CD/DVD y en algunas distros, como Ubuntu, las particiones adicionales.
* /mnt (montajes): Es un directorio que se suele usar para montajes temporales de unidades. En algunas distribuciones ya no se usa por motivos históricos, paso a ser /media.

* /opt (opcionales): Destinado para guardar paquetes adicionales de aplicaciones.

* /proc: Información para la virtualización del sistema de ficheros de Linux.

* /root: Es el /home del administrador. Es el único /home que no está incluido -por defecto- en el directorio anteriormente mencionado.

* /sbin (binarios de sistema): Son los ejecutables de administración, tales como mount, umount, shutdown… Solo pueden ser ejecutados por el root y vienn preinstalados en el sistema.

* /srv (servicios): Información del sistema sobre ciertos servicios que ofrece (FTP, HTTP…).

* /sys (sistema): Información sobre los dispositivos tal y como los ve el kernel Linux.

* /tmp (temporales): Es un directorio donde se almacenan ficheros temporales. Cada vez que se inicia el sistema este directorio se limpia.

* /usr: Es el directorio padre de otros subdirectorios de importancia:

* /usr/bin: Conjunto de ejecutables de la mayoría de aplicaciones de escritorio entre otras (por ejemplo firefox).

* /usr/include: Los ficheros cabeceras para C y C++.

*/usr/lib: Las bibliotecas para C y C++.

* /usr/local: Es otro nivel dentro que ofrece una jerarquía parecida al propio directorio /usr.

* /usr/sbin: Otra serie de comandos administrativos para el sistema.

* /usr/share: Archivos compartidos como ficheros de configuración, imágenes, iconos, etc.

* /usr/src: Tiene en su interior el código fuente para el kernel LInux.

* var: Ficheros de sistema como el buffer de impresión, logs…

* /var/cache: Se almacenan datos cacheados para las aplicaciones.

* /var/lib: Información sobre el estado actual de las aplicaciones, modificable por las propias aplicaciones.

* /var/lock: Ficheros que se encargan de que un recurso sólo sea usado por una aplicación determinada que ha pedido su exclusividad, hasta que ésta lo libere.

* /var/log: Es uno de los subdirectorios más importantes ya que aquí se guardan todo tipo de logs del sistema.

* /var/mail: Los correos de los usuarios.

* /var/opt: Datos usados por los paquetes almacenados en /opt.

* /var/run: Información sobre el sistema desde que se inició.

* /var/spool: Datos esperando a que sean tratados por algún tipo de proceso.

* /var/tmp: Otro fichero temporal.

jueves, 15 de octubre de 2009

LTSP(Linux Terminal Server Project)

LTSP (ltsp.org) es un proyecto que proporciona todo lo necesario para instalar y configurar de forma relativamente sencilla un servidor de terminales
integrando varios servidores como DHCP, TFTP, NFS y XDMCP.
Equivalencias en Windows: MS-Terminal Services.

¿Y qué es un servidor de terminales?

Un servidor de terminales es un tipo de centralized computing consistente en un grupo de thin client también llamados ‘clientes ligeros’, ‘clientes livianos’ o ‘terminales tontos’ (típicamente X terminal) conectados por red al servidor de terminales, de manera que las aplicaciones se ejecutan en el servidor, que envía la salida a los clientes.
LTSP
¿Por qué es interesante un servidor de terminales? Porque permiten aprovechar máquinas obsoletas o baratas, abaratando enormemente los costes de instalación en centros con gran número de ordenadores, por lo que son muy utilizados en estaciones ofimáticas en educación, empresas, hoteles, etc.

Cómo funciona un servidor de terminales

Veamos cómo funciona un servidor de terminales:
  • todo el software está instalado en el servidor (paquete ltsp-server). Todas las aplicaciones se ejecutan en el servidor, que envía la salida a los clientes.
  • los clientes sólo tienen monitor, teclado, tarjeta de red y sonido. No necesitan disco duro, CD ni disquetera (en función del método de arranque).
  • los clientes arrancan desde la red (network booting) pudiendo lanzarse el cargador de arranque desde diversos dispositivos: desde la propia BIOS, desde un chip ROM conectado a la tarjeta de red, desde la disquetera o desde una memoria flash USB. El proyecto Etherboot (etherboot.org) se encarga de generar el código de network booting para cada modelo de tarjeta, que puede ser almacenado en todo tipo de dispositivos como BIOS, EPROMs, floppy, CD, HD, USB flash, etc.
    Las imágenes Etherboot en disquete se encuentran en rom-o-matic.net. Por ejemplo, si la imagen de disquete para nuestra tarjeta es eb-5.4.0-ns8390.zdsk nos descargaremos el archivo y crearemos el disquete booteable ejecutando:



    $ dd if=eb-5.4.0-ns8390.zdsk of=/dev/fd0



  • una vez que el cargador de arranque ha configurado la tarjeta de red busca un servidor DHCP para obtener los datos de la red: IP, máscara de red, IP del gateway e IP del servidor DNS.
  • después, pide al servidor DHCP la dirección de un servidor desde donde bajarse un kernel Linux mediante TFTP.
  • una vez descargado el kernel lo ejecuta, éste toma el control y monta mediante NFS un filesystem.
  • por último, se inicia una sesión X Windows conectándose mediante XDMCP al display manager (por ejemplo Gdm), obteniendo el login gráfico: LTSP login

Configurar el servidor de terminales

Veamos cómo configurar el servidor de terminales:
  • herramientas de administración de LTSP (paquete ltsp-utils): para manejar el servidor disponemos de varias herramientas de administración:
    - ltspadmin: instala/actualiza el servidor LTSP.
    - ltspcfg: configura el servidor LTSP.
    - ltspinfo: configura/reinicia/apaga los clientes conectados. Una vez instaladas las herramientas de administración ejecutaremos ltspadmin, que nos permitirá instalar y actualizar los paquetes de LTSP desde sus propios repositorios:
    ltspadmin
    El comando ltspcfg nos permite comprobar la configuración actual de todos los servicios requeridos por LTSP (podemos acceder a ltspcfg desde ltspadmin o ejecutarlo directamente en la línea de comandos):
    ltspcfg
    Además, con el comando ltspcfg podemos configurar todos los servicios requeridos por LTSP (DHCP, TFTP, NFS and XDMCP) así como algunas otras cosas, como generar el archivo lts.conf, el archivo donde especificaremos las características de cada cliente:
    ltspcfg
  • DNS: todos los clientes deben aparecer en /etc/hosts.
  • DHCP: verificaremos los archivos /etc/dhcp3/dhcpd.conf y /etc/ltsp/dhcpd.conf. Leer más: Servidor DHCP (IPs dinámicas)
  • TFTP: corre como esclavo del superservidor inetd, por lo que editaremos el archivo /etc/inetd.conf y nos aseguraremos de que contiene líneas similares a:


    #:BOOT: TFTP service is provided primarily for booting.  Most sites
    #       run this only on machines acting as "boot servers."
    tftp  dgram  udp  wait  root  /usr/sbin/in.tftpd  /usr/sbin/in.tftpd
          -s /var/lib/tftpboot



  • NFS: editaremos el archivo /etc/exports y nos aseguraremos de que contiene algo similar a:


    /opt/ltsp       *(ro,no_root_squash,async)
    Visto en www.estrellateyarde.es 
    



Curso Completo de Metasploit Framework online



Los creadores backtrack, han liberado totalmente gratis el mejor manual y mas completo que he visto del metasploit framework.
La guía cubre desde los aspectos mas básicos que debes tener en cuenta a la hora de ejecutar Metasploit, como los requerimientos de tu maquina, pasando por su instalación, hasta tocar temas como la interacción con la herramienta, como programar sobre ella y como ejecutar tu propio exploit programado con este framework.

Para acceder a este curso de Metasploit Framework, solo es necesario contar con un navegador, internet y leer un poco de ingles técnico.

Ingresar al curso Online de Metasploit Framework

Visto en www.dragonjar.org

miércoles, 14 de octubre de 2009

VLANS

Se trata de redes donde los host se comunican como si estuvieran el mismo dominio broadcast, sin tener en cuenta su localización física. Algunas de las ventajas son:
  • Los cambios únicamente implican configurar un puerto en la vlan apropiada.
  • Un grupo de usuarios que necesita mayor seguridad se puede agrupar en una vlan, y así el resto de usuarios no podrán comunicarse con ellos.
  • Independencia geográfica.
  • Incrementa el número de dominios broadcast y reduce su tamaño.
Los switches de capa 2 sólo leen los frames para encaminar, no miran la capa de red y por defecto, hacen forward de todos los paquetes broadcast. Mediante las vlans, esencialmente se crean dominios broadcast más pequeños en capa 2 (nivel de enlace).
Tipos vlans
Las static vlans son la manera más común y la más segura, ya que para cambiar un puerto de vlan se ha de realizar manualmente.
Las dynamic vlans determinan la asignación de un nodo con su vlan automáticamente. Con un VMPS (Vlan Management Policy Server) se puede usar una base de datos para mapear direcciones MAC a Vlans.
Existen dos tipos de links en una red de switches:
  1. Access ports: el tráfico sólo pertenece a una vlan. Los switches eliminan toda la información vlan del frame antes de hacer forward, por lo que los los dispositivos conectados no conocen la topología de la red.
  2. Trunk ports: son links que tranportan tráfico de varias vlans. Se pueden establecer entre dos switches, un switch y un router, y incluso entre un switch y un servidor.
Se pueden considerar también los voice access ports: excepcionalmente se pude añadir una segunda vlan a un access port, permitiendo también tráfico de voz y poder conectar un teléfono.
Frame tagging
Es un método de identificación de frames que asigna una ID definida por el usuario. A veces se conoce como Vlan ID.
Cada switch identifica la vlan del frame tag, para saber donde encaminarlo. Si hay un access port de esa vlan, eliminará el tag y lo destinará allí. En caso de que tenga un trunk a otro switch, el frame lo propagará de nuevo a otro switch.
Los puertos trunk soportan tráfico con tag o sin. La vlan 1 (por defecto) o native vlan, recibirá el tráfico sin VLAN ID (no asignado).
Vlan ID
Existen dos métodos:
  1. Inter-switch Link (ISL): es un método para indicar la información de la vlan en un frame Ethernet, mediante una encapsulación externa (ISL). ISL trabaja a nivel 2, encapsulando con un nuevo header y CRC. Es propietario de Cisco y sirve únicamente para Fast Ethernet y Gigabit Ethernet.
  2. IEEE 802.1Q: es un estándar que insterta un campo en el frame para identificar la vlan. Si la red no es cisco enteramente, se tendrá que usar 802.1Q.
Recordar que los tags ISL o 802.1Q sólo se usan a través de trunk links!
VLAN trunking Protocol (VTP):
Se encarga de manejar las vlans configuradas en la red y mantener la consistencia entre los switches. Para que VTP administre las vlans, debe crearse un servidor VTP.
Todos los servidores que necesiten compartir información usarán el mismo dominio, y un switch sólo podrá estar en un dominio a la vez. Es decir, un switch sólo compartira la información con los otros switches del mismo domino VTP.
Los switches detectan cualquier vlan añadirda y envian la información por los puertos trunk. De esta manera se actualizan las bases de datos con los últimos cambios. Existe también el modo VTP transparent mode en el que la información se propaga a otros switches, pero la base del datos del switch no se modifica.
Los tres requisitos para comunicar información de las vlans entre switches son:
  • El nombre de dominio entre los switches ha de ser el mismo.
  • Uno de los switches debe configurarse como servidor.
  • No es necesario un router.
Modos VTP de operacion
  1. Servidor: el switch debe estar en modo servidor para crear, añadir y eliminar vlans de un dominio VTP. La configuración de vlans se guarda en NVRAM.
  2. Cliente: reciben la información de los servidores, pero también enviar y reciben cambios. No pueden crear, cambiar o borrar vlans. Básicamente aprende la configuración pero no la salva en NVRAM.
  3. Transparent: hacen forward de la configuración recibida. Pueden crear, modificar y borrar vlans, porque tienen guardada su propia configuración, secreta para el resto de switches.
VTP sólo aprende Vlans con IDs entre 1 y 1005, las vlans extendidas (1006-4094) no se guardan en la base de datos.
VTP pruning
Permite reservar ancho de banda reduciendo la cantidad de paquetes broadcast, multicast, y unicast. Si está activo, los switches enviarán broadcast únicamente por los trunks que realmente deben recibir la información. Cuando se activa en el servidor VTP, se activa para toda la red. Vlan 1 no puede configurarse en este modo.
Routing entre vlans
Para comunicar las vlans es necesario un router. Para ello, se puede utilizar un router que tenga una interfaz para cada vlan o una interfaz que soporte ISL o 802.1Q trunking.

Como hacer password recovery en routers cisco

Aqui les voy a demostrar como hacer un password recovery para aquellas personas que se les olvidan las claves de sus enrutadores y no saben que hacer aqui les dejo la manera de recuperarla: .... xD

Encendemos el dispositivo.
  • Luego de cargado el bootstrap se corta la secuencia de inicio con una señal de interrumpción (Ctrl + Break en Hyperterminal), con lo que se ingresa en modo monitor de ROM.
  • Modificamos el registro de configuración del router para que cuando se reinicie no vaya a la NVRAM a leer el archivo de configuración:
    rommon 1 >_
    rommon 2 >confreg 0x2142
  • A continuación reiniciamos el equipo.
    rommon 3 >reset
  • El router se reinicia en modo setup ya que no lee ninguna configuración:

    --- System Configuration Dialog ---
  • No iniciamos en modo setup
    Would you like to enter the initial configuration dialog? [yes/no]:no


    Press RETURN to get started!

    Router>_
  • Ingresamos al modo privilegiado.
    Router>enable
  • Ya en modo privilegiado cargamos la configuración de respaldo guardada en la NVRAM.
    Router#copy nvram:startup-config system:running-config
  • Ingresamos al modo configuración.
    LAB_A#config terminal
  • Una vez en el modo de configuración procedemos a configurar las nuevas claves que vamos a utilizar.
    LAB_A(config)#enable secret [clave]
    LAB_A(config)#line vty 0 4
    LAB_A(config-line)#login
    LAB_A(config-line)#password [clave]
    LAB_A(config-line)#line console 0
    LAB_A(config-line)#login
    LAB_A(config-line)#password [clave]
    LAB_A(config-line)#exit
  • Debemos volver el registro de configuración al valor original para que el router se inicie normalmente la próxima vez.
    LAB_A(config)#config-register 0x2102
    LAB_A(config)#exit
  • Finalmente copiamos el archivo de configuración activo que tiene las nuevas claves, en la NVRAM.
    LAB_A#copy system:running-config nvram:startup-config
Este procedimiento nos permite configurar nuevas claves, conservando la configuración ya existente en el dispositivo.
Si no interesa conservar la configuración, entonces se puede proceder a hacer una configuración completamente nueva y guardarla en la NVRAM, salteando el paso en el que copiamos la startup config a la running-config.

El procedimiento es semejante en otros dispositivos Cisco, con las debidas adaptaciones respecto del modo en que se interrumpe el proceso de inicio y los comandos necesarios para alcanzar el objetivo.

lunes, 12 de octubre de 2009

Escanear puertos con Nmap en Linux

Nmap (Network Mapper, insecure.org/nmap/, paquete nmap) es probablemente el escaneador de puertos más potente que existe y el más utilizado tanto por administradores como por hackers, ya que tiene numerosas opciones de escaneo para hacking y ataques port surfing (evita ser detectado por software de detección de scaneos, hace creer al host escaneado que le escanean desde otro host, escanea a velocidad variable para no ser detectados, etc.).
Usaremos Nmap para saber qué puertos tenemos abiertos y asegurarnos de que el firewall funciona correctamente, y siempre desde una máquina distinta al equipo a escanear. Su sintaxis es:
# nmap [tipo de scan] [opciones] 
Los puertos a escanear pueden ser un rango (1-1024), una lista (22,23,80,443) o todos (1-65535). Si no se especifica escanea los puertos denominados bien conocidos (Well know).
Debemos tener en cuenta que para Nmap un puerto puede estar de tres maneras:
  1. open: el puerto es accesible y hay un demonio escuchando.
  2. closed: el puerto es accesible pero no hay un demonio escuchando.
  3. filtered: el puerto no es accesible, un firewall filtra el puerto.
  • escanear puertos TCP: para escanear todos los puertos (-p 1-65535) TCP (-sS) y detectar las versiones del software (-A) haremos:
    # nmap -sS -A -p 1-65535 192.168.1.2
    Starting nmap 3.81 at 2006-03-22 17:35 CET
    Interesting ports on 192.168.0.2:
    (The 65530 ports scanned but not shown below are in state: closed)
    PORT    STATE SERVICE  VERSION
    22/tcp  open  ssh      OpenSSH 3.8.1p1 Debian.sarge.6 Protocol 2.0
    80/tcp  open  http     Apache 1.3.33 Debian GNU/Linux PHP/4.3.10-18
    111/tcp open  rpcbind  2 (rpc #100000)
    113/tcp open  auth     OpenBSD identd
    631/tcp open  ipp      CUPS 1.1
    MAC Address: 00:4F:49:01:E9:91 (3com)
    Device type: general purpose
    Running: Linux 2.4.X|2.5.X|2.6.X
    OS details: Linux 2.4.7 - 2.6.11
    Service Info: OS: OpenBSD
    Nmap finished: 1 IP address (1 host up) scanned in 73.125 seconds

  • escanear puertos UDP: para escanear los puertos UDP (opción -sU) bien conocidos (opción por defecto), haremos:
    # nmap -sU -A 192.168.1.2

  • escaneo haciendo ping: con la opción -sP lanzaremos un ping a todas las IPs de la red (ping scan), para saber qué hosts se encuentran activos:
    # nmap -sP 192.168.1.0/24
    Starting nmap 3.81 at 2006-03-22 20:39 CET
    Host 192.168.0.1 appears to be up.
    MAC Address: 00:01:38:55:2C:3A (XAVi Technologies)
    Host 192.168.0.2 appears to be up.
    MAC Address: 00:50:DA:38:C5:04 (3com)
    Host 192.168.0.3 appears to be up.
    MAC Address: 00:4F:49:01:E9:91 (Unknown)
    Host 192.168.0.255 seems to be a subnet broadcast address.
    Nmap finished: 255 IP addresses (3 hosts up) scanned in 6.966 seconds
     
    Visto en  http://www.estrellateyarde.es/so/nmap-en-linux