Mam nadzieję, że gdzieś w usłudze Active Directory jest zapisywane / przechowywane „ostatnie logowanie z [komputera]”, czy istnieje dziennik, który mogę przeanalizować?
Chcąc dowiedzieć się, z którego komputera ostatnio zalogowano, jest zaoferowanie zdalnej pomocy przez sieć - nasi użytkownicy poruszają się dość rzadko, ale chciałbym wiedzieć, że wszystko, z czym się konsultowałem, aktualizowało się rano (kiedy się zalogowali) , przypuszczalnie) co najmniej.
Rozważam również skrypty logowania, które zapisują nazwy użytkownika i komputera w znanej lokalizacji, do której mogę się odwoływać, ale niektórzy z naszych użytkowników nie lubią się wylogowywać przez 15 dni.
Jeśli istnieje eleganckie rozwiązanie wykorzystujące skrypty logowania, zdecydowanie wspomnij o nim - ale jeśli zdarza się, że działa tylko w celu odblokowania stacji, byłoby jeszcze lepiej!
Robimy to za pomocą skryptu logowania, który aktualizuje opis obiektu komputerowego w AD.
Musisz wykonać niestandardowe przekazanie kontroli, aby umożliwić „Uwierzytelnionym użytkownikom” zapisywanie właściwości opisu obiektów komputerowych w domenie / domenach.
Gdy to zrobisz, wszystko czego potrzebujesz to skrypt, który generuje dowolne informacje i zapisuje właściwości do obiektu komputerowego. Ten skrypt jest następnie przypisywany jako skrypt logowania za pośrednictwem obiektu zasad grupy połączonego z domeną.
W polu opisu umieszczamy znacznik czasu, nazwę użytkownika, adresy IP. Znacznik czasu jest najważniejszy, ponieważ ułatwia szybkie przeglądanie „starych” obiektów komputerowych poprzez sortowanie według pola opisu.
Oto skrypt, który dla tego napisałem, jeśli chcesz użyć go jako punktu wyjścia:
źródło
Musiałem osiągnąć ten sam wynik z podobnych powodów; jakoś określić, z którego komputera zalogował się określony użytkownik. Chciałem wiedzieć „przed faktem” i nie mogłem zmienić skryptów logowania użytkownika, jak omówiono powyżej.
Użyłem programu PowerShell na kontrolerze domeny, przed którym użytkownik uwierzytelniał się, aby przeanalizować dziennik zdarzeń zabezpieczeń:
get-eventlog "Security" | where {$_.Message -like "*Username*" -AND "Source Network Address"} | export-csv C:\Temp\test.csv
Otwórz crack .csv za pomocą programu Excel lub edytora ulubionych i poszukaj najnowszego wpisu, który pokazuje zarówno nazwę konta (nazwę użytkownika), jak i źródłowy adres sieciowy w ramach tego samego zdarzenia.
To może nie być w 100% niezawodne rozwiązanie (w zależności od czasów dzierżawy DHCP itp.), Ale zadziałało dla mnie.
źródło
Możesz włączyć inspekcję zdarzeń logowania do konta. Te zdarzenia (w tym odblokowanie stacji roboczej) zostaną zapisane w dzienniku bezpieczeństwa kontrolera domeny.
Istnieją również narzędzia innych firm, które mogą to ułatwić, takie jak True Last Logon .
źródło
Po prostu wpisuję nazwę użytkownika (a także inne informacje, takie jak data i godzina, niektóre wersje programów itp.) W opisie komputera za pomocą skryptu logowania. W ten sposób mogę szybko i łatwo pobrać wszystkie informacje z użytkowników i komputerów AD, a jako bonus mam dobry sposób na identyfikację komputerów, które jeszcze w AD nie były używane od dłuższego czasu (a zatem najprawdopodobniej są martwymi maszynami).
źródło
ThatGraemeGuy , dzięki za doskonały skrypt! Musiałem przepisać go w PowerShell, ale nadal działa.
źródło
Sztuczka polegająca na tym, aby z całą pewnością wiedzieć, gdzie użytkownicy ostatnio się logowali oprócz sugestii Adama, polega na agregacji dziennika. Jeśli masz wiele kontrolerów domeny, musisz sprawdzić je wszystkie lub scentralizować rejestrowanie, a następnie sprawdzić pojedynczy dziennik.
Niektóre, a nawet większość narzędzi innych firm są wystarczająco inteligentne, aby przesyłać zapytania do wszystkich kontrolerów domeny. Ale jeśli zastanawiasz się nad napisaniem skryptu, aby sam go przeanalizować, nie mogę argumentować wystarczająco silnie, aby scentralizować twoje dzienniki.
źródło
Idealnie byłoby uchwycić następujące informacje dla zespołu CSIRT, aby pomóc w przeprowadzeniu dochodzenia.
identyfikator użytkownika logujący się przy użyciu nazwy stacji roboczej adres MAC adres IP data / znacznik czasu typ logowania (rdp, interfactive itp.)
Następnie zrzuć to do polecenia sql do bazy danych, którą mogą zapytać. Bity i kawałki są rejestrowane w dowolnym miejscu, ale rejestrowanie tego oszczędza czas pobierania danych z serwerów DHCP / WINS itp.
źródło
Jedynym sposobem na uzyskanie najświeższych informacji jest wyszukiwanie w logach. Użyj narzędzia takiego jak Microsoft Operations Manager lub darmowego narzędzia, takiego jak werbel, aby agregować interesujące dzienniki zdarzeń z serwera do centralnego miejsca (normalne pliki tekstowe lub baza danych SQL), a następnie użyj narzędzi takich jak logparser lub zapytania SQL, aby wygenerować raport, który chcesz.
aby znaleźć różne identyfikatory zdarzeń dla różnych zdarzeń, przejdź do Encyklopedii dziennika zdarzeń
Daj mi znać, jeśli chcesz podążać tą drogą, pomogę ci utworzyć odpowiednie zapytania dla logparsera.
źródło
Jeśli szukasz informacji historycznych, możesz wypróbować narzędzie innej firmy, takie jak Logon Central z Motivate Systems. Rejestruje wszystkie logowania użytkowników Active Directory i zapewnia interfejs sieciowy do eksploracji danych. Zawiera także całkiem niezłe wykresy, które tłumaczą statystyki logowania na procent wykorzystania.
źródło
ind Zaloguj się w AD
Wiele razy musimy wiedzieć, czy określony login należy do grupy użytkowników reklam. Lub czasami musimy znać grupę AD i chcieliśmy wiedzieć, kto jest częścią tego loginu.
Istnieje wiele różnych sposobów osiągnięcia tego celu.
Wykonuję ten krok, aby utworzyć skrót na pulpicie, na którym mogę łatwo znaleźć dane logowania. Postępuj zgodnie z procedurą jak
START-> RUN -> rundll32 dsquery, OpenQueryWindow
Korzystając z tego, możesz znaleźć wszystkie reklamy, których jesteś częścią.
Start-> Ustawienia-> Panel sterowania -> Narzędzia administratora -> Użytkownik i komputery usługi Active Directory Wybierz domenę, w której chcesz się zalogować, kliknij tę domenę prawym przyciskiem myszy i wybierz opcję „Znajdź”.
źródło
Chciałem dodać to jako komentarz do powyższej odpowiedzi marcusjv, ale nie mam reputacji, więc osobna odpowiedź będzie musiała:
W tym wyrażeniu -AND „Źródłowy adres sieciowy” zawsze będzie mieć wartość PRAWDA
Myślę, że potrzebujesz: get-eventlog „Security” | gdzie {$ .Message-like „* nazwa użytkownika *” -AND $ .Message.contains („Source Network Address”)}
źródło