[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]

[Hilos de Discusión] [Fecha] [Tema] [Autor]

Re: [Sop.Tec.LinuxPPP] Fw: Puertos abiertos



>
> Subject: Puertos abiertos
>
> Tengo algunos puertos abiertos pero no sé ni de qué programa.
> Digamos que son el 5, 7, 2001, 4001, 6001 y otros.
> Cuando les doy telnet en algunos sale el "login:" (no es el 23)
> en otros salen un chorro de garabatos.  En uno me salió la hora.  En uno más
> me salieron unas frases célebres y en otros incluso no me sale nada.
> La pregunta son: Cómo sé de qué programa son? Cómo los cierro? Cómo puedo
> "autoexplotar" los puertos para probar la seguridad de los mismos?
>

Para cerrar los servicios edita /etc/inetd.conf y comenta (con un # lo que no
utilices, te recomiendo cerrar
echo, chargen y finger si tu máquina no es un servidor), algunos otros
servicios como sendmail los activas/desactivas desde el programa setup.

De todas formas, te recomiendo que ejecutes un  "man  hosts.allow"  y  "man
hosts.deny"  (los archivos están en /etc), aquí poner reglas que
permitan/bloqueen a los distintos servicios; por ejemplo, puedes permitir el
acceso a ftp sólo desde ciertas direcciones o negarlo a ciertas direcciones.

Baja la utilería nmap (creo que venía un rpm en la distribución de PPP) y
ejecuta "nmap localhost", te hace un escaneo de puertos y puedes ver los que
están abiertos (también lo puedes hacer con "netstat -a" localmente). Este tipo
de herramientas son utilizadas frecuentemente por los hackers (e intentos
de...) para descubrir los puertos que una máquina tiene abiertos.  En general,
la mecánica de un ataque va así:

1. Te hacen un escaneo de puertos para ver qué servicios tienes (por lo general
te tocan todos los puertos a ver qué tienes abierto, algo así como fuerza
bruta, solo los atacantes con más experiencia lo hacen más "profesionalmente")

2. Intentan entrar a cada servicio (si es TCP utilizan típicamente telnet para
ver qué responde el servicio o utilerías tipo Netcat, por ejemplo, si tuvieras
SMTP, haces un telnet al puerto 25 y te aparece, generalmente un mensaje con la
versión de Sendmail)

3. En base a la información obtenida, el atacante se va a buscar en internet
vulnerabilidades conocidas para el servicio, versión y plataforma que se hayan
detectado en los pasos anteriores.

Listo, ese es el gran secreto, claro que hay ataques muchísimo más complicados,
pero teniendo cuidado de cerrar los servicios que no utilizas y vigilando de
cerca los que tienes (por ejemplo, poniendo un sniffer a manera de IDS ->
Intrusion Detection System, para linux te recomiendo SNORT lo encuentras en
varios sitios de la red) yo diría que detienes al 95% de los atacantes (no me
gusta usar el término hacker, se presta mucho a confusiones y y largas
discusiones filosóficas), la mayoría de los cuales son lo que se conoce como
"script kiddies" (gente que se baja programitas de la red y los prueba sin
saber cómo funcionan o siquiera qué hacen, es el tipo de personas que utilizan
NetBus o un Back Orifice para impresionara sus amigos sin saber que es lo más
fácil de rastrear porque no saben que para conectarse con un servidor de éstas
herramientas necesitan establecer una conexión punto a punto , vamos, la
mayoría de ellos ni siquiera ha de saber lo que es eso).

Es importante que cierres los puertos que no vas a usar, por ejemplo, sería
peligroso que alguien pudiera accesar a tu máquina remotamente por el puerto
6000, 60001, etc... este puerto es el que utiliza X, de poder hacerlo, alguien
podría consultar el nombre de las ventanas que tienes abiertas en tu terminal
gráfica (p.e. xterm, netscape, etc...), y en el peor de los casos (si
estuvieran mal configurados los permisos de X) se podrían capturar las
sesiones.

Hay muchos Unix mal configurados por ahí a los cuales puedes accesar la
terminal gráfica, el servicio de impresión, etc..., en algunos casos podría
requerirse que se puedan accesar remotamente estos servicios, pero para
máquinas de uso personal esto es muy raro, si no lo necesitas no  es
recomendable configurarlo de esa manera (hasta donde sé, RedHat y
distribuciones derivadas como PPP contienen los permisos adecuados por
default).

Por lo tanto, regla de oro para seguridad es: "cierra todo loque no vayas a
ocupar"

La explicación es simple, en seguridad nosotros manejamos una fórmula que dice:

    RIESGO = probabilidad de que una AMENAZA aproveche una VULNERABILIDAD.

Las amenazas no las puedes eliminar por completo (p.e. siempre van a existir
personas con malas intenciones) pero puedes reducir las vulnerabilidades; una
vulnerabilidad es una falla, una mala implementación, una carencia, etc... que
en algún momento pueda aprovecharse para afectar algún requerimiento de
seguridad. La mayoría de los autores manejan 3 requerimientos de seguridad
(algunos 4) que se aplican a funciones y datos de un sistema:
Integridad - Que funciones/datos no sean alteradas fuera de las
especificaciones del sistema
Privacidad - Que funciones/datos sean usados/accesados únicamente por quien
está permitido, cuando está permitido y donde está permitido.
Disponibilidad - Que las funciones/datos sean accesibles a quien lo requiere de
acuerdo a las definiciones de operación del sistema (Las noticias sobre los
recientes ataques de negación de servicio a CNN y Yahoo atacan este
requerimiento, es el tipo de ataque más frecuente)

El hecho de tener más puertas abiertas (aunque pongas un guardia en cada una)
siempre implica que el riesgo es mayor.

En fin, creo que hace varios párrafos contesté tu pregunta (o medio contesté) y
ya voy a aburrir a todos con esto de la seguridad o corro el riesgo de caer en
un off-topic. Espero que te sirva...

-----------------------
Omar Herrera
Consultor en Seguridad Informática
INSYS (www.insys-corp.com.mx)
omarh en insys-corp com mx




---------------------------------------------------------------------
Lista de soporte de LinuxPPP
 Reglas de la lista en http://pepe.net.mx/reglas.html



[Hilos de Discusión] [Fecha] [Tema] [Autor]