Tabla de contenido:
- Paso 1: ¿Cómo empezamos?
- Paso 2: Comencemos
- Paso 3: crear una conexión
- Paso 4: enviemos algo de contenido
- Paso 5: Tengamos una conexión abierta
- Paso 6: Conclusión
Video: Netcat en Python: 6 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
¿Qué es netcat? La página del manual de netcat dice lo siguiente: "la utilidad nc (o netcat) se usa para casi cualquier cosa que involucre sockets de dominio TCP, UDP o UNIX. Puede abrir conexiones TCP, enviar paquetes UDP, escuchar en Puertos TCP y UDP, escanean puertos y manejan tanto IPv4 como IPv6. A diferencia de telnet (1), los scripts de nc son agradables y separan los mensajes de error en errores estándar en lugar de enviarlos a la salida estándar, como hace telnet (1) con algunos"
En esencia, netcat le permite conectarse a otros servidores utilizando el protocolo TCP o UDP. TCP significa Protocolo de control de transmisión y está orientado a la conexión. UDP son las siglas de Universal Datagram Protocol y no tiene conexión. TCP se usa comúnmente para aplicaciones de Internet, mientras que UDP se usa para transmisión de medios o VPN.
Paso 1: ¿Cómo empezamos?
Arriba es cómo se llama netcat. Puede ver que hay dos argumentos al final llamados "destino" y "puerto". El destino se refiere a un nombre de host o dirección IP del servidor al que intentamos conectarnos, mientras que el puerto se refiere al puerto del servidor al que intentamos conectarnos.
Paso 2: Comencemos
Arriba hay un código Python inicial. Como puede ver, queremos procesar los argumentos del programa de manera similar a como lo hace la utilidad real. El nombre de host será el primer argumento después del nombre del ejecutable, mientras que el puerto será el segundo argumento después del nombre del ejecutable en la línea de comandos.
Paso 3: crear una conexión
Creemos una función netcat que podamos usar. Lo que estamos haciendo básicamente aquí es crear un socket y conectarnos al servidor usando los parámetros dados. Para el comando netcat, los parámetros actuales son el nombre de host y el puerto del servidor al que estamos intentando conectarnos. El socket contiene los parámetros "socket. AF_INET" y "socket. SOCK_STREAM" porque usamos por defecto una conexión TCP para este tutorial.
Paso 4: enviemos algo de contenido
Ampliamos nuestra función netcat para tomar un tercer parámetro, "contenido". Aquí hay mucho contenido, así que desglosémoslo por número de línea.
Línea 14-16: enviamos todo el contenido a través del socket, esperamos un poco y luego cerramos el socket a cualquier dato saliente para que el socket sepa que no hay más datos en camino.
Línea 18-26: creamos un búfer para almacenar la respuesta del servidor, y mientras el socket está recibiendo datos, agregamos hasta 1024 bytes de datos al resultado siempre que haya datos para leer.
Línea 28-29: queremos que esta conexión netcat sea una conexión única, por lo que declaramos la conexión cerrada y luego cerramos la conexión.
Línea 31: esta es una solicitud HTTP estándar. Si ejecuta el código con los argumentos de la línea de comandos "google.com" y "80", verá una respuesta HTTP adecuada.
Paso 5: Tengamos una conexión abierta
El código anterior (que se encuentra debajo del código de la sección anterior) simplemente nos permite ejecutar varios comandos netcat a través de una conexión pseudo-abierta. (En realidad, cada vez que ejecuta un comando, abre y luego cierra una nueva conexión TCP, por lo que no emula realmente el comportamiento de netcat, simplemente lo hacemos con fines de aprendizaje). Analicemos esto línea por línea también:
Línea 31: Queremos leer los comandos de forma indefinida para mantener la "interactividad".
Línea 32: Este es nuestro búfer que almacenará el contenido de nuestra solicitud.
Línea 36-45: Leeremos en el búfer hasta que leamos una línea vacía
Línea 48: simplemente llamamos a nuestra función netcat con el nombre de host, el puerto y el contenido recién creado (que está codificado correctamente)
Línea 50: si el contenido de nuestro búfer alguna vez contiene "Connection: Close" (que indica que queremos cerrar la conexión), simplemente salimos del bucle.
Paso 6: Conclusión
Al final de este tutorial, debería tener una implementación de netcat mínima que funcione. Dejaré que el usuario implemente funciones como:
1. compatible con otros protocolos
2. arreglar el código para no cerrar la conexión cada vez
3. agregar banderas que netcat ya tiene para modificar el comportamiento
Recomendado:
Sincronizar carpetas con Python: 5 pasos
Sincronización de carpetas con Python: este instructivo le mostrará cómo mantener dos carpetas (y todas las carpetas dentro de ellas) sincronizadas para que una sea una copia directa de la otra. Ideal para realizar copias de seguridad del trabajo de forma local, en un servidor de red o en la nube o en una unidad USB. Ninguna experiencia con la programación es n
Juego Python Tic Tac Toe: 4 pasos
Python Tic Tac Toe Game: Python Tic Tac Toe Game Este juego está hecho en Python, que es un lenguaje de computadora. He usado un editor de Python llamado: Pycharm. También puede usar el editor de código Python normal
Atendente Automático Com Python No Google Colab: 5 pasos
Atendente Automático Com Python No Google Colab: Olá pessoal! Tudo bem? Meu nome é Guilherme, Nesse projeto nós vamos a aprender como criar um ChatBot usando un Linguagem de programação Python e o Google Colab! Sou aluno da https://orbe.ai/ - Escola de Inteligência Artificial Infinita e esse projeto
Netcat Fun !: 5 pasos
Netcat Fun !: ¡Este instructivo le muestra cómo crear una puerta trasera en una computadora con netcat! Le mostraré dos formas de hacer esto, con y sin mi archivo por lotes que lo automatiza para usted. Este instructable ya asume que ya tienes permisos de root
¡Más diversión con Netcat !!: 4 pasos
¡Más diversión con Netcat !: Ahora, si no ha leído la guía de Duct tape sobre puertas traseras de Netcat, léalo y venga aquí. Este Instructable repasa los comandos básicos de netcat y cómo usarlos. También repasa algunos comandos básicos por lotes