Skrivanje procesa u Windows upravitelju zadataka. Kako sakriti proces u upravitelju zadataka bez dodatnog softvera.

💖 Sviđa vam se? Podijelite vezu sa svojim prijateljima

Svi moderni višezadaćni operativni sustavi, uključujući Linux, pokreću više procesa za dovršetak svakog zadatka. Korištenje bilježnice, terminalski prozor, SSH poslužitelj, SSH veza itd. odvojeni su procesi. Operativni sustav, u našem slučaju Linux, raspodjeljuje sistemske resurse (procesorsko vrijeme, memorija, I/O) između procesa tako da svaki proces može raditi.

Da biste vidjeli popis pokrenutih ovaj trenutak procese, koristite uslužni program ps:

Pomoćni parametri govore uslužnom programu da ispiše sve sistemske procese s informacijama o korisniku od kojeg su pokrenuti i naredbom poziva.


Kao što možete vidjeti, popis sadrži procese u vlasništvu različitih korisnika, uključujući pi, zadanog korisnika na Raspberry Pi, root i www-podatke. Evo još jedne snimke zaslona koja prikazuje procese i informacije o njihovoj naredbi za pokretanje i parametrima:


Ako pogledate niz popis, vidjet ćete naredbu nano MYBANKACCOUNTNUMBER.TXT koju je izvršio korisnik john. Ovi podaci su dostupni svim korisnicima sustava i mogu se koristiti u zlonamjerne svrhe.

U verziji kernela 3.2 i novijoj, funkcija je implementirana kako bi spriječila korisnika da pregleda informacije o procesima koji mu ne pripadaju. Naredba ps dobiva informacije o procesu iz datotečnog sustava /proc. Dodan je novi hidepid parametar koji se primjenjuje prilikom montiranja datotečnog sustava. Omogućuje vam skrivanje informacija o procesima od korisnika koji im nemaju pristup.

  • hidepid = 0 - zadana vrijednost, svi korisnici mogu čitati /proc/pid datoteke
  • hidepid = 1 - korisnici mogu pristupiti samo vlastitom /proc/pid poddirektoriju, ali cmdline, io, sched*, statusne datoteke dostupne su svima
  • hidepid = 2 - svi /proc/pid poddirektoriji su skriveni od korisnika

Datotečni sustav /proc može se ponovno montirati u hodu pomoću opcije ponovnog montiranja uslužnog programa za montiranje. Da biste testirali hidepid, možete koristiti sljedeću naredbu:

sudo mount -o remount,rw,hidepid=2 /proc

Zatim ponovno pokušavamo izvršiti ps:

Sada ćemo vidjeti samo procese koji se izvode kao pi korisnik.

Kako bi ove promjene bile trajne, uredite datoteku /etc/fstab. Ova datoteka kontrolira montiranje datotečni sustavi na početku.

sudo nano /etc/fstab

Pronađite ovaj redak:

proc /proc proc zadane vrijednosti 0 0

I zamijenite ga s:

proc /proc proc zadane postavke,hidepid=2 0 0

Zatvorite uređivač pomoću Ctrl+C i ponovno pokrenite računalo. Nakon ponovnog pokretanja, /proc će biti montiran s ispravnim opcijama. Koristite naredbu montiranja i grep za provjeru opcija montiranja.

montirati | grep hidepid

Sada pokušajmo pokrenuti ps:

Kao što vidite, vidljivi su samo procesi koji pripadaju trenutnom korisniku. Ali ima jedna primjedba. Superkorisnik i dalje može vidjeti sve procese i opcije poziva.

Otvaranje "Upravitelja zadataka" Windows korisnik može vidjeti protok u sustavu procesima a zatvori one koje mu se čine sumnjive. Kako bi zaštitili svoje programe od otkrivanja, trojanci i autori svjesni oglasa daju sve od sebe moguće načine sakriti ih procesima.

Uputa

Da biste maksimalno iskoristili "Upravitelj zadataka", trebali biste ga ispravno konfigurirati. Otvorite uslužni program (Ctrl + Alt + Del), odaberite "Prikaz" - "Odaberi stupce". Označite okvire: "ID procesa", "Korištenje procesora", "Memorija - korištenje", "Korisnički objekti", "Korisničko ime". Nećete moći vidjeti skriveno procesima, ali detaljnije informacije o vidljivima također mogu biti vrlo korisne. Na primjer, mnogi jednostavni trojanci maskirani su kao svchost.exe proces. Izvorni proces u stupcu "Korisničko ime" označen je kao SUSTAV. Trojanski proces će imati status Admin, odnosno pokretat će se kao administrator.

Gotovo svaki dobro napisan trojanski program sada može sakriti svoju prisutnost od "Upravitelja zadataka". Može li se pronaći u ovom slučaju? Evo priskočiti u pomoć posebne komunalije otkriti skriveno procesima. Program AnVir Task Manager vrlo je zgodan, omogućuje vam prepoznavanje mnogih opasnih programa. Program ima rusko sučelje, može se besplatno preuzeti na Internetu.

