Cómo atravesar el firewall
Hoy en día, el uso de LAN para acceder a Internet se ha convertido en la principal forma de acceso a Internet para empresas, universidades y agencias gubernamentales. Este método no solo guarda las direcciones IP, sino que también facilita la gestión y el control. Por lo general, el administrador de la red configurará varios firewalls a la salida de la LAN, que por un lado garantizan la seguridad dentro de la LAN y, por otro lado, pueden controlar los derechos de acceso de las personas dentro de la LAN. Sin embargo, esto también limita los permisos del usuario y dificulta el contacto con el mundo exterior. Por ejemplo, para los oficinistas que trabajan en la empresa y los estudiantes pobres en la red de área local, lo más odiado es que el odioso Jefe cierra la mayoría de los puertos para evitar que todos sean holgazanes y solo permite el uso de servicios limitados, como WWW. y POP3, SMTP, etc. De esta forma, no podrás utilizar muchas herramientas, como QQ, Cterm, FTP, etc., y te resultará muy inconveniente comunicarte con el mundo exterior. Tienes una chica pero no puedes chatear. tienes un BBS pero no puedes completarlo, y tienes canciones maravillosas pero no puedes descargarlas. Este es el dolor más grande del mundo. Nada más que esto... ¿qué debo hacer? ¡No te preocupes, no te preocupes, este artículo te enseñará algunos trucos para penetrar fácilmente el firewall y utilizar varias herramientas a tu gusto! Bien, echemos un vistazo a la explicación principal y la explicación práctica de estos movimientos.
Explicación de la clasificación:
Protocolo
El protocolo es un conjunto de reglas y convenciones para enviar información en la red. Estas reglas controlan el contenido, el formato, el tiempo, la secuencia y los errores de los mensajes intercambiados entre dispositivos de red. En términos sencillos, son el lenguaje de comunicación de diferentes programas de red. Nuestro QQ común usa el protocolo UDP, ICQ usa el protocolo TCP y los programas de correo electrónico usan los protocolos POP3 y SMTP. Entre los protocolos comunes, SOCKS es un protocolo relativamente complejo.
Puerto
Puerto (Puerto) puede considerarse como la salida de comunicación entre el ordenador y el mundo exterior. Entre ellos, los puertos en el campo del hardware también se denominan interfaces, como puertos USB, puertos serie, etc. en el campo del software generalmente se refieren a puertos de protocolo de comunicación en la red para servicios de conexión y servicios sin conexión. estructura que incluye algunos datos y buffers de E/S (entrada y salida básica). Los números de puerto son en realidad algo similares a los descriptores de archivos y también son un recurso del sistema, excepto que su método de asignación tiene un patrón fijo. Existen varios métodos de asignación básicos: el primero es la asignación global, que es un método de asignación centralizada. Una agencia central con autoridad reconocida realiza una asignación unificada según las necesidades del usuario y publica los resultados al público. También se asignan diferentes asignaciones según diferentes protocolos. Número de puerto, lo que hace que muchos servicios se fijen en el puerto de un determinado protocolo. Por ejemplo, el puerto TCP 21 está ocupado por el servicio FTP, también conocido como conexión dinámica, es decir, cuando el proceso. necesita acceder al servicio de la capa de transporte, el sistema operativo local xx crea una aplicación y el sistema operativo xx devuelve el número de puerto único local. Luego, el proceso se conecta al puerto mediante llamadas al sistema apropiadas.
Los puertos se pueden dividir en tres categorías según los números de puerto:
1. Puertos conocidos (WellsKnownsPorts): de 0 a 1023, están estrechamente vinculados a algunos servicios. Por lo general, la comunicación en estos puertos indica claramente el protocolo de un determinado servicio. Por ejemplo, el puerto 80 es en realidad comunicación HTTP.
2. Puertos registrados (RegisteredaPorts): Del 1024 al 49151, están vagamente vinculados a algunos servicios. Esto significa que hay muchos servicios vinculados a estos puertos y estos puertos también se utilizan para muchos otros propósitos. Por ejemplo, muchos sistemas manejan puertos dinámicos que comienzan alrededor de 1024.
3. Puertos dinámicos y "/" o privados (Dynamic3y/o3Private3Ports): de 49152 a 65535. En teoría, estos puertos no deberían asignarse a servicios; en la práctica, a las máquinas generalmente se les asignan puertos dinámicos a partir de 1024, pero hay excepciones: los puertos RPC de SUN comienzan en 32768.
Servidor proxy
Un servidor proxy (Proxy) es una estación de transferencia de información de la red, como por ejemplo un servidor proxy HTTP. Cuando utilizamos un navegador web para vincularnos directamente a otros sitios de Internet y obtener información de la red, necesitamos enviar una señal de Solicitud para obtener una respuesta y luego la otra parte devuelve la información.
El servidor proxy es un servidor entre el navegador y el servidor web. Con él, el navegador no va directamente al servidor web para recuperar la página web, sino que envía una solicitud al servidor proxy. La señal de solicitud se enviará al proxy. primero el servidor proxy. El servidor proxy recupera la información que necesita el navegador y se la envía. Además, la mayoría de los servidores proxy tienen una función de almacenamiento en búfer, al igual que un gran caché. Almacena continuamente los paquetes de datos recién obtenidos en su memoria local. Si los datos solicitados por el navegador ya existen en su memoria local y son los más recientes, entonces no existe. Vuelve a buscar los datos del servidor web, pero transfiere directamente los datos de la memoria al navegador del usuario, lo que puede mejorar significativamente la velocidad y la eficiencia de la navegación. Además, existe un servidor proxy SOCKS, cuyos principios son similares.
Firewall
Un firewall es un sistema (o un grupo de sistemas) que puede mejorar la seguridad de la red interna de una organizaciónxx. El sistema de firewall determina a qué servicios internos puede acceder el mundo exterior, quién desde el mundo exterior puede acceder a servicios internos específicos y a qué recursos externos puede acceder el personal interno. Para que un firewall sea efectivo, toda la información entrante y saliente debe pasar a través del firewall y ser inspeccionada. El cortafuegos debe permitir el paso únicamente de datos autorizados y el propio cortafuegos debe ser impermeable a la penetración. Desafortunadamente, una vez que un atacante vulnera o elude el sistema de firewall, no puede proporcionar ninguna protección.
Los métodos de implementación del firewall incluyen "enrutador de filtrado de paquetes" y "puerta de enlace de capa de aplicación". Los enrutadores de filtrado de paquetes pueden filtrar protocolos (ICMP, UDP, TCP, etc.) y solo permiten el paso de protocolos específicos. La puerta de enlace de la capa de aplicación es lo que a menudo llamamos un servidor proxy, que puede proporcionar políticas de seguridad más estrictas que los enrutadores, y generalmente tenemos varias restricciones Se implementa en la capa de aplicación.
El primer paso: proxy SOCKS
En términos generales, para evitar que los empleados internos sean holgazanes, el jefe a menudo cierra los puertos de protocolo de las herramientas de entretenimiento comunes, como el puerto UDP4000. utilizado por QQ, pero a menudo el puerto SOCKS 1080 no se cierra. De esta manera, si lo que desea utilizar es compatible con el proxy SOCKS, será fácil utilizar el proxy directamente.
SOCKS es una puerta de enlace a nivel de circuito desarrollada por David Koblas en 1990. Desde entonces, ha sido un estándar abierto en Internet9RFC. SOCKS se ejecuta en la capa TCP de la pila de protocolos y su puerto común es 1080. A diferencia de Winsock, SOCKS no requiere que las aplicaciones sigan una plataforma de sistema operativo específica, como Windows como Winsock. El proxy SOCKS es diferente del proxy de la capa de aplicación y del proxy de la capa HTTP. Simplemente transmite paquetes de datos sin preocuparse por el protocolo de la aplicación (como las solicitudes FTP, HTTP y NNTP), por lo que el servidor proxy SOCKS es mucho más rápido que el servidor proxy de la capa de aplicación. , es precisamente porque el servidor proxy SOCKS tiene tal función que podemos conectarnos a Internet a través de él. Los proxies SOCKS de uso común incluyen SOCKS4 y SOCKS5. El proxy SOCKS4 solo admite el protocolo TCP y el proxy SOCKS5 admite los protocolos TCP y UDP. También admite varios mecanismos de autenticación, resolución de nombres de dominio del lado del servidor, etc. En pocas palabras, se pueden usar SOCKS4 y SOCKS5, pero lo contrario no es posible. Por ejemplo, QQ solo puede usar el proxy SOCKS5, mientras que FTP puede usar SOCKS4 y SOCKS5, porque el mecanismo de transmisión de datos de QQ es UDP. mientras que el mecanismo de transmisión de datos utilizado por FTP es TCP.
El protocolo SOCKS es un protocolo proxy casi universal. Aunque no puede comprender la estructura interna de los datos que reenvía, puede reenviar fielmente los paquetes de datos y completar las funciones que el protocolo originalmente debía realizar. La diferencia entre este y su proxy HTTP común es que el proxy HTTP se realiza a través del protocolo HTTP. El software del servidor proxy HTTP comprende la estructura interna del paquete de comunicación y realiza algunas modificaciones y conversiones en la comunicación durante el proceso de reenvío. Veamos cómo uso el proxy SOCKS para penetrar el firewall.
Primero echemos un vistazo a cómo usamos el proxy SOCKS en QQ.
Primero, haga clic derecho en el ícono en el área de notificación de la barra de tareas de QQ, luego seleccione Parámetros del sistema, luego seleccione Configuración de red, seleccione Usar "Servidor proxy SOCKS5", complete la dirección del proxy SOCKS y el número de puerto que está utilizando (Figura 1 ), y puede hacer clic en Probar para ver si este proxy SOCKS5 está disponible. Después de la confirmación, su QQ está en línea a través del proxy SOCKS5 61.136.132.138:1080. Todos sus paquetes de datos ahora se envían a este servidor proxy y luego se reenvían, para que pueda omitir el puerto UDP4000 y pasar a través de él. También podemos usar otro QQ que pueda ver la IP para ver la IP donde se encuentra actualmente su QQ (como se muestra en la Figura 2. La IP mostrada es 61.136.132.138). Esto tiene una función adicional, es decir, oculta tu IP real, por lo que ya no necesitas ser invisible cuando chateas con extraños. La IP que ve es también la dirección IP del servidor proxy SOCKS.
Echemos un vistazo a cómo penetrar el firewall y utilizar la herramienta FTP AbsoluteFTP (Figura 3) para descargar cosas de Internet. AbsoluteFTP es una poderosa herramienta de descarga FTP que admite proxies SOCKS4 y SOCKS5 y tiene una interfaz china completa. Si su red de área local ha bloqueado el puerto 21 y no puede usar descargas FTP, puede usar este software para agregar un proxy SOCKS para evitar el firewall. Implementar la función FTP. FTP puede usar el proxy SOCKS4 o SOCKS5, a diferencia de QQ, que solo puede usar el proxy SOCKS5.
En la configuración de opciones de AbsoluteFTP, seleccione el firewall en la configuración global (Figura 4), luego puede elegir si desea usar el proxy SOCKS4 o SOCKS5, si se requiere autenticación de identidad, etc., y luego complete en el servidor proxy SOCKS y el puerto. Se requiere el nombre de usuario y la contraseña para la autenticación para que se pueda utilizar FTP a través del firewall.
El segundo paso: Socks2HTTP combinado con SocksCap32
En el primer paso, si la administración de red solo abre el puerto 80, cierre los puertos comúnmente utilizados por SOCKS o el software que desee. El uso del proxy SOCKS no lo admite, como Foxmail, o no puede encontrar un proxy SOCKS disponible (la cantidad de servidores proxy SOCKS disponibles en Internet es mucho menor que la cantidad de servidores proxy HTTP disponibles. En este momento, el primer truco). no funciona ¿Qué debo hacer? Consulte el segundo truco: Socks2HTTP combinado con SocksCap32. El resultado de usar los dos juntos es que siempre que tenga un proxy HTTP disponible, puede usar una variedad de software para evitar directamente el firewall independientemente de si es compatible con el proxy SOCKS. Lo vemos en dos situaciones.
1. El firewall ha cerrado el puerto SOCKS, pero el software que desea utilizar admite el proxy SOCKS.
En este caso, puede utilizar Socks2HTTP directamente. Desarrollado por Socks2HTTP(),?..P lo resolverá. HTTPfProxy está disponible en línea Siempre que haya un proxy HTTP, habrá un proxy SOCKS. Porque Socks2HTTP simula un proxy HTTP en un proxy SOCKS. Si coopera con el Socks2HTTP que acabamos de mencionar, puede penetrar el firewall y usar software que no tiene una interfaz SOCKS.
Ahora existe una versión china de SocksCap en Internet (/softview.asp?... consola de ksCap.
Para una mejor comprensión, dividí este proceso en varios pasos:
Paso uno: Primero configure su Socks2HTTP como en la primera parte, complete el proxy HTTP disponible, inícielo y luego tendrá un servidor proxy SOCKS local 127.0.0.1, el puerto es 1080, ahora usted Puede usar este proxy SOCKS para configurar su SocksCap.
Paso 2: ejecute SocksCap si es la primera vez, el sistema le preguntará automáticamente si desea ingresar a la interfaz de configuración. Puede seleccionar Archivo → Configuración en SocksCap para ingresar a la interfaz de configuración, como se muestra en la Figura 10.
Paso 3: en la interfaz de configuración de SocksCap, complete el proxy SOCKS local 127.0.0.1 simulado por Socks2HTTP, el puerto es 1080 y seleccione "SOCKS versión 5 (5)" → "Por" en el "Protocolo" "Determinar todos los nombres de forma remota", el resto, como la configuración de la conexión directa, ¿es para algún proxy OCKS interno? La sección de registro puede configurar si se generan registros. La función de registro puede ayudar a diagnosticar la causa del error de conexión. Podemos usar directamente la configuración predeterminada para otras partes aquí.
Paso 4: Crear un "elemento de identificación de la aplicación". El elemento de identificación de la aplicación es un acceso directo creado en SocksCap. Este acceso directo apunta a la herramienta que desea utilizar. Iniciar esta herramienta en SocksCap equivale a "dar" la capacidad de interfaz SOCKS de esta herramienta. Hay dos formas de crear este acceso directo:
1. Utilice el mouse para arrastrar la tecla de acceso directo Cterm en el escritorio a un espacio en blanco en SocksCap. Suelte el mouse y aparecerá un menú. Elemento de identificación" "El sistema creará automáticamente los elementos de identificación (ver Figura 11), simplemente haga clic en Aceptar.
2. También puede hacer clic en "Nuevo", completar el contenido correspondiente en el cuadro de diálogo emergente y hacer clic en Aceptar.
Paso 5: Ejecuta el programa. Haga doble clic en el acceso directo de Cterm recién creado en la consola de SocksCap para usarlo directamente. Por ejemplo, quiero conectarme a bbs.mit.edu (Figura 12). y el administrador de la red bloqueó Telnet. No puedo conectarme a este BBS en el puerto 23. Ahora, a través de Socks2HTTP y SocksCap, no solo puedo ir al extranjero, sino también usar el servicio Telnet para conectarme al BBS del MIT, ¡penetrante en el firewall! También se pueden utilizar otras herramientas, como FTP, Outlook, etc. Lo que vale la pena mencionar es que puede usar Outlook para recibir correos electrónicos de Hotmail. Si no existe tal método, aquellos de nosotros, los pobres en la red educativa (sin permiso para ir al extranjero), solo podemos usar el proxy HTTP para acceder. el sitio web de Hotmail. Recibir correo en modo WWW. Sería fantástico tener esto ahora. Equivale a equipar Outlook con una interfaz SOCKS y puede recibir correo directamente en Outlook.
El tercer truco: HTTPTunel
Los dos trucos anteriores pueden ser suficientes, pero el requisito previo para utilizar los dos trucos anteriores es que debe tener un proxy HTTP disponible y enviarlo desde usted. Todos los paquetes de datos se empaquetan y luego pasan por el proxy y luego llegan a su destino. Esto provocará dos problemas:
Primero: problema de velocidad, por ejemplo, los datos enviados desde A pasan por el proxy. B llega a C. Si no hay un firewall, los datos se envían directamente de A a C. Ahora, para evitar el firewall, los datos enviados desde A primero deben encapsularse para que puedan evitar el firewall y luego enviarse al agente B. y luego B Los datos se desbloquean y luego se pasan a C. Los datos devueltos por C también pasan por el mismo proceso. De esta manera, independientemente del tiempo que lleva encapsular y desencapsular los datos, simplemente atravesar un círculo tan grande a través de C definitivamente reducirá la velocidad, por lo que, en términos generales, definitivamente no es tan rápido como una conexión directa.
Segundo: La dependencia excesiva de los servidores proxy genera problemas de estabilidad. Los servidores proxy que se encuentran en Internet definitivamente no son muy estables. En muchos casos, es probable que se produzcan pérdidas de paquetes e interrupciones del servicio. De hecho, no tenemos que usar un proxy para transferir. Por ejemplo, tu amigo abre FTP en el dormitorio y luego pone una película maravillosa. Quieres verla, pero el administrador de red de tu LAN. Cerré el puerto FTP 21, así que no puedes. La ley no funciona, ¿qué debo hacer? Utilice HTTPTunnel. La palabra inglesa Tunnel significa túnel. Por lo general, HTTPTunnel se denomina túnel secreto HTTP. Su principio es disfrazar datos en forma de datos HTTP para pasar a través del firewall. Conexiones de datos virtuales para penetrar firewalls. En pocas palabras, significa configurar un programa de conversión en ambos lados del firewall para encapsular los paquetes de datos originales que deben enviarse o recibirse en un formato de solicitud HTTP para engañar al firewall, de modo que no requiera otros servidores proxy y penetra directamente el firewall.
HTTPTunnel solo tenía una versión Unix al principio, pero ahora alguien lo ha portado a la plataforma Windows. Incluye dos programas, htc y hts, donde htc es el cliente y echémosle un vistazo. Por ejemplo, la IP de la máquina con FTP habilitado es 192.168.1.231 y la IP de mi máquina local es 192.168.1.226. Ahora no puedo conectarme a FTP localmente debido al firewall. El proceso de uso de HTTPTunnel es el siguiente:
Paso 1: Iniciar el cliente HTTPTunnel en mi máquina (192.168.1.226). Inicie el modo de línea de comando de MS-DOS y luego ejecute el comando como se muestra en la Figura 13, donde htc es el programa cliente y el parámetro -f indica que todos los datos de 192.168.1.231:80 se reenviarán al puerto 8888. de la máquina local. Este puerto se puede seleccionar a voluntad, siempre que la máquina no esté ocupada.
Luego usamos Netstat para observar los puertos actualmente abiertos en esta máquina y encontramos que el puerto 8888 ya está escuchando (Figura 14).
Paso 2: inicie el lado del servidor de HTTPTunnel en la máquina de la otra parte y ejecute el comando "htsJ-fJlocalhost:21J80". Este comando significa pasar todos los datos enviados por el puerto 21 de la máquina. 80 Reenvíe el puerto y abra el puerto 80 como puerto de escucha. Luego use Neststat para mirar su máquina. Encontrará que el puerto 80 también está escuchando ahora (Figura 15).
Paso 3: Utilice FTP en mi máquina para conectarme al puerto 8888 de esta máquina (Imagen 16). Ahora que me he conectado a la máquina de la otra parte, veo que no hay ninguna película (Imagen 17). Jeje, date prisa. ¡Haz clic para descargar!
Pero ¿por qué la gente ve la dirección 127.0.0.1 en lugar de 192.168.1.231? Debido a que me estoy conectando al puerto 8888 de esta máquina, el firewall definitivamente no responderá porque no he enviado el paquete. Por supuesto, el firewall de la LAN no lo sabe. Ahora, después de conectarse al puerto 8888 de la máquina, los paquetes de datos FTP, ya sean información de control o información de datos, son disfrazados por HTC como paquetes de datos HTTP y luego enviados allí. A los ojos del firewall, todos estos son datos normales. , lo que equivale a engañar al firewall.
Cabe señalar que el uso de este método requiere la cooperación de otras máquinas, lo que significa iniciar un hts en su máquina y redirigir los servicios que proporciona, como FTP, etc., a lo permitido por el firewall en el puerto 80, para que pueda evitar el firewall con éxito. Algunas personas definitivamente preguntarán, si la máquina de la otra parte tiene un servicio WWW, es decir, su puerto 80 está escuchando, ¿entrará en conflicto? La ventaja de HTTPTunnel es que incluso si el puerto 80 estaba abierto en su máquina antes, no habrá problemas si lo usa ahora. El acceso web normal sigue la ruta anterior y el servicio de túnel redirigido tampoco tiene obstáculos. Además, algunas personas utilizaron el famoso sistema de detección de intrusiones Snort para detectar este método, pero no lo encontraron. El xx oculto es muy fuerte.
Pero hay un último punto que es necesario recordar: todos estos trucos en realidad están aprovechando las vulnerabilidades en la configuración del firewall y la gestión de seguridad del sistema. Si te encuentras con un administrador de red obstinado, acechando en la puerta de enlace. Durante todo el día, veamos si hay alguna laguna que no se haya solucionado, o aún más sorprendente, use TCPDump para capturar paquetes y analizarlos uno por uno. Entonces solo podemos rendirnos.