Ensutie, le “man rssh” dit qu’il faut copier dans le CHROOT, les librairies de “scp”, “sftp-server”, “rssh_chroot_helper”.
Et qu’il faut vérifier ces librairies par une commande “ldd”
Moi j’ai envie de rajouter à cette liste “sftp” et “rssh”.
Ce qui me donne une liste de librairies à vérifier pour :
- scp
- sftp
- rssh
- sftp-server
- rssh-chroot-helper
C’est partie pour un :
qui me donne :
/bin/rssh
/CHROOT_RSSH/usr/bin/rssh
/CHROOT_RSSH/usr/bin/sftp
/CHROOT_RSSH/usr/lib/openssh/sftp-server
/CHROOT_RSSH/usr/lib/openssh/sftp-server/sftp-server
/CHROOT_RSSH/usr/lib/rssh
/CHROOT_RSSH/usr/lib/rssh/rssh_chroot_helper
/CHROOT_RSSH/usr/lib/rssh/rssh_chroot_helper/rssh_chroot_helper
/etc/logcheck/ignore.d.server/rssh
/etc/rssh.conf
/etc/skel_rssh
/lib/iptables/libipt_dscp.so
/lib/modules/2.6.18-5-686/kernel/drivers/hwmon/fscpos.ko
/lib/modules/2.6.18-5-686/kernel/net/ipv4/netfilter/ipt_dscp.ko
/usr/bin/rssh
/usr/bin/scp
/usr/bin/sftp
/usr/lib/openssh/sftp-server
/usr/lib/rssh
/usr/lib/rssh/rssh_chroot_helper
/usr/lib/sftp-server
/usr/share/console/ps2-to-riscpc
/usr/share/doc/rssh
/usr/share/doc/rssh/changelog.Debian.gz
/usr/share/doc/rssh/changelog.gz
/usr/share/doc/rssh/CHROOT.gz
/usr/share/doc/rssh/copyright
/usr/share/doc/rssh/examples
/usr/share/doc/rssh/examples/conf_convert.sh
/usr/share/doc/rssh/examples/mkchroot.sh
/usr/share/doc/rssh/NEWS.Debian.gz
/usr/share/doc/rssh/README
/usr/share/doc/rssh/README.Debian
/usr/share/doc/rssh/SECURITY.gz
/usr/share/doc/rssh/TODO
/usr/share/man/fr/man3/wcscpy.3.gz
/usr/share/man/man1/rssh.1.gz
/usr/share/man/man1/scp.1.gz
/usr/share/man/man1/sftp.1.gz
/usr/share/man/man5/rssh.conf.5.gz
/usr/share/man/man8/sftp-server.8.gz
/usr/share/selinux/refpolicy-targeted/rssh.pp
/var/cache/apt/archives/rssh_2.3.2-2_i386.deb
/var/lib/dpkg/info/rssh.conffiles
/var/lib/dpkg/info/rssh.config
/var/lib/dpkg/info/rssh.list
/var/lib/dpkg/info/rssh.md5sums
/var/lib/dpkg/info/rssh.postinst
/var/lib/dpkg/info/rssh.postrm
/var/lib/dpkg/info/rssh.templates
La dedans il n’y en a que quelques uns qui me semblent interressants :
/usr/bin/rssh
/usr/bin/scp
/usr/bin/sftp
/usr/lib/openssh/sftp-server
/usr/lib/rssh/rssh_chroot_helper
Je vais lancer des commandes “ldd” dessus pour lister leurs librairies.
Je me programme donc un petit script qui va faire ça pour moi et dont voici le code :
[code]echo === /usr/bin/rssh === >> /home/fabrozor/log_ldd.rtf;
ldd /usr/bin/rssh >> /home/fabrozor/log_ldd.rtf;
echo === /usr/bin/scp === >> /home/fabrozor/log_ldd.rtf;
ldd /usr/bin/scp >> /home/fabrozor/log_ldd.rtf;
echo === /usr/bin/sftp === >> /home/fabrozor/log_ldd.rtf;
ldd /usr/bin/sftp >> /home/fabrozor/log_ldd.rtf;
echo === /usr/lib/openssh/sftp-server === >> /home/fabrozor/log_ldd.rtf;
ldd /usr/lib/openssh/sftp-server >> /home/fabrozor/log_ldd.rtf;
echo === /usr/lib/rssh/rssh_chroot_helper === >> /home/fabrozor/log_ldd.rtf;
ldd /usr/lib/rssh/rssh_chroot_helper >> /home/fabrozor/log_ldd.rtf;
[/code]
Ce qui me génère un fichier “log_ldd.rtf” dont voici le contenu :
=== /usr/bin/rssh ===
linux-gate.so.1 => (0xffffe000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7e33000)
/lib/ld-linux.so.2 (0xb7f6b000)
=== /usr/bin/scp ===
linux-gate.so.1 => (0xffffe000)
libresolv.so.2 => /lib/tls/i686/cmov/libresolv.so.2 (0xb7fa3000)
libcrypto.so.0.9.8 => /usr/lib/i686/cmov/libcrypto.so.0.9.8 (0xb7e69000)
libutil.so.1 => /lib/tls/i686/cmov/libutil.so.1 (0xb7e64000)
libz.so.1 => /usr/lib/libz.so.1 (0xb7e50000)
libnsl.so.1 => /lib/tls/i686/cmov/libnsl.so.1 (0xb7e3a000)
libcrypt.so.1 => /lib/tls/i686/cmov/libcrypt.so.1 (0xb7e0c000)
libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0xb7df0000)
libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0xb7d74000)
libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0xb7d4e000)
libcom_err.so.2 => /lib/libcom_err.so.2 (0xb7d4b000)
libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0xb7d46000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7c15000)
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7c11000)
/lib/ld-linux.so.2 (0xb7fbd000)
=== /usr/bin/sftp ===
linux-gate.so.1 => (0xffffe000)
libresolv.so.2 => /lib/tls/i686/cmov/libresolv.so.2 (0xb7f66000)
libcrypto.so.0.9.8 => /usr/lib/i686/cmov/libcrypto.so.0.9.8 (0xb7e2c000)
libutil.so.1 => /lib/tls/i686/cmov/libutil.so.1 (0xb7e27000)
libz.so.1 => /usr/lib/libz.so.1 (0xb7e13000)
libnsl.so.1 => /lib/tls/i686/cmov/libnsl.so.1 (0xb7dfd000)
libcrypt.so.1 => /lib/tls/i686/cmov/libcrypt.so.1 (0xb7dcf000)
libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0xb7db3000)
libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0xb7d37000)
libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0xb7d11000)
libcom_err.so.2 => /lib/libcom_err.so.2 (0xb7d0e000)
libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0xb7d09000)
libedit.so.2 => /usr/lib/libedit.so.2 (0xb7cee000)
libncurses.so.5 => /lib/libncurses.so.5 (0xb7cad000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7b7c000)
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7b77000)
/lib/ld-linux.so.2 (0xb7f80000)
=== /usr/lib/openssh/sftp-server ===
linux-gate.so.1 => (0xffffe000)
libresolv.so.2 => /lib/tls/i686/cmov/libresolv.so.2 (0xb7f13000)
libcrypto.so.0.9.8 => /usr/lib/i686/cmov/libcrypto.so.0.9.8 (0xb7dd9000)
libutil.so.1 => /lib/tls/i686/cmov/libutil.so.1 (0xb7dd4000)
libz.so.1 => /usr/lib/libz.so.1 (0xb7dc0000)
libnsl.so.1 => /lib/tls/i686/cmov/libnsl.so.1 (0xb7daa000)
libcrypt.so.1 => /lib/tls/i686/cmov/libcrypt.so.1 (0xb7d7c000)
libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0xb7d60000)
libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0xb7ce4000)
libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0xb7cbe000)
libcom_err.so.2 => /lib/libcom_err.so.2 (0xb7cbb000)
libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0xb7cb6000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7b85000)
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7b81000)
/lib/ld-linux.so.2 (0xb7f2d000)
=== /usr/lib/rssh/rssh_chroot_helper ===
linux-gate.so.1 => (0xffffe000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7e4c000)
/lib/ld-linux.so.2 (0xb7f84000)
Bon, faut que je vérifie si j’ai tout ça dans mon /CHROOT_RSSH maintenant :-/
Mais ce fichier n’est pas exploitable tel qu’il est. Il faut donc que je le modifie.
Je souhaite virer le debut de chaque ligne jusqu’à "=> " et virer la fin de chaque ligne à partir de " ("
Je vais donc me creuse le crane pour trouver les commandes qui feront ça …
Après quelques aspirines, j’obtiens les formules magiques pour les debuts de lignes :
Dans le fichier “log_ldd.rtf_bkp”, je remplace tout ce qui est avant "=> " par un vide (donc je supprime), et j’ecris le résultat dans un fichier “log_ldd_deb.rtf”
sed -e 's/^.*=> //g' log_ldd.rtf_bkp > log_ldd_deb.rtf
et la commande magique pour les fins de lignes :
Dans le fichier “log_ldd_deb.rtf”, je remplace tout ce qui est après " (" par des vides (donc je supprime), et j’ecris le résultat dans le fichier “log_ldd_fin.rtf”.
sed -e 's/\((.*$\)//g' log_ldd_deb.rtf > log_ldd_fin.rtf
J’obtiens le fichier “épuré” suivant :
hobbit:/home/fabrozor# cat log_ldd_fin.rtf
=== /usr/bin/rssh ===
/lib/tls/i686/cmov/libc.so.6
/lib/ld-linux.so.2
=== /usr/bin/scp ===
/lib/tls/i686/cmov/libresolv.so.2
/usr/lib/i686/cmov/libcrypto.so.0.9.8
/lib/tls/i686/cmov/libutil.so.1
/usr/lib/libz.so.1
/lib/tls/i686/cmov/libnsl.so.1
/lib/tls/i686/cmov/libcrypt.so.1
/usr/lib/libgssapi_krb5.so.2
/usr/lib/libkrb5.so.3
/usr/lib/libk5crypto.so.3
/lib/libcom_err.so.2
/usr/lib/libkrb5support.so.0
/lib/tls/i686/cmov/libc.so.6
/lib/tls/i686/cmov/libdl.so.2
/lib/ld-linux.so.2
=== /usr/bin/sftp ===
/lib/tls/i686/cmov/libresolv.so.2
/usr/lib/i686/cmov/libcrypto.so.0.9.8
/lib/tls/i686/cmov/libutil.so.1
/usr/lib/libz.so.1
/lib/tls/i686/cmov/libnsl.so.1
/lib/tls/i686/cmov/libcrypt.so.1
/usr/lib/libgssapi_krb5.so.2
/usr/lib/libkrb5.so.3
/usr/lib/libk5crypto.so.3
/lib/libcom_err.so.2
/usr/lib/libkrb5support.so.0
/usr/lib/libedit.so.2
/lib/libncurses.so.5
/lib/tls/i686/cmov/libc.so.6
/lib/tls/i686/cmov/libdl.so.2
/lib/ld-linux.so.2
=== /usr/lib/openssh/sftp-server ===
/lib/tls/i686/cmov/libresolv.so.2
/usr/lib/i686/cmov/libcrypto.so.0.9.8
/lib/tls/i686/cmov/libutil.so.1
/usr/lib/libz.so.1
/lib/tls/i686/cmov/libnsl.so.1
/lib/tls/i686/cmov/libcrypt.so.1
/usr/lib/libgssapi_krb5.so.2
/usr/lib/libkrb5.so.3
/usr/lib/libk5crypto.so.3
/lib/libcom_err.so.2
/usr/lib/libkrb5support.so.0
/lib/tls/i686/cmov/libc.so.6
/lib/tls/i686/cmov/libdl.so.2
/lib/ld-linux.so.2
=== /usr/lib/rssh/rssh_chroot_helper ===
/lib/tls/i686/cmov/libc.so.6
/lib/ld-linux.so.2
Ca prend forme mais ça n’est pas encore exploitable.
Il faut que je vérifie si chaque ligne de cette liste existe dans “/CHROOT_RSSH/”
Je me fais donc un petit script qui va lire chaque ligne du fichier “log_ldd_fin.rtf” et vérifier si elle existe dans le repertoire “/CHROOT_RSSH/”.
Ce script ecrira le résultat dans un fichier de log “compare_resultat.rtf”.
Si la ligne existe ça ecrira “OK”, si la ligne n’existe pas ça ecrira “XXX”.
Voilà le script “comparaison_chroot_rssh” :
#! /bin/bash
while read line
do
{
echo "$line";
if [ -f "$line" ] ;
then echo "OK";
else echo "XXX";
fi;
echo '------------------------------------------';
}
done < log_ldd_fin.rtf
Après un p’tit “chmod +x comparaison_chroot_rssh”, j’execute
et je lis le fichier “compare_resultat.rtf”
=== /usr/bin/rssh ===
XXX
------------------------------------------
XXX
------------------------------------------
/lib/tls/i686/cmov/libc.so.6
OK
------------------------------------------
/lib/ld-linux.so.2
OK
------------------------------------------
=== /usr/bin/scp ===
XXX
------------------------------------------
XXX
------------------------------------------
/lib/tls/i686/cmov/libresolv.so.2
OK
------------------------------------------
/usr/lib/i686/cmov/libcrypto.so.0.9.8
OK
------------------------------------------
/lib/tls/i686/cmov/libutil.so.1
OK
------------------------------------------
/usr/lib/libz.so.1
OK
------------------------------------------
/lib/tls/i686/cmov/libnsl.so.1
OK
------------------------------------------
/lib/tls/i686/cmov/libcrypt.so.1
OK
------------------------------------------
/usr/lib/libgssapi_krb5.so.2
OK
------------------------------------------
/usr/lib/libkrb5.so.3
OK
------------------------------------------
/usr/lib/libk5crypto.so.3
OK
------------------------------------------
/lib/libcom_err.so.2
OK
------------------------------------------
/usr/lib/libkrb5support.so.0
OK
------------------------------------------
/lib/tls/i686/cmov/libc.so.6
OK
------------------------------------------
/lib/tls/i686/cmov/libdl.so.2
OK
------------------------------------------
/lib/ld-linux.so.2
OK
------------------------------------------
=== /usr/bin/sftp ===
XXX
------------------------------------------
XXX
------------------------------------------
/lib/tls/i686/cmov/libresolv.so.2
OK
------------------------------------------
/usr/lib/i686/cmov/libcrypto.so.0.9.8
OK
------------------------------------------
/lib/tls/i686/cmov/libutil.so.1
OK
------------------------------------------
/usr/lib/libz.so.1
OK
------------------------------------------
/lib/tls/i686/cmov/libnsl.so.1
OK
------------------------------------------
/lib/tls/i686/cmov/libcrypt.so.1
OK
------------------------------------------
/usr/lib/libgssapi_krb5.so.2
OK
------------------------------------------
/usr/lib/libkrb5.so.3
OK
------------------------------------------
/usr/lib/libk5crypto.so.3
OK
------------------------------------------
/lib/libcom_err.so.2
OK
------------------------------------------
/usr/lib/libkrb5support.so.0
OK
------------------------------------------
/usr/lib/libedit.so.2
OK
------------------------------------------
/lib/libncurses.so.5
OK
------------------------------------------
/lib/tls/i686/cmov/libc.so.6
OK
------------------------------------------
/lib/tls/i686/cmov/libdl.so.2
OK
------------------------------------------
/lib/ld-linux.so.2
OK
------------------------------------------
=== /usr/lib/openssh/sftp-server ===
XXX
------------------------------------------
XXX
------------------------------------------
/lib/tls/i686/cmov/libresolv.so.2
OK
------------------------------------------
/usr/lib/i686/cmov/libcrypto.so.0.9.8
OK
------------------------------------------
/lib/tls/i686/cmov/libutil.so.1
OK
------------------------------------------
/usr/lib/libz.so.1
OK
------------------------------------------
/lib/tls/i686/cmov/libnsl.so.1
OK
------------------------------------------
/lib/tls/i686/cmov/libcrypt.so.1
OK
------------------------------------------
/usr/lib/libgssapi_krb5.so.2
OK
------------------------------------------
/usr/lib/libkrb5.so.3
OK
------------------------------------------
/usr/lib/libk5crypto.so.3
OK
------------------------------------------
/lib/libcom_err.so.2
OK
------------------------------------------
/usr/lib/libkrb5support.so.0
OK
------------------------------------------
/lib/tls/i686/cmov/libc.so.6
OK
------------------------------------------
/lib/tls/i686/cmov/libdl.so.2
OK
------------------------------------------
/lib/ld-linux.so.2
OK
------------------------------------------
=== /usr/lib/rssh/rssh_chroot_helper ===
XXX
------------------------------------------
XXX
------------------------------------------
/lib/tls/i686/cmov/libc.so.6
OK
------------------------------------------
/lib/ld-linux.so.2
OK
------------------------------------------
(PS : j’édite ce poste au fur et à mesure que j’avance)