Program Process Hacker jednostavan i lagan za korištenje vrlo je dobar u pronalaženju skrivenih procesa. Pomoću ovog uslužnog programa možete vidjeti kako se izvodi procesima, usluge i trenutne mrežne veze.

Jedan od najbolji programi za traženje skrivenih procesa je Spyware Process Detector, njegova probna 14-dnevna verzija može se preuzeti s poveznice na kraju članka. Program ima širok raspon mehanizama za pronalaženje skrivenih procesa, što ga razlikuje od mnogih drugih sličnih uslužnih programa.

HijackThis, mali pomoćni program, može biti koristan alat u borbi protiv trojanaca. Uslužni program je dizajniran za prilično iskusne korisnike. Vodič o tome kako ga koristiti možete pronaći ispod na popisu izvora.

Anonimnost i tajnost često igraju ključnu ulogu u uspješnom dovršetku bilo koje radnje kako u stvarnosti tako iu virtualnosti, posebice u operativni sustavi. Ovaj članak govori o tome kako postati anoniman u OS Windows. Sve informacije su date samo u informativne svrhe.

Dakle, pokušat ćemo se sakriti od očiju korisnika u dispečeru Windows zadaci. Način na koji ćemo to postići iznimno je jednostavan u odnosu na one koji se temelje na presretanju (često nedokumentiranih) funkcija jezgre i izradi vlastitih upravljačkih programa.

Suština metode: tražimo prozor Task Manager -> tražimo u njemu podređeni prozor (popis) koji sadrži nazive svih procesa -> brisanje našeg procesa s popisa.

Kao što možete vidjeti, s našim procesom neće biti izvršene nikakve manipulacije: radio je kako je radio i nastavit će raditi za sebe. Budući da standardni Windows korisnik, u pravilu, ne koristi druge alate za pregled pokrenuti procesi na njegovom računalu, to će samo nama ići na ruku. Proces se u većini slučajeva neće otkriti.

Što je korišteno za studiju:

1) Spy++ iz Microsofta (za proučavanje hijerarhije podređenih prozora Upravitelja zadataka)
2) OllyDBG za pregled funkcija koje koristi dispečer za dobivanje snimke procesa.
3) Zapravo, ja taskmng.exe(Upravitelj zadataka)

Za pisanje koda koristit ćemo Delphi okruženje. Umjesto toga, Delphi će u našem slučaju biti prikladniji od C ++. Ali ovo je samo moje skromno mišljenje.

Pa, prije svega, pokušajmo shvatiti što je popis procesa i kako funkcionira. Već na prvi pogled jasno je da se radi o običnom prozoru klase SysListView32 (popis), koji se ažurira frekvencijom od 2 okvira u sekundi (svakih 0,5 sekundi). Pogledajmo hijerarhiju prozora:

Kao što vidite, popis procesa je zapravo običan prozor klase "SysListView32", koji je podređen prozoru (kartici) "Procesi", koji je također podređen glavnom prozoru Zadatka Menadžer. Imamo samo dvostruku razinu gniježđenja. Dodatno, popis ima jedan podređeni prozor klase SysHeader32, koji je, kao što možete pretpostaviti, naslov (oznaka polja) za popis procesa.
Budući da je pred nama redovita lista, na raspolaganju nam je čitav skup makro naredbi za upravljanje njenim sadržajem. Njihova raznolikost, na prvi pogled, oduševljava. Ali mnogi od njih rade samo iz nadređenog procesa, odnosno, da bismo ih mogli koristiti, bit će potrebno simulirati da se izvode u nadređenom procesu. Ali nemaju svi ovo svojstvo, posebice ListView_DeleteItem makro, koji uklanja stavku iz prozora popisa (klasa "SysListView32").
Koristit ćemo ga u procesu naše aplikacije. Ova funkcija Drugi parametar je indeks elementa koji se uklanja.
Sada moramo nekako saznati koji indeks ima element s oznakom skrivenog procesa u upravitelju zadataka. Da bismo to učinili, moramo nekako izvući sve elemente (oznake s nazivima procesa) s popisa procesa u upravitelju zadataka i sekvencijalno ih usporediti s nazivom procesa koji želimo sakriti.

Koristeći makronaredbe poput ListView_GetItemText, naše bi radnje bile otprilike ove:

1) Dodjeljivanje dijela memorije u procesu upravitelja zadataka (VirtualAllocEx)
2) Slanje poruke LVM_GETITEMTEXT (SendMessage) u prozor s popisom djece upravitelja zadataka
3) Upisivanje informacija o stavci popisa u dodijeljeno memorijsko područje Task Managera (WriteProcessMemory)
4) Čitanje iz memorije dispečera informacija koje nas zanimaju o procesu (ReadProcessMemory)

