abraworm/README.md

64 lines
3.1 KiB
Markdown

# AbraWorm
_Corso di Sicurezza e Privatezza @ Unimi_
## Passaggi per l'utilizzo
_Testato su ubuntu_
* Installazione di docker e docker-compose https://docs.docker.com/engine/install/ubuntu/
* Con il comando `docker-compose up --force-recreate` vengono scaricate le immagini di openssh-server
(immagini minimali da circa 12MB). Vengono creati 2 container di nome _openssh-server-attacker_ e
_openssh-server-user_. Entrambi i container espongono la porta 2222 che viene rimappata sulla porta
dell'host 22 per openssh-server-user e 12345 per openssh-server-attacker. Ora la macchina dello
studente avrá due porte esposte 22 e 12345, si puó vedere con `netstat -tulpn | grep LISTEN`
```
teozoia@teozoia-blade:~/Desktop/abraworm/abraworm/worm$ netstat -tulpn | grep LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:12345 0.0.0.0:* LISTEN -
...
```
* Come dichiarato all'interno del file _docker-compose.yaml_ al rispettivo container verrá montata la cartella
_user/config_ e _attacker/config_; da notare che in _user/config_ é presente il file _text.txt_ il quale contiene
la parola abracadabra.
* Per testare il funzionamento dei due container é possibile collegarsi al container user con
`ssh user@127.0.0.1` (password: password) e attacker con `ssh seed@127.0.0.1 -p 12345` (password: dees).
* É possibile eseguire il worm sulla propria macchina `python3 AbraWorm.py`. Se si vuole velocizzare il processo
é possibile togliere il `while` e fare in modo che le funzioni `get_password_list()` e `get_user_list()`
ritornino una lista fissata non lunga. Per usare il worm in modo verboso é necessario che `DEBUG=1`.
```
teozoia@teozoia-blade:~/Desktop/abraworm/abraworm/worm$ python3 AbraWorm.py
user@127.0.0.1 -> adjfhfad
Exception catched: Authentication failed.
user@127.0.0.1 -> dhf931f
Exception catched: Authentication failed.
matteo@127.0.0.1 -> idhf
Exception catched: Authentication failed.
user@127.0.0.1 -> password
Connected user@127.0.0.1 -> password
[user@127.0.0.1] executing: ls
stdout:['AbraWorm.py\n', 'logs\n', 'ssh_host_keys\n', 'sshd.pid\n', 'test.txt\n']
Target user@127.0.0.1 already infected
[user@127.0.0.1] executing: grep -ls abracadabra *
stdout:['AbraWorm.py\n', 'test.txt\n']
Files of interest at the target: ['AbraWorm.py', 'test.txt']
Will now try to exfiltrate the files
Connected to exhiltration host
```
## Docker install
https://docs.docker.com/engine/install/ubuntu/
* `sudo apt-get remove docker docker-engine docker.io containerd runc`
* `sudo apt-get update`
* `sudo apt-get install ca-certificates curl gnupg lsb-release`
* `sudo mkdir -p /etc/apt/keyrings`
* `curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg`
* `echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null`
* `sudo apt-get update`
* `sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin`