hola hoy solo quiero compartir una idea de omitir avs en el momento que escribi este post usando c# para ejecutar binarios de .net en memoria
primero creamos un entrypoint para cargar nuestro binario de net, en base64 haciendo un reverse al string y un simple remplazo de caracteres, convirtiendo la cadena especificada desde el metodo base64string, posteriormente agregamos un metodo de sleep para Suspender el subproceso actual durante el período de tiempo especificado. despues de nuestro sleep usamos system.reflection para recuperar informacion de nuestro assembly en este caso nuestro payload, generando nuestro metodo invoke para ejecutar el subproceso delegado.. esto estara listo para compilar en un .exe y ejecutar, pero quise adicionar un metodo diferente compilando nuestro codigo en biblioteca de clases
siguiendo con nuestra nota despues de tener la dll lista haremos una conversion a bas64 como se muestra en la imagen
ahora que tenemos la dll en base64 pasaremos a codificarla en xor
ahora finalmente necesitamos un launcher que entregue nuestra carga existen muchas posibilidades de lograr esto, en este caso segui usando c# para entregar la carga de manera reflectiva sin tocar disco, alojando la dll en un webserver
para comprender de manera rapida esta imagen usaremos la clase webclient para recibir los datos de nuesta dll codificada lo cual ayuda en la evasion de los EDR basados en la red y haciendo una falsificacion de los encabezados representando un navegador normal, despues pasamos a crear la instancia y el metodo para invocar nuestro payload en memoria sin tocar el disco .. espero que les haya gustado
scan online results