Koristeći ovu metodu, možete jednostavno "pucati sebi u nogu" brojeći offset bajtove od početka različitih struktura korištenih u kodu. Također, ova metoda će biti prilično teška za one koji nisu posebno duboko u WinAPI-ju, pa ćemo je odmah ostaviti po strani. Drugim riječima, pronađite implementaciju ovu metodu na Internetu nije teško. Umjesto toga, predložit ću vam da izradite vlastiti popis procesa i već vođeni njime potražite željeni indeks procesa na popisu procesa Upravitelja zadataka.

Microsoft je odlučio ne brinuti previše o alatu pod nazivom "Task Manager" i upotrijebio je uobičajene WinAPI funkcije za dobivanje svih procesa na sustavu. Gledamo površno taskmng.exe pod programom za ispravljanje pogrešaka:


Vidimo korištenje WinAPI funkcije CreateToolHelp32SnapShot.
Svi znaju da se "ova funkcija može koristiti ne samo za dobivanje snimke procesa, već i za procesne niti ili module, na primjer. Ali u ovom slučaju to je malo vjerojatno. Malo je vjerojatno da će koristiti nešto poput popisivača procesa ( EnumProcesses).
Odlučili smo se za to da želimo formirati vlastitu listu procesa i u njoj tražiti svoj proces. Da bismo to učinili, koristit ćemo funkciju koju smo pronašli u alatu za ispravljanje pogrešaka. Otvorimo li upravitelj zadataka na kartici "Procesi", primijetit ćemo da su svi procesi poredani abecednim redom radi lakšeg pretraživanja. Stoga moramo dobiti popis naziva svih procesa u sustavu i poredajte ih uzlaznim abecednim redom. Počnimo pisati kod u Delphiju.

Počnimo s izradom demonstracije. prozorska aplikacija s dva mjerača vremena: prvi će ponovno izgraditi popis s procesima istom učestalošću kao što to čini Windows Task Manager (jednom svake dvije sekunde); drugi će se aktivirati 1000 puta u sekundi i služit će za praćenje ažuriranja popisa procesa u dispečeru i samim tim pojavljivanja našeg skrivenog procesa. Također ćemo dodati gumb na obrazac.

Kodirati:
var ind:cijeli broj; h:Thandle; posljednji_c:cijeli broj; procedura UpdateList(); varth:THandle; unos:PROCESSENTRY32; b:boolean; i,novi_ind:cijeli broj; plist:TStringList; početak // Popis procesa plist:=TSstringList.Create; // Generirajte popis procesa th:= CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS,0); unos.dwSize:=sizeof(PROCESSENTRY32); b:=Process32First(th,entry); while(b) do begin plist.Add(entry.szExeFile); b:=Proces32Sljedeći(th,entry); kraj; // Razvrstaj tako da indeksi elemenata // odgovaraju onima u upravitelju zadataka plist.Sort; last_c:=plist.Count; // Pronalaženje indeksa našeg procesa "explorer.exe" za i:=1 to plist.Count-1 do if(LowerCase(plist[i])="explorer.exe") then new_ind:=i-1; // Uklanjanje objekta s popisa if(new_ind<>ind) zatim ListView_DeleteItem(h,ind); ind:=novi_ind; plist.Besplatno; // Pokretanje mjerača vremena za praćenje ažuriranja na listi procesa if(Form1.Timer2.Enabled=false) then Form1.Timer2.Enabled:=true; kraj; procedure TForm1.HideProcessButton(Sender: TObject); početak // Potražite podređeni prozor klase "SysListView32" h:=FindWindow(nil,"Windows Task Manager"); h:=FindWindowEx(h,0,nil,"Procesi"); h:=FindWindowEx(h,0,"SysListView32",nula); // Pokretanje mjerača vremena za obnovu liste procesa Timer1.Enabled:=true; kraj; procedure TForm1.Timer1Timer(Pošiljatelj: TObject); započeti UpdateList(); kraj; procedure TForm1.Timer2Timer(Pošiljatelj: TObject); početak // Traži promjene u listi if(ListView_GetItemCount(h)>last_c) then ListView_DeleteItem(h,ind); last_c:=ListView_GetItemCount(h); kraj;

Evo, zapravo, cijelog koda.
Sakrijmo, na primjer, u Upravitelju zadataka sam proces Upravitelja zadataka:

Evo ga:


A klikom na gumb "Sakrij proces", proces nestaje s popisa:


Svi tragovi prisutnosti u sustavu su izbrisani, a on sam tiho utrčava normalni mod negdje u dubini procesora :)

Outro
Pa, mislim da ovaj način zaslužuje postojati, iako zahtijeva malo poboljšanja. Da, naravno, uz njegovu pomoć nemoguće je sakriti proces od samog sustava, ali skrivanje u standardnom Windows alatu, koji koristi lavovski udio svih korisnika, također nije loše.
Nadam se da sam vas barem malo uspio zainteresirati za ovu temu.

Vidimo se kasnije! Neka moć anonimnosti bude s vama...

Oznake:

    Dodaj oznake

    reci prijateljima