The kit filename says alfa3.php. The binary says Alfa Shell V4 “Tesla” family: the same gzinflate+base64+create_function obfuscation, the same Hmei7 mail() beacon, the same hardcoded default account (username admin, password stored as an unsalted MD5 in the plaintext config header). It is not a byte-identical copy of alfav4-tesla.php, though — alfa3.php is 6f13fa5a… / 252 KB while alfav4-tesla.php is 85d88d15… / 167 KB. They are two distinct packed builds of the same family. The “alfa3” naming is a packaging artifact, not a separate webshell family.

The Naming Deception

This is significant for defenders and analysts who track webshell families by filename. An operator deploying alfa3.php from a kit may believe they are running an older, simpler Alfa variant. They are not. They are running the full V4 Tesla payload — including the author surveillance beacon that reports every compromised host back to the kit author’s Yandex mailbox. The filename mismatch creates a false sense of inventory control: the operator thinks they know what they deployed, but the payload does not match the label.

Author Surveillance Beacon

Every authenticated page load triggers an eval(base64_decode(...)) chain that resolves to a mail() call to a hardcoded Yandex address controlled by the Hmei7 group (Indonesian). The operator harvests victims. The kit author harvests operators. The alfa3.php filename adds a layer: operators who search for “alfa3 vulnerabilities” will not find the V4 Tesla analysis, missing the beacon entirely.

Capabilities

Full-featured file manager, database browser, command execution, CGI backdoor installer, FTP brute-force, mass defacement, network scanner. Default account: username admin hardcoded, password ehsan stored as an unsalted MD5 (a6f452ec3293d7fb72c5b677257b20ec = md5(“ehsan”)) in the plaintext config header — exposed for offline cracking. Session-based auth returns HTTP 403 to unauthenticated requests — scanner-resistant, but the credential hash is exposed regardless.

Vulnerabilities

#ClassImpactStatus
1mail() beacon to Hmei7 on every authenticated loadSupply-chain surveillanceLive-proven
2Default-account credential hash (unsalted MD5) exposed in plaintext configCredential exposureConfirmed

Detection Surface

File-system indicators

IndicatorTypeDetail
SHA256 (alfa3)Hash6f13fa5a8e42bfdd127f17410bde002872de149b47e9153fb5b36ba007341306alfa3.php, 252 KB
SHA256 (alfav4-tesla)Hash85d88d15687c7a98941143f370ea61a98bf73248df2369000f02aefe8443fd90alfav4-tesla.php, 167 KB
Distinct filesNotealfa3 and alfav4-tesla are DIFFERENT files (different hash AND size) — not the same payload
create_function(Code patternObfuscation — removed in PHP 8, silent 0-byte on PHP 7.4
KeluargaHmei7@yandex.comStringAuthor surveillance beacon — mail() on every authenticated session
$tujuanmailVariableTarget email variable for Hmei7 beacon
$pesan_alertVariableAlert message variable for beacon
Default accountAuthUsername admin hardcoded, password ehsan — unsalted MD5 a6f452ec3293d7fb72c5b677257b20ec
alfa3.php filenameFile nameSibling Alfa variant — DIFFERENT hash/size from alfav4-tesla.php (see above), packed independently
RuntimePHP 5.6 onlycreate_function removed in PHP 8

HTTP access-log indicators

Log patternWhat it means
POST pass=Login form
Outbound mail() to KeluargaHmei7@yandex.comAuthor surveillance beacon fires on every authenticated session
create_function(Obfuscation mechanism (PHP 5.6 only — removed in PHP 8)
Response: Alfa Shell in pageShell title
Default account: username admin, password ehsanUnsalted MD5 a6f452ec3293d7fb72c5b677257b20ec in plaintext config

YARA rule

import "hash"

rule webshell_alfa_v4_tesla {
    meta:
        description = "Alfa Shell V4 Tesla (anchors on Alfa-specific markers; the shared Hmei7 beacon is covered by webshell_hmei7_beacon)"
        author      = "OHIIHO Threat Research"
        reference   = "https://research.ohiiho.com/arsenal/alfa-v4-tesla/"
        status      = "validated"
        sha256_alfa3        = "6f13fa5a8e42bfdd127f17410bde002872de149b47e9153fb5b36ba007341306"
        sha256_alfav4_tesla = "85d88d15687c7a98941143f370ea61a98bf73248df2369000f02aefe8443fd90"

    strings:
        $alfa_title    = "Alfa Shell" ascii nocase
        $alfa_team     = "Alfa_Team" ascii
        $solevisible   = "solevisible" ascii
        $config_global = "$GLOBALS['OWtTcBmdOd']" ascii
        $tujan_mail    = "$tujuanmail" ascii
        $pesan_alert   = "$pesan_alert" ascii
        $create_fn     = "create_function" ascii
        $eval_b64      = "eval(base64_decode(" ascii

    condition:
        filesize < 300KB
        and (
            // source-form shell: an Alfa marker together with a PHP code marker
            // (the AND excludes Alfa readme/notes .txt that merely name the shell)
            (($alfa_title or $alfa_team or $solevisible or ($tujan_mail and $pesan_alert))
                and ($create_fn or $eval_b64))
            // alfa3 packed instance — unique obfuscated global
            or $config_global
            // opaque packed instances — no usable plaintext signature, hash-anchored
            // (filesize == guard so the SHA256 is computed only for the exact candidate)
            or (filesize == 252175 and hash.sha256(0, filesize) == "6f13fa5a8e42bfdd127f17410bde002872de149b47e9153fb5b36ba007341306")
            or (filesize == 167465 and hash.sha256(0, filesize) == "85d88d15687c7a98941143f370ea61a98bf73248df2369000f02aefe8443fd90")
        )
}

This rule is shared with Alfa V4 Tesla — alfa3 and alfav4-tesla are distinct files (different hash and size) detected by the same behavioral rule.

This rule requires libyara built with the hash module (standard / OpenSSL-enabled) for the hash-anchored packed variants.

The Hmei7 supply-chain beacon is detected by the generic webshell_hmei7_beacon rule — see Hmei7 beacon detection .

MITRE ATT&CK

TechniqueContext
T1505.003Web Shell
T1041Exfiltration Over C2 Channel (mail beacon to Hmei7)
T1027Obfuscated Files (gzinflate+base64+create_function)

OHIIHO Threat Research.