CyberChef es la autoproclamada 'navaja suiza cibernética' creada por GCHQ. Es una herramienta fantástica para la transformación, extracción y manipulación de datos en su navegador web.
Todo el crédito para @GCHQ por producir la herramienta. Ver: https://gchq.github.io/CyberChef/
Dominar las expresiones regulares es clave para aprovechar al máximo la manipulación de datos en CyberChef (o cualquier trabajo de DFIR). A continuación se muestran algunas expresiones regulares a las que sigo volviendo.
Extraer Base64: [a-zA-Z0-9+/=]{30,}
Extraer hexadecimal: [a-fA-F0-9]{10,}
Extraer códigos de caracteres: [d]{2,3}(,|')
(?<=foo)(.*)
^.*(?=bar)
(?<=')(.*?)(?=')
CyberChef proporciona una operación Solicitud HTTP (consulte la Receta 22) que permite solicitudes HTTP a recursos externos. Debido a la Política del mismo origen (SOP) o a la falta de configuración para compartir recursos entre orígenes, muchos no funcionan. SOP es una medida de seguridad en los navegadores modernos que le impide leer respuestas entre sitios de servidores que no lo permiten explícitamente a través de CORS. Consulte la charla de @GlassSec en CyberChef, que incluye consejos para iniciar Chrome sin seguridad web para permitir solicitudes HTTP a API que de otro modo estarían restringidas (como Virus Total).
Algunos ejemplos de recetas CyberChef:
Receta 1: Extraer base64, inflar y embellecer en bruto
Receta 2: Invocar ofuscación
Receta 3: De CharCode
Receta 4: Descifrado de contraseña de preferencia de política de grupo
Receta 5: uso de bucles y etiquetas
Receta 6: marcas de tiempo de Google ei
Receta 7: scriptlet COM de varias etapas para ensamblaje x86
Receta 8: extraiga hexadecimal y conviértalo a hexdump para un archivo PE incrustado
Receta 9: cadenas inversas, sustitución de caracteres, desde base64
Receta 10: extraer objeto de la caché del proxy Squid
Receta 11: extraer coordenadas GPS a las URL de Google Maps
Receta 12: procesamiento de números grandes
Receta 13: análisis de registros PTR de DNS con registros
Receta 14: Decodificación de ejecutables POSHC2
Receta 15: Análisis de marcas de tiempo $MFT $SI
Receta 16: Decodificación de PHP gzinflate y webshells base64
Receta 17: Extracción de shellcode de un script TCP inverso de Powershell Meterpreter
Receta 18: Analizador de papelera de reciclaje con subsecciones y fusiones
Receta 19: Identificar Base64 ofuscado con resaltado de expresiones regulares
Receta 20: uso de reglas de Yara con scripts maliciosos desofuscados
Receta 21: desofuscación en línea de un script VBE codificado en hexadecimal adjunto a un archivo LNK malicioso
Receta 22: Búsqueda de API JA3 con solicitudes y registros HTTP
Receta 23: Derrotar la fusión de DOS incrustada en un archivo DOC malicioso con grupos de captura de expresiones regulares
Receta 24: elegir una letra aleatoria de una cadena de seis bytes
Receta 25: Crear un código QR Wifi
Receta 26: Extracción y decodificación de un Webshell PHP de varias etapas
Receta 27: Decodificación de un script PHP de Auto Visitor
Receta 28: Desofuscación de Cobalt Strike Beacon usando saltos condicionales para obtener shellcode
Receta 29: Manipulación de marcas de tiempo de archivos de registro con subsecciones y registros
Receta 30: CharCode ofuscó el cargador PowerShell para una baliza Cobalt Strike
Receta 31: Desofuscar cadenas codificadas en binario .NET
Receta 32: Extraiga la DLL maliciosa de Gootkit de datos de registro ofuscados
Receta 33: Identificar URL incrustadas en el script de Emotet PowerShell
Receta 34: Análisis de archivos OOXML para URL
Receta 35: Muestra de descifrado del ransomware REvil PowerShell
Receta 36: Cree un generador de contraseñas CyberChef
Receta 37: Del correo electrónico comprimido Sandbox a una URL maliciosa
Receta 38: Aviones, calaveras y sobres: vive y deja PowerShell
Receta 39: Descifrar archivos de configuración cifrados de GoldMax, también conocido como Sunshutte
Receta 40: Locura del código Morse
Receta 41: codificación PHP mixta hexadecimal y octal
Receta 42: PHP Webshell con ofuscación en capas
Receta 43: desofuscación del skimmer Magento
Receta 44: Descifrar el ransomware JobCrypter
Receta 45: Conversión de marca de tiempo del registro de proxy Sqiud
Receta 46: Adaptar su expresión regular a la situación
Receta 47: script de Trickbot Visual Basic
Receta 48: vjw0rm Emoji Madness
Receta 49: Desarmar un archivo de prueba EICAR
Receta 50: Salida del lenguaje de definición de descriptores de seguridad de análisis
Receta 51: Decodificador Base-45
Receta 52: Lista aleatoria de elementos
Receta 53: salida de Olevba a Powershell
Receta 54: Hashes de ID de evento de Windows 1029
Receta 55: Desofuscación de BazarLoader, también conocido como TA551 maldoc
Receta 56: Calcular y buscar valores hash JA3 o JA3S desde un PCAP
Receta 57: Haz un meme con CyberChef
Receta 58: Extraiga la URL de la segunda etapa de IcedID de un documento malintencionado
Receta 59: Configuración de la baliza Parse Cobalt Strike
Receta 60: decodificar URL protegidas por Microsoft Safelinks
Receta 61: Extraiga las URL de la segunda etapa de los documentos maliciosos de Excel de Qakbot
Receta 62: Emotet Maldoc a PowerShell
Receta 63: Extraer URL de VBS ofuscado por Dridex
Receta 64: Convertir cadenas en consultas VirusTotal Grep
Receta 65: Desofuscar la carga útil del shell inverso de MSF Venom PowerShell
Receta 66: ejemplo de subsección anidada
Receta 67: Conversión de un código de producto MSI en un ID de producto del instalador del registro
Receta 68: Conversión de matrices de bytes firmados de Java
Receta 69: Extracción de la carga útil de DLL de un script de Bumblebee Powershell
Receta 70: Extracción de puntos finales de la configuración de seguridad de red de Android
Un escenario muy común: extraer Base64, inflar, embellecer el código. Es posible que luego deba realizar un procesamiento adicional o un análisis dinámico según la siguiente etapa.
Nombre de archivo: ahack.bat
Archivo comprimido: cc9c6c38840af8573b8175f34e5c54078c1f3fb7c686a6dc49264a0812d56b54_183SnuOIVa.bin.gz
Muestra: SHA256 cc9c6c38840af8573b8175f34e5c54078c1f3fb7c686a6dc49264a0812d56b54
https://www.hybrid-analysis.com/sample/cc9c6c38840af8573b8175f34e5c54078c1f3fb7c686a6dc49264a0812d56b54?environmentId=120
[{"op":"Regular expression","args":["User defined","[a-zA-Z0-9+/=]{30,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Raw Inflate","args":[0,0,"Adaptive",false,false]},{"op":"Generic Code Beautify","args":[]}]
CyberChef no podrá manejar todos los tipos de Invoke-Ofuscación, pero aquí hay uno que se puede decodificar.
Nombre de archivo: Acuse de recibo NUT-95-52619.eml
Archivo comprimido: 1240695523bbfe3ed450b64b80ed018bd890bfa81259118ca2ac534c2895c835.bin.gz
Muestra: SHA256 1240695523bbfe3ed450b64b80ed018bd890bfa81259118ca2ac534c2895c835
https://www.hybrid-analysis.com/sample/1240695523bbfe3ed450b64b80ed018bd890bfa81259118ca2ac534c2895c835?environmentId=120
[{"op":"Find / Replace","args":[{"option":"Regex","string":"\^|\\|-|_|\/|\s"},"",true,false,true,false]},{"op":"Reverse","args":["Character"]},{"op":"Generic Code Beautify","args":[]},{"op":"Find / Replace","args":[{"option":"Simple string","string":"http:"},"http://",true,false,true,false]},{"op":"Extract URLs","args":[false]},{"op":"Defang URL","args":[true,true,true,"Valid domains and full URLs"]}]
El malware y los scripts suelen utilizar Charcode para representar caracteres con el fin de evadir las soluciones AV y EDR. CyberChef se lo come.
Nombre de archivo: 3431818-f71f60d10b1cbe034dc1be242c6efa5b9812f3c6.zip
Fuente: https://gist.github.com/jonmarkgo/3431818
[{"op":"Regular expression","args":["User defined","([0-9]{2,3}(,\s|))+",true,true,false,false,false,false,"List matches"]},{"op":"From Charcode","args":["Comma",10]},{"op":"Regular expression","args":["User defined","([0-9]{2,3}(,\s|))+",true,true,false,false,false,false,"List matches"]},{"op":"From Charcode","args":["Space",10]}]
Cuando se crea un nuevo GPP, hay un archivo XML asociado creado en SYSVOL con los datos de configuración relevantes y, si se proporciona una contraseña, está cifrada con AES-256 bits. Microsoft publicó la clave AES, que se puede utilizar para descifrar las contraseñas almacenadas en: \SYSVOL<DOMAIN>Policies
Crédito: @cyb3rops
Fuente 1: https://twitter.com/cyb3rops/status/1036642978167758848
Fuente 2: https://adsecurity.org/?p=2288
[{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"To Hex","args":["None"]},{"op":"AES Decrypt","args":[{"option":"Hex","string":"4e9906e8fcb66cc9faf49310620ffee8f496e806cc057990209b09a433b66c1b"},{"option":"Hex","string":""},"CBC","Hex","Raw",{"option":"Hex","string":""}]},{"op":"Decode text","args":["UTF16LE (1200)"]}]
CyberChef puede usar etiquetas para identificar partes de la receta y luego retroceder para realizar operaciones varias veces. En este ejemplo, hay 29 rondas de codificación Base64 que se extraen y decodifican.
Crédito: @pmelson
Archivo fuente: hmCPDnHs.txt
Fuente 1: https://pastebin.com/hmCPDnHs
Fuente 2: https://twitter.com/pmelson/status/1078776229996752896
Vea también más ejemplos de bucles sobre Base64: https://twitter.com/QW5kcmV3/status/1079095274776289280 (Crédito: @QW5kcmV3)
[{"op":"Label","args":["top"]},{"op":"Regular expression","args":["User defined","[a-zA-Z0-9+/=]{30,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Raw Inflate","args":[0,0,"Adaptive",false,false]},{"op":"Jump","args":["top",28]},{"op":"Generic Code Beautify","args":[]}]
Google usa su propia marca de tiempo, yo la llamo ei hora, que incrusta en la URL.
Fuente: https://bitofhex.com/2018/05/29/cyberchef/
[{"op":"From Base64","args":["A-Za-z0-9-_=",true]},{"op":"To Hex","args":["None"]},{"op":"Take bytes","args":[0,8,false]},{"op":"Swap endianness","args":["Hex",4,true]},{"op":"From Base","args":[16]},{"op":"From UNIX Timestamp","args":["Seconds (s)"]}]
Este es un scriptlet COM decodificado de once etapas que utiliza instrucciones Base64, Gunzip, RegEx y Disassemble x86.
Crédito: @JohnLaTwC
Nombre de archivo: 41a6e22ec6e60af43269f4eb1eb758c91cf746e0772cecd4a69bb5f6faac3578.txt
Fuente 1: https://gist.githubusercontent.com/JohnLaTwC/aae3b64006956e8cb7e0127452b5778f/raw/f1b23c84c65 4b1ea60f0e57a860c74385915c9e2/43cbbbf93121f3644ba26a273ebdb54d8827b25eb9c754d3631be395f06d8cff
Fuente 2: https://twitter.com/JohnLaTwC/status/1062419803304976385
[{"op":"Regular expression","args":["","[A-Za-z0-9=/]{40,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Remove null bytes","args":[]},{"op":"Regular expression","args":["User defined","[A-Za-z0-9+/=]{40,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Gunzip","args":[]},{"op":"Regular expression","args":["User defined","[A-Za-z0-9+/=]{40,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"To Hex","args":["Space"]},{"op":"Remove whitespace","args":[true,true,true,true,true,false]},{"op":"Disassemble x86","args":["32","Full x86 architecture",16,0,true,true]}]
Este archivo tiene un archivo PE incrustado (SHA 256: 26fac1d4ea12cdceac0d64ab9694d0582104b3c84d7940a4796c1df797d0fdc2, R5Sez8PH.exe, VT: 54/70). Usando CyberChef, podemos expresar regularmente hexadecimal y convertirlo a un volcado hexadecimal más fácilmente visible.
Fuente 1: https://pastebin.com/R5Sez8PH (lo siento: ¡ya no está disponible!)
Fuente 2: https://twitter.com/ScumBots/status/1081949877272276992
[{"op":"Regular expression","args":["User defined","[a-fA-F0-9]{200,}",true,true,false,false,false,false,"List matches"]},{"op":"From Hex","args":["Auto"]},{"op":"To Hexdump","args":[16,false,false]}]
Un blob de base64 con algunos bytes menores para sustituir. Decodificación original realizada por @pmelson en Python y convertida a CyberChef.
Crédito: @pmelson
Fuente 1: https://pastebin.com/RtjrweYF / RtjrweYF.txt
Fuente 2: https://twitter.com/pmelson/status/1076893022758100998
[{"op":"Reverse","args":["Character"]},{"op":"Find / Replace","args":[{"option":"Regex","string":"%"},"A",true,false,true,false]},{"op":"Find / Replace","args":[{"option":"Regex","string":"×"},"T",true,false,false,false]},{"op":"Find / Replace","args":[{"option":"Simple string","string":"÷"},"V",true,false,false,false]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"To Hexdump","args":[16,false,false]}]
No elimines manualmente tus objetos de caché de Squid. Simplemente cargue el archivo en CyberChef. Esta receta buscará los bytes mágicos 0x0D0A0D0A y luego extraerá todo. Luego, gzip descomprime el objeto para descargarlo.
Fuente: 00000915 (la salida debe ser TrueCrypt_Setup_7.1a.exe con SHA256 e95eca399dfe95500c4de569efc4cc77b75e2b66a864d467df37733ec06a0ff2)
[{"op":"To Hex","args":["None"]},{"op":"Regular expression","args":["User defined","(?<=0D0A0D0A).*$",true,false,false,false,false,false,"List matches"]},{"op":"From Hex","args":["Auto"]},{"op":"Gunzip","args":[]}]
Si necesita clasificar rápidamente dónde se tomó una foto y tiene la suerte de tener latitud y longitud GPS integradas, utilice esta receta para crear rápidamente una URL de Google Maps utilizable para identificar la ubicación.
[{"op":"Extract EXIF","args":[]},{"op":"Regular expression","args":["User defined","((?<=GPSLatitude:).*$)|((?<=GPSLongitude: ).*$)",true,true,false,false,false,false,"List matches"]},{"op":"Find / Replace","args":[{"option":"Extended (\n, \t, \x...)","string":"\n"},",",true,false,true,false]},{"op":"Find / Replace","args":[{"option":"Simple string","string":" "},"https://maps.google.com/?q=",true,false,true,false]}]
CyberChef puede manejar cantidades enormes. Aquí podemos usar una receta simple para cambiar un número de serie X509 de 38 dígitos a su número de serie de certificado X.509 equivalente hexadecimal. Luego podemos regular el hexadecimal e insertar dos puntos para transformarlo al formato correcto.
Crédito: @QW5kcmV3
Fuente: https://twitter.com/QW5kcmV3/status/949437437473968128
[{"op":"To Base","args":[16]},{"op":"Regular expression","args":["User defined","[a-f0-9]{2,2}",true,true,false,false,false,false,"List matches"]},{"op":"Find / Replace","args":[{"option":"Extended (\n, \t, \x...)","string":"\n"},":",true,false,true,false]}]
Las direcciones IP en los registros PTR de DNS se almacenan primero como el octeto menos significativo. Por ejemplo: 167.139.44.10.in-addr.arpa se relacionaría con la dirección IP 10.44.139.167. Usando los registros de CyberChef podemos asignar cada octeto a un registro de memoria (o variable si es más fácil verlo de esa manera). Luego se pueden revertir para reordenar la dirección IP. Un buscar/reemplazar ordena el resto del registro. Esto podría revertirse si quisiera traducir direcciones IP "normales" para buscar en registros PTR de DNS.
[{"op":"Fork","args":["\n","\n",false]},{"op":"Register","args":["(\d{1,3}).(\d{1,3}).(\d{1,3}).(\d{1,3})",true,false,false]},{"op":"Find / Replace","args":[{"option":"Regex","string":"$R0.$R1.$R2.$R3"},"$R3.$R2.$R1.$R0",true,false,true,false]},{"op":"Find / Replace","args":[{"option":"Regex","string":".in-addr.arpa"},"",true,false,true,false]}]
PoshC2 es un marco C2 con reconocimiento de proxy que utiliza Powershell para ayudar a los evaluadores de penetración con equipos rojos, post-explotación y movimiento lateral. El cuentagotas se basa en PowerShell y consta de un script de PowerShell que está doblemente codificado y comprimido en Base64. La extracción de las cadenas se puede realizar con CyberChef como se detalla a continuación. Dependiendo de la configuración y personalización del ejecutable, es posible que necesites ajustar tu receta.
Crédito: @a_tweeter_user
Fuente: https://twitter.com/a_tweeter_user/status/1100751236687642624
Fuente: posh.zip
[{"op":"Strings","args":["All",4,"Alphanumeric + punctuation (A)",false]},{"op":"Remove null bytes","args":[]},{"op":"Regular expression","args":["User defined","[a-zA-Z0-9+=]{200,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Remove null bytes","args":[]},{"op":"Regular expression","args":["User defined","[a-z0-9/\\+=]{100,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Raw Inflate","args":[0,0,"Adaptive",false,false]}]
CyberChef puede hacer casi cualquier cosa con datos. Aquí se muestran bytes hexadecimales sin formato de una entrada $MFT. Al seleccionar ciertos bytes y utilizar varias funciones de CyberChef, puedo analizar cualquier parte de los datos según sea necesario. Esta receta extraerá y analizará las marcas de tiempo $SI. ¡No encierres más!
[{"op":"Take bytes","args":[160,64,false]},{"op":"Regular expression","args":["User defined",".{16}",true,true,true,false,false,false,"List matches with capture groups"]},{"op":"Fork","args":["\n","\n",false]},{"op":"Swap endianness","args":["Hex",10,true]},{"op":"Remove whitespace","args":[true,true,true,true,true,false]},{"op":"Windows Filetime to UNIX Timestamp","args":["Nanoseconds (ns)","Hex"]},{"op":"From UNIX Timestamp","args":["Nanoseconds (ns)"]},{"op":"Merge","args":[]},{"op":"Register","args":["(.*)\n(.*)\n(.*)\n(.*)",true,false,false]},{"op":"Find / Replace","args":[{"option":"Regex","string":"$R0"},"$SI Creation Time: $R0",true,false,true,false]},{"op":"Find / Replace","args":[{"option":"Regex","string":"$R1"},"$SI Modified Time: $R1",true,false,true,false]},{"op":"Find / Replace","args":[{"option":"Regex","string":"$R2"},"$SI MFT Change Time: $R2",true,false,true,false]},{"op":"Find / Replace","args":[{"option":"Regex","string":"$R3"},"$SI Access Time: $R3",false,false,true,false]}]
Los Webshells vienen en todas las formas y tamaños. Para PHP webshells, se puede utilizar la combinación de gzinflate y base64 para ofuscar los datos de evaluación. En este ejemplo, hay 21 rondas de compresión y base64 que podemos analizar rápidamente usando etiquetas y bucles.
Fuente: https://github.com/LordWolfer/webshells/blob/b7eefaff64049e3ff61e90c850686135c0ba74c4/from_the_wild1.php
[{"op":"Label","args":["start"]},{"op":"Regular expression","args":["User defined","[a-zA-Z0-9=/+]{10,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Raw Inflate","args":[0,0,"Block",false,false]},{"op":"Jump","args":["start",21]}]
A menudo se ve en el bot Pastbin @scumbots de @pmelson, esto elimina varias capas de un script Powershell codificado para mostrar el código shell. Desde aquí puede extraer declaraciones PUSH para intentar identificar la dirección IP y el puerto, pero obtendrá demasiados falsos positivos. Así que es mejor que uses una herramienta como scdbg (ver: http://sandsprite.com/blogs/index.php?uid=7&pid=152)
Fuente: https://twitter.com/ScumBots/status/1121854255898472453
Fuente: https://pastebin.com/9DnD6t6W / 9DnD6t6W.txt
[{"op":"Regular expression","args":["User defined","[a-zA-Z0-9=/+]{30,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Remove null bytes","args":[]},{"op":"Regular expression","args":["User defined","[a-zA-Z0-9=/+]{30,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Gunzip","args":[]},{"op":"Regular expression","args":["User defined","[a-zA-Z0-9=/+]{30,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"To Hex","args":["None"]},{"op":"Disassemble x86","args":["32","Full x86 architecture",16,0,true,true]}]
Las subsecciones y fusiones son herramientas poderosas en CyberChef que permiten la aplicación de ingredientes a una selección de datos en lugar de a todo el archivo de entrada. Luego, esta sección se puede fusionar para continuar con toda la entrada. En un trabajo increíble, @GlassSec ha creado un analizador de la Papelera de reciclaje de Windows utilizando CyberChef, lo que indica que las posibilidades de estas funciones son infinitas.
Fuente: https://gist.github.com/glassdfir/f30957b314ec39a8aa319420a29ffc76
Crédito: https://twitter.com/GlassSec
[{"op":"Conditional Jump","args":["^(\x01|\x02)",true,"Error",10]},{"op":"Find / Replace","args":[{"option":"Regex","string":"^(\x02.{23})(....)"},"$1",false,false,false,false]},{"op":"Subsection","args":["^.{24}(.*)",true,true,false]},{"op":"Decode text","args":["UTF16LE (1200)"]},{"op":"Find / Replace","args":[{"option":"Regex","string":"^(.*)."},"\nDeleted File Path: $1",false,false,false,false]},{"op":"Merge","args":[]},{"op":"Subsection","args":["^.{16}(.{8})",false,true,false]},{"op":"Swap endianness","args":["Raw",8,true]},{"op":"To Hex","args":["None"]},{"op":"Windows Filetime to UNIX Timestamp","args":["Seconds (s)","Hex"]},{"op":"From UNIX Timestamp","args":["Seconds (s)"]},{"op":"Find / Replace","args":[{"option":"Regex","string":"^(.* UTC)"},"\nFile Deletion Time: $1",true,false,true,false]},{"op":"Merge","args":[]},{"op":"Subsection","args":["^.{8}(.{8})",true,true,false]},{"op":"To Hex","args":["None"]},{"op":"Swap endianness","args":["Hex",8,true]},{"op":"From Base","args":[16]},{"op":"Find / Replace","args":[{"option":"Regex","string":"^(.*)"},"\nDeleted File Size: $1 bytes",true,false,true,true]},{"op":"Merge","args":[]},{"op":"Find / Replace","args":[{"option":"Regex","string":"^.{8}"},"******** WINDOWS RECYCLE BIN METADATA ********",true,false,false,false]},{"op":"Jump","args":["Do Nothing",10]},{"op":"Label","args":["Error"]},{"op":"Find / Replace","args":[{"option":"Regex","string":"^.*$"},"This doesn't look like a Recycle Bin file to me ",true,false,true,false]},{"op":"Label","args":["Do Nothing"]}]
Menos receta y más técnica. El uso de la función 'resaltar' del ingrediente de expresión regular puede mostrar claramente dónde se han dividido los datos base64 con un juego de caracteres base64 no tradicional. Aquí la secuencia '@<!' se utiliza para ofuscar e interrumpir la conversión de codificación automatizada. Mirando más abajo en el script, la secuencia se sustituye por 'A', que luego se puede insertar con Buscar/Reemplazar antes de la extracción. Esto continúa durante múltiples rondas hasta que se revela un dominio de interés (junto con un ejecutable anterior).
Fuente: https://pastebin.com/TmJsB0Nv y https://twitter.com/pmelson/status/1167065236907659264
[{"op":"Find / Replace","args":[{"option":"Simple string","string":"@<!"},"A",true,false,true,false]},{"op":"Regular expression","args":["User defined","[a-zA-Z0-9+/=]{20,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Regular expression","args":["User defined","[a-zA-Z0-9+/=]{50,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Find / Replace","args":[{"option":"Simple string","string":"@<!"},"A",true,false,true,false]},{"op":"Regular expression","args":["User defined","[a-zA-Z0-9+/=]{50,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]}]
Aunque no es la forma más conveniente, CyberChef ofrece la posibilidad de ejecutar una regla yara sobre el resultado de una receta. Puede combinar esto utilizando la función de entradas múltiples para escanear una mayor cantidad de archivos.
Fuente: https://twitter.com/ScumBots/status/1168528510681538560 y https://pastebin.com/r40SXe7V
[{"op":"Regular expression","args":["User defined","\(.*\);",true,false,false,false,false,false,"List matches"]},{"op":"Find / Replace","args":[{"option":"Regex","string":",|\(|\);"}," ",true,false,true,false]},{"op":"From Charcode","args":["Space",10]},{"op":"YARA Rules","args":["rule SuspiciousPowerShell {n meta:n description = "Testing Yara on Cyberchef for Powershell"n strings:n $a1 = "[System.Reflection.Assembly]" asciin $a2 = "IEX" ascii nocasen $a3 = "powershell.exe -w hidden -ep bypass -enc" asciin condition:n 2 of themn}",true,true,true,true]}]
Esta receta extrae una carga útil VBE de un archivo de acceso directo de Microsoft (LNK) y luego decodifica las cadenas hexadecimales en línea usando subsecciones.
Fuente: malicioso.lnk.bin
[{"op":"Microsoft Script Decoder","args":[]},{"op":"Subsection","args":["(?<=\(\")(.*?)(?=\"\))",true,true,false]},{"op":"Fork","args":["\n","\n",false]},{"op":"From Hex","args":["Auto"]}]
Usando la función de solicitud HTTP y los registros, podemos enriquecer los datos con los de una API o un recurso externo. Aquí estamos buscando contra tres hashes JA3 cualquier mal conocido.
Fuente: Hashes de entrada: 1aa7bf8b97e540ca5edd75f7b8384bfa, 1be3ecebe5aa9d3654e6e703d81f6928 y b386946a5a44d1ddcc843bc75336dfce
[{"op":"Comment","args":["https://ja3er.com/search/hash"]},{"op":"Fork","args":["\n","\n",false]},{"op":"Register","args":["(.*)",true,false,false]},{"op":"HTTP request","args":["GET","https://ja3er.com/search/$R0","","Cross-Origin Resource Sharing",false]},{"op":"JSON Beautify","args":[" ",false]}]
Este archivo DOC malicioso se descarga directamente desde Hybrid-Analysis. Lo descomprimimos, seleccionamos la dosfusión con una expresión regular, luego seleccionamos la sección crítica que se está utilizando con la función 'establecer'. Esta sección se desofusca con un bucle for inverso con un paso de tres. Entonces, una vez seleccionado, invertimos la cadena y usamos grupos de captura de expresiones regulares para seleccionar cada tercer carácter. Este es un gran trabajo de Hack eXPlorer en YouTube. ¡Ve allí y mira!
Fuente: Sin título-11232018-659370.doc.bin.gz
Crédito: Adaptado del video de Hack eXPlorer Ocultar código malicioso usando Windows CMD - Dosfuscation
[{"op":"Gunzip","args":[]},{"op":"Regular expression","args":["User defined","c:\\.*"",true,true,false,false,false,false,"List matches"]},{"op":"Find / Replace","args":[{"option":"Simple string","string":"^"},"",true,false,true,false]},{"op":"Regular expression","args":["User defined","(?<=9ojB\=)(.*?)(?=\) )",true,true,false,false,false,false,"List matches"]},{"op":"Reverse","args":["Character"]},{"op":"Regular expression","args":["User defined","(.)..",true,true,false,false,false,false,"List capture groups"]},{"op":"Find / Replace","args":[{"option":"Regex","string":"\n"},"",true,false,true,false]},{"op":"Extract URLs","args":[false]},{"op":"Extract domains","args":[true]}]
Una solicitud de ayuda condujo a esta receta que utiliza registros, solicitudes HTTP y algunas expresiones regulares para seleccionar un carácter aleatorio de una cadena de seis bytes.
Crédito: Adaptado de Steve Thompson
[{"op":"Register","args":["(.*)",true,false,false]},{"op":"HTTP request","args":["GET","https://www.random.org/integers/?num=1&min=1&max=6&col=1&base=10&format=plain&rnd=new","","Cross-Origin Resource Sharing",false]},{"op":"Register","args":["(.)",true,false,false]},{"op":"Find / Replace","args":[{"option":"Regex","string":"(.)"},"$R0",true,false,true,false]},{"op":"Regular expression","args":["User defined","(.){$R1}",true,true,false,false,false,false,"List capture groups"]},{"op":"Head","args":["Line feed",1]}]
¡Ya sea para permitir que tus amigos accedan fácilmente a tu wifi para invitados o para cualquier equipo rojo que necesite agregar comodidad tentadora a un punto de acceso no autorizado! Usar la función de creación de código QR para permitir que los dispositivos Android o iOS inicien sesión en su Wifi.
Crédito: https://twitter.com/mattnotmax/status/1242031548884369408
Antecedentes: https://github.com/zxing/zxing/wiki/Barcode-Contents#wi-fi-network-config-android-ios-11
Generate_QR_Code('PNG',5,2,'Medium')
¡Decodificando un Webshell documentado por SANS completamente dentro de Cyberchef usando expresiones regulares, ROT13, solicitud HTTP, registros y más!
Crédito: https://twitter.com/thebluetoob
[{"op":"Regular expression","args":["User defined","(?<=')(.*?)(?=')",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"ROT13","args":[true,true,13]},{"op":"Raw Inflate","args":[0,0,"Adaptive",false,false]},{"op":"ROT13","args":[true,true,13]},{"op":"Extract URLs","args":[false]},{"op":"Register","args":["(.*)",true,false,false]},{"op":"HTTP request","args":["GET","$R0","","Cross-Origin Resource Sharing",false]},{"op":"Strings","args":["Single byte",4,"Alphanumeric + punctuation (A)",false]},{"op":"Regular expression","args":["User defined","[a-zA-Z0-9+=/]{30,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Regular expression","args":["User defined","(?<=')(.*?)(?=')",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Raw Inflate","args":[0,0,"Adaptive",false,false]},{"op":"ROT13","args":[true,true,13]},{"op":"Regular expression","args":["User defined","[a-zA-Z0-9+=/]{30,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]}]
¡Decodificando un script de visitante automático escrito en PHP dentro de Cyberchef usando expresiones regulares, ROT13, múltiples algoritmos de descompresión y subsecciones ! El punto clave a considerar es que hay dos variables que utilizan diferentes rondas de ofuscación. Tiene un par de opciones: trabajar en múltiples ventanas de CyberChef para obtener el resultado final o, como se muestra a continuación, usar subsecciones y greg para cada variable para manipular cada una de forma independiente y obtener ambas salidas desofuscadas en un solo script. Puedes acortar aún más la receta usando bucles para saltar las múltiples rondas de Raw Inflate.
Crédito: guión original proporcionado por @NtSetDefault, recetas originales de Cyberchef creadas por @thebluetoob y refinadas por @mattnotmax en una sola receta.
[{"op":"Regular expression","args":["User defined","(?<=')(.*?)(?=')",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"ROT13","args":[true,true,13]},{"op":"Raw Inflate","args":[0,0,"Adaptive",false,false]},{"op":"ROT13","args":[true,true,13]},{"op":"Subsection","args":["(?<=\$Fadly.*?")(.*?)(?=\")",true,true,false]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"URL Decode","args":[]},{"op":"From HTML Entity","args":[]},{"op":"Merge","args":[]},{"op":"Subsection","args":["(?<=\$Gans.*?")(.*?)(?=\")",true,true,false]},{"op":"Reverse","args":["Character"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Label","args":["jump"]},{"op":"Raw Inflate","args":[0,0,"Adaptive",false,false]},{"op":"Jump","args":["jump",2]},{"op":"Zlib Inflate","args":[0,0,"Adaptive",false,false]},{"op":"Zlib Inflate","args":[0,0,"Adaptive",false,false]}]
Elija su veneno con este ingenioso script de @0xtornado que determina qué tipo de ofuscación tiene su script de baliza a través de saltos condicionales de CyberChef para analizar el código shell. Primero, el código busca una expresión regular 'bxor' simple para luego saltar a la sección apropiada de la receta. De lo contrario, analiza el segundo tipo. Usando las 'pestañas' de CyberChef puedes cargar dos scripts diferentes y obtener tus datos. ¡Impresiona a tus colegas y al amigable equipo rojo o al equipo local de APT!
Crédito: https://twitter.com/0xtornado/status/1255866333545316352
[{"op":"Conditional Jump","args":["bxor",false,"Decode_Shellcode",10]},{"op":"Label","args":["Decode_beacon"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Decode text","args":["UTF-16LE (1200)"]},{"op":"Regular expression","args":["User defined","[a-zA-Z0-9+/=]{30,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Gunzip","args":[]},{"op":"Label","args":["Decode_Shellcode"]},{"op":"Regular expression","args":["User defined","[a-zA-Z0-9+/=]{30,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"XOR","args":[{"option":"Decimal","string":"35"},"Standard",false]}]
No todo el mundo piensa en CyberChef como una herramienta para el análisis de archivos de registro. Pero es útil si tiene que transponer, reformatear o manipular un archivo de registro para adaptarlo a su propósito. Aquí, tenemos un archivo de registro de Apache con una marca de tiempo que no conduce a un análisis temporal útil con otros archivos de registro: el formato de fecha no se puede ordenar, está entre corchetes y está en UTC +1, no en un UTC estándar. Usando Subsecciones, Registros y Transponer Fecha y Hora podemos cambiar el formato de la marca de tiempo y mover la columna para poder combinarla con otros datos. ¡Impresionante!
Crédito: @gazambelli y @mattnotmax
[{"op":"Fork","args":["\n","\n",false]},{"op":"Subsection","args":["\[.*\+0100\]",true,true,false]},{"op":"Find / Replace","args":[{"option":"Regex","string":"\[|\]"},"",true,false,true,false]},{"op":"Translate DateTime Format","args":["Standard date and time","DD/MMM/YYYY:HH:mm:ss ZZ","Etc/GMT-1","YYYY-MM-DDTHH:mm:ss ZZ","UTC"]},{"op":"Merge","args":[]},{"op":"Fork","args":["\n","\n",false]},{"op":"Register","args":["(.*)(\d{4}-.*\+0000)(.*)",true,false,false]},{"op":"Find / Replace","args":[{"option":"Simple string","string":"$R0$R1$R2"},"$R1 $R0 $R2",true,false,true,false]}]
Una variante del cargador PowerShell estándar para Cobalt Strike. Aquí, la primera capa de ofuscación es un blob comprimido con GZi dividido en dos matrices CharCode. El resultado final depende de usted: desensamblaje, cadenas, extracción de IP o análisis de UserAgent. Elige tu propia aventura.
Fuente: @scumbots y https://pastebin.com/raw/mUFM4fcQ
[{"op":"Regular expression","args":["User defined","\d{1,3}",true,true,false,false,false,false,"List matches"]},{"op":"From Charcode","args":["Line feed",10]},{"op":"Gunzip","args":[]},{"op":"Regular expression","args":["User defined","[a-zA-Z0-9+/=]{30,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"XOR","args":[{"option":"Decimal","string":"35"},"Standard",false]},{"op":"Strings","args":["Single byte",5,"All printable chars (A)",false]}]
El .dll malicioso de SolarWinds contenía cadenas ofuscadas mediante compresión y base64. En lugar de perder el contexto en su análisis, podemos realizar una rápida desofuscación en línea seleccionando las cadenas con una Subsección y luego convirtiéndolas. El resultado es una función que se vuelve legible con contexto y evita cortar y pegar potencialmente propenso a errores.
Crédito: @cybercdh y @Shadow0pz
Fuente: https://twitter.com/cybercdh/status/1338885244246765569 & https://twitter.com/Shadow0pz/status/1338911469480661000
[{"op":"Subsection","args":["(?<=\(\")(.*)(?=\"\))",true,true,false]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Raw Inflate","args":[0,0,"Adaptive",false,false]}]
Gootkit almacena una DLL dentro del registro como PowerShell codificado. CyberChef hace picadillo este malware llamado "sin archivos". Una receta útil proporcionada por @StefanKelm vuelve a poner el 'archivo' en 'sin archivo' (sí, yo mismo pensé en eso, estamos hasta la receta 32, amigos míos...).
Fuente: https://github.com/StefanKelm/cyberchef-recipes
[{"op":"Decode text","args":["UTF-16LE (1200)"]},{"op":"Regular expression","args":["User defined","[a-zA-Z0-9+/=]{30,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Decode text","args":["UTF-16LE (1200)"]},{"op":"Regular expression","args":["User defined","[a-zA-Z0-9+/=]{30,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Raw Inflate","args":[0,0,"Adaptive",false,false]}]
Utilizando la poderosa operación de Registros, una práctica receta de @Cryptolaemus1 extrae URL ofuscadas de PowerShell desde un documento malicioso de Emotet. Aquí los grupos de captura se utilizan para capturar la cadena de búsqueda/reemplazo que desofusca las URL. Cosas impresionantes.
Crédito: @Cryptolaemus y @NtRaiseException()
Fuente: https://twitter.com/Cryptolaemus1/status/1319357369902649344
[{"op":"Regular expression","args":["User defined","[a-zA-Z0-9+/=]{30,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Decode text","args":["UTF-16LE (1200)"]},{"op":"Find / Replace","args":[{"option":"Regex","string":"'\)?\+\(?'"},"",true,false,true,false]},{"op":"Register","args":["\(+'(=[\w\d]*)'\)+,'/'\)",true,false,false]},{"op":"Find / Replace","args":[{"option":"Simple string","string":"$R0"},"/",true,false,true,false]},{"op":"Register","args":["\/(.)http",true,false,false]},{"op":"Find / Replace","args":[{"option":"Simple string","string":"$R1"},"\n",true,false,true,false]},{"op":"Find / Replace","args":[{"option":"Regex","string":"'"},"\n",true,false,true,false]},{"op":"Extract URLs","args":[false]}]
Didier Stevens demuestra la asombrosa simplicidad y utilidad de CyberChef extrayendo URL de documentos OOXML (por ejemplo, archivos .docx). Al descomprimir el archivo y filtrar el "bueno conocido", se pueden inspeccionar las URL restantes. No olvide desactivar para evitar clics innecesarios o errores de seguridad operativa. Combínelo con la funcionalidad de 'pestañas' de CyberChef y podrá analizar un lote de archivos.
Crédito: @DidierStevens
Fuente: https://isc.sans.edu/diary/27020
[{"op":"Unzip","args":["",false]},{"op":"Extract URLs","args":[false]},{"op":"Filter","args":["Line feed","http://schemas\.openxmlformats\.org/",true]},{"op":"Filter","args":["Line feed","http://schemas\.microsoft\.com/",true]},{"op":"Filter","args":["Line feed","http://purl\.org/",true]},{"op":"Filter","args":["Line feed","http://www\.w3\.org/",true]},{"op":"Defang URL","args":[true,true,true,"Valid domains and full URLs"]}]
Un script de ransomware PowerShell cifrado con AES no es rival para CyberChef. Aquí podemos convertir Base64 a hexadecimal, extraer el IV y la clave en registros y usarlos para descifrar el blob. Una vez descifrados, podemos examinar los datos e identificar un archivo PE de 1925 bytes en el blob descifrado. Al extraerlo, podemos utilizar otras herramientas para identificar su comportamiento, incluida la detonación o el análisis estático.
Fuente: @mattnotmax
Más información: Powershell lanza un ransomware REvil
[{"op":"Subsection","args":["(?<=\")([a-zA-Z0-9+/=]{20,})(?=\")",true,true,false]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"To Hex","args":["None",0]},{"op":"Merge","args":[]},{"op":"Register","args":["(?<=\")([a-fA-F0-9]{32})(?=\")",true,false,false]},{"op":"Register","args":["(?<=\")([a-fA-F0-9]{64})(?=\")",true,false,false]},{"op":"Regular expression","args":["User defined","[a-f0-9]{100,}",true,true,false,false,false,false,"List matches"]},{"op":"AES Decrypt","args":[{"option":"Hex","string":"$R1"},{"option":"Hex","string":"$R0"},"CBC","Hex","Raw",{"option":"Hex","string":""},""]},{"op":"Regular expression","args":["User defined","[a-f0-9]{30,}",true,true,false,false,false,false,"List matches"]},{"op":"From Hex","args":["Auto"]},{"op":"Drop bytes","args":[0,1925,false]},{"op":"SHA2","args":["256",64,160]}]
Ok, estoy haciendo un poco de trampa aquí, ya que la mayor parte del trabajo lo realiza una API. Pero es un buen ejemplo para recordarle que la operación de solicitudes HTTP puede ser una forma súper poderosa de potenciar CyberChef. Aquí creé un pequeño 'formulario de entrada' en el panel de entrada de CyberChef y utilicé expresiones regulares para capturar los parámetros clave para la llamada API en Registros. Un pequeño masaje de texto y podrás tener un generador rápido y fácil cuando lo necesites. Guardado como una receta para cuando necesites entregar una nueva contraseña rápida a un nuevo usuario.
Fuente: @mattnotmax
[{"op":"Register","args":["(?<=number:\s)(.*)",true,false,false]},{"op":"Register","args":["(?<=words:\s)(.*)",true,false,false]},{"op":"Register","args":["(?<=length:\s)(.*)",true,false,false]},{"op":"HTTP request","args":["GET","https://makemeapassword.ligos.net/api/v1/passphrase/plain?pc=$R0&wc=$R1&sp=y&maxCh=$R2","","Cross-Origin Resource Sharing",false]},{"op":"Find / Replace","args":[{"option":"Regex","string":" "},"-",true,false,true,false]}]
La mayoría de los entornos sandbox entregan un archivo comprimido con la contraseña genérica "infectado". ¿Por qué arriesgarse a realizar la extracción en su escritorio cuando puede extraer el contenido en CyberChef? Aquí tenemos un archivo .eml
de correo electrónico que incluye un archivo adjunto OLE2. Strings
identifica Base64 que luego se extrae y decodifica para extraer la segunda etapa.
Fuente: Any.run
[{"op":"Unzip","args":["infected",false]},{"op":"Find / Replace","args":[{"option":"Regex","string":"\n"},"",true,false,true,false]},{"op":"Regular expression","args":["User defined","[a-zA-Z0-9+/=]{400,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Strings","args":["16-bit littleendian",400,"Null-terminated strings (U)",false]},{"op":"Decode text","args":["UTF-16LE (1200)"]},{"op":"Regular expression","args":["User defined","[a-zA-Z0-9+/=]{2000,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Decode text","args":["UTF-16LE (1200)"]},{"op":"Extract URLs","args":[false]},{"op":"Defang URL","args":[true,true,true,"Valid domains and full URLs"]}]
Una sustitución es una sustitución. Puede ser letra por letra, letra por número o letra por... ¿calavera? Aquí la ofuscación puede parecer inicialmente más confusa, pero en realidad no es diferente a otros tipos. Buscar/Reemplazar, Subsección, Desde Base64... todo un día libre estándar para CyberChef. Invertí la primera sección para permitir la extracción de la URL y luego continué con la desofuscación.
Fuente: any.run
Crédito: https://twitter.com/neonprimetime/status/1365351048525791232
[{"op":"Find / Replace","args":[{"option":"Regex","string":"☠"},"B",true,false,true,false]},{"op":"Subsection","args":["[a-zA-Z0-9+/=]{300,}",true,true,false]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Decode text","args":["UTF-16LE (1200)"]},{"op":"Reverse","args":["Character"]},{"op":"Merge","args":[]},{"op":"Find / Replace","args":[{"option":"Simple string","string":"_✉✈_"},"A",true,false,true,false]},{"op":"Regular expression","args":["User defined","[a-zA-Z0-9+/=]{300,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]}]
GoldMax, también conocido como Sunshuttle, suelta un archivo de configuración cifrado cuando se ejecuta. En el análisis RE realizado por Microsoft y Fireeye, el algoritmo y las claves se identificaron y publicaron, lo que facilita el descifrado con CyberChef.
Fuente 1: https://www.microsoft.com/security/blog/2021/03/04/goldmax-goldfinder-sibot-analyzing-nobelium-malware/
Fuente 2: https://www.fireeye.com/blog/threat-research/2021/03/sunshuttle- second-stage-backdoor-targeting-us-based-entity.html
[{"op":"From Base64","args":["A-Za-z0-9-_",true]},{"op":"AES Decrypt","args":[{"option":"UTF8","string":"hz8l2fnpvp71ujfy8rht6b0smouvp9k8"},{"option":"Hex","string":"00000000000000000000000000000000"},"CFB","Raw","Raw",{"option":"Hex","string":""}]},{"op":"Subsection","args":["[a-zA-Z0-9+/=]{50,}",true,true,false]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Merge","args":[]},{"op":"Drop bytes","args":[0,16,false]},{"op":"Take bytes","args":[0,120,false]},{"op":"Register","args":["(^.*?)\|(.*?)\|(.*?)\|(.*)\|(.*)",true,false,false]},{"op":"Find / Replace","args":[{"option":"Regex","string":".*"},"MD5 of Execution Time:\t\t\t$R0\nLower/Upper Limit for Sleep Time:\t$R1\nUtilize “blend-in” traffic requests:\t$R2\nEnd execution timestamp:\t\t$R2\nUser-agent for HTTPS requests:\t\t$R4",false,false,false,false]}]
Sí, hay una operación de código morse en CyberChef. Sí, es posible que necesites usarlo algún día. Lamentablemente, esto no era malware, pero CyberChef hace el trabajo. Gracias a @pmelson y @cyber__sloth por esta entrada.
Fuente: https://pastebin.com/raw/PvLuparz
Receta: https://twitter.com/cyber__sloth/status/1367904890157211654
[{"op":"From Binary","args":["Space",8]},{"op":"From Morse Code","args":["Space","Forward slash"]},{"op":"Reverse","args":["Character"]},{"op":"ROT13","args":[true,true,false,13]}]
¿Qué queremos? ¡Codificación mixta con hexadecimal y octal en un solo conjunto! ¿Cuándo lo queremos? ¡Ahora!
Fuente: https://twitter.com/JCyberSec_/status/1368963598475739137
[{"op":"Fork","args":["\n","\n",false]},{"op":"Subsection","args":["\\x[a-fA-F0-9]{2}",true,true,false]},{"op":"From Hex","args":["\x"]},{"op":"Merge","args":[]},{"op":"Subsection","args":["\\\d{3}",true,true,false]},{"op":"Find / Replace","args":[{"option":"Regex","string":"\\"},"",true,false,true,false]},{"op":"From Octal","args":["Space"]}]
Este webshell de varias capas es un buen caso para subsecciones y saltos. Puedes dividirlo en partes o completarlo (como se muestra a continuación) en una sola receta CyberChef.
Fuente: https://twitter.com/mattnotmax/status/1377829935780274176
[{"op":"Regular expression","args":["User defined","[a-zA-Z0-9+/=]{30,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Subsection","args":["(?<=\\x)([a-fA-F0-9]{2})",true,true,false]},{"op":"From Hex","args":["\x"]},{"op":"Merge","args":[]},{"op":"Find / Replace","args":[{"option":"Regex","string":"\\x"},"",true,false,true,false]},{"op":"Subsection","args":["[a-zA-Z0-9+/=]{30,}=",true,true,false]},{"op":"From