Robber is open source tool for finding executables prone to DLL hijacking

Robber is a free open source tool developed using Delphi XE2 without any 3rd party dependencies.

  • In Version 1.7 Robber doesn't require administrator rights by default because of new write permission check feature, so if you want to scan somewhere like 'ProgramFiles' you need to run Robber with admin rights.

What is DLL hijacking?

Windows has a search path for DLLs in its underlying architecture. If you can figure out what DLLs an executable requests without an absolute path (triggering this search process), you can then place your hostile DLL somewhere higher up the search path so it'll be found before the real version is, and Windows will happilly feed your attack code to the application.

So, let's pretend Windows's DLL search path looks something like this:

A) . <-- current working directory of the executable, highest priority, first check

B) \Windows

C) \Windows\system32

D) \Windows\syswow64 <-- lowest priority, last check

and some executable "Foo.exe" requests "bar.dll", which happens to live in the syswow64 (D) subdir. This gives you the opportunity to place your malicious version in A), B) or C) and it will be loaded into executable.

As stated before, even an absolute full path can't protect against this, if you can replace the DLL with your own version.

Microsoft Windows protect system paths like System32 using Windows File Protection mechanism but the best way to protect executable from DLL hijacking in enterprise solutions is :

  • Use an absolute path instead of a relative path
  • If you have a personal sign, sign your DLL files and check the sign in your application before load DLL into memory. Otherwise, check the hash of DLL file with original DLL hash)

And of course, this isn't really limited to Windows either. Any OS which allows for dynamic linking of external libraries is theoretically vulnerable to this.

Robber uses a simple mechanism to figure out DLLs that prone to hijacking :

  1. Scan import table of the executable and find out DLLs that linked to executable
  2. Search for DLL files placed inside executable that match with linked DLL (as I said before current working directory of the executable has the highest priority)
  3. If any DLL found, scan the export table of theme
  4. Compare the import table of the executable with an export table of DLL and if any matching was found, the executable and matched common functions flag as DLL hijack candidate.

Features :

  • Ability to select scan type (signed/unsigned applications)
  • Determine executable signer
  • Determine which referenced DLLs candidate for hijacking
  • Determine exported method names of candidate DLLs
  • Configure rules to determine which hijacks is a best or good choice for use and show them in different colors
  • Ability to check to write permission of executable directory that is a good candidate for hijacking

Find out latest Robber executable here


More: https://github.com/MojtabaTajik/Robber

May 8, 2020
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Inline Feedbacks
View all comments
© HAKIN9 MEDIA SP. Z O.O. SP. K. 2013

Privacy Preference Center

Necessary

Cookies that are necessary for the site to function properly. This includes, storing the user's cookie consent state for the current domain, managing users carts to using the content network, Cloudflare, to identify trusted web traffic. See full Cookies declaration

gdpr, PYPF, woocommerce_cart_hash, woocommerce_items_in_cart, _wp_wocommerce_session, __cfduid [x2]

Marketing


tr, fr
ads/ga-audiences

GET A FREE EDITION!
Join our newsletter and receive for FREE, our premium edition “Brute Force and Supply Chain Attacks”
x