Poco a poco iré introduciendoles los temas para poder digerirlos correctamente y tengan tiempo de estudiar cada tema por separado =).
El siguiente Temario se irá actualizando cuando cada tema sea publicado, los temas marcados con rojo signfica que el tema ya está disponible, los temas no marcados y con un guion significa que apenas están en proceso y están sujetos a cambio de ampliación de subtemas.
El taller está dividido en Tres Partes, cada una con diferentes Temas, y a su vez subtemas que se irán POSTEANDO Aquí!
POR NINGUN MOTIVO POSTEEN AQUÍ SUS DUDAS SOBRE EL TALLER, PARA ESO HABRÁ OTRO THREAD en el cual se dedicará solo a eso, le pido a algun moderador que si llegase a suceder esto (por que no falta la gente) que mueva tal post o lo borre. (http://foro.elhacker.net/index.php?action=post;board=17.0)<- link al thread de preguntas, dudas y demás.
Al final del taller se hará la recopilación completa de todos los temas y se dará un Link para descargarlo completo en formato PDF.
Como última mención, al final de cada Parte del taller, se dará un LINK hacia un documento que contendrá las practicas de su respectivo tema (que será algo así como un exámen para aplicar los conocimientos y ver si quedaron claros =).
Temario:
Parte 1 – Fundamentos para la escritura.
1.-Introducción
1.1.- ¿Qué es un virus informático?.
1.2.- Requisitos.
1.3.- Disclaimer.
2. Funciones para abrir/leer/escribir archivos binarios
2.1.- Open.
2.2.- CLOSE.
2.3.- PUT.
2.4.- GET.
2.5.- Buffers y función Space()
2.5.1.- ¿Qué es un buffer?
2.5.2.- ¿Cómo crear un Buffer en VB?
2.5.3.- Prototipo del procedimiento Space()
2.5.4.- Pequeña descripción de Space()
3. Estructura Viral – Parte 1.
3.1.- Prepending Method.
3.1.2.- Funcionamiento.
- Buscando Marca de Infección.
- Infectando el host
- Marcando el host.
- VSC (Viral Size Constant)
4.Estructura Viral – Parte 2.
- Regenerando el fichero infectado.
- Eliminación del fichero-host regenerado. (API’s: WaitForSingleObject, CreateProcessA)
->Practica
Parte 2 – Técnicas de Búsqueda de hosts.
5.Virus de Acción directa.
- EXE Registry Hooking.
- Busqueda de ficheros mediante API’s (FindFirstFile, FindNextFile)
- Algoritmo redundante de búsqueda de ficheros a infectar.
6.Virus Residentes en memoria.
- Infección de procesos en memoria.
- Busqueda de ficheros cada cierto tiempo. (Timer)
->Practica
Parte 3 – Técnicas Virales.
7.Encripción.
- String Crypting
- Host Crypting
8.Stealth.
- Manteniendo la fecha original del archivo
9.Protección (Armoring).
- Packers
- Técnicas AntiDebugging
- API: IsDebuggerPresent
- API: GetTickCount
10. Payload
11. VSE – Virus Source Example
12. Compiling Viral Src
13. Despedida, Agradecimientos, Referencias y Contacto..
->Practica
Introducción
El principal objetivo de este taller es ayudar al lector a entender el tema de la programación de los virus informáticos orientada completamente a Visual Basic 6.
Al final de éste, el usuario habrá adquirido los conocimientos necesarios y fundamentos principales para desarrollar su propia especie viral.
El autor de éste documento, asume que usted tiene los conocimientos necesarios para desarrollar al menos un “hello world” en el compilador de Microsoft (visual basic 6) en todo caso recomiendo ir a www.google.com y buscar tutoriales.
También se asume el conocimiento del concepto general de la palabra “virus informático” y sus correspondientes clasificaciones, si éste no fuera el caso, definamos entonces
¿Qué es un virus informático?
“Los virus son programas capaces de auto reproducirse copiándose en otro programa al que infectan, todo ello sin conocimiento del usuario”
Ésta es la definición más acertada y la que nos queda perfecto para este documento, creo después de leer esta simple oración tenemos completamente respondida la duda y sí aún no fuera así al final de éste taller daré algunas referencias hacia documentos que recomiendo leer para entender mejor los conceptos básicos.
Requisitos
•Compilador Microsoft Visual Basic 6 (viene en el Visual Studio 6)
•Visor de Texto API (viene en el paquete de Visual Studio 6)
•Win32.HLP – Referencia de API’s (www.google.com)
•Conocimiento en el uso de las API’s (Application Programming Interface)
•Conocimiento medio de Windows (El registro, el WFP, etc)
•Editor Hexadecimal.
•Paciencia, Cerebro y motivación (Muy importante!)
Estos son los requisitos minimos para poder empezar con éste taller, si no tienes el compilador de VB6 anda a comprarlo a tu tienda más cercana!! Sin él no podrás compilar ninguno de los ejemplos mostrados!
Disclaimer:
Por supuesto! Siempre hay un disclaimer y éste taller no se salva de él, aclaro completamente, NO ME HAGO RESPONSABLE DE LOS CONOCIMIENTOS ADQUIRIDOS AL FIN DE ÉSTE, recuerda que el conocimiento es poder y todo poder conlleva a una responsabilidad, si tu objetivo al tomar éste taller es el de estar fastidiando gente y esparciendo tus especies por doquier es mejor que no leas, sin embargo sé que muchos lo harán, pero queda bajo responsabilidad de cada uno el uso que se le de a ésta información, y como dijo un reconocido escritor de virus “Destruir es fácil, lo difícil es crear”.
Sí cumples los requisitos y estás de acuerdo con lo anteriormente dicho, empecemos ya con este taller!
Funciones para Abrir/Escribir/Leer archivos binarios.
Open
Es fundamental saber como abrir un archivo, leer y escribir en él, a continuación detallaré el funcionamiento de Open para su posterior uso en nuestra especie (Sé que muchos ya se lo saben, pero apenas vamos comenzando, con calma.)
Ésta es la sintaxis de Open:

FICHERO = Obviamente el fichero que vamos a abrir
Tipo de Acceso = Aquí colocaremos el tipo de acceso al fichero
Numero = Colocaremos el numero que identifica el fichero abierto (Este número es muy importante!)
Tipos de Acceso
Existen dos tipos de Acceso los cuales son Write y Read, que obviamente como lo indica su nombre sirven para ello.
CLOSE
Close nos permitirá cerrar el archivo una vez hechas las operaciones tanto de lectura como de escritura pasándole como parámetro el número que identifica el fichero a cerrar.
Prototipo:


PUT
Put, nos permite escribir el contenido de una variable dentro del archivo binario y su prototipo es el siguiente:

Como pueden ver ese “numerito” nos es muy importante para especificar el archivo al que hay escribir, después de este valor dejamos dos comas, (si hay otro valor pero no estoy muy seguro para que sirve, si no me equivoco se especifican valores hexadecimales para especificar la posición en la cual escribir, sin embargo esto no lo necesitaremos), y por ultimo una variable con los datos a escribir en el archivo.
Ejemplo de escritura en un archivo:

GET
Si el anterior nos permitía escribir datos, obviamente este nos permitirá leerlos.
Prototipo de GET:

Y vamos de nuevo, el numero identificador del archivo al cual leeremos datos, seguido de dos comas y la variable del buffer donde se almacenarán los datos
Buffers y Función Space()
¿Qué es un buffer?
Los buffers son areas reservadas de memoria donde podemos almacenar datos, en C por ejemplo haciendo un char variable[1024]; creamos un buffer 1024 bytes en el cual almacenaremos datos del tipo ya antes mencionado (char)
¿Cómo crear un Buffer en VB?
Para crear un buffer en VB donde almacenaremos los datos leídos de los ficheros declararemos una variable de tipo string y usaremos la función Space.
Prototipo de Space:

Descripción:
Crea X espacios dependiendo del argumento pasado a la función.
Código:

El siguiente es un ejemplo de lectura de un archivo:

Esctructura Viral – 1era Parte.
Prepending Method.
El método de infección prepender está basado en los virus de sobre-escritura, si se puede decir “una evolución”, ya que a diferencia de estos, los prependers son capaces de regenerar el fichero infectado y correrlo.
Funcionamiento.

Para entender mejor la forma de infección, he dibujado éste diagrama, en el cual se observa al virus pegarse al inicio del fichero a infectar, tomando completo control del fichero PE.
Como lo dije antes, el método prepender representa una ventaja clara contra la sobre escritura debido a la regeneración del fichero infectado, aunque aún así presenta ciertas desventajas como la perdida del icono original, aunque para un programador experimentado esto no es barrera para su creación.
Ésta no es la única forma de infección, pero debido a su facilidad de codificación y entendimiento es perfecta para la iniciación de futuros escritores de virus, ya que no es necesario el conocimiento de la estructura del PE.










Autor



En línea
