Skip to content

vol3 plugin that sifts through memory dump for potentially malicious PEs

Notifications You must be signed in to change notification settings

devarjya27/PEscan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 

Repository files navigation

PEscan

a WIP vol3 plugin that looks for potentially suspicious/malicious PEs

Usage

Add pescan.py to volatility3/framework/plugins/windows.

Then run:

vol3 -f mem.dump windows.pescan.PEscan

Plugin Arguments:

--json-output

Output detailed analysis results in JSON format instead of table format. JSON includes complete PE structure analysis, all extracted strings, thread information, and full anomaly details.

Example:

python3 vol.py -f Damian.mem windows.pescan.PEscan --json-output

--snip--

====================    0       0x0     0x0     ====================    0.0     HIGH/CRITICAL   THREAT DETAILS (1 findings)
[1] scvhost.exe 1924    0x13f130000     0xfafff Unknown 6.17    HIGH    Score:10
  Indicators    0       0x0     0x0     PACKED:UPX, HIGH_ENT:6.2, Packer_detected:_UPX  0.0
  File  0       0x0     0x0     \Users\EdwardNygma7\Downloads\windows-patch-update\scvhost.exe  0.0     PPID:1532
  PE_Header     0       0x0     0x0     Arch:0x8664 Sections:3  0.0     Entry:0xf91c0   Packer:UPX
    Section:UPX1        0       0x0     0x0     R:1W:0X:1       6.18    VSize:286720    RSize:284160
    Section:.rsrc       0       0x0     0x0     R:1W:1X:0       5.97    VSize:4096      RSize:2048
  Anomalies     0       0x0     0x0     Packer detected: UPX    0.0
--------------------    0       0x0     0x0     --------------------    0.0

Json output:

--snip--

  "high_threat_details": [
    {
      "process": "scvhost.exe",
      "pid": 1924,
      "ppid": 1532,
      "virtual_address": "0x13f130000",
      "size": "0xfafff",
      "protection": "Unknown",
      "filename": "\\Users\\EdwardNygma7\\Downloads\\windows-patch-update\\scvhost.exe",
      "threat_level": "HIGH",
      "threat_score": 10,
      "indicators": [
        "PACKED:UPX",
        "HIGH_ENT:6.2",
        "Packer_detected:_UPX"
      ],
      "entropy": 6.17,
      "pe_analysis": {
        "valid": true,
        "dos_header": {
          "e_lfanew": 128
        },
        "pe_header": {
          "machine": "0x8664",
          "sections": 3,
          "timestamp": 1683391173,
          "characteristics": "0x22e",
          "is_64bit": true,
          "entry_point": "0xf91c0",
          "image_base": "0x13f130000"
        },
        "sections": [
          {
            "name": "UPX0",
            "virtual_size": 733184,
            "virtual_addr": "0x1000",
            "raw_size": 0,
            "characteristics": "0x60000080",
            "entropy": 0.0,
            "is_executable": true,
            "is_writable": false,
            "is_readable": true
          },
          {
            "name": "UPX1",
            "virtual_size": 286720,
            "virtual_addr": "0xb4000",
            "raw_size": 284160,
            "characteristics": "0x60000040",
            "entropy": 6.18,
            "is_executable": true,
            "is_writable": false,
            "is_readable": true
          },
          {
            "name": ".rsrc",
            "virtual_size": 4096,
            "virtual_addr": "0xfa000",
            "raw_size": 2048,
            "characteristics": "0xc0000040",
            "entropy": 5.97,
            "is_executable": false,
            "is_writable": true,
            "is_readable": true
          }
        ],
        "anomalies": [
          "Packer detected: UPX"
        ],
        "packer": "UPX"
      },
      "strings": {
        "urls": [],
        "ips": [],
        "commands": [],
        "powershell": [],
        "registry": [],
        "suspicious": []
      },
      "threads": []
    }
  ]

Features (tentative)

  • Scans VADs, paged/non-paged pools, and mapped files to detect PE signatures.
  • Performs PE header integrity validation to identify malformed or tampered structures.
  • Verifies section tables for overlaps, inconsistencies, and suspicious section attributes.
  • Detects RWX memory regions associated with PE images.
  • Identifies parent process and mapping anomalies.
  • Analyzes import and export tables.
  • Calculates entropy levels to detect packed, encrypted, or obfuscated PE sections.
  • Recognizes compiler metadata and packer signatures.
  • Extracts and scans strings for C2 indicators, PowerShell scripting traces, and related artifacts.
  • Correlates threads to determine execution originating from suspicious PE regions.
  • Outputs structured findings in JSON format.

About

vol3 plugin that sifts through memory dump for potentially malicious PEs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages