Prosze o wsparcie w walce z keyloggerami!

0

Witam!
Ostatnio ucierpiałem przez keyloggera którym mój komputer sie zainfekował...

I pisze do was z apelem o pomoc w stworzeniu oprogramowania który ort! procesy wpisywania danych z klawiatury...

Mam na mysli to że większość key loggerów zapisuje wszystko to co wpisujemy na klawiaturze...

I...

Chciałbym dowiedzieć się z kąd taki keylogger wie że odpowiedni klawisz został wcisniety?

Jak się zabezpieczyc?

Proszę o pomoc :)

0
Odyn napisał(a)

Chciałbym dowiedzieć się <ort>z kąd</ort> taki keylogger wie że odpowiedni klawisz został wcisniety?

Tzw. keyboard hook. Poszukaj.

Jak się zabezpieczyc?
Uważaj co uruchamiasz.

0

Skąd taki keylogger wie co wpisujesz? Zwykle to zakłada on globalnego hook'a na klawiaturę w systemie ( mówię o windows ) i przechwytuje zdarzenie wciśnięcia przycisku, które odpowiednio obsługuje ( np. zapisuje do jakiegoś pliku i potem wysyła ). Jak się przed tym zabezpieczyć? Nie wchodź na podejrzane strony, nie ściągaj cracków i nie podskakuj kolegom-programistom to nie będzie problemów :)

Jeśli keyloggera pisał lewus to powinien być wykryty przez jakikolwiek antywirus śledzący wywołania "popularnych" funkcji systemowych.

edit: 7 s spóźnienia :D

0

Ale nie chodziło mi o odpowiedzi typu "uważaj co uruchamiasz" bo tak to każdy może napisać ;] i takie odpowiedzi sobie darujcie... bo są żalosne...

Chodzi mi o to czy moge napisac jakąś nakładkę ktora zabezpieczy przed tym przechwytywaniem zdarzeń ;]

Pozdrawiam

"Skąd taki keylogger wie co wpisujesz? Zwykle to zakłada on globalnego hook'a na klawiaturę w systemie ( mówię o windows ) i przechwytuje zdarzenie wciśnięcia przycisku, które odpowiednio obsługuje ( np. zapisuje do jakiegoś pliku i potem wysyła ). Jak się przed tym zabezpieczyć? Nie wchodź na podejrzane strony, nie ściągaj cracków i nie podskakuj kolegom-programistom to nie będzie problemów :)

Jeśli keyloggera pisał lewus to powinien być wykryty przez jakikolwiek antywirus śledzący wywołania "popularnych" funkcji systemowych."

No i tutaj się czegoś dowiedziałęm ;]

A jak nazywa się ten proces? zdarzenie?

0

Opisy wszystkich potrzebnych funkcji znajdują się tutaj. Znajdują się one w bibliotekach systemowych więc musisz śledzić wywołania danej funkcji z danej biblioteki. Dużo by tu pisać. Wiedząc to co ci napisaliśmy powinieneś już sobie poradzić. Pewnie są inne metody ja natomiast nigdy się tym nie interesowałem i jeśli miałbym coś takiego robić to szukałbym w ten deseń.

edit:
Najlepiej to ściągnij sobie jakiegoś prostego firewall'a typu kerio, to będziesz miał pełną kontrolę nad połączeniami. Keyloggera możesz przecież mieć na kompie, ale jeśli nie komunikuje się on ze swoim twórcą to jest bezużyteczny.

0

Nom wiem mam juz Comodo Firewall Pro :) Ale dzieki za wszystko :) od razu poskanowałem też sobie F-Secure i Sbybotem i powinno byc cacy :) Zaraz poczytam ;]

0
matek3005 napisał(a)

[...]
Jeśli keyloggera pisał lewus to powinien być wykryty przez jakikolwiek antywirus śledzący wywołania "popularnych" funkcji systemowych.

