Soluzioni di Overthewire.org Bandit da 0 a 25

Forse molti di voi conoscono già il sito overthewire.org. Per chi non lo conoscesse si tratta di un sito di wargame grazie al quale è possibile fare pratica di concetti di sicurezza informatica in forma di piccole sfide. È organizzato in sfide di difficoltà crescente, la prima delle quali è chiamata Bandit.

Il sito overthewire descrive questa sfida nel seguente modo: “The Bandit wargame is aimed at absolute beginners. It will teach the basics needed to be able to play other wargames.

Di seguito le soluzioni di Bandit.

Livello 0:

#Connessione
stef$ ssh bandit0@bandit.labs.overthewire.org

Livello 0 -> 1:

##Soluzione
bandit0@melinda:~$ cat
boJ9jbbUNNfktd78OOpsqOltutMc3MY1
#Disconnessione
bandit0@melinda:~$ logout
Connection to bandit.labs.overthewire.org closed.
stef$ 

Livello 1 -> 2:

stef$ ssh bandit1@bandit.labs.overthewire.org
bandit1@melinda:~$ cat ./-
CV1DtqXWVFXTvM2F0k09SHz0YwRINYA9
bandit1@melinda:~$ logout
Connection to bandit.labs.overthewire.org closed.
stef$ 

Livello 2 -> 3:

stef$ ssh bandit2@bandit.labs.overthewire.org
bandit2@melinda:~$ cat spaces\ in\ this\ filename 
UmHadQclWmgdLOKQ3YNgjWxGoRMb5luK
bandit2@melinda:~$ logout
Connection to bandit.labs.overthewire.org closed.
stef$ 

Livello 3 -> 4:

stef$ ssh bandit3@bandit.labs.overthewire.org
bandit3@melinda:~$ ls -a inhere/
.  ..  .hidden
bandit3@melinda:~$ cat inhere/.hidden 
pIwrPrtPN36QITSp3EQaw936yaFoFgAB
bandit3@melinda:~$ logout
Connection to bandit.labs.overthewire.org closed.
stef$

Livello 4 -> 5:

