Penetration Test Report

Engagement: pt-2026-05-05-001
Scope: 172.18.0.26, target host, net_core Docker network  ·  Intensity: full — passive recon through safe checks, no destructive exploitation
Completed: 2026-05-05T20:35:00Z
14 findings 4 critical 7 high 6 attack paths 1 live hosts

Executive Summary

What we tested: We conducted a full authorized penetration test against a single Linux host (172.18.0.26, Metasploitable2) on your homelab Docker network. The test covered all open network services using passive reconnaissance, active port scanning, service enumeration, safe vulnerability checks, and CVE correlation — spanning roughly 15 minutes of automated and guided testing. No destructive actions were taken; all findings are proof-of-vulnerability only.

What we found: This host is comprehensively compromised by design — it is an intentionally vulnerable training target. We identified 4 CRITICAL and 6 HIGH severity findings across 22 open services. Three separate backdoor root shells exist: one on port 1524 (requires only a TCP connection), one in vsftpd 2.3.4 (triggered by a malformed FTP login, CVE-2011-2523), and one in UnrealIRCd 3.2.8.1 (triggered via IRC message, CVE-2010-2075). Additionally, SSH accepted the default password user:user from our first credential check. Six distinct attack paths lead to full root access, the fastest requiring under 10 seconds and no specialist knowledge.

What this means: If this host were reachable beyond your Docker network — or if any other container on that network were compromised — an attacker would have instant, trivial, undetectable root access to this machine and a pivot point into your broader homelab. Keep this host strictly isolated on its dedicated Docker network, never expose its ports externally, and treat it purely as a controlled training environment. The findings here are expected for Metasploitable2 and represent the full taxonomy of vulnerability classes you can practice against.

Technical Summary

Attack surface: Single Linux host (Metasploitable2) with 22 open TCP ports spanning FTP, SSH, Telnet, SMTP, HTTP/WebDAV, SMB, NFS, r-services, multiple database engines, Java/Ruby RMI, and IRC — every service running EOL software from 2008–2011.

Critical findings:


Exploitable paths:

Tool coverage: Full-port nmap scan, smb_enum (null session confirmed), snmp_walk (no SNMP response), web_fingerprint, nikto, gobuster, default_creds_check (SSH hit, FTP miss), CVE correlation across 7 service versions. LDAP not probed (no port 389 detected). SSL audit not run (no HTTPS service confirmed). Traversal probe skipped (no injectable URL parameter on WebDAV endpoint).

Attack Paths

CRITICAL

INSTANT ROOT — ZERO EFFORT: Any attacker on the Docker network connects to port 1524/tcp with a basic TCP client (netcat, telnet, etc.) and receives an immediate root shell prompt. No credentials, no exploit, no tools needed. Full OS compromise in under 10 seconds.

Unauthenticated Root Backdoor Shell on Port 1524 (ingreslock)
CRITICAL

FTP BACKDOOR TO ROOT SHELL: Attacker sends a login attempt to vsftpd on port 21 with a username ending in ':)' (smiley face). vsftpd's backdoor code triggers and opens a root shell on port 6200/tcp. Attacker connects to port 6200 and has full root access. Two TCP connections = root.

FTP Anonymous Login Enabled (vsftpd port 21) → vsftpd 2.3.4 Backdoor — CVE-2011-2523 (CVSS 9.8)
CRITICAL

SSH DEFAULT CREDS TO FOOTHOLD + PRIVILEGE ESCALATION: Attacker logs in via SSH with user:user. From the user shell, multiple local privilege escalation paths exist: kernel exploits (Linux 2.6.24 has dozens of public LPEs), SUID binary abuse, or simply connecting to port 1524 from localhost to get root.

SSH Default Credentials Accepted — user:user → Unauthenticated Root Backdoor Shell on Port 1524 (ingreslock)
HIGH

IRC BACKDOOR TO RCE: Attacker connects to UnrealIRCd on port 6667, sends a message prefixed with 'AB' followed by a shell command. The backdoor macro executes the command as the ircd user. Combined with writable directories or SUID binaries, privilege escalation to root follows.

