noscriptfb
img
img

GHIDRA

img
GHIDRA

GHIDRA

What is Ghidra?

Ghidra is an open source and free reverse engineering application developed by National Security Agency(NSA) which is available on all the platforms i.e Mac,Linux,Windows. The binaries were released at RSA Conference in the year 2019 in March; the sources were published after a month on GitHub. Ghidra is seen by many pentesters as a competitor to IDA Pro. The source code is completely available for download at ghidra-sre.org along with the latest 9.1.1 patch.

 

KEY FEATURES:

It helps pen testers to analyze malicious code and various types of malware like viruses and has given pen testers a better understanding of potential vulnerabilities in their networks and applications. Has an arsenal of software analysis tools for analyzing fully compiled code on various platforms including Windows, Mac OS, and Linux.

Key features include:

1. Disassembly
2. Assembly
3. Decompilation
4. Graphing and scripting

multiple other features that support a wide variety of processor instruction sets and executable formats that can run in both user-interactive and system automated modes.
Pentesters develop their own Ghidra plug-in components and scripts using the exposed API in Ghidra.

INSTALLATION OF GHIDRA:

To install Ghidra you need to download the main Ghidra zip file from Here

All About GHIDRA | Pristine InfoSolutions PVT LTD

After the download is complete extract the zip file and go to the directory where the file is extracted.

All About GHIDRA | Pristine InfoSolutions PVT LTD

Open Command line/Terminal in this directory and run this command.

#./ghidraRun

All About GHIDRA | Pristine InfoSolutions PVT LTD

All About GHIDRA | Pristine InfoSolutions PVT LTD

That completes the process of installation.

Testing an application:

To test an application we are going to take the infamous WannaCry Ransomeware’s malware.

You can download the malware from here:
https://www.ghidra.ninja/samples/wannacry.zip

Password : ghidra.ninja

(Ps: Do not install this on your windows system at all if you wanna see how it works test it on a windows virtual machine)

After you have downloaded and extracted the wannacry malware then just go ahead and drag and drop the any.exe file in Ghidra after creating a project.

All About GHIDRA | Pristine InfoSolutions PVT LTD

You need to install one more application i.e. WRESTOOL Just type #apt install icoutils in your kali terminal and it will be installed As it is a part of icoutils pack this tool will be used in future for exploitation.

All About GHIDRA | Pristine InfoSolutions PVT LTD

Now lets start reverse engineering wannacry:

1. First analyze the wannacry file

All About GHIDRA | Pristine InfoSolutions PVT LTD

2. Select Decompiler Parameter ID to analyze.

All About GHIDRA | Pristine InfoSolutions PVT LTD

3. After it has been analyzed go to the functions tab and search for entry point.

After finding the entry point just analyze the file manually you will find the this file at the end uses a winmap function which is used by a lot of the windows exe file and you keep analyzing the file you will find a lot of the other function which are supposed to be altered according to you give them the name which you like you will need to change the data type of various functions labels and variables as well because Ghidra does not manage to get all the information from the precompiled wannacry.exe

Here are few images for what I did:

All About GHIDRA | Pristine InfoSolutions PVT LTD

All About GHIDRA | Pristine InfoSolutions PVT LTD

All About GHIDRA | Pristine InfoSolutions PVT LTD

All About GHIDRA | Pristine InfoSolutions PVT LTD

All About GHIDRA | Pristine InfoSolutions PVT LTD

All About GHIDRA | Pristine InfoSolutions PVT LTD

All About GHIDRA | Pristine InfoSolutions PVT LTD

All About GHIDRA | Pristine InfoSolutions PVT LTD

Now we need the wrestool :

Just type in the terminal : wrestool wannacry

It will give you an output like this:

All About GHIDRA | Pristine InfoSolutions PVT LTD

After getting the output you see that wrestool gave you a resource 1831 We just need to extract the resource so in order to do that type this command:

wrestool --name=1831 -R -x wannacry > 1831.bin

file 1831.bin

All About GHIDRA | Pristine InfoSolutions PVT LTD

Now we need to analyze the 1831.bin file so drag and drop the file in ghidra

Here we need to start with the strings rather than function and after analyzing the strings go to function and analyze it

All About GHIDRA | Pristine InfoSolutions PVT LTD

All About GHIDRA | Pristine InfoSolutions PVT LTD

All About GHIDRA | Pristine InfoSolutions PVT LTD

All About GHIDRA | Pristine InfoSolutions PVT LTD

All About GHIDRA | Pristine InfoSolutions PVT LTD

All About GHIDRA | Pristine InfoSolutions PVT LTD

All About GHIDRA | Pristine InfoSolutions PVT LTD

Now we need to analyze the 1831.bin file using wrestool

The commands are gonna be the same :

# wrestool 1831.bin
# wrestool --name=2058 -R -x 1831.bin > 2058.bin
# file 2058.bin
# wrestool --name=1831 -R -x wannacry > 2058.XIA

All About GHIDRA | Pristine InfoSolutions PVT LTD

After this we need to unzip the file use command: # Unzip 2058.XIA

It will ask for a password so while analyzing the 1831.bin file using Ghidra You find that there was a strange string stored “WNcry@2ol7” try this as the password of the archive it will be extracted.

All About GHIDRA | Pristine InfoSolutions PVT LTD

After you extract the files you will find vaiour images and txt files which are used in the infamous wannacry page.

All About GHIDRA | Pristine InfoSolutions PVT LTD

All About GHIDRA | Pristine InfoSolutions PVT LTD

All About GHIDRA | Pristine InfoSolutions PVT LTD

All About GHIDRA | Pristine InfoSolutions PVT LTD

CONS of using Ghidra:

1. The versions befor 9.0.4 of Ghidra were rce exploitable using XXE > RCE

2. Ghidra always messes up your project by saving it as one of the temporary projects so you need to take a back up always.

Conclusion:

Ghidra is one of the best tools out there to practice reverse engineering as it assists you by decompiling a lot of the information which is not achievable by a lot of the other reverse engineering tools.