stef$ ssh bandit4@bandit.labs.overthewire.org
bandit4@melinda:~/inhere$ file ./*
./-file00: data
./-file01: data
./-file02: data
./-file03: data
./-file04: data
./-file05: data
./-file06: data
./-file07: ASCII text
./-file08: data
./-file09: data
bandit4@melinda:~/inhere$ cat ./-file07
koReBOKuIDDepwhWk7jZC0RTdopnAYKh
bandit4@melinda:~/inhere$ logout
stef$

Livello 5 -> 6:

stef$ ssh bandit5@bandit.labs.overthewire.org
bandit5@melinda:~$ cd inhere/
bandit5@melinda:~$ find ./ -size 1033c
./inhere/maybehere07/.file2
bandit5@melinda:~$ cat ./inhere/maybehere07/.file2
DXjZPULLxYr17uwoI01bNLQbtFemEgo7
bandit5@melinda:~$ logout
Connection to bandit.labs.overthewire.org closed.
stef$ 

Livello 6 -> 7:

stef$ ssh bandit6@bandit.labs.overthewire.org
bandit6@melinda:~$ find / -size 33c -user bandit7 -group bandit6 2>/dev/null
/var/lib/dpkg/info/bandit7.password
bandit6@melinda:~$ cat /var/lib/dpkg/info/bandit7.password
HKBPTKQnIay4Fw76bEy8PVxKEDQRKTzs
bandit6@melinda:~$ logout
Connection to bandit.labs.overthewire.org closed.
stef$

Livello 7 -> 8:

stef$ ssh bandit7@bandit.labs.overthewire.org
bandit7@melinda:~$ cat data.txt | grep millionth
millionth	cvX2JJa4CFALtqS87jk27qwqGhBM9plV
bandit7@melinda:~$ logout
Connection to bandit.labs.overthewire.org closed.
stef$

Livello 8 -> 9:

stef$ ssh bandit8@bandit.labs.overthewire.org
bandit8@melinda:~$ sort data.txt | uniq -u
UsvVyFSfZZWbi6wgC7dAFyFuR6jQQUhR
bandit8@melinda:~$ logout
Connection to bandit.labs.overthewire.org closed.
stef$

Livello 9 -> 10:

stef$ ssh bandit9@bandit.labs.overthewire.org
bandit9@melinda:~$ ls
data.txt
bandit9@melinda:~$ strings data.txt | grep =
epr~F=K
7?YD=
?M=HqAH
/(Ne=
C=_"
I========== the6
z5Y=
`h(8=`
n\H=;
========== password
========== ism
N$=&
l/a=L)
f=C(
========== truKLdjsbJ5g7yyJ2X2R0o3a5HQJFuLk
ie)=5e
bandit9@melinda:~$ logout
Connection to bandit.labs.overthewire.org closed.
stef$

Livello 10 -> 11:

stef$ ssh bandit10@bandit.labs.overthewire.org
bandit10@melinda:~$ ls
data.txt
bandit10@melinda:~$ base64 -d data.txt 
The password is IFukwKGsFW8MOq3IRFqrxE1hxTNEbUPR
bandit10@melinda:~$ logout
Connection to bandit.labs.overthewire.org closed.
stef$ 

Livello 11 -> 12:

stef$ ssh bandit11@bandit.labs.overthewire.org
bandit11@melinda:~$ ls
data.txt
bandit11@melinda:~$ cat data.txt 
Gur cnffjbeq vf 5Gr8L4qetPEsPk8htqjhRK8XSP6x2RHh
bandit11@melinda:~$ tr 'A-Za-z' 'N-ZA-Mn-za-m' < data.txt 
The password is 5Te8Y4drgCRfCx8ugdwuEX8KFC6k2EUu
bandit11@melinda:~$ logout
Connection to bandit.labs.overthewire.org closed.
stef$

Livello 12 -> 13:

stef$ ssh bandit12@bandit.labs.overthewire.org
bandit12@melinda:/tmp$ cd /tmp
bandit12@melinda:/tmp$ mkdir acc123
bandit12@melinda:/tmp$ cd acc123
bandit12@melinda:/tmp/acc123$ cp /home/bandit12/data.txt ./
bandit12@melinda:/tmp/acc123$ ls
data.txt
#Convertiamo l'hexdump in binario
bandit12@melinda:/tmp/acc123$ xxd -r data.txt > data1.txt
bandit12@melinda:/tmp/acc123$ ls
data.txt  data1.txt
#Utilizziamo il comando file per vedere con che tipo di file abbiamo a che fare
bandit12@melinda:/tmp/acc123$ file data1.txt 
data1.txt: gzip compressed data, was "data2.bin", from Unix, last modified: Fri Nov 14 10:32:20 2014, max compression
bandit12@melinda:/tmp/acc123$ mv data1.txt data2.bin.gz 
bandit12@melinda:/tmp/acc123$ gunzip data2.bin.gz 
bandit12@melinda:/tmp/acc123$ ls
data.txt  data2.bin
bandit12@melinda:/tmp/acc123$ file data2.bin 
data2.bin: bzip2 compressed data, block size = 900k   
bandit12@melinda:/tmp/acc123$ bunzip2 data2.bin
bunzip2: Can't guess original name for data2.bin -- using data2.bin.out
bandit12@melinda:/tmp/acc123$ ls
data.txt  data2.bin.out
bandit12@melinda:/tmp/acc123$ file data2.bin.out 
data2.bin.out: gzip compressed data, was "data4.bin", from Unix, last modified: Fri Nov 14 10:32:20 2014, max compression
bandit12@melinda:/tmp/acc123$ mv data2.bin.out data4.bin.gz
bandit12@melinda:/tmp/acc123$ gunzip data4.bin.gz 
bandit12@melinda:/tmp/acc123$ ls
data.txt  data4.bin
bandit12@melinda:/tmp/acc123$ file data4.bin 
data4.bin: POSIX tar archive (GNU)
bandit12@melinda:/tmp/acc123$ tar -xvf data4.bin
data5.bin
bandit12@melinda:/tmp/acc123$ file data5.bin 
data5.bin: POSIX tar archive (GNU)
bandit12@melinda:/tmp/acc123$ tar -xvf data5.bin
data6.bin
bandit12@melinda:/tmp/acc123$ file data6.bin 
data6.bin: bzip2 compressed data, block size = 900k
bandit12@melinda:/tmp/acc123$ bunzip2 data6.bin
bunzip2: Can't guess original name for data6.bin -- using data6.bin.out
bandit12@melinda:/tmp/acc123$ file data6.bin.out 
data6.bin.out: POSIX tar archive (GNU)
bandit12@melinda:/tmp/acc123$ tar -xvf data6.bin.out
data8.bin
bandit12@melinda:/tmp/acc123$ file data8.bin 
data8.bin: gzip compressed data, was "data9.bin", from Unix, last modified: Fri Nov 14 10:32:20 2014, max compression
bandit12@melinda:/tmp/acc123$ mv data8.bin data9.bin.gz
bandit12@melinda:/tmp/acc123$ gunzip data9.bin.gz 
bandit12@melinda:/tmp/acc123$ ls
data.txt  data4.bin  data5.bin  data6.bin.out  data9.bin
bandit12@melinda:/tmp/acc123$ file data9.bin 
data9.bin: ASCII text
bandit12@melinda:/tmp/acc123$ cat data9.bin 
The password is 8ZjyCRiBWFYkneahHwxCv3wb2a1ORpYL
bandit12@melinda:/tmp/acc123$ logout
Connection to bandit.labs.overthewire.org closed.
stef$

Livello 13 -> 14:

stef$ ssh bandit13@bandit.labs.overthewire.org
bandit13@melinda:~$ ls
sshkey.private
bandit13@melinda:~$ logout
Connection to bandit.labs.overthewire.org closed.
#Copio la chiave sul computer locale
stef$ scp bandit13@bandit.labs.overthewire.org:/home/bandit13/sshkey.private ./Cartella/

Livello 14 -> 15:

stef$ ssh bandit14@bandit.labs.overthewire.org -i ./Cartella/sshkey.private
bandit14@melinda:~$ cat /etc/bandit_pass/bandit14 
4wcYUJFw0k0XLShlDzztnTBHiqxU3b3e
#Controlliamo se effettivamente esiste un servizio in ascolto sulla porta 30000
bandit14@melinda:~$ netstat -anp | grep 30000
tcp        0      0 0.0.0.0:30000           0.0.0.0:*               LISTEN      - 
#Tentiamo la connessione verso il server locale alla porta 30000
bandit14@melinda:~$ nc localhost 30000
#proviamo a spedire la password trovata in precedenza
4wcYUJFw0k0XLShlDzztnTBHiqxU3b3e
Correct!
BfMYroe26WYalil77FoDi9qh59eK5xNr

bandit14@melinda:~$ logout
Connection to bandit.labs.overthewire.org closed.
MaKeopti:~ stef$
stef$

Livello 15 -> 16:

stef$ ssh bandit15@bandit.labs.overthewire.org
bandit15@melinda:~$ openssl s_client -host localhost -port 30001
CONNECTED(00000003)
depth=0 CN = li190-250.members.linode.com
verify error:num=18:self signed certificate
verify return:1
depth=0 CN = li190-250.members.linode.com
verify return:1
---
Certificate chain
 0 s:/CN=li190-250.members.linode.com
   i:/CN=li190-250.members.linode.com
---
Server certificate
-----BEGIN CERTIFICATE-----
[...]
-----END CERTIFICATE-----
[...]
---
No client certificate CA names sent
---
SSL handshake has read 1330 bytes and written 455 bytes
---
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    [...]
    Timeout   : 300 (sec)
    Verify return code: 18 (self signed certificate)
---
BfMYroe26WYalil77FoDi9qh59eK5xNr
HEARTBEATING
read R BLOCK
read:errno=0

#Uso come suggerito l'opzione -quiet
bandit15@melinda:~$ openssl s_client -host localhost -port 30001 -quiet
depth=0 CN = li190-250.members.linode.com
verify error:num=18:self signed certificate
verify return:1
depth=0 CN = li190-250.members.linode.com
verify return:1
BfMYroe26WYalil77FoDi9qh59eK5xNr
Correct!
cluFn7wTiGryunymYOu4RcffSxQluehd

read:errno=0
bandit15@melinda:~$ logout
Connection to bandit.labs.overthewire.org closed.
stef$ 

Livello 16 -> 17:

stef$ ssh bandit16@bandit.labs.overthewire.org
bandit16@melinda:~$ nmap -Pn -A -p 31000-32000 localhost

Starting Nmap 6.40 ( http://nmap.org ) at 2015-01-17 08:42 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00081s latency).
Not shown: 996 closed ports
PORT      STATE SERVICE VERSION
31046/tcp open  echo
31518/tcp open  msdtc   Microsoft Distributed Transaction Coordinator (error)
31691/tcp open  echo
31790/tcp open  msdtc   Microsoft Distributed Transaction Coordinator (error)
31960/tcp open  echo
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows

Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 41.61 seconds

#Le porte indicate come servizio echo probabilmente non ci serviranno e potremmo scartarle a priori.
#In ogni caso, per completezza, proviamo a connetterci alla prima
bandit16@melinda:~$ openssl s_client -host localhost -port 31046
CONNECTED(00000003)
140737354045088:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:795:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 305 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
---
#Non ci resta che focalizzarci sulle porte 31518 e 31790
bandit16@melinda:~$ openssl s_client -host localhost -port 31518
CONNECTED(00000003)
depth=0 CN = li190-250.members.linode.com
verify error:num=18:self signed certificate
verify return:1
depth=0 CN = li190-250.members.linode.com
verify return:1
---
Certificate chain
 0 s:/CN=li190-250.members.linode.com
   i:/CN=li190-250.members.linode.com
---
Server certificate
-----BEGIN CERTIFICATE-----
[...]
-----END CERTIFICATE-----
[...]
---
No client certificate CA names sent
---
SSL handshake has read 1330 bytes and written 455 bytes
---
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    [...]
    Timeout   : 300 (sec)
    Verify return code: 18 (self signed certificate)
---
cluFn7wTiGryunymYOu4RcffSxQluehd
cluFn7wTiGryunymYOu4RcffSxQluehd
^C

#Non ci rimane che provare la connessione sulla porta 31790

bandit16@melinda:~$ openssl s_client -host localhost -port 31790
CONNECTED(00000003)
depth=0 CN = li190-250.members.linode.com
verify error:num=18:self signed certificate
verify return:1
depth=0 CN = li190-250.members.linode.com
verify return:1
---
Certificate chain
 0 s:/CN=li190-250.members.linode.com
   i:/CN=li190-250.members.linode.com
---
Server certificate
-----BEGIN CERTIFICATE-----
[...]
-----END CERTIFICATE-----
subject=/CN=li190-250.members.linode.com
issuer=/CN=li190-250.members.linode.com
---
No client certificate CA names sent
---
SSL handshake has read 1330 bytes and written 455 bytes
---
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    [...]
    Timeout   : 300 (sec)
    Verify return code: 18 (self signed certificate)
---
cluFn7wTiGryunymYOu4RcffSxQluehd
Correct!
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEAvmOkuifmMg6HL2YPIOjon6iWfbp7c3jx34YkYWqUH57SUdyJ
imZzeyGC0gtZPGujUSxiJSWI/oTqexh+cAMTSMlOJf7+BrJObArnxd9Y7YT2bRPQ
Ja6Lzb558YW3FZl87ORiO+rW4LCDCNd2lUvLE/GL2GWyuKN0K5iCd5TbtJzEkQTu
DSt2mcNn4rhAL+JFr56o4T6z8WWAW18BR6yGrMq7Q/kALHYW3OekePQAzL0VUYbW
JGTi65CxbCnzc/w4+mqQyvmzpWtMAzJTzAzQxNbkR2MBGySxDLrjg0LWN6sK7wNX
x0YVztz/zbIkPjfkU1jHS+9EbVNj+D1XFOJuaQIDAQABAoIBABagpxpM1aoLWfvD
KHcj10nqcoBc4oE11aFYQwik7xfW+24pRNuDE6SFthOar69jp5RlLwD1NhPx3iBl
J9nOM8OJ0VToum43UOS8YxF8WwhXriYGnc1sskbwpXOUDc9uX4+UESzH22P29ovd
d8WErY0gPxun8pbJLmxkAtWNhpMvfe0050vk9TL5wqbu9AlbssgTcCXkMQnPw9nC
YNN6DDP2lbcBrvgT9YCNL6C+ZKufD52yOQ9qOkwFTEQpjtF4uNtJom+asvlpmS8A
vLY9r60wYSvmZhNqBUrj7lyCtXMIu1kkd4w7F77k+DjHoAXyxcUp1DGL51sOmama
+TOWWgECgYEA8JtPxP0GRJ+IQkX262jM3dEIkza8ky5moIwUqYdsx0NxHgRRhORT
8c8hAuRBb2G82so8vUHk/fur85OEfc9TncnCY2crpoqsghifKLxrLgtT+qDpfZnx
SatLdt8GfQ85yA7hnWWJ2MxF3NaeSDm75Lsm+tBbAiyc9P2jGRNtMSkCgYEAypHd
HCctNi/FwjulhttFx/rHYKhLidZDFYeiE/v45bN4yFm8x7R/b0iE7KaszX+Exdvt
SghaTdcG0Knyw1bpJVyusavPzpaJMjdJ6tcFhVAbAjm7enCIvGCSx+X3l5SiWg0A
R57hJglezIiVjv3aGwHwvlZvtszK6zV6oXFAu0ECgYAbjo46T4hyP5tJi93V5HDi
Ttiek7xRVxUl+iU7rWkGAXFpMLFteQEsRr7PJ/lemmEY5eTDAFMLy9FL2m9oQWCg
R8VdwSk8r9FGLS+9aKcV5PI/WEKlwgXinB3OhYimtiG2Cg5JCqIZFHxD6MjEGOiu
L8ktHMPvodBwNsSBULpG0QKBgBAplTfC1HOnWiMGOU3KPwYWt0O6CdTkmJOmL8Ni
blh9elyZ9FsGxsgtRBXRsqXuz7wtsQAgLHxbdLq/ZJQ7YfzOKU4ZxEnabvXnvWkU
YOdjHdSOoKvDQNWu6ucyLRAWFuISeXw9a/9p7ftpxm0TSgyvmfLF2MIAEwyzRqaM
77pBAoGAMmjmIJdjp+Ez8duyn3ieo36yrttF5NSsJLAbxFpdlc1gvtGCWW+9Cq0b
dxviW8+TFVEBl1O4f7HVm6EpTscdDxU+bCXWkfjuRb7Dy9GOtt9JPsX8MBTakzh3
vBgsyi/sN3RqRBcGU40fOoZyfAMT8s1m/uYv52O6IgeuZ/ujbjY=
-----END RSA PRIVATE KEY-----

read:errno=0
#Copiamo la chiave privata su un file da poter riutilizzare al livello successivo.
#Nel mio caso il file si chiamerà sshkey-private17
bandit16@melinda:~$ logout
Connection to bandit.labs.overthewire.org closed.
stef$ 

Livello 17 -> 18:

stef$ ssh bandit17@bandit.labs.overthewire.org -i ./Cartella/sshkey.private17
bandit17@melinda:~$ diff passwords.old passwords.new 
42c42
< BS8bqB1kqkinKJjuxL6k072Qq9NRwQpR
---
> kfBf3eYk5BPBRzwjqutbbfE887SVc5Yd
#La stringa che cerchiamo è la seconda proposta, segnalata dal simbolo ">"
bandit17@melinda:~$ logout
Connection to bandit.labs.overthewire.org closed.
stef$

Livello 18 -> 19:

stef$ ssh bandit18@bandit.labs.overthewire.org
[...]
bandit18@bandit.labs.overthewire.org's password: 
Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.18.1-x86_64-linode50 x86_64)
[...]

Byebye !
Connection to bandit.labs.overthewire.org closed.
stef$
#Con ssh è possibile eseguire comandi remoti, usando la sintassi
#ssh host comando
#Rif: http://matt.might.net/articles/ssh-hacks/
stef$ ssh bandit18@bandit.labs.overthewire.org cat readme
[...]
bandit18@bandit.labs.overthewire.org's password: 
IueksS7Ubh8G3DCwVzrTd8rAVOwq3M5x
stef$

Livello 19 -> 20:

stef$ ssh bandit19@bandit.labs.overthewire.org
bandit19@melinda:~$ ls
bandit20-do
bandit19@melinda:~$ ./bandit20-do                              
Run a command as another user.
  Example: ./bandit20-do id
bandit19@melinda:~$ ./bandit20-do cat /etc/bandit_pass/bandit20
GbKksEFF4yrVs6il55v6gwY5aVje5f0j
bandit19@melinda:~$ logout
Connection to bandit.labs.overthewire.org closed.
stef$

Livello 20 -> 21:

#console 1
stef$ ssh bandit20@bandit.labs.overthewire.org
bandit20@melinda:~$ ls
suconnect
bandit20@melinda:~$ ./suconnect 
Usage: ./suconnect 
This program will connect to the given port on localhost using TCP. If it receives the correct password from the other side, the next password is transmitted back.

#console 2
stef$ ssh bandit20@bandit.labs.overthewire.org
bandit20@melinda:~$ nc -l 7890

#console 1
bandit20@melinda:~$ netstat -apn | grep 7890
tcp        0      0 0.0.0.0:7890            0.0.0.0:*               LISTEN      4399/nc 
bandit20@melinda:~$ ./suconnect 7890

#Console 2. Spediamo la vecchia password
GbKksEFF4yrVs6il55v6gwY5aVje5f0j

#Console 1
Read: GbKksEFF4yrVs6il55v6gwY5aVje5f0j
Password matches, sending next password
bandit20@melinda:~$ logout
Connection to bandit.labs.overthewire.org closed.
MaKeopti:bing-ip2hosts-0.4 stef$

#Console 2. Riceviamo la risposta con la nuova password
gE269g2h3mw3pwgrj0Ha9Uoqen1c9DGr
bandit20@melinda:~$ logout
Connection to bandit.labs.overthewire.org closed.
stef$

Livello 21 -> 22:

stef$ ssh bandit21@bandit.labs.overthewire.org
bandit21@melinda:~$ cd /etc/cron.d
bandit21@melinda:/etc/cron.d$ ls
behemoth4_cleanup   manpage3_resetpw_job   natas27_cleanup  sysstat
cron-apt            melinda-stats          php5             vortex0
cronjob_bandit22    natas-session-toucher  semtex0-32       vortex20
cronjob_bandit23    natas-stats            semtex0-64
cronjob_bandit24    natas25_cleanup        semtex0-ppc
leviathan5_cleanup  natas26_cleanup        semtex5
bandit21@melinda:/etc/cron.d$ cat cronjob_bandit22 
* * * * * bandit22 /usr/bin/cronjob_bandit22.sh &> /dev/null
bandit21@melinda:/etc/cron.d$ cat /usr/bin/cronjob_bandit22.sh 
#!/bin/bash
chmod 644 /tmp/t7O6lds9S0RqQh9aMcz6ShpAoZKF7fgv
cat /etc/bandit_pass/bandit22 > /tmp/t7O6lds9S0RqQh9aMcz6ShpAoZKF7fgv
bandit21@melinda:/etc/cron.d$ cat /tmp/t7O6lds9S0RqQh9aMcz6ShpAoZKF7fgv
Yk7owGAcWjwMVRwrTesJEwB7WVOiILLI
bandit21@melinda:/etc/cron.d$ logout
Connection to bandit.labs.overthewire.org closed.
stef$

Livello 22 -> 23:

stef$ ssh bandit22@bandit.labs.overthewire.org
bandit22@melinda:~$ cd /etc/cron.d/
bandit22@melinda:/etc/cron.d$ ls
behemoth4_cleanup   manpage3_resetpw_job   natas27_cleanup  sysstat
cron-apt            melinda-stats          php5             vortex0
cronjob_bandit22    natas-session-toucher  semtex0-32       vortex20
cronjob_bandit23    natas-stats            semtex0-64
cronjob_bandit24    natas25_cleanup        semtex0-ppc
leviathan5_cleanup  natas26_cleanup        semtex5
bandit22@melinda:/etc/cron.d$ cat cronjob_bandit23
* * * * * bandit23 /usr/bin/cronjob_bandit23.sh  &> /dev/null
bandit22@melinda:/etc/cron.d$ cat /usr/bin/cronjob_bandit23.sh 
#!/bin/bash

myname=$(whoami)
mytarget=$(echo I am user $myname | md5sum | cut -d ' ' -f 1)

echo "Copying passwordfile /etc/bandit_pass/$myname to /tmp/$mytarget"

cat /etc/bandit_pass/$myname > /tmp/$mytarget

#troviamo il valore della variabile mytarget
bandit22@melinda:/$ echo I am user bandit23 | md5sum | cut -d ' ' -f 1
8ca319486bfbbc3663ea0fbe81326349
#visualizziamo il file
bandit22@melinda:/$ cat /tmp/8ca319486bfbbc3663ea0fbe81326349
jc1udXuA1tiHqjIsL8yaapX5XIAI6i0n
bandit22@melinda:/$ logout
Connection to bandit.labs.overthewire.org closed.
stef$

Livello 23 -> 24:

stef$ ssh bandit23@bandit.labs.overthewire.org
bandit23@melinda:~$ cd /etc/cron.d
bandit23@melinda:/etc/cron.d$ ls
behemoth4_cleanup   manpage3_resetpw_job   natas27_cleanup  sysstat
cron-apt            melinda-stats          php5             vortex0
cronjob_bandit22    natas-session-toucher  semtex0-32       vortex20
cronjob_bandit23    natas-stats            semtex0-64
cronjob_bandit24    natas25_cleanup        semtex0-ppc
leviathan5_cleanup  natas26_cleanup        semtex5
bandit23@melinda:/etc/cron.d$ cat cronjob_bandit24
* * * * * bandit24 /usr/bin/cronjob_bandit24.sh &> /dev/null
bandit23@melinda:/etc/cron.d$ cat /usr/bin/cronjob_bandit24.sh
#!/bin/bash

myname=$(whoami)

cd /var/spool/$myname
echo "Executing and deleting all scripts in /var/spool/$myname:"
for i in *;
do
    echo "Handling $i"
    ./$i
    rm -f $i
done


bandit23@melinda:/etc/cron.d$ mkdir /tmp/stef
bandit23@melinda:/etc/cron.d$ cd /tmp/stef
bandit23@melinda:/tmp/stef$ touch script.sh
bandit23@melinda:/tmp/stef$ vi script.sh
#Creo uno script bash. Di seguito il cat dello script
bandit23@melinda:/tmp/stef$ cat script.sh 
#!/bin/bash

myname=$(whoami)
myfile="/tmp/stef/password$myname.txt"
echo "The password for user $myname is the following:" > $myfile 
cat /etc/bandit_pass/$myname >> $myfile
#Occorre dargli gli attributi opportuni alla cartelle e i file contenuti
bandit23@melinda:/tmp/stef$ chmod 777 -R /tmp/stef
bandit23@melinda:/tmp/stef$ ls -l
total 4
-rwx--x--x 1 bandit23 bandit23 178 Jan 18 16:10 script.sh
#Ora testiamo lo script, dovremmo avere le info per l'utente che esegue il file,
#per ora l'utente bandit23
bandit23@melinda:/tmp/stef$ ./script.sh 
bandit23@melinda:/tmp/stef$ ls
passwordbandit23.txt  script.sh
bandit23@melinda:/tmp/stef$ cat passwordbandit23.txt 
The password for user bandit23 is the following:
jc1udXuA1tiHqjIsL8yaapX5XIAI6i0n
#A questo punto tutto dovrebbe essere pronto per utilizzare lo script per l'utente bandit24
bandit23@melinda:/tmp/stef$ cp script.sh /var/spool/bandit24/
bandit23@melinda:/tmp/stef$ ls
passwordbandit23.txt  passwordbandit24.txt  script.sh
bandit23@melinda:/tmp/stef$ cat passwordbandit24.txt 
The password for user bandit24 is the following:
UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ
bandit23@melinda:~$ cd
bandit23@melinda:~$ rm -rf /tmp/stef
bandit23@melinda:~$ logout
Connection to bandit.labs.overthewire.org closed.
stef$

Livello 24 -> 25:

stef$ ssh bandit24@bandit.labs.overthewire.org
#Controlliamo che in effetti un server sia ascolto sulla porta indicata
bandit24@melinda:~$ netstat -ln | grep 30002
tcp        0      0 0.0.0.0:30002           0.0.0.0:*               LISTEN 
bandit24@melinda:~$ cd /tmp/stef
bandit24@melinda:/tmp/stef$ ls
bandit24@melinda:/tmp/stef$ touch scriptLev24.sh
bandit24@melinda:/tmp/stef$ chmod +x scriptLev24.sh
bandit24@melinda:/tmp/stef$ cat scriptLev24.sh 
#!/bin/bash

lvl23psw="UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ"
outputfile="outputlvl24.txt"
#For more info search "Zero padding"
for i in $(seq -f "%04g" 0 9999)
do
  echo "using code $i" | tee -a $outputfile
  echo "$lvl23psw $i" | nc localhost 30002 | tee -a $outputfile
done

echo "done"
bandit24@melinda:/tmp/stef$ ./scriptLev24.sh
#Dopo qualche tempo le script troverà la password:
I am the pincode checker for user bandit25. Please enter the password for user bandit24 and the secret pincode on a single line, separated by a space.
Correct!
The password of user bandit25 is uNG9O58gUE7snukf3bvZ0rxhtnjzSGzG

Lascia un commento