UnrealIRCd 3.2.8.1 Backdoor RCE — CVE-2010-2075 (CVSS 7.5)
HIGH

WEB PATH TO RCE: Attacker uploads a PHP webshell via WebDAV to /dav/, then browses to the uploaded file. Apache executes the PHP code as www-data. From the webshell, attacker connects internally to the port 1524 backdoor to escalate to root.

WebDAV Enabled at /dav/ — Potential Unauthenticated File Upload → Unauthenticated Root Backdoor Shell on Port 1524 (ingreslock)
HIGH

phpMyAdmin TO FILE WRITE TO RCE: Attacker authenticates to phpMyAdmin with MySQL credentials (default root with blank password is common on Metasploitable2), uses MySQL's SELECT INTO OUTFILE to write a PHP webshell into the Apache web root, then executes it via HTTP.

phpMyAdmin Exposed Without Network Restriction → phpinfo.php Publicly Accessible — Full Server Configuration Exposed

Remediation Plan

⚠ 14 of 14 findings have no remediation recorded.
CRITICAL 3 finding(s) across 1 host(s)
↳ 172.18.0.26 (3)
Unauthenticated Root Backdoor Shell on Port 1524 (ingreslock) F-01
⚠ NO REMEDIATION RECORDED
vsftpd 2.3.4 Backdoor — CVE-2011-2523 (CVSS 9.8) F-02
⚠ NO REMEDIATION RECORDED
SSH Default Credentials Accepted — user:user F-04
⚠ NO REMEDIATION RECORDED
HIGH 8 finding(s) across 1 host(s)
↳ 172.18.0.26 (8)
UnrealIRCd 3.2.8.1 Backdoor RCE — CVE-2010-2075 (CVSS 7.5) F-03
⚠ NO REMEDIATION RECORDED
SMB Null Session — /tmp Share Readable Without Credentials F-06
⚠ NO REMEDIATION RECORDED
RSH Suite Exposed — rexec (512), rlogin (513), rsh (514) F-07
⚠ NO REMEDIATION RECORDED
Telnet Service Exposed on Port 23 (Cleartext Remote Shell) F-08
⚠ NO REMEDIATION RECORDED
WebDAV Enabled at /dav/ — Potential Unauthenticated File Upload F-10
⚠ NO REMEDIATION RECORDED
phpMyAdmin Exposed Without Network Restriction F-11
⚠ NO REMEDIATION RECORDED
ProFTPD 1.3.1 SQL Injection — CVE-2009-0542 (CVSS 7.5) F-12
⚠ NO REMEDIATION RECORDED
MySQL 5.0.51a Buffer Overflow — CVE-2009-4484 (CVSS 7.5) F-13
⚠ NO REMEDIATION RECORDED
MEDIUM 2 finding(s) across 1 host(s)
↳ 172.18.0.26 (2)
FTP Anonymous Login Enabled (vsftpd port 21) F-05
⚠ NO REMEDIATION RECORDED
phpinfo.php Publicly Accessible — Full Server Configuration Exposed F-09
⚠ NO REMEDIATION RECORDED
LOW 1 finding(s) across 1 host(s)
↳ 172.18.0.26 (1)
HTTP TRACE/DEBUG Methods Enabled — Cross-Site Tracing (XST) F-14
⚠ NO REMEDIATION RECORDED

Findings

CRITICAL Unauthenticated Root Backdoor Shell on Port 1524 (ingreslock) F-01
Host: 172.18.0.26  ·  Phase: active_recon  ·  Tool: nmap  ·  ATT&CK: T1190

