Executive Summary
Σε αυτό το άρθρο τεκμηριώνουμε την πλήρη διαδικασία ηθικής εκμετάλλευσης της εικονικής μηχανής Mr Robot (VulnHub CTF) σε ελεγχόμενο εργαστηριακό περιβάλλον VirtualBox. Από ένα Apache web server με WordPress, καταφέραμε να αποκτήσουμε remote code execution ως ο χρήστης daemon, να προχωρήσουμε στον χρήστη robot σπάζοντας έναν αδύναμο MD5 hash, και τελικά να αναβαθμίσουμε την πρόσβασή μας σε root εκμεταλλευόμενοι μια SUID misconfiguration στο /usr/local/bin/nmap.
Εντοπίσαμε και τα 3 flags (key-1-of-3.txt, key-2-of-3.txt, key-3-of-3.txt) και τεκμηριώνουμε επτά (7) ευρήματα ασφαλείας με αντίστοιχη βαθμολόγηση CVSS και χαρτογράφηση σε MITRE ATT&CK. Στο τέλος του άρθρου παρέχουμε συγκεκριμένες αμυντικές συστάσεις για τις ομάδες Blue Team και τους WordPress administrators.
Lab Environment
| Στοιχείο | Τιμή |
|---|---|
| Attacker | Kali Linux — 172.10.0.13 |
| Target | Mr Robot CTF VM — 172.10.0.19 |
| Network | Isolated VirtualBox host-only |
| Authorization | Lab-only, εκπαιδευτική |
| Scope | Οι δύο παραπάνω διευθύνσεις |
Μεθοδολογία
Η εργασία ακολούθησε τη μεθοδολογία PTES (Penetration Testing Execution Standard) σε συνδυασμό με OSCP-style enumeration και χαρτογράφηση MITRE ATT&CK. Οι φάσεις:
- Pre-engagement και validation εμβέλειας
- Παθητικό και ενεργητικό reconnaissance
- Web και CMS enumeration
- Vulnerability analysis και ανάλυση exploit chain
- Exploitation και initial foothold
- Lateral movement και credential cracking
- Privilege escalation στον
root - Συλλογή ενδείξεων, σύνταξη αναφοράς, συστάσεις
Reconnaissance
cmd-01 — Επιβεβαίωση εμβέλειας — ip a & pingFull TCP port scan
cmd-02 — Full TCP port scan με nmap
Ανοικτά: 80/tcp, 443/tcp. Το 22/tcp ρητά closed (όχι filtered), δεν υπάρχει SSH service.
Service detection
cmd-03 Service detection (nmap -sV -sC)Output:
cmd-04 nmap service detection αποτελέσματαWeb fingerprinting
cmd-05 Web fingerprinting (WhatWeb & wafw00f)Headers του /wp-login.php:
cmd-06 HTTP response headers, PHP & WordPressΕπιβεβαίωση πως πρόκειται για WordPress σε PHP 5.5.29 (απαρχαιωμένη έκδοση).
Web Enumeration
Robots.txt
cmd-07 Λήψη του robots.txt
cmd-08 Περιεχόμενα robots.txtΔύο άμεσες ενδείξεις: ένα flag σε plaintext και ένα μεγάλο dictionary file.
cmd-09 Πρώτη flag (FLAG 1) & fsocity.dic
WordPress enumeration
cmd-10 WPScan enumeration users/plugins/themes- WordPress core εντοπίστηκε με themes
twentyfifteen,twentyfourteen,twentythirteen. - Το
wpscanδεν εντόπισε users μέσω author archives (η εγκατάσταση δεν έχει αναρτημένα posts).
Username enumeration μέσω login response
Το /wp-login.php διαφοροποιεί τα μηνύματα λάθους ανάμεσα σε “Invalid username” και “Incorrect password”. Δοκιμή ονομάτων (ταυτότητες της σειράς Mr Robot):
cmd-11 Username enumeration via login responseΑποτέλεσμα: elliot έγκυρος, οι υπόλοιποι όχι.
Vulnerability Analysis
| ID | Εύρημα | Επίπτωση | CVSS | MITRE ATT&CK |
|---|---|---|---|---|
| F-01 | Robots.txt εκθέτει wordlist + flag | Πληροφορίες | 7.5 | T1083, T1592 |
| F-02 | WP login user enumeration | Πληροφορίες | 5.3 | T1589.002 |
| F-03 | Αδύναμα WordPress credentials | RCE (auth) | 9.8 | T1110.001, T1078 |
| F-04 | Theme editor αυθαίρετο PHP write | RCE (auth) | 9.1 | T1505.003, T1059.004 |
| F-05 | World-readable hash του robot | Credential disclosure | 7.8 | T1552.001 |
| F-06 | Unsalted MD5 storage | Credential weakness | 7.5 | T1003 |
| F-07 | SUID nmap (legacy) με --interactive |
Local Priv Esc → root | 8.8 | T1548.001, T1068 |
Exploitation — Initial Access
Brute-force του χρήστη elliot
Με ένα ενεργό username και custom wordlist (fsocity-unique.dic):
cmd-12 — WPScan brute-force του χρήστη elliot
Αποτέλεσμα: elliot : ER28-0652 (αναφορά στον αριθμό σήματος του Elliot Alderson στη σειρά). Η επίθεση πέρασε μέσω XML-RPC system.multicall, που πολλαπλασιάζει τα logins ανά αίτημα και μειώνει τον χρόνο σε δευτερόλεπτα.
PHP reverse shell μέσω theme editor
Με admin access ο επιτιθέμενος αντικαθιστά το αρχείο 404.php του ενεργού theme με PHP reverse shell:
cmd-13 — PHP reverse shell μέσω theme editorΤο listener δέχεται σύνδεση:
cmd-14 — Λήψη reverse shell στο Kali
TTY:
cmd-15 Interactive shellPost-Exploitation & Privilege Escalation
Lateral movement σε robot
cmd-16 Lateral movement, αρχεία του robotΤο key-2-of-3.txt είναι mode 0400 owned by robot — μη αναγνώσιμο ως daemon. Το password.raw-md5 ωστόσο είναι world-readable (κρίσιμη παράλειψη).
Cracking του MD5
cmd-17 John the Ripper, MD5 crackingΣτο συγκεκριμένο dataset το hash ταυτίζεται απευθείας με το γνωστό alphabet string:
cmd-18 Επιβεβαίωση MD5 hash
cmd-19 su robot, δεύτερο FLAG
SUID enumeration
cmd-20 SUID binary enumeration
Το /usr/local/bin/nmap ξεχωρίζει, δεν είναι standard SUID στις διανομές. Έλεγχος έκδοσης:
cmd-21 Εντοπισμός legacy nmap (3.81)Η έκδοση 3.81 υποστηρίζει την παλιά λειτουργία --interactive, η οποία επιτρέπει την εκτέλεση εντολών shell μέσω του prefix !. Όταν το binary είναι SUID root, η !sh σπάει σε root shell (αναφορά GTFOBins / nmap).
Root flag
cmd-22 SUID nmap –interactive → root + FLAG 3
Root & Flag Capture
| Σημαία | Τιμή | Πηγή |
|---|---|---|
| key-1-of-3 | 073403c8a58a1f80d943455fb30724b9 |
HTTP exposed file |
| key-2-of-3 | 822c73956184f694993bede3eb39f959 |
/home/robot/ ως robot |
| key-3-of-3 | 04787ddef27c3dee1ee161b21670b4e4 |
/root/ ως root |
Defensive Recommendations (Blue Team Lessons)
- Robots.txt δεν είναι μηχανισμός ασφαλείας. Ποτέ μην αναφέρετε αρχεία ή paths που περιέχουν ευαίσθητα δεδομένα, οι crawlers (καλόβουλοι και κακόβουλοι) θα τα διαβάσουν πρώτοι.
- WordPress error message hardening. Επιστρέψτε γενικό μήνυμα (“invalid credentials”) ώστε να μην διακρίνεται user enumeration. Επεκτείνετε με rate limiting (π.χ. Wordfence, Limit Login Attempts Reloaded).
- Απενεργοποίηση XML-RPC αν δεν χρησιμοποιείται. Το
system.multicallπολλαπλασιάζει τα attempts brute-force. - Strong password policy + 2FA. Κωδικοί τύπου
ER28-0652(12 χαρακτήρες, μικτό alphanumeric) σπάνε σε δευτερόλεπτα με στοχευμένο wordlist. Το 2FA θα είχε ακυρώσει την επίθεση ακόμα και με σωστό κωδικό. - Restrict file editing στο WordPress. Προσθέστε
define('DISALLOW_FILE_EDIT', true);στοwp-config.phpώστε να αχρηστευθεί ο theme/plugin editor. - Hash storage. Ποτέ unsalted MD5. Χρησιμοποιήστε bcrypt/argon2 με unique salt. Επίσης, ποτέ δεν αποθηκεύουμε credential material σε
/homeμε world-read permissions. - SUID audit. Τρέξτε περιοδικά
find / -perm -4000 -type fκαι συγκρίνετε με baseline. Καμία custom SUID binary δεν θα έπρεπε να υπάρχει εκτός whitelist. - Patch management. Apache 2.4.7, PHP 5.5.29, kernel 3.13.0-55, όλα EOL. Κάθε CTF διδάσκει ότι η αναβάθμιση των εκδόσεων είναι η πρώτη γραμμή άμυνας.
Αποτέλεσμα
Το Mr Robot CTF προσφέρει μια εξαιρετική, ρεαλιστική κλιμακούμενη επίθεση που ακολουθεί τρεις διακριτές φάσεις:
- Access μέσω αδύναμων web credentials και CMS misconfiguration,
- Lateral movement μέσω λάθος permissions σε ευαίσθητο αρχείο,
- Privilege escalation μέσω legacy SUID binary.
Κάθε μία από αυτές τις φάσεις αντιστοιχεί σε πραγματικά περιστατικά που ομάδες offensive security βλέπουν τακτικά σε πελάτες. Η αξία του engagement δεν είναι η ίδια η ροή του exploitation, αλλά η ευκαιρία να τυποποιήσουμε αμυντικά controls που θα είχαν σπάσει την αλυσίδα σε οποιοδήποτε σημείο.
Στο Audax Cybersecurity παρέχουμε αντίστοιχες αξιολογήσεις σε παραγωγικά WordPress estates, εσωτερικά Linux fleets και σε υποδομές που συνδυάζουν τα δύο. Επικοινωνήστε μαζί μας για Offensive Security Engagements.
References
- VulnHub — Mr Robot CTF: vulnhub.com/entry/mr-robot-1,151
- GTFOBins — nmap: gtfobins.github.io/gtfobins/nmap
- MITRE ATT&CK — T1548.001 (Setuid/Setgid): attack.mitre.org/techniques/T1548/001
- MITRE ATT&CK — T1505.003 (Web Shell): attack.mitre.org/techniques/T1505/003
- WPScan — XML-RPC multicall brute force: wpscan.com
- Pentestmonkey PHP reverse shell: github.com/pentestmonkey/php-reverse-shell
- PTES Technical Guidelines: pentest-standard.org
- WordPress Hardening — DISALLOW_FILE_EDIT: wordpress.org/documentation/article/hardening-wordpress
Audax Cybersecurity · Offensive Labs — Ηθικά penetration tests σε ελεγχόμενα περιβάλλοντα. Όλες οι ενέργειες σε αυτό το άρθρο εκτελέστηκαν σε ιδιόκτητη εικονική υποδομή με πλήρη εξουσιοδότηση.