All Projects → silentsignal → Sheep Wolf

silentsignal / Sheep Wolf

Wolves Among the Sheep

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Sheep Wolf

Gonnacry
A Linux Ransomware
Stars: ✭ 341 (+147.1%)
Mutual labels:  cryptography, malware
Padding Oracle Attacker
🔓 CLI tool and library to execute padding oracle attacks easily, with support for concurrent network requests and an elegant UI.
Stars: ✭ 136 (-1.45%)
Mutual labels:  cryptography
Demo Twilio Backend Nodejs
A sample backend that demonstrates how to generate a Virgil JWT and Twilio token used for authentication with the Virgil and Twilio services
Stars: ✭ 128 (-7.25%)
Mutual labels:  cryptography
Sodium Plus
Developer-friendly libsodium interface
Stars: ✭ 132 (-4.35%)
Mutual labels:  cryptography
Ergo Pe Av
🧠 🦠 An artificial neural network and API to detect Windows malware, based on Ergo and LIEF.
Stars: ✭ 130 (-5.8%)
Mutual labels:  malware
Uitkyk
Runtime memory analysis framework to identify Android malware
Stars: ✭ 133 (-3.62%)
Mutual labels:  malware
Torchbear
🔥🐻 The Speakeasy Scripting Engine Which Combines Speed, Safety, and Simplicity
Stars: ✭ 128 (-7.25%)
Mutual labels:  cryptography
Curv
Rust language general purpose elliptic curve cryptography.
Stars: ✭ 138 (+0%)
Mutual labels:  cryptography
Ypsilon
Automated Use Case Testing
Stars: ✭ 135 (-2.17%)
Mutual labels:  malware
Useful Crypto Resources
A place for useful crypto-related resources plus some of my fav stuff
Stars: ✭ 131 (-5.07%)
Mutual labels:  cryptography
Botan
Cryptography Toolkit
Stars: ✭ 1,798 (+1202.9%)
Mutual labels:  cryptography
Merkle Tree
Merkle Trees and Merkle Inclusion Proofs
Stars: ✭ 130 (-5.8%)
Mutual labels:  cryptography
Amsiscanner
A C/C++ implementation of Microsoft's Antimalware Scan Interface
Stars: ✭ 134 (-2.9%)
Mutual labels:  malware
Libsodium Doc
Gitbook documentation for libsodium
Stars: ✭ 129 (-6.52%)
Mutual labels:  cryptography
Networm
Python network worm that spreads on the local network and gives the attacker control of these machines.
Stars: ✭ 135 (-2.17%)
Mutual labels:  malware
Stream Ciphers
Collection of stream cipher algorithms
Stars: ✭ 127 (-7.97%)
Mutual labels:  cryptography
Practicalmalwarelabs
Keep track of the labs from the book "Practical Malware Analysis"
Stars: ✭ 130 (-5.8%)
Mutual labels:  malware
Threadboat
Program Uses Thread Execution Hijacking To Inject Native Shell-code Into a Standard Win32 Application
Stars: ✭ 132 (-4.35%)
Mutual labels:  malware
Mstar Bin Tool
Scripts to manipulate Mstar firmware binaries (e.g. MstarUpgrade.bin, LetvUpgrade.bin etc)
Stars: ✭ 137 (-0.72%)
Mutual labels:  cryptography
Cli
🧰 A zero trust swiss army knife for working with X509, OAuth, JWT, OATH OTP, etc.
Stars: ✭ 2,151 (+1458.7%)
Mutual labels:  cryptography

Wolves Among the Sheep

Some security tools still stick to MD5 when identifying malware samples years after practical collisions were shown against the algorithm. This can be exploited by first showing these tools a harmless sample (Sheep) and then a malicious one (Wolf) that have the same MD5 hash. Please use this code to test if the security products in your reach use MD5 internally to fingerprint binaries and share your results by issuing a pull request updating the contents of results/!

Works-on-a-different-machine-than-mine version, feedback is welcome!

Dependencies

  • 32-bit Windows (virtual) machine (64-bit breaks stuff)
  • Visual Studio 2012 to compile the projects (Express will do)
  • Fastcoll for collisions
  • Optional: Cygwin+MinGW to compile Evilize

Usage

Extract Fastcoll to the fastcoll directory. Name the executable fastcoll.exe

Use shepherd.bat to generate wolf.exe and sheep.exe (in the VS Development Command Prompt):

> shepherd.bat YOURPASSWORD your_shellcode.raw

After this step you should have your two colliding binaries (sheep.exe and wolf.exe in the evilize directory).

For more information see the tutorial of Peter Selinger, older revisions of this document or the source code...

How does it work?

  • shepherd.bat executes shepherd.exe with the user supplied command line arguments
    • shepher.exe generates a header file (sc.h) that contains the encrypted shellcode, the password and the CRC of the plain shellcode
  • shepherd.bat executes the build process of sheep.exe
    • sheep.exe is built with sc.hincluded by Visual Studio
  • shepherd.bat executes evilize.exe
    • evilize.exe calculates a special IV for the chunk of sheep.exe right before the block where the collision will happen
    • evilize.exe executes fastcoll.exe with the IV as a parameter
      • fastcoll.exe generates two 128 byte colliding blocks: a and b
    • evilize.exe replaces the original string buffers of sheep.exe so that they contain combinations a and b
    • The resulting files (evilize/wolf.exe and evilize/sheep.exe ) have the same MD5 hashes but behave differently. The real code to be executed only appears in the memory of evilize/wolf.exe.

Testing Methodology

To test the security products in your reach you should generate two pairs of samples (SHEEP1-WOLF1 and SHEEP2-WOLF2), preferably with the same payload. Since samples (or their fingerprints) are usually uploaded to central repositories (or "the cloud") precompiled samples are not included to avoid conflicts between independent testers.

After the samples are ready follow the methodology shown on the diagram below:

Testing Methodology

(*) If the product is not able to detect the first malicious sample, there are more serious problems to worry about than crypto-fu. In fact, the simple cryptography included in the provided boilerplate code poses as a hard challenge for various products... Try to use more obvious samples!

(**) The product most probably uses some trivial method to detect the boilerplate insted of the actual payload. You can try to introduce simple changes to the code like removing debug strings.

Please don't forget to share your positive results by issuing a pull request to the RESULTS.md file!

References

LICENSE

Licenced under GNU/GPL if not otherwise stated.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].