Port 1524/tcp presents a fully interactive root shell (root@d9d6daa95c1b:/#) to any connecting client with zero authentication. This is the classic Metasploitable2 ingreslock backdoor. Any host on the Docker network can connect with nc 172.18.0.26 1524 and immediately have unrestricted root access to the operating system — read any file, modify any configuration, install software, pivot to other network hosts, or destroy data. There is no higher severity finding possible.

CRITICAL vsftpd 2.3.4 Backdoor — CVE-2011-2523 (CVSS 9.8) F-02
Host: 172.18.0.26  ·  Phase: correlation  ·  Tool: nmap + cve_correlation  ·  ATT&CK: T1190  ·  CVE: CVE-2011-2523

vsftpd version 2.3.4 contains a deliberate backdoor introduced into the source tarball: when a username containing a smiley face (':)') is submitted, the daemon opens a root command shell on port 6200/tcp. This is a supply-chain compromise of the FTP daemon itself. No valid credentials are needed — the trigger is a malformed login attempt. CVE-2011-2523 carries a CVSS score of 9.8 (Critical).

HIGH UnrealIRCd 3.2.8.1 Backdoor RCE — CVE-2010-2075 (CVSS 7.5) F-03
Host: 172.18.0.26  ·  Phase: correlation  ·  Tool: nmap + cve_correlation  ·  ATT&CK: T1190  ·  CVE: CVE-2010-2075

UnrealIRCd 3.2.8.1, running on ports 6667 and 6697, contains a Trojan horse inserted into the official distribution between November 2009 and June 2010. The backdoor is triggered by sending a string beginning with 'AB' to the IRC server, causing arbitrary OS commands to execute as the ircd process user. This is another supply-chain backdoor — the software itself is malicious. Remote unauthenticated command execution is the result.

CRITICAL SSH Default Credentials Accepted — user:user F-04
Host: 172.18.0.26  ·  Phase: safe_checks  ·  Tool: default_creds_check  ·  ATT&CK: T1078.003

The SSH service on port 22 accepted the credential pair user:user from a 12-pair default-credential list. SSH (Secure Shell) is the primary encrypted remote administration protocol for Linux systems. A valid SSH login provides an interactive shell session on the machine. While user is a low-privilege account, the combination of this access with the age of the kernel and the availability of local privilege escalation vectors makes root access a near-certainty from this foothold.

MEDIUM FTP Anonymous Login Enabled (vsftpd port 21) F-05
Host: 172.18.0.26  ·  Phase: active_recon  ·  Tool: nmap  ·  ATT&CK: T1078

The FTP service on port 21 accepts anonymous logins (username: anonymous, any password). FTP (File Transfer Protocol) transmits all data including credentials in cleartext. Anonymous access allows unauthenticated users to browse and potentially read files in the FTP root directory. Combined with CVE-2011-2523 on the same service version, this service is doubly dangerous.

HIGH SMB Null Session — /tmp Share Readable Without Credentials F-06
Host: 172.18.0.26  ·  Phase: service_enum  ·  Tool: smb_enum  ·  ATT&CK: T1021.002

Samba 3.0.20 on ports 139/445 permits null sessions (a null session = connecting to SMB without any username or password). The /tmp share is not only visible but fully readable to anonymous users, exposing runtime files, socket files, and any temporary data written by running processes. SMB signing is also disabled, which means traffic can potentially be intercepted and replayed by an attacker on the same network segment. This is the classic 'pass-the-hash' prerequisite condition.

HIGH RSH Suite Exposed — rexec (512), rlogin (513), rsh (514) F-07
Host: 172.18.0.26  ·  Phase: active_recon  ·  Tool: nmap  ·  ATT&CK: T1021

The r-services suite (rexec, rlogin, rsh) dates from the 1980s and has no encryption, weak or no authentication (trust is based on source IP address), and no modern security controls. rsh/rlogin allow remote shell access based on host-trust relationships defined in ~/.rhosts files. If any user has a permissive .rhosts configuration, an attacker can log in without a password. These services should not exist on any network-connected system in any era.

HIGH Telnet Service Exposed on Port 23 (Cleartext Remote Shell) F-08
Host: 172.18.0.26  ·  Phase: active_recon  ·  Tool: nmap  ·  ATT&CK: T1040

Telnet provides a remote interactive shell with zero encryption. Every keystroke — including usernames, passwords, and commands — is transmitted in plaintext over the network and can be captured by any host on the same network segment with a packet sniffer. On a Docker network where containers share a bridge, this is a trivial interception opportunity.

MEDIUM phpinfo.php Publicly Accessible — Full Server Configuration Exposed F-09
Host: 172.18.0.26  ·  Phase: safe_checks  ·  Tool: nikto_scan + dir_enum  ·  ATT&CK: T1592.002

The file /phpinfo.php is accessible without authentication and outputs the complete PHP runtime configuration: server paths, loaded modules, PHP version, compile-time options, environment variables, and HTTP request headers. This is a reconnaissance goldmine for an attacker — every detail needed to craft targeted exploits (exact path names, enabled functions, disabled safeguards) is presented on a single page. phpinfo() files should never be deployed on reachable systems.

HIGH WebDAV Enabled at /dav/ — Potential Unauthenticated File Upload F-10
Host: 172.18.0.26  ·  Phase: safe_checks  ·  Tool: dir_enum + web_fingerprint  ·  ATT&CK: T1190

WebDAV (Web Distributed Authoring and Versioning) is a protocol extension to HTTP that allows clients to create, modify, and delete files on a web server. The /dav/ endpoint is live and accessible. If write access is not restricted (common in default Metasploitable2 configs), an attacker can upload a PHP webshell — a small script that executes OS commands via the web browser — resulting in remote code execution as the Apache process user. Combined with PHP 5.2.4's lack of security restrictions, this is a reliable exploitation path.

HIGH phpMyAdmin Exposed Without Network Restriction F-11
Host: 172.18.0.26  ·  Phase: safe_checks  ·  Tool: nikto_scan + dir_enum  ·  ATT&CK: T1213

phpMyAdmin is a web-based MySQL administration interface accessible at /phpMyAdmin/ with no IP-based access controls. With MySQL running on the same host and default or weak credentials in play, an attacker can use phpMyAdmin to dump all databases, read arbitrary files from the OS (via MySQL's LOAD_FILE function), or write files to the web root (via SELECT INTO OUTFILE) to achieve remote code execution.

HIGH ProFTPD 1.3.1 SQL Injection — CVE-2009-0542 (CVSS 7.5) F-12
Host: 172.18.0.26  ·  Phase: correlation  ·  Tool: cve_correlation  ·  ATT&CK: T1190  ·  CVE: CVE-2009-0542

ProFTPD 1.3.1 on port 2121 is vulnerable to SQL injection via a percent-encoded username. When mod_sql is enabled (used for database-backed authentication), a specially crafted username can inject arbitrary SQL commands into the backend database query, potentially allowing authentication bypass or data exfiltration.

HIGH MySQL 5.0.51a Buffer Overflow — CVE-2009-4484 (CVSS 7.5) F-13
Host: 172.18.0.26  ·  Phase: correlation  ·  Tool: cve_correlation  ·  ATT&CK: T1190  ·  CVE: CVE-2009-4484

MySQL 5.0.51a is vulnerable to multiple stack-based buffer overflows in the TaoCrypt/yaSSL component (CVE-2009-4484). A remote attacker can send a crafted certificate to trigger the overflow and execute arbitrary code as the MySQL process user. This is reachable from port 3306 without authentication if MySQL is configured to accept external connections.

LOW HTTP TRACE/DEBUG Methods Enabled — Cross-Site Tracing (XST) F-14
Host: 172.18.0.26  ·  Phase: safe_checks  ·  Tool: nikto_scan  ·  ATT&CK: T1071.001

Apache has the HTTP TRACE and DEBUG methods enabled. TRACE echoes back the full HTTP request including cookies and auth headers, enabling Cross-Site Tracing (XST) attacks where JavaScript can steal session cookies that would otherwise be protected by the HttpOnly flag. The DEBUG method can expose server internals. Both should be disabled in any production or internet-facing configuration.

Kill Chain

passive recon
fetch_url
172.18.0.26:80
Apache 2.2.8, PHP 5.2.4, default creds msfadmin:msfadmin printed on index page, 5 vulnerable web apps listed
active recon
port_scan← fetch_url
172.18.0.26
22 open ports discovered: vsftpd 2.3.4, OpenSSH 4.7p1, Telnet, Samba 3.0.20, r-services, ingreslock backdoor shell on 1524, ProFTPD 1.3.1, MySQL 5.0.51a, distccd, PostgreSQL 8.3, UnrealIRCd 3.2.8.1, Java RMI, Ruby DRb
service enum
smb_enum← port_scan
172.18.0.26:445
Null session allowed, /tmp share readable anonymously, SMB signing disabled
safe checks
default_creds_check← port_scan
172.18.0.26:22
SSH credential user:user accepted — valid shell access confirmed
nikto_scan + dir_enum← port_scan
172.18.0.26:80
phpinfo.php exposed, phpMyAdmin unrestricted, WebDAV at /dav/, HTTP TRACE/DEBUG enabled, directory indexing
correlation
cve_correlation← port_scan
vsftpd 2.3.4
CVE-2011-2523 CRITICAL 9.8 — backdoor in vsftpd opens root shell on port 6200
cve_correlation← port_scan
UnrealIRCd 3.2.8.1
CVE-2010-2075 HIGH 7.5 — trojan backdoor enables arbitrary RCE
cve_correlation← port_scan
ProFTPD 1.3.1
CVE-2009-0542 HIGH SQL injection in mod_sql username handling
cve_correlation← port_scan
MySQL 5.0.51a
CVE-2009-4484 HIGH stack buffer overflow in yaSSL TaoCrypt component

MITRE ATT&CK Coverage

T1046
Network Service Discovery
Discovery
T1018
Remote System Discovery
Discovery
T1135
Network Share Discovery
Discovery
T1083
File and Directory Discovery
Discovery
T1110
Brute Force
Credential Access
T1110.001
Password Guessing
Credential Access
T1078 ↗
Valid Accounts
Initial Access
T1078.003 ↗
Local Accounts
Initial Access
T1190 ↗
Exploit Public-Facing Application
Initial Access
T1133
External Remote Services
Initial Access
T1021 ↗
Remote Services
Lateral Movement
T1021.002 ↗
SMB/Windows Admin Shares
Lateral Movement
T1021.004
SSH
Lateral Movement
T1021.006
Windows Remote Management
Lateral Movement
T1071
Application Layer Protocol
Command and Control
T1071.001 ↗
Web Protocols
Command and Control
T1213 ↗
Data from Information Repositories
Collection
T1592
Gather Victim Host Information
Reconnaissance
T1592.002 ↗
Software
Reconnaissance
T1595
Active Scanning
Reconnaissance
T1595.001
Scanning IP Blocks
Reconnaissance
T1595.002
Vulnerability Scanning
Reconnaissance
T1595.003
Wordlist Scanning
Reconnaissance
T1596
Search Open Technical Databases
Reconnaissance
T1596.001
DNS/Passive DNS
Reconnaissance
T1589
Gather Victim Identity Information
Reconnaissance
T1590
Gather Victim Network Information
Reconnaissance
T1590.001
Domain Properties
Reconnaissance
T1590.002
DNS
Reconnaissance
T1590.005
IP Addresses
Reconnaissance
T1591
Gather Victim Org Information
Reconnaissance
T1552
Unsecured Credentials
Credential Access
T1552.001
Credentials In Files
Credential Access
T1552.004
Private Keys
Credential Access
T1212
Exploitation for Credential Access
Credential Access
T1003
OS Credential Dumping
Credential Access
T1499
Endpoint Denial of Service
Impact
T1219
Remote Access Software
Command and Control
T1040 ↗
Network Sniffing
Credential Access
T1199
Trusted Relationship
Initial Access
T1059
Command and Scripting Interpreter
Execution
T1554
Compromise Client Software Binary
Persistence
T1574
Hijack Execution Flow
Persistence
T1530
Data from Cloud Storage
Collection
T1119
Automated Collection
Collection
T1592.004
Client Configurations
Reconnaissance
T1596.005
Scan Databases
Reconnaissance
T1589.001
Credentials
Reconnaissance
T1003.005
Cached Domain Credentials
Credential Access