A skąd...
jeśli użyty jest globalny HOOK to antywirus może sobie... wiecie co :>
hook jest normalnym legalnym mechanizmem w windowsie z którego mogą korzystać dowolne programy i antywir nie może tego zabronić...
dajmy na to gg robi globalnego hooka (na myszkę na pewno, nie jestem pewny czy na kejbord też, ale chyba tak) i co, antywirus grozi gg? chyba nie...

mechanizm ten jest pożyteczny i daje ogromne możliwości, ale z drugiej strony za duże, bo pozwala wykonać swój kod w innym procesie, bez żadnych kombinacji, wszystko legalnymi wywołaniami win32, które są opublikowane i dozwolone i nie mogą zostać zabronione przez antywirusa, to jest po prostu windows :> takie rzeczy są dozwolone :>

0

aha zablokować hooka,
można by spróbować zrobić hook debugujący, który by blokował wszelkie hooki nasłuchujące wejścia, ale wtedy programy korzystające z hooków (te pożyteczne bo jest ich trochę) też by nie otrzymywały eventów...
Można by podmienić user32.dll na swoją, w której by nie działało SetWindowsHookEx, ale windows ma ochronę swoich dllek, trzeba by to wyłączyć, np. na XP jak się podmieniało uxtheme.dll żeby odblokować swoje style XP, to się to jakoś wyłączało :> bo przywracał oryginalną swoją z kopii
oczywiście wtedy też nie działają eventy hooków w programach pożytecznych :>

0

Tak się składa, że nie wszystkie keyloggery korzystają z hooków, metod jest co najmniej kilka. Druga najpopularniejsza to wołanie GetAsyncKeyState w pętli, bez hooka. W stealerze, którego jakiś czas temu analizowałem było to po prostu wrzucone w WM_TIMER z USER_TIMER_MINIMUM, działało dosyć sprawnie. Teoretycznie można nawet DirectInput wykorzystać. Ochrona procesu przed keyloggerami jest w dużym stopniu możliwa, ale opierałoby się to o grzebanie w systemie, najpewniej z pomocą drivera. Także kłaniają się nieudokumentowane API i rozwiązania, które nie śniły się normalnym programistom.

nobody napisał(a)

jeśli użyty jest globalny HOOK to antywirus może sobie... wiecie co :>

To co takiego? Chcesz powiedzieć, że nie może pilnować akcji podejmowanych z handlera hooka albo blokować ładowania hooka w jakiś proces? To coś nowego, albo cofnęliśmy się do średniowiecza, bo technicznie jest to jak najbardziej osiągalne.

nobody napisał(a)

wszystko legalnymi wywołaniami win32, które są opublikowane i dozwolone i nie mogą zostać zabronione przez antywirusa, to jest po prostu windows

Jak wszystko co robi malware, 95% korzysta tylko i wyłącznie z dozwolonych i legalnych mechanizmów, jednak jakoś antywirusy to filtrują i ew. blokują, możesz mi to wytłumaczyć?

Co do Twoich metod obrony to są bezwartościowe, albo są niemożliwe do sensownego zrealizowania lub nieskuteczne, każdy gimnazjalista je obejdzie. Poza tym skupiasz się na jednej, jedynej funkcji, która wcale nie jest konieczna, jest po prostu najczęściej stosowaną.

0
deus napisał(a)

[...] Jak wszystko co robi malware, 95% korzysta tylko i wyłącznie z dozwolonych i legalnych mechanizmów, jednak jakoś antywirusy to filtrują i ew. blokują, możesz mi to wytłumaczyć?

No więc załóżmy, że napiszę sobie zaraz keyloggera najzwyczajniej używając hooka, tylko mi nie mów, że antywirus u ofiary go rozpozna i zablokuje... w takim razie dlaczego keyloggery w ogóle działają? skoro antywirusy je blokują? :>

0

Napisałem, że filtrują zachowanie i robią analizę behawioralną. Jeżeli niewiele więcej robi niż sczytywanie klawiszy to niezbyt można to zablokować bo pseudoprogramiści (jak te sieroty od GG czy Tlenu 7) nie potrafią pisać softu w cywilizowany sposób i wszędzie walą flagi *_ALL_ACCESS, hooki i inne ciekawostki. Jeżeli podpadnie to (przynajmniej teoretycznie) może zostać zablokowany.

0

no więc, załóżmy że gdybym pisał keyloggera, to hook, tam bym sobie pisał do jakiegoś niezbyt dużego bufora, jakby się nazbierało to ciach do pliku (ale plik pewnie bym otworzył na cały czas działania), załóżmy, że na razie by nie wysyłał w eter, żeby nie robić ewentualnych podejrzeń :> ot cały keylogger bo co jeszcze by tu dopisać?

Załóżmy, że proces zakładający keyloggera zrobi sobie okno żeby zbierać info z HookFunc, żeby nie wzbudzać podejrzeń i nie otwierać tego samego pliku w każdym procesie
HWND VirtualServer = CreateWindowEx(blalblalba);
SetWindowHookEx(bla bla bla);
HANDLE file = CreateFile(blablabla, plik w tempie);
char* buf = new nie duzy_buforek_z_1KB_wystarczy_eventy i tak będą miały max po kilka bajtów, to nawet pisząc na klawie ReadFile będzie wołany max z raz na minutę;
while(GetMessage) if(komunikat z HookFunc) if(po dopisaniu całego bufora) WriteFile(pisz do pliku i zeruj bufor);

DLLka:

HWND server;
BOOL DLLMain()
{
case prcess attach:
//tutaj znajdę sobie serwer
server = FindWindow(blablabla);
buf = new ...; //zrobie sobie bufor żeby nie pisać do pliku co chwilę
}

LRESULT __stdcall HookFunc(HHOOK, int, WPARAM, LPARAM, itd)
{
if(!mogę przetwarzać) return dalszy call;

PostMessage do serwera, dajmy na to jakiś WM_COMMAND, z info o klawiszu;

return dalszy call;
}

ewentualne wysłanie info z pliku do mnie to od czasu do czasu (nawet między wieloma uruchomieniami systemu, ew co uruchomienie, ale trzeba by poczekać na połaczenie, bo nie zawsze od razu jest, pomijając także bariery łączowe jak firewale, bo nie to jest tematem wątku), ale to i tak innym exe'kiem bym zrobił, nawet ten keylogger by go nie wołał, więc zero powiązania poza ewentualnym otwieraniem wspólnego pliku. Plik załóżmy miałby siedzieć sobie w Tempie, zaryzykuję i założę, że user nie czyści Tempa...

No i jakie mam szanse na zakwalifikowanie takiego softu jako podejrzane akcje? Jeśli decyzja jest podejmowana w drodze podejrzeń to jaka może być skuteczność, co? A w ilu przypadkach będzie się mylił?

0
nobody napisał(a)

No i jakie mam szanse na zakwalifikowanie takiego softu jako podejrzane akcje? Jeśli decyzja jest podejmowana w drodze podejrzeń to jaka może być skuteczność, co? A w ilu przypadkach będzie się mylił?

Szczerze? Ciekawe podejście, wiele keyloggerów niższy poziom reprezentuje. Oczywiście należy doliczyć ukrywanie się w systemie - brak widocznych okien, kopiowanie się po różnych miejscach itd. zbyt mile widziane nie są. Jakie szanse? Przez behawiorystykę to raczej kiepskie, raczej wątpię żeby coś było w stanie rzucić czymś więcej niż podejrzeniem przy wysokiej czułości, spora szansa na false-positive, m.in. przez programistów-idiotów. Pytanie raczej do jakiegoś engine developera niż typowego reverse engineera. Stworzenie ochrony przed przechwytywaniem nie stanowi większego problemu, problemem jest zrobienie tego tak żeby nie upośledzić systemu/oprogramowania.

1 użytkowników online, w tym zalogowanych: 0, gości: 1