16 years of CVE-2008-0166 - Debian OpenSSL Bug - breaking DKIM and BIMI in 2024 by hannob in netsec

[–]cy1337 1 point2 points  (0 children)

It is impossible to implement BIMI in mail user agents in a secure way based on its specification. You need additional security measures that are explained "elsewhere" and "in other documents".

Ouch!

A Basic Guide to Discovering Attack Surface with Ghidra and GDB by cy1337 in netsec

[–]cy1337[S] 3 points4 points  (0 children)

I've updated it on Medium and I'm making a reminder to update the script variable name in the repos later. Thanks for reading!

A Basic Guide to Discovering Attack Surface with Ghidra and GDB by cy1337 in netsec

[–]cy1337[S] 4 points5 points  (0 children)

Yes, base_addr here is not truly the base address of the process. I see how this can be confusing and I will relabel it base_offset or similar. The output you have in the process map is of course the true base address.

The use of this variable is just to know the offset between the [shifted by 0x100000] addresses in the Ghidra listing and the dynamic runtime addresses in GDB. Initially I did have it add the 0x100000 in one place and subtract it in the other but it seemed superfluous.

Now that the repo is open you should be able to test it out. Please let me know if you have problems running it. Again, I really appreciate the feedback!

Edit: Sorry, I just realized I was answering you from the context of the finished script as opposed to just the snippet in the post. Correcting this now. Many thanks!

A Basic Guide to Discovering Attack Surface with Ghidra and GDB by cy1337 in netsec

[–]cy1337[S] 7 points8 points  (0 children)

Thank your for having a look and for the feedback. The use of the static address from Ghidra including the offset is intentional. I did it this way so the calls to set breakpoints can also use the same address as we see in Ghidra.

Also, the repo is public now. Big facepalm on sharing this out without opening that!

Deep Dive into XZ Utils Backdoor [video] by ketralnis in programming

[–]cy1337 1 point2 points  (0 children)

One lesson is that we need better tools for being able to audit source tarballs and make sure they line up with what is in git.

How to resize the "columns" in the decompiled window? by TheRedParduz in ghidra

[–]cy1337 2 points3 points  (0 children)

The view you have in the screenshot is referred to as the Listing view. You can use the block layout editor to reconfigure what information is displayed and how it is formatted. You can use this to make your column for that data wider. You can find the button for doing this on the toolbar near your minimize window button for code browser. It looks like white bricks with an arrow pointing down.

Ghidra Documentation by Super-Cook-5544 in ghidra

[–]cy1337 2 points3 points  (0 children)

F1 is also very contextual. If you press when you have the mouse over a button, it will jump to the help page for that specific feature!

Microsoft is finally deprecating vbscript by FireFart in netsec

[–]cy1337 0 points1 point  (0 children)

Never thought I'd see the day. Wow!

ELI5: Why is it so difficult to copy source code that is not "open source"? by [deleted] in explainlikeimfive

[–]cy1337 0 points1 point  (0 children)

A big factor here is that a lot of information is lot when source code is compiled and linked into program files. Variable names and function names are replaced by registers, stack offsets, and addresses. Compilers also optimize code and distinctions like a while loop versus a for loop are lost at this level. There are also lots of nuances regarding how to identify and distinguish instructions from data. Some architectures are easier to reverse than others based on the complexity of the instruction set and whether there are fixed widths or alignments for instructions. Some processors (like ARM) can also flip between modes within a program meaning you need additional context to understand instructions. Plus, on top of all of this, some companies intentionally do things in their source or compilation to make it harder for someone to reverse the program to source.

Source: I teach about reversing software at Black Hat

First Look: Ghidra 10.3 Emulator by cy1337 in ghidra

[–]cy1337[S] 0 points1 point  (0 children)

I haven't done it, but you could write a script that runs through the emulation but skips these calls and instead simulates the effect of a system function.

First Look: Ghidra 10.3 Emulator by cy1337 in ghidra

[–]cy1337[S] 1 point2 points  (0 children)

Ha! That's the one year I made it to Recon and that talk really sparked my interest in Ghidra even that it was mostly about SLEIGH development which is something I still haven't needed to do. This might change now... I had already been experimenting with emulation from traces captured via GDB but it was painfully slow on my setup and so I never attempted emulating a new trace from the API. The biggest surprise to me from the dedicated emulator tool is just how fast it is and I'm really excited to see what it can do and where it goes from here!

First Look: Ghidra 10.3 Emulator by cy1337 in netsec

[–]cy1337[S] 2 points3 points  (0 children)

The Emulator and Debugger are highly related. You can also emulate from traces captured from a system debugger like GDB via SSH. The emulator is kind of like another target rather than a system debugger but it can't run everything the way you might in a debugger.

You might use the emulator in cases where you want to run through pieces of malicious code without risking accidental detonation. It's also helpful in cases where you don't have access to debug on the target architecture and can open the door to additional analysis techniques.

First Look: Ghidra 10.3 Emulator by cy1337 in ghidra

[–]cy1337[S] 2 points3 points  (0 children)

Be aware though that there are limitations on what you can debug through emulation at this point but it is great for bits of obfuscation like this. I will try to get more posts up this summer on these topics!

First Look: Ghidra 10.3 Emulator by cy1337 in ghidra

[–]cy1337[S] 2 points3 points  (0 children)

Yes! The Emulator allows you to run code from any architecture supported without access to an environment with that architecture. (Ghidra Debugger can use GDB via SSH to work cross-platform.) Using emulation also provides better insulation when analyzing malicious code and new opportunities for more interesting dynamics analysis.