-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Possible issue with dynamic code generation/compile-time obfuscation #833
Comments
Obfuscation is incomplete, this is a known issue. However, the obfuscator is also always improving! Presently, the obfuscation is intended to complicate automated analysis, not manual analysis in creating static signatures. |
What version of Sliver are you using? |
Looks like something's changed in the protobuf package and a bunch of new symbols/strings are added now. I'll have a look. |
Hi @rkervella I am using v1.5.24. Thanks for looking into this! |
Ran a few tests, looks like garble is missing out a bunch of stuff on the protobuf generated files. Probably due to an update in either Go, Garble (regression?) or the protobuf package itself. Not sure what we can do at this point apart from pinging mvdan. |
Let me fix the garble unit tests before we invest more time. |
I already tested with upstream Garble, no difference. |
We should file a ticket with upstream Garble then while we sort out the details. |
Does not look like this has been fixed yet @moloch-- . Was it supposed to be resolved after the latest update? Tested on v1.5.29. |
Ah okay, at this point it's an upstream garble issue (I think these are pb struct json annotations not strings), though we may be able to do an ad-hoc patch. |
Reflections is a known limitation of the obfuscator though, so not sure there's much we can do. |
@rkervella do you think we can strip these? |
No, it's a garble issue. These are not annotations in the protobuf, but the types and function names, so we can't really replace them after code generation (or we'll end up the goobfuscate route again). |
Okay we'll have to file a bug with garble. |
Describe the bug
Windows Defender has established a signature for Sliver binaries, but Sliver is described as having dynamic code generation & compile-time obfuscation capabilities. AV evasion is out of scope for this project, but considering Sliver binaries are being detected based on a static signature, it might be an in-scope issue.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Generated binaries should evade static analysis.
Screenshots
Desktop (please complete the following information):
Additional context
The functions in question all seem to be DNS related. File: sliver.pb.go around line 5000.
The text was updated successfully, but these errors were encountered: