64 lines
3.1 KiB
Markdown
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`
|