
Monitor de procesos .NET que engancha CLR en la capa nativa, vuelca ensamblados reflectivos desde la memoria y comprueba la integridad de AMSI/ETW frente a los binarios en disco.
herramienta de windows que hice porque me cansé de mirar forks de jlaive en muestras de malware sin nada público para realmente desarmarlos en tiempo de ejecución.
en resumen, es un monitor de procesos .net que engancha el clr en la capa nativa, rastrea cargas reflectivas de ensamblados y automáticamente vuelca pes directamente desde memoria. también verifica la integridad de amsi y etw contra los binarios originales en disco mientras detecta técnicas de bypass como el parcheo de cadenas en clr.dll y el uso directo de LoadFromBuffer.
¿dónde encontrar muestras? recomiendo revisar https://tria.ge (no es un anuncio) y puedes descargar cualquier muestra que quieras y filtrar por familia
te preguntarás, ¿por qué el nombre nemesis?
porque representa el propósito exacto de la herramienta. una nemesis es algo que se erige como un desafío constante o la perdición de un oponente y esa es la idea detrás de este proyecto.
en la mitología griega nemesis era el espíritu de la retribución divina, el que repartía el castigo a cualquiera que se volviera demasiado arrogante o se creyera intocable. bastante directo para malware que presume de ser "fud" si me preguntas.
soy analista de malware. si haces este trabajo (hobby en mi caso) el tiempo suficiente empiezas a ver las mismas cadenas de loaders una y otra vez, especialmente desde que jlaive (también llamado crybat) explotó y cada script kiddy lo forkeó.
el patrón es estúpidamente simple pero molesto de tratar:
algo.bat → powershell ofuscado → stub de csharp → tu payload real
haces doble clic en un .bat que parece ensalada de palabras. cmd lanza powershell con un muro de basura. powershell descifra/descomprime un stub .net (aes, gzip, base64). ese stub parchea amsi + etw, carga reflectivamente el exe/dll real en memoria y ya está, nada amigable toca el disco en una forma útil.
eso me molestaba. no hay realmente una buena herramienta pública enfocada en combatir esta cadena específica: enganchar donde el payload .net realmente se materializa, volcarlo antes de que el proceso se autodestruya, atrapar los parches de amsi/etw que estos stubs siempre hacen. así que construí nemesis.
no es una bala de plata. no va a reemplazar tu sandbox. pero te da algo real para ejecutar contra un .bat sospechoso en una máquina de pruebas y realmente extraer artefactos.
launcher (Launcher.exe)
Nemesis.dll antes de que corra el hilo principalnemesis dll (Nemesis.dll)
nLoadImagenLoadFileAssemblyNative::LoadFromBuffer (patrón resuelto a partir de nLoadImage)%TEMP%\Nemesis_dumpsamsi.dll / ntdll.dll contra las copias en disco (detecta el clásico parche ret en AmsiScanBuffer / EtwEventWrite).rdata cuando clr está cargado (algunos bypasses parchean esas en su lugar, hay un gran paper de vxug al respecto llamado; 2024-11-21 - New AMSI Bypss Technique Modifying CLRDLL in Memory.pdf )%TEMP%\Nemesis.log también tiene ENABLE_VIRTUAL_TERMINAL_PROCESSING para evitar problemas con consolas digamos que raras :Dbásicamente: deja correr la cadena del bat, atrapa el payload donde el crypter realmente lo carga y registra los trucos de evasión en el camino.
necesitas visual studio 2022+ con c++ desktop + masm (x64).
abre Nemesis.slnx, elige Release | x64, compila la solución.
este es el caso de uso real, apúntalo a un bat sospechoso y mira qué sale:
cd x64\Release
.\Launcher.exe "C:\path\to\suspicious.bat"
los argumentos extra después de -- se pasan al objetivo:
.\Launcher.exe myapp.exe -- --some-flag
ruta de dll personalizada:
.\Launcher.exe --dll C:\path\Nemesis.dll myapp.exe
artefactos:
%TEMP%\Nemesis.log%TEMP%\Nemesis_dumpses:
no es:
LNK1104? algo todavía tiene nemesis.dll cargado, mata el objetivo y recompilapwsh.exe durante la compilación es inofensivo, ignóralosi quieres entender contra qué estás luchando:
al usar nemesis aceptas esto. se proporciona tal cual con ninguna garantía — asumes todo el riesgo.
eres el único responsable del uso legal y autorizado (vms de laboratorio, sistemas propios, permiso explícito). en la máxima medida permitida por la ley, los autores y zypherion.tech renuncian a toda responsabilidad por cualquier daño, pérdida o reclamo legal derivado del uso o mal uso. consulta LICENSE para los términos completos.