Programa de servicio de ftp investigación de factor inseguro

  
                              

FTP (File Tranfer Protocol) es un protocolo muy antiguo. Se ha utilizado desde Unix. FTP no solo puede proporcionar una función de descarga simultánea para múltiples usuarios, sino que también permite a los usuarios cargar archivos. En el desarrollo continuo, también puede usar ftp para ejecutar comandos de forma remota. Debido a que FTP generalmente requiere cuentas y contraseñas, y se pueden proporcionar diferentes permisos para diferentes cuentas. Debido a tantas funciones, ha sido bastante popular. Sin embargo, hablaré sobre los problemas de seguridad que probablemente ocurran con los servicios FTP.

Las conexiones FTP generalmente tienen dos conexiones, una es el cliente y los comandos de transferencia del servidor, y la otra es la conexión de transferencia de datos. El programa de servicio FTP generalmente admite dos modos diferentes, uno es el modo Puerto y el otro es el modo Pasivo (Modo Pasv). Permítanme hablar primero sobre la diferencia entre los dos modos diferentes de conexión.


Primero, suponga que el cliente es C, el servidor es S.

Modo de puerto:

Cuando el cliente C se conecta al servidor S, usa Modo puerto, luego el cliente C enviará un comando para informarle al servidor S (el cliente C abre un puerto N localmente esperando que ingrese la conexión de datos), cuando el servidor S recibe el comando Puerto, enviará al cliente El puerto N que está abierto está conectado y se genera esta conexión de datos.

Modo Pasv:
Cuando el cliente C se conecta al servidor S, el servidor S enviará un mensaje al cliente C. Esta información es (el servidor S abre un puerto M localmente, usted Ahora conécteme.) Cuando el cliente C recibe este mensaje, puede conectarse al puerto M del servidor S. Una vez que la conexión se ha realizado correctamente, también se establece la conexión de datos.

De la explicación anterior, debería poder ver que la principal diferencia entre los dos modos es la diferencia en el establecimiento de la conexión de datos. Para el modo Puerto, el cliente C abre un puerto y otro servidor S para conectarse. Conexión de datos, mientras que el modo Pasv es que el servidor S abre un puerto y espera a que el cliente C establezca una conexión de datos.

Los dos modos parecen estar bien, pero todos ocultan problemas de seguridad.

Para el modo Puerto, este modo se usa principalmente porque el servidor tiene un servidor de seguridad, no puede usar Pasv para abrir el puerto en el servidor para permitir que el cliente se conecte y está obligado a usarlo, sino porque la conexión la realiza el servidor. La conexión en sí es inherentemente un problema de seguridad, ya que si la conexión es secuestrada, ya que la conexión está conectada por el propio servidor, el firewall no tendrá ninguna acción para manejar la conexión.

Para el modo Pasv, parece ser mucho más seguro que el modo Port, pero si lo piensa seriamente, todavía encontrará sus propios problemas. Dado que el servidor abrirá un puerto y otros clientes para conectarse, pero si el puerto abierto no detecta si la IP conectada es la IP del cliente, entonces surgen problemas de seguridad. Debido a que hay muchos puertos de datos abiertos del servidor FTP y otras conexiones de clientes son aleatorias, pero estarán dentro de un cierto rango, por ejemplo, entre 20000-21000. Si el servidor FTP no detecta si la IP conectada ya es un usuario de inicio de sesión legítimo cuando recibe la conexión del puerto de datos, entonces otros usuarios que no hayan iniciado sesión tendrán una buena oportunidad de escribir el secuestro del programa. A continuación se muestra un ejemplo:

El servidor S recibe la conexión de comando C (IP = 12.12.12.12) del cliente utilizando el modo Pasv, y el servidor S abre el puerto 20000 para esperar la conexión de datos. En ese momento, un pirata informático (IP = 11.11.11.11) exploró el puerto de 20,000 a 20100 del servidor S y encontró que el puerto de 20,000 se abrió e inmediatamente se conectó al puerto de 20000 del servidor S. En este caso, si el servidor S no detecta si la IP 11.11.11.11 es la IP del usuario que ha iniciado sesión legalmente, la conexión de datos C del cliente real es secuestrada, si el cliente C la envía al servidor. El comando de S es descargar un archivo, luego ese archivo solo se enviará al pirata informático. En este caso, el hacker puede escanear y secuestrar aleatoriamente a diferentes conexiones, o puede conectarse a esos puertos al mismo tiempo, luego la conexión de usuarios legítimos se secuestrará mucho, después de que el secuestro hará lo que el pirata informático hará, luego La habilidad del hacker y lo que él quiere hacer.
Solución

:

Para el modo Puerto, ya que es un problema con el propio FTP, no hay una buena manera de resolverlo. O si puede, simplemente permita el modo Pasv y no permita el modo Puerto.

Para el modo Pasv, siempre que la IP se detecte como una solicitud de un usuario legítimo al recibir una conexión de datos, se puede evitar el problema de la conexión que se produce el secuestro.

Las conexiones de secuestro anteriores pertenecen al " hacker " más avanzado, solo tienen la oportunidad de lograrlo, ya que los diferentes programas de servicio de FTP son diferentes y, en general, primero debe investigar el servicio de FTP. Solo es posible implementar el programa y luego escribir el programa. A continuación se habla del problema de que el usuario promedio puede invadir el sistema a través de FTP escribiendo el programa de servicio de FTP para su seguridad.

Este problema suele ser muy común, y generalmente es una restricción de permisos para el directorio al que los usuarios pueden saltar después de iniciar sesión en FTP.

Una gran cantidad de programas FTP usados ​​(el servicio FTP más básico, solo proporciona carga, descarga, incluso el nombre de usuario y la contraseña no necesitan ese tipo), como anonymouse ftp (aftp) esa clase, no limitará el inicio de sesión El directorio al que el usuario puede saltar, es decir, el usuario que inicia sesión puede ver los archivos de diferentes directorios en el sistema, descargar archivos de diferentes directorios o cargar archivos en cualquier directorio, y puede descargar cualquier archivo o cargar cualquier archivo en cualquier directorio. Qué grave es el problema, no necesito decirlo.

Algunos programas FTP, aunque proporcionan un nombre de usuario y contraseña, pero no hay restricciones en el acceso del usuario al directorio, xfocus produjo, xftpd es un buen ejemplo, después del inicio de sesión del usuario, el mismo puede estar arriba Como se dijo, el usuario puede descargar cualquier archivo del sistema o cargar cualquier archivo a cualquier directorio.
Algunos FTP no son lo suficientemente completos para limitar el acceso al directorio, de modo que el usuario que inicia sesión puede usar algunos caracteres especiales para acceder al directorio de acceso restringido. Un buen ejemplo es la versión antigua de slimftpd. Esta situación se conoce comúnmente como "Vulnerabilidad de viaje de directorio" y muchas versiones anteriores del servidor FTP compartido han tenido estos problemas.

Si desea configurar un servidor FTP, el consejo que puedo dar es elegir un programa FTP más estable y seguro (por supuesto, puede considerar escribirlo usted mismo), y luego, antes de ponerlo en uso, El problema de seguridad lo verifica usted mismo. Si lo escribe usted mismo, puede lanzar algunas versiones gratuitas (no con todas las funciones) para probar al usuario. Después de la prueba no hay problema, póngalo en uso.

Lo anterior se trata de ser cuidadoso cuando investiga el protocolo FTP con sus amigos cuando desarrolla el programa de servicio FTP. Algo que está mal durante la prueba también es inevitable. Si ve algo incorrecto, puede Sigue el post.

Copyright © Conocimiento de Windows All Rights Reserved