Blog Archives
Seguridad sistemas y redes ( 1 )
By admin | 1 comment
1Ataques a redes tcp/ip
Introducción
El Tcp/Ip se creó en un determinado momento en el cual la seguridad no era considerada muy importante. Esto era asi ya que la red denominada actualmente Internet, se denomina Arpanet y estaba constituida por unos pocos servidores, pertenecientes a centros educativos, grandes empresas, gubernamentales y militares. Ya que el acceso estaba restringido a pocos entes la seguridad estaba contemplada ya que todo el mundo conectado se puede decir que se “conocían”, con lo que no se pensaba en que alguien pudiera entrar en el sistema sin autorización.
El protocolo Tcp/Ip es un protocolo de comunicaciones bastante robusto, pero no estaba preparado para la seguridad, en conceptos tales como autentificación, verificación, cifrado, etc.. Transcurrido el tiempo se han desarrollado nuevos ataques cada vez mas perfeccionados que explotan fallos en la seguridad tanto del diseño Tcp/Ip como en la configuración y operación de los sistemas que componen la redes conectadas en internet. Se pueden encontrar tres generaciones de ataques, siendo estas las siguientes:
Primera generación ( Ataques físicos )
Esta generación engloba los ataques que se centraban en los componentes físicos como pueden ser los propios equipos, los cables y dispositivos de red. Lógicamente esta generación de ataques tenia que tener acceso a los equipos para llevar a cabo los mismos.
Segunda generación ( Ataques sintácticos )
Esta generación es donde se producen ataques a la lógica de los sistemas es decir atacan vulnerabilidades de los sistemas debido a errores en la programación, también se realizan ataques a los códigos de cifrado y los protocolos.
Tercera generación ( Ataques semánticos )
Por ultimo están los ataques que se aprovechan de la confianza o ignorancia de los usuarios en la información. Ya que estos ataques hacen sustituciones de paginas web, falsos boletines informativos, correos electrónicos falsos, con el fin de obtener información privilegiada de los usuarios.
Seguridad en sistemas y redes ( 2 )
By admin
Seguridad en redes TCP/IP
Durante los años de la guerra fría (años 60) DARPA, la agencia de proyectos de investigación avanzada del departamento de defensa de los Estados Unidos, se planteo la posibilidad de un ataque a su red de comunicaciones e investigo desarrollar una red con administración distribuida. El resultado en los estudios de redes de conmutación de paquetes derivo en ARPANET, una red de carácter experimental y tolerable a fallos. A partir de los 70 se empezó a investigar la interconexión de distintas redes y se establecieron las bases de la familia de protocolos TCP/IP.
Esta familia de protocolos se divide en cuatro capas:
Capa de red.
formada por una red LAN o WAN homogénea. Todos los equipos conectados a internet implementan esta capa. Todo lo que se encuentra por debajo de la IP es la capa de red física o simplemente, capa de red.
Capa de internet
Es la capa que conforma la unidad de todos los miembros de la red y por tanto la que permite que se puedan conectar entre si, independientemente de su tipo de conexión. la misión principal de esta capa es la de direccionamiento y encaminamiento. Todos los equipos conectados a internet implementan esta capa.
Capa de transporte
Es la encargada del control de flujo y errores, solo es implementado por equipos usuarios de internet o por terminales de internet. los encaminadores o routers no la necesitan.
Capa de aplicación
Es la capa en la que se encuentran los programas y aplicaciones que utilizan internet como clientes y servidores Web, de FTP, Correo, etc. La implementan los equipos usuarios de internet o los terminales de internet, los encaminadores o routers no la utilizan.
En cada una de las capas pueden existir distintas vulnerabilidades y se pueden explotar por parte de un atacante utilizando los protocolos asociados a cada una de ellas. A continuación
Vulnerabilidades de la capa de red
Las vulnerabilidades de esta capa están asociadas a los medios sobre los cuales se realiza la conexión. Esta capa presenta problemas de control de acceso y de confidencialidad. Ejemplos de estas vulnerabilidades son desvió de los cables de conexión hacia otros sistemas, pinchazos de la línea, escuchas en medios de transmisión inalámbricos, etc.
Vulnerabilidades de la capa Internet
En esta capa se puede realizar cualquier tipo de ataque que afecte a un datagrama IP. Tipos de ataques que se pueden realizar en esta capa son por ejemplo: técnicas de sniffing o escuchas de red, suplantación de mensajes, modificación de datos, retrasos de mensajes y denegación de mensajes. Cualquier atacante puede suplantar un paquete si indica que proviene de otro sistema. La suplantación de un mensaje se puede realizar, por ejemplo dando una respuesta a otro mensaje antes de que lo haga el suplantado. La autentificación de los paquetes se realiza a nivel de máquina por dirección IP y no a nivel de usuario. Si un sistema da una dirección de maquina errónea, el receptor no detectara la suplantación. Este tipo de ataques suele utilizar técnicas como la predicción de números de secuencia TCP, el envenenamiento de tablas cache, etc.
Vulnerabilidades de la capa de transporte
Esta capa trasmite información TCP o UDP sobre datagramas IP. En esta capa se pueden encontrar problemas de autentificación, integridad y de confidencialidad. Los ataques mas conocidos en esta capa son las denegación de servicio de protocolos de transporte. En el mecanismo de seguridad del diseño del protocolo TCP, existe una serie de ataques que aprovechas las deficiencias en el diseño, entre las mas graves se encuentra la posibilidad de la intercepción de sesiones TCP establecidas, con el objetivo de secuestrarlas y dirigirlas a otros equipos.
Vulnerabilidades de la capa de aplicación
Esta capa presenta varias deficiencias de seguridad asociadas a sus protocolos. Ya que esta capa utiliza un gran número de protocolos, la cantidad de vulnerabilidades presentes también es superior al resto de capas. Varios ejemplos son los siguientes:
Servicio de nombres de dominio: Cuando un sistema solicita conexión a un servicio, pide la dirección IP de un nombre de dominio y envía un paquete UDP a un servidor DNS. Este responde con la dirección IP del dominio solicitado o una referencia que apunta a otro DNS que pueda suministrar la dirección IP solicitada. Un servidor DNS debe entregar la dirección IP correcta pero también puede entregar un nombre de dominio dada una dirección IP u otro tipo de información. Un servidor DNS actúa como una base de datos accesible desde Internet. Si un atacante puede modificar la información que suministra esta base de datos o acceder a información sensible almacenada en la base de datos por error, pudiendo obtener información relativa a la topología de la red de una organización, teniendo así acceso a una lista de los sistemas de la red. A los ataques de suplantación de DNS se les conoce con el nombre de Spoofing DNS.
Telnet: Normalmente el servicio de telnet autentifica al usuario mediante la solicitud del usuario y contraseña, que son transmitidas sin ningún tipo de protección por la red. Por lo cual el servicio queda desprotegido ante un ataque haciendo posible la captura de los datos del usuario con técnicas de escucha o sniffing.
File Transfer Protocol (FTP): al igual que el servicio anterior este servicio también envía la información sin protección, con lo cual también queda expuesto de la misma forma que el anterior. Este servicio también permite el acceso anónimo, aunque por lo general esta forma de conexión solo permite el acceso a una zona restringida en la cual solo se permite la descarga de archivos no comprometiendo así el sistema y permitiendo el uso del servicio de forma optima.
Hypertext Transfer Protocol (HTTP): Este servicio es el responsable del World Wide Web.Una de las vulnerabilidades mas conocidas es la de la posibilidad de entrega de información por parte de los usuarios del servicio. Esta entrega de información por parte de los usuarios del servicio es posible mediante la ejecución de código en la parte del servidor.
Seguridad Sistemas y Redes ( 3 )
By admin
Utilización de herramientas de administración ( 1 )
Como es lógico, cualquier atacante que pretenda atacar nuestro sistema, ha de tener conocimientos sobre una serie de herramientas que le permitan obtener información sobre el sistema que esta atacando en busca de alguna debilidad. Las siguientes herramientas permiten obtener información sobre el sistema tanto a nosotros como administradores del sistema como a los atacantes.
Ping
Esta herramienta permite comprobar el estado de la conexión de uno o varios equipos remotos utilizando los paquetes de solicitud de eco y de respuesta del mismo (definidos en el protocolo ICMP), de esta forma es posible determinar si un equipo es accesible a través de la red. También se utiliza para medir el tiempo de respuesta ( latencia ) entre dos equipos remotos.
Como curiosidad el nombre de esta utilidad viene dado por el sonar de los submarinos, que enviaban una señal para esperar el eco de la misma y así obtener información. el protocolo utilizado por ping es ICMP que es el acrónimo de Internet Control Message Protocol, este protocolo es el encargado de controlar si existen errores en la comunicación entre dos redes. Para realizar esta acción ICMP envía un mensaje a un destino concreto y dependiendo de lo que suceda con el mensaje el remitente tendrá una respuesta. La respuesta viene determinada por un campo dentro del paquete ICMP que contiene un valor de respuesta, según el valor se determina el diagnostico y el resultado. Los valores de este campo con su significado pueden ser:
0 Respuesta de eco ( Echo Reply )
3 Destino inaccesible ( Destination Unreachable )
4 Disminución del trafico desde el origen ( Source Quench )
5 Redireccionar , cambio de ruta ( Redirect )
8 Solicitud de eco ( Echo )
11 Tiempo excedido por un datagrama ( Time Exceeded )
12 Problema de parámetros ( Parameter problem )
13 Solicitud de marca de tiempo ( Timestamp )
14 Respuesta de marca de tiempo ( Timestamp Reply )
15 Solicitud de información ( Information Request ) – obsoleto
16 Respuesta de información ( Information Reply ) – obsoleto
17 Solicitud de mascara ( Addressmask )
18 Respuesta de mascara ( Addressmask Reply )
La sintaxis del comando es la siguiente:
ping [Opciones] nombre ordenador | dirección ip
Las opciones que se pueden utilizar son las siguientes:
-c cuantos
esta opción para la ejecución del comando cuando se hayan enviado y recibido cierto numero ( cuantos ) de paquetes ECHO_RESPONSE. Si esta opción no se especifica el comando continua enviando hasta que sea interrumpido, por ejemplo con Ctrl + C.
-a
esta opción emite un pitido audible cada vez que envía un paquete.
-i intervalo
esta opción permite especificar el numero de segundos antes de enviar el siguiente paquete de prueba, el valor por defecto es 1 segundo.
-s valor
esta opción permite especificar el numero de bytes de datos que se envían. A este valor hay que sumarle los 8 bytes correspondientes a la cabecera ICMP. El valor por defecto es de 56 bytes.
-q
esta opción solo muestra el resumen final del comando.
Traceroute
Esta utilidad es una herramienta de diagnostico de red que permite trazar la ruta que siguen los paquetes transmitidos desde un punto de red ( host ) a otro punto. Se consigue también información sobre RTT ( Round-Trip delay Time ), que es el tiempo que tarda un paquete enviado desde un emisor en volver al mismo emisor después de haber pasado por el receptor. Este comando es efectivo para realizar un mapa de los routers que se encuentran entre el punto de origen y el punto de destino. Un ejemplo de trazado es el que se muestra a continuación:
user@localhost:/# traceroute www.google.com traceroute to www.l.google.com (64.233.169.99), 64 hops max, 40 byte packets 1 * * * 2 172.16.183.1 (172.16.183.1) 23 ms 23 ms 22 ms 3 10.127.66.229 (10.127.66.229) [MPLS: Label 1479 Exp 0] 38 ms 51 ms 38 ms 4 cnt-00-tge1-0-0.gw.cantv.net (200.44.43.85) 38 ms 38 ms 37 ms 5 cri-00-pos1-0-0.border.cantv.net (200.44.43.50) 51 ms 43 ms 43 ms 6 sl-st21-mia-14-1-0.sprintlink.net (144.223.245.233) 94 ms 93 ms 93 ms 7 sl-bb20-mia-5-0-0.sprintlink.net (144.232.9.198) 95 ms 93 ms 93 ms 8 sl-crs1-mia-0-4-0-0.sprintlink.net (144.232.2.248) 94 ms 95 ms 95 ms 9 sl-crs1-atl-0-0-0-1.sprintlink.net (144.232.20.48) 104 ms 104 ms 103 ms 10 sl-st20-atl-1-0-0.sprintlink.net (144.232.18.133) 104 ms 103 ms * 11 144.223.47.234 (144.223.47.234) 103 ms 103 ms 103 ms 12 64.233.174.86 (64.233.174.86) 98 ms 97 ms 64.233.174.84 (64.233.174.84) 103 ms 13 216.239.48.68 (216.239.48.68) 105 ms 104 ms 106 ms 14 72.14.236.200 (72.14.236.200) 106 ms * 105 ms 15 72.14.232.21 (72.14.232.21) 110 ms 109 ms 107 ms 16 * yo-in-f99.google.com (64.233.169.99) 100 ms 99 ms
El valor de la primera columna es el numero de salto, a continuación se muestra el nombre y dirección IP del nodo por el que pasa, a continuación se muestran tres valores que son los tiempos de respuesta para los paquetes enviados ( en caso de aparecer un símbolo de *, es que no se ha obtenido respuesta ).
este comando envía un paquete UDP de prueba hacia el host destino y hacia un puerto en el que confía que no haya ninguna aplicación esperando datos. Cuando se envía el paquete de prueba la primera vez, el campo TTL (Time-to-live) de la cabecera IP vale 1. El valor de este campo representa el numero máximo de nodos por los que puede circular un paquete. En la practica, cada nodo de la red decrementa en una unidad el campo TTL así que, cuando el paquete de prueba inicial alcance el primer router, el TTL se decrementara y, como el valor de este campo será igual a 0, el paquete habrá de ser descartado. Además, el router enviara a la dirección IP origen del paquete de prueba un paquete ICMP del tipo TIME EXCEEDED.
Cuando el host que esta haciendo el traceroute reciba este paquete de error sabrá que con un TTL igual a 1 no se puede llegar hasta el host destino y además habrá averiguado la dirección IP del primer router en el camino hacia el destino. A continuación, se ira incrementando sucesivamente el valor inicial del campo TTL hasta conseguir que el paquete de prueba alcance el host destino. En ese momento, si efectivamente no hay ninguna aplicación atendiendo al puerto seleccionado, se enviara un mensaje ICMP del tipo PORT UNREACHABLE al host origen del paquete de prueba.
la sintaxis del comando mas básica es la siguiente:
traceroute nombre.de.servidor
A continuación se describen brevemente las principales opciones de este comando:
-f n
con esta opción, se establece el valor inicial del campo TTL en el primer paquete de prueba (valor por defecto: 1).
-m n
con esta opción, se establece el valor máximo del campo TTL que puede utilizarse en los paquetes de prueba (valor por defecto: 30).
-q n
esta opción permite especificar el numero de paquetes de prueba que se envían para cada valor del campo TTL (valor por defecto: 3).
-w s
con esta opción, se fija el tiempo máximo de espera por la respuesta a un paquete de prueba (valor por defecto: 5 segundos).
-p n
de esta forma se puede modificar el numero de puerto base utilizado en los paquetes de prueba (valor por defecto: 33435). El numero de puerto que se utiliza realmente en los paquetes de prueba se incrementa en una unidad para cada paquete.
-I
con esta opción, en vez de utilizar paquetes UDP de prueba, se utilizan paquetes ICMP.
Whois
Esta utilidad permite realizar una petición a una base de datos en la cual se puede obtener o determinar el propietario de un nombre de dominio o una dirección IP de internet. Existen dos formas de almacenar la información, el modo “ligero” y el modo “denso”. En el modo denso un servidor almacena toda la información de un conjunto de dominios o IP’s, con lo que es capaz de responder a cualquier consulta sobre un dominio. Mientras que en el modo “ligero”, el servidor guarda el nombre de otro servidor que contiene los datos completos del registrador del mismo. El siguiente ejemplo muestra el resultado de una consulta whois en este caso de wikipedia:
nacho@nacho-desktop:~$ whois wikipedia.org Domain ID:D51687756-LROR Domain Name:WIKIPEDIA.ORG Created On:13-Jan-2001 00:12:14 UTC Last Updated On:08-Jun-2007 05:48:52 UTC Expiration Date:13-Jan-2015 00:12:14 UTC Sponsoring Registrar:GoDaddy.com, Inc. (R91-LROR) Status:CLIENT DELETE PROHIBITED Status:CLIENT RENEW PROHIBITED Status:CLIENT TRANSFER PROHIBITED Status:CLIENT UPDATE PROHIBITED Registrant ID:GODA-09495921 Registrant Name:DNS Admin Registrant Organization:Wikimedia Foundation, Inc. Registrant Street1:P.O. Box 78350 Registrant Street2: Registrant Street3: Registrant City:San Francisco Registrant State/Province:California Registrant Postal Code:94107-8350 Registrant Country:US Registrant Phone:+1.4158396885 Registrant Phone Ext.: Registrant FAX:+1.4158820495 Registrant FAX Ext.: Registrant Email:dns-admin@wikimedia.org Admin ID:GODA-29495921 Admin Name:DNS Admin Admin Organization:Wikimedia Foundation, Inc. Admin Street1:P.O. Box 78350 Admin Street2: Admin Street3: Admin City:San Francisco Admin State/Province:California Admin Postal Code:94107-8350 Admin Country:US Admin Phone:+1.4158396885 Admin Phone Ext.: Admin FAX:+1.4158820495 Admin FAX Ext.: Admin Email:dns-admin@wikimedia.org Tech ID:GODA-19495921 Tech Name:DNS Admin Tech Organization:Wikimedia Foundation, Inc. Tech Street1:P.O. Box 78350 Tech Street2: Tech Street3: Tech City:San Francisco Tech State/Province:California Tech Postal Code:94107-8350 Tech Country:US Tech Phone:+1.4158396885 Tech Phone Ext.: Tech FAX:+1.4158820495 Tech FAX Ext.: Tech Email:dns-admin@wikimedia.org Name Server:NS0.WIKIMEDIA.ORG Name Server:NS1.WIKIMEDIA.ORG Name Server:NS2.WIKIMEDIA.ORG
La sintaxis mas básica del comando es la siguiente:
whois nombre.servidor
Las opciones mas comunes que se pueden utilizar con el comando son las siguientes:
- a
busca en todas las bases de datos
-F
modo rápido
-h host
se conecta al servidor especificado en host
-H
oculta el aviso legal
-r
desactiva la búsqueda recursiva
–verbose
muestra en pantalla lo que se esta haciendo
–version
muestra la versión del programa
Ejemplos de uso común
whois aprendoencasa.com –H
whois aprendoencasa.com –a –H
Finger
Otra de las utilidades para obtener información es con el uso de la utilidad y su protocolo asociado finger. Esta utilidad es una de las clásicas en el mundo Unix, Linux y como es lógico puede ocasionar ciertos problemas de seguridad. Esta utilidad muestra información sobre un usuario o grupo de usuarios de una maquina conectada a la red. Su utilizacion normal es la de saber si una persona concreta tiene cuenta en un sitio determinado, ya que muestra la información relativa a los usuarios que han iniciado una sesión en un sistema local o remoto, suele mostrar el nombre completo, la ultima vez que se conecto el usuario, el tiempo de inactividad y la línea del terminal y su ubicación si es aplicable. Por defecto utiliza el puerto 79. Se ha de tener en cuenta que la maquina ha de admitir el envió de información sobre una petición de finger, sino lógicamente la petición será rechazada. La sintaxis mas básica del comando es la siguiente:
finger @nombre.servidor
Los siguientes ejemplos muestran el resultado de una consulta finger de todos los usuarios del sistema que han tenido actividad:
nacho@nacho-desktop:~$ finger Login Name Tty Idle Login Time Office Office Phone nacho jose i.r. saez tty7 20:18 Nov 9 16:46 (:0) nacho jose i.r. saez pts/0 Nov 10 12:26 (:0.0)
nacho@nacho-desktop:~$ finger -l Login: nacho Name: jose i.r. saez Directory: /home/nacho Shell: /bin/bash On since Mon Nov 9 16:46 (CET) on tty7 from :0 20 hours 18 minutes idle On since Tue Nov 10 12:26 (CET) on pts/0 from :0.0 No mail. No Plan.
nacho@nacho-desktop:~$ finger @localhost [netbsd.bridge.nacho] Login Name TTY Idle When Where root Super-User console 3d Sun 19:14 :0 nacho Nacho *pts/3 43 Mon 19:24 openbsd.firewall.nacho
Las opciones mas comunes del comando son las siguientes:
-l
formato largo, se utiliza en peticiones a maquinas remotas.
-s
formato corto
Seguridad sistemas y redes ( 4 )
By admin
Utilización de herramientas de administración ( 2 )
Host,dig,nslookup
Estos comandos permiten obtener información relativa a los dominios asociados a la organización, así como a las subredes correspondientes. Esta información se obtiene mediante consultas al servicio de nombre de dominios (DNS). Si el servidor que ofrece la información de dominio no esta correctamente configurado, es posible realizar una consulta de transferencia de zona completa, lo que permite obtener toda la información de traducción de direcciones ip a nombres de maquina.
El Domain Name System (DNS) es una base de datos distribuida y jerárquica que
almacena información asociada a nombres de dominio en redes como Internet. DNS es
capaz de asociar a cada nombre de dominio distintos tipos de información, que se
almacena en registros. Los más comunes son los registros de tipo A (que nos indican las
relaciones nombre-IP), CNAME (nombres o alias que tiene esa máquina), MX (servidores
de correo que se deben utilizar para un dominio concreto) y NS (servidores de nombre
asociados), aunque existen otros registros tan curiosos como LOC, que permite introducir
datos sobre la localización geográfica de una máquina sobre la superficie terrestre (latitud
y longitud en grados minutos y segundos) además de otros datos complementarios.
Los usos más comunes son la resolución de nombres, que consiste en la conversión de
nombres de dominio (www.rediris.es) a direcciones IP (130.206.1.2) y la localización de
los servidores de correo electrónico de cada dominio. Otro uso habitual es el proceso de
conversión de direcciones IP (159.237.12.60) a nombres de dominio (www.unav.es),
conocido con el original nombre de resolución inversa.
la sintaxis de los comandos es la siguiente:
host dirección_ip
host nombre_dominio
Las opciones que se pueden utilizar son las siguientes:
-a
Visualiza todos los registros de DNS para el nombre especificado
-C
Visualiza los registros SOA (Start of Authority, los registros contienen identificadores del servidor de nombres con autoridad sobre la denominación y su operador, así como diversos contadores que regulan el funcionamiento general del sistema de nombres por dominio para la denominación)
-v
resultado detallado por el anfitrión
-d
equivalente a –v
-l
lista de todos los host alojados en un dominio
-W
especifica cuanto tiempo debe esperar una respuesta
-t
se utiliza para seleccionar el tipo de consulta a realizar. CNAME,SOA,NS,etc..
-T
utiliza tcp en vez de utilizar udp
la sintaxis de los comandos es la siguiente:
dig [@servidor DNS] nombre [opciones] [tipo]
El comando dig (Domain information Groper) permite realizar consultas a los servidores DNS, por lo que es útil para comprobar si el DNS esta correctamente configurado en la maquina. Permite tanto el mapeo de nombres a IP’s como el mapeo inverso de IP’s a nombres. Solo se utiliza para internet ya que no consulta el archivo /etc/host del sistema.
los parámetros especificados son los siguientes:
[@servidor DNS]
nombre o ip del servidor DNS al que se quiere dirigir la consulta. si no se utiliza el parámetro se utilizan los servidores ubicados en el archivo /etc/resolv.conf
nombre
nombre de dominio cuya ip se quiere resolver.
[tipo]
tipo de consulta a realizar siendo los valores posibles los siguientes:
A – IP del servidor que aloja al dominio (por defecto)
NS – servidores DNS
MX – servidores de correo
ANY – todas las opciones anteriores
AAAA – IP en IPV6 (si se tiene)
Ejemplos del comando dig:
mapeo de nombres a IP’s
$ dig telefonica.net ;; ANSWER SECTION: telefonica.net. 10356 IN A 213.4.130.95
mapeo inverso de IP’s a nombres
$ dig -x 127.0.0.1 ;; ANSWER SECTION: 1.0.0.127.in-addr.arpa. 0 IN PTR localhost.
$ dig -x 213.4.130.95 ;; ANSWER SECTION: 95.130.4.213.in-addr.arpa. 60809 IN PTR www.telefonica.net.
servidores DNS de un dominio
$ dig telefonica.net. ns ;; ANSWER SECTION: telefonica.net. 28800 IN NS dns2.terra.es. telefonica.net. 28800 IN NS dns1.terra.es. ;; ADDITIONAL SECTION: dns2.terra.es. 28714 IN A 213.4.141.1 dns1.terra.es. 28714 IN A 213.4.132.1
la sintaxis de los comandos es la siguiente:
nslookup
nslookup nombre.del.host
nslookup nombre.del.host –nombre.del.servidor
Es una herramienta que permite consultar un servidor de nombres y obtener información relacionada con el dominio o host y así diagnosticar posibles problemas de configuración que pudieran haber surgido en el DNS.
Si se utiliza sin ningún tipo de argumento el comando muestra el nombre y la ip del servidor de nombres primario y presenta un prompt propio para realizar consultas.
Es posible utilizar el tipo de consulta a realizar utilizando el argumento set de la siguiente forma:
set type=mx
obtiene información relacionada con los servidores de correo de un dominio.
set type=ns
obtiene información del servidor de nombres relacionado al dominio.
set type=a
obtiene información de un host de la red. modo de consulta predeterminado.
set type=soa
muestra la información del campo soa.
set type=cname
muestra información relacionada con el alias.
set type=hinfo
muestra siempre y cuando este disponible información sobre el material y el sistema operativo del host.
Para salir del comando nslookup se ha de teclear la opción exit.
Seguridad Sistemas y Redes ( 5 )
By admin
Cadenas identificativas y otros recursos
Una de las formas más artesanales de obtener información sobre una organización, es obtenerla a través del código fuente de sus portales corporativos o páginas Web, es decir revisar manualmente el código xhtml, html, asp o php. De esta forma se puede conocer que aplicaciones corren los servicios web e incluso es posible determinar, de una manera bastante aproximada, que sistema operativo esta instalado en la maquina. También es normal buscar los comentarios en el código fuente, para ver si proporcionan alguna información que pueda ser de utilidad. Para realizar este proceso de descargar un portal entero a nuestra maquina para analizarlo existen numerosas herramientas, entre ellas destacamos las siguientes:
wget (Linux)
En distribuciones Linux, desde la línea de comandos, existe la herramienta wget, que permite descargar a un disco local todas las paginas web de un portal, bien por vía HTTP, o por vía FTP, es una aplicación para ejecutarla desde la consola, aunque existen entornos gráficos. la sintaxis del comando es la siguiente:
wget [opciones] [lista de urls]
Siendo las opciones disponibles para el comando las siguientes:
-h
–helpMuestra la ayuda del comando.
-V
Muestra la versión del programa.
-i nombrefichero
–input-file=nombreficheroLee la lista de urls del fichero especificado en nombrefichero.
-o ficherolog
–output-file=ficherologEscribe los ficheros de log en ficherolog, en vez de utilizar la pantalla.
-a ficherolog
–append-output=ficherologIgual que la opción anterior, pero si el fichero existe añade en el mismo la información, en caso de no existir el fichero lo crea.
-t numero
–tries=numeroEspecifica el numero de veces de intentos a realizar para la descarga, si se especifica el valor 0, indica un numero indefinido.
–follow-ftp
Sigue los enlaces ftp desde documentos HTML
-g on/off
–glob=on/offActiva o desactiva el uso de caracteres especiales como ‘*’ para indicar todos los ficheros.
-r
especifica el modo recursivo.
-U
especifica identificación de navegador. Ya que muchos sitios web deniegan la descarga si no se realiza a través de un navegador.
–wait=tiempo
Especifica un tiempo de parada o pausa entre descargas.
–limit-rate=valor
Especifica el valor o velocidad de descarga indicada en valor.
-no-parent
Indica que el comando no descargue por debajo del directorio especificado.
-k
Una vez terminada la descarga convierte los enlaces o links de los documentos a rutas relativas, para poder navegar en modo local con la descarga realizada.
-c
Continua con la descarga desde el punto en el que se haya quedado.
Vea los siguientes ejemplos:
// Descargar un archivo wget http://www.aprendoencasa.com/index.php // Descargar utilizando distintos métodos wget http://www.aprendoencasa.com/imagen1.jpg ftp://aprendoencasa.com/descargar/cursos.zip // Descargar utilizando archivo de entrada // se ha de crear un archivo el cual contendrá la uri de los archivos a descargar wget –i archivos.txt // Descargar después de una interrupción continuando por donde se haya quedado wget –i –c archivos.txt // Descargar y crear un informe wget –o informe.txt http://www.aprendoencasa.com/index.html // Descargar un archivo limitando el ancho de banda wget –o informe.txt –-limit-rate=50k ftp://ftp.aprendoencasa.com/ubuntu910.iso // Descargar especificando nombre de usuario y contraseña en caso de ser solicitado // por un sitio wget –http-user=admin –http-password=secreto http://www.aprendoencasa.com/archivo1.zip // Descargar aumentando el numero de intentos, útil en casos de sitios con saturacion // y descargar utilizando accesos infinitos wget –t 50 http://www.aprendoencasa.com/fedora10.iso wget –t inf http://www.aprendoencasa.com/suse11.iso // Descargar pagina web entera con los elementos que incluyen la misma como imágenes, // estilos, etc. wget –p http://www.aprendoencasa.com // Descargar pagina web entera especificando recursividad de hasta cinco niveles wget –r http://www.aprendoencasa.com // Descargar pagina web entera especificando nivel de recursividad wget –r -l10 http://www.aprendoencasa.com // Descargar pagina web convirtiendo los enlaces a relativas para navegar offline wget –r ––convert-links http://www.aprendoencasa.com // Existen mas opciones seria interesante consultar el comando para averiguarlas.
Seguridad Sistemas y Redes ( 6 )
By admin
Cadenas identificativas y otros recursos 2
Ftp
FTP son las siglas de File Transfer Protocol (Protocolo de Transferencia de Ficheros), en informática es un protocolo de red orientado a la transferencia de archivos entre sistemas conectados a una red TCP (Transmission Control Protocol – Protocolo de control de transmisiones), esta basado en la arquitectura cliente-servidor, desde un equipo cliente se puede conectar a un equipo servidor para descargar archivos desde el servidor o enviar archivos al mismo, siendo independiente del sistema operativo utilizado. El servicio de FTP utiliza la capa de aplicación del modelo de capas TCP/IP y utiliza normalmente el puerto 20 o 21. Uno de los problemas identificados de este servicio es que esta pensando para ofrecer velocidad en la transferencia de archivos, pero no así seguridad ya que toda la información intercambiada entre los sistemas incluidos contraseñas y usuarios son enviados en formato de texto plano sin cifrado de ninguna clase. Por lo cual realizando sniffing sobre el servicio se podría obtener información valiosa para un atacante del sistema. La recomendación en seguridad seria utilizar un método alternativo como sFtp el cual esta incluido en el paquete SSH y permite cifrar la conexión en la transferencia de archivos.
Servidor ftp
Un servidor ftp es un programa que se ejecuta en un sistema servidor estando este ultimo normalmente conectado a internet, aunque también es posible que no tenga conexión a internet y si a una red interna. La función principal del servidor es permitir el intercambio de archivos o ficheros entre distintos sistemas servidores o clientes. Lo normal es que el servidor ftp no este instalado en un equipo personal, por lo cual un usuario normal utilizara el FTP para conectarse de forma remota al servidor y enviar o recibir información. Las funciones principales o para las que normalmente se utiliza un servidor FTP son las de alojamiento web o servidores de backup, de forma que los clientes del servicio puedan acceder al servicio y enviar sus archivos al sistema servidor utilizando el protocolo FTP o SFTP (Secure File Transfer Protocol).
Cliente ftp
Si un equipo personal no tiene instalado en su navegador el servicio de FTP, el usuario ha de instalar en su equipo un programa que le permita la transferencia de archivos entre su sistema y un sistema remoto, a este tipo de programas se les denomina clientes FTP, este tipo de programas facilitan el acceso al sistema servidor, teniendo el usuario simplemente que indicar el nombre del servidor, la cuenta de usuario y la contraseña en caso necesario asignada para la conexión, una vez establecida la misma se tendrá acceso al servidor y se podrá realizar la transferencia de archivos con el programa cliente. Los programas cliente pueden ser en modo consola de texto o grafica, siendo lógicamente los de entorno grafico mucho mas cómodos de utilizar, entre ellos se puede destacar Filezilla, CuteFTP, etc.,Mientras que en modo consola se suele utilizar el comando ftp tanto en sistemas linux como windows.
Modos de conexión
FTP permite dos modos de conexión del cliente. Los modos se denominan Activo (también denominado estándar o PORT ya que el cliente envía comandos tipo PORT al servidor por el canal de control al establecer la conexión) y Pasivo o también denominado PASV ya que el cliente envía comandos tipo PASV, tanto en un modo u otro el cliente establece una conexión utilizando el puerto 21 que establece el canal de control.
Modo Activo
En el modo activo el servidor crea su canal de datos en el puerto 20, mientras que por parte del cliente el canal de datos se asocia con un puerto aleatorio mayor de 1024. Para realizar este proceso el cliente envía un comando PORT el cual indica al servidor el numero de puerto por el cual realizar la transmisión de datos. Esta acción hace que el cliente este preparado para abrir cualquier puerto aleatoriamente superior al 1024, teniendo en cuenta este hecho es inseguro utilizar el modo activo ya que dejamos expuesto puertos de forma aleatoria a un posible atacante. De hecho casi todos los cortafuegos que se instalan en los sistemas suelen bloquear o rechazar este tipo de conexiones.
Modo Pasivo
Para suplir la inseguridad del sistema activo se creo el modo pasivo, en este modo cuando el cliente envía un comando PASV sobre el canal de control, el servidor de FTP le indica al cliente por el canal de control el puerto mayor a 1023, por el cual conectarse el cliente.
Tipos de transferencia de archivos
Ascii
esta forma de transferencia es útil para transferir archivos que solo contengan caracteres imprimibles, es decir contengan texto ascii puro no transformado por un procesador de textos no ascii. Un ejemplo seria transferir un archivo html, php, código fuente, etc. Pero no se podría enviar una imagen.
Binary
esta otra forma de transferencia es la adecuada cuando se ha de transmitir otro tipos de archivos que no sean ascii, como archivos de imagen, comprimidos, audio, etc.
Comandos mas frecuentes
Se ha de tener en cuenta la forma de utilizar el cliente de ftp, si este es el incluido normalmente en el sistema operativo, bien sea linux o windows, o es un cliente grafico como filezilla o cuteftp.
la sintaxis para ejecutar el cliente, por ejemplo en windows 7 seria la siguiente:
ftp
los comandos mas frecuentes son los siguientes:
open servidor
Inicia una conexión con el “servidor” especificado.
close, disconnect
Finaliza la conexión con el servidor sin cerrar el programa cliente.
bye, quit
Finaliza la conexión con el servidor cerrando el programa cliente.
cd directorio
Cambia de directorio de trabajo en el servidor.
delete archivo
Borra el archivo especificado en el servidor.
mdelete patrón
Borra archivos en el servidor según el “patrón” especificado.
dir, ls
Muestra el listado de directorio en el que nos encontramos.
get archivo
Obtiene o transfiere un archivo desde el servidor al cliente.
mget archivos
Obtener o transferir múltiples archivos desde el servidor al cliente.
hash
Activa la impresión de caracteres # , mientras se realiza la transmisión de archivos, como si de una barra de progreso se tratara.
lcd directorio
Cambia el directorio de trabajo local.
prompt
Activa/Desactiva la confirmación por parte del usuario la ejecución de comandos.
put archivo
Enviar “archivo” al directorio de trabajo del servidor.
mput archivos
Enviar múltiples “archivos” al servidor.
pwd
Mostrar el directorio activo del servidor.
rename
Cambiar el nombre a un archivo del servidor.
rmdir directorio
Elimina el “directorio” especificado en el servidor, siempre y cuando este vacio.
status
Muestra el estado actual de la conexión.
bin, binary
Activa el modo de transferencia binario.
ascii
Activa el modo de transferencia ascii.
help
Mostrar la lista de ordenes o comandos disponibles.
append archivo
Continua la descarga del “archivo” en caso de un corte en la transferencia del mismo.
send archivo
Enviar el archivo especificado al directorio activo del servidor.
user
Permite cambiar el nombre de usuario y contraseña sin abandonar la sesión.
Ejemplos de obtención de cadenas identificativas con el comando ftp:
$ ftp ftp.servidor.com Conectado a servidor.com 220 ProFTPD 1.3.1 Server (ProFTPD) [86.45.123.43] Usuario (servidor.com:(none)):
De esta forma se puede obtener las cadenas que proporciona el servidor de ftp, y si no están bien configuradas es posible saber la versión del servidor que se esta utilizando y poder consultar si existe algún tipo de vulnerabilidad sobre el mismo.


