Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Pisze mały programik w c++... jedna z jego części ma być powiadamianie o tym, ze na serwerze jest zalogowany root, albo jeszcze lepiej user z UID 0. Jak takie cos osiagnac?
Jak sprawdzić, czy aktualnie jest zalogowany jakis uzytkownik z UID 0?
zablokowalem logowanie bezposrednio root'a przez ssh i teraz gdy loguje sie jako zwykly user i przełączam na roota przez su - to np. who, finger pokazuja tylko nazwy tego zwyklego uzytkownika...
Czy musze przeszukiwac logi? Jesli tak, to gdzie najlatwiej to znalezc?
Offline
spróbuj zalogować się nie przez 'su" tylko przez "su -"
Powinno pomóc
Offline
sposobow jest pelno.
jesli ktos zaloguje sie na root'a poprzez su, to w procesach bedziesz widzial.
ps ax | grep su
4651 pts/6 S 0:00 su -
w logach bedzie:
Feb 7 08:58:00 hpos su[4651]: Successful su for root by liare
Feb 7 08:58:00 hpos su[4651]: + pts/6 liare:root
Mozesz sobie sam napisac skryty albo skorzystac np. ze swatch.
~> apt-cache show swatch
Package: swatch
Priority: optional
Section: admin
Installed-Size: 196
Maintainer: Nikolay Kokalichev <nkokalichev@yahoo.com>
Architecture: all
Version: 3.2.1-1
Depends: perl (>= 5.6.1), libtimedate-perl, libtime-hires-perl, libdate-calc-perl, libfile-tail-perl, libdate-manip-perl
Filename: pool/main/s/swatch/swatch_3.2.1-1_all.deb
Size: 41596
MD5sum: d0343290e8e3fb3b75087b1cf3795fea
SHA1: 82107c2fe9054da76f23246e68530c9753044eac
SHA256: 7483e70bd516d8d6f551b7997cabe23bcfffe884685965535b87c280c506f293
Description: Log file viewer with regexp matching, highlighting, & hooks
Swatch is designed to monitor system activity. It reads a configuration
file which contains pattern(s) to look for and action(s) to perform when
each pattern is found.
.
A typical action is echoing the matched line in a variety of colours and
formats including reverse video, bold, underline, and normal, which swatch
knows how to do internally. Other actions include sending mail or
executing an arbitrary program on the line.
.
Swatch is written in Perl and uses Perl regular expressions for line
matching.
Offline
spróbuj zalogować się nie przez 'su" tylko przez "su -"
Powinno pomóc
:) nie o takie rozwiazanie mi chodzilo...
chcialbym wiedziec, ze ktos niepowolany loguje sie na roota, a nie zmusze ewentualnego zloczyncy ;) zeby logowal sie przez su, a nie przez su - :)
Feb 7 08:58:00 hpos su[4651]: Successful su for root by liare
Feb 7 08:58:00 hpos su[4651]: + pts/6 liare:root
Bardziej interesowalby mnie fakt zalogowania sie uzytkownika z UID 0
Ma ktos jeszcze jakis pomysl?
Offline
a zamiast who - sama litera w - co Ci pokazuje ?
Offline
a zamiast who - sama litera w - co Ci pokazuje ?
takze tylko zwyklego uzytkownika, z ktorego przeszedlem na roota :(
Offline
Czyzby rzeczywiscie nie było sposobu na sprawdzenie czy aktualnie nie ma w sytemie zalogowanego uzytkownika z UID 0, lub chociazby uzytkownika o nazwie root?
wpadlem na taki pomysl:
1) dopisze do skryptu .bashrc roota komende, ktora w jakims tam katalogu bedzie tworzyla np plik o nazwie odpowiadajacej godzinie logowania lub jeszcze lepiej odpowiadajacej PID procesu polaczenia przez ssh
2) (nie wiem jeszcze jak) napiszę skrypt, ktory z chwilą, gdy dany root sie
3) w moim programiku, bede na biezaco sprawdzal, czy w danym katalogu nie ma jakiegokolwiek pliku, jesli bedzie, to znaczy, ze root jest zalogowany
teraz pytania:
1) bez probemu mozna szybko podejrzec plik .bashrc
czy jest mozliwosc napisania i ewentualnego zaszyfrowania w pliku, ktore przy logowaniu roota tworzylyby pliki, o ktorych pisalem powyzej
2) czy jest mozliwosc wywolywania jakiegokolwiek skryptu, z chwila gdy root sie sie bedzie wylogowywal
ps.
Jesli temat za bardzo odbiegl od dzialu software, to prosze o przeniesienie w bardziej odpowiednie miejsce :]
Offline
Jeżeli to ma być w kodzie c to robisz wywołanie systemowy, komendy shela.
Jeżeli root sie logował bezposrednio to :
finger |grep root|cut -d ' ' -f1
.
natomiast jeżeli przez su to możesz :
ps -u root|grep su|cut -d ' ' -f8
Robisz sprawdzanie warunku czy system("<powyższe>") coś zwraca i powinno chulać.
Offline
zablokowalem mozliwosc logowania bezposredniego na roota przez ssh, dlatego pozostaje tylko su -
Niestey
ps -u root|grep su|cut -d ' ' -f8
zwraca tylko pusta linie, pomimo, ze jestem zalogowany na serwerze jako root wlasnie przez su -
Działa natomiast
ps -u root|grep su|cut -d '' -f8
i zwraca 17058 pts/2 00:00:00 su
Czy o to chodzilo?
Offline
Ja bym sprawdził czy działają jakieś powłoki z prawami root. Nie tylko przez su można uzyskać prawa roota, ale przez jakiegoś exploita.
Wymóżdżyłem coś takiego (przy założeniu, że najdłuższa nazwa powłoki ma nie więcej niż 5 znaków):
ps -u root|egrep '(su$|(( |/)w{,3})sh$)'
Offline