total descendants:: total children::5 4 ❤️ |
no potreboval som rozbehat sftp/scp v chroote pre virtual userov, problem je v tom ze existuju 2 shelly ktore toto riesia (scponly,rssh) ale funguju takym sposobom ze v chroote potrebuju mat binarky sftp-server,scp,.. a to je u mna problem tak som si zobral rssh, lebo sa mi pozdavalo lepsie nez scponly chroot riesi takym sposobom, ze rssh execne rssh_chroot_helper, ktory je suid root (callnut chroot() treba z uid 0) 1. najskor som si skompiloval sftp-server a scp a pri linkovani dal -pie (gcc 3.4+ only) pie je position independed executable (shared objekt, ktory sa da executnut, ako napr. /lib/libc.so), tym padom ho viem naloadovat cez dlopen 2. v rssh_chroot_helper v main som nahodil pred chrootom dlopen na tieto dve binarky, cez dlsym som zistil funkciu main obidvoch a ulozil do premennych 3. zmenil exec za chrootom za svoju vlastnu funkciu, ktora iba callne main uz z naloadovanej "kniznice" no a funguje to takym sposobom ze dlopen mmapne tie binarky do pamete a po chroote su stale pristupne v rssh.conf som jebol chroot=".", takze sa chrootne kazdy user do aktualneho adresara po prihlaseni, ktory je homedir este jedna vec, z -shared to nepojde, neviem preco a len tak pomimo, userov virtualnych mam v mysql, autentifikaciu v openssh som zriesil cez libku, ktory preloadujem cez LD_PRELOAD env a potom spustam sshd pam nepouzivam, je to openssh zo slackwaru, takze stacili funkcie getpwnam, getspnam a getpwuid najskor sa skusia zavolat povodne, ked vratia neexistujuci user, tak ceknu v sqlku sshd po forknuti odjebe cely svoj env, takze normalnym userom to nerobi bordel v env po prihlaseni zopar problemov robilo to scp ktore calluje rssh_chroot_helper, lebo chcelo existujuceho usera a este nieco, ale stacilo odkomentovat zo 3,4 riadky patch na rssh_chroot_helper keby niekdo chcel tu http://websupport.sk/~stanojr/projects/stuff/rssh-2.2.3-roxor/rssh_chroot_helper.patch pri linkovani to spicuje nieco, treba do makefile jebnut -ldl :) |
There are currently 10255 K available in get 1 🦆 for 5 🐘 get 1 🐘 for 1 🦆 |
|||||||||||||||||||||||