Untitled

quelque notes sur l’OPSEC avec sliver

Blue Team Side

Hunting Sliver

obfuscation d’implant & export formats

L'obfuscation d’implant est un point fort de sliver. Il est écrit en Golang, et utilise garble pour l'obfuscation ainsi que go-donut pour la création de shellcode.

OPSEC note: les EDR/AV essaient de détecter la capacité d'obfuscation de sliver. on peut utiliser un loader custom, mais pour le moment, sliver a beaucoup moins de signatures que la plupart des autres C2.

staging

sliver supporte uniquement le staging protocol de msf qui est servit soit en TCP soit en HTTP/S.

data = (DWORD)len(shellcode) + shellcode

le staging shellcode est juste un shellcode de msf, sauf qu'il pointe toujours vers une url aléatoire se terminant par une extension préconfigurée (.woff par défaut)

OPSEC note: Évidemment, on peut utilise un custom staging pour sliver. il faut prendre en compte que les implants sont gros, et c’est à planifier en conséquence. (attention aux différentes techniques de stomping).

C2 communication

sliver fournit une communication C2 obfusqué, structuré et de manière procédurales:

obfuscate(encrypt(protobuf(C2_message)))

cela signifie que la plupart des problèmes liés au profil de communication ont disparu. par contre il y a quelque chose qui peut être configuré et des détections possibles dont on doit être conscient.

Si vous êtes intéressé par le fonctionnement de l'échange de clés asymétriques de sliver, c’est ici

http/s