Kreiranje skrivenog toka u ntfs. Aktivacija ABE funkcije. Alternativni podaci i CIO

Članak je napisan za časopis Hacker 2004. godine. Objavljena je u broju 09/04 (69) pod naslovom “Destruktivne struje”.

Kada preuzmete drugi NT sistem i u njega instalirate svoj domaći špijunski softver, potrebno je da rešite problem čuvanja prikupljenih informacija na računaru žrtve. Dnevnik se obično upisuje u jednostavnu datoteku u direktoriju s velikim brojem datoteka, na primjer, u sistemu system32.

NTFS karakteristike

Ovo je uobičajeno, ali daleko od toga najbolji način sakrijte informacije na vašem lokalnom računaru. Postoji šansa da će korisnik primijetiti dodatnu, stalno ažuriranu datoteku koja se iznenada pojavila u njegovom sistemskom direktoriju. Dodati dnevnik već postojećoj datoteci? Prvo morate pronaći datoteku kojoj dodavanjem informacija neće pokvariti njen sadržaj. Šta kažete na spremanje informacija na mjesto koje neće biti vidljivo ni iz Explorera, ni iz komandne linije, ni bilo kojeg file manager? Ovu priliku nam pruža fajl NTFS sistem. Retko ga vidite na običnom kućnom računaru, jer većina korisnika i dalje preferira FAT32, čak i oni koji koriste XP. Ali na lokalnoj mreži kompanije koja koristi Win2k/XP, NTFS se gotovo sigurno koristi, jer ovaj sistem datoteka pruža takve mogućnosti kao što su dodjela prava pristupa korisnicima, šifriranje i kompresija datoteka. Osim toga, NTFS je mnogo sigurniji od FAT32. Dakle, metoda skrivanja podataka koju ću opisati je idealna za industrijsku špijunažu. Sa pojavom Longhorna, NTFS ima priliku da nađe dom na diskovima kućnih računara, kao što obećava predstojeći WinFS sistem datoteka zasnovan na NTFS dodatne funkcije o organiziranju i pronalaženju informacija koje bi trebale privući obične korisnike.

Priložite sve podatke u datoteku

Metoda je spremanje podataka ne u datoteku, kao i obično, već u NTFS tok datoteka. Tok se može priložiti drugoj datoteci (u ovom slučaju se njegova veličina ne mijenja, a podaci ostaju netaknuti, što znači da uslužni programi koji provjeravaju kontrolne sume datoteke neće primijetiti promjene), direktoriju ili disku. NTFS Alternate File Streams je jedna od karakteristika NTFS-a koja je prisutna u njemu od njegovih najranijih dana. ranije verzije Windows NT. Leži u tome što jedna datoteka može imati više niti koje sadrže podatke, a korisniku je dostupna samo glavna nit u kojoj je pohranjen sadržaj datoteke. Nešto slično postoji u HFS sistemu datoteka na Macintoshima. Tamo se potoci nazivaju račvama. Donedavno su se koristili kao pohrana resursa datoteka ili su sadržavali informacije o vrsti datoteke. Sa pojavom MacOS X-a, Apple je preporučio postavljanje resursa odvojeni fajlovi, a tipovi datoteka su određeni ekstenzijama. Ali podrška grananja i dalje ostaje. Na Windows-u se tokovi obično koriste za pohranjivanje neke vrste dodatne informacije o fajlu. Na primjer, tok može sadržavati sažetak dokumenta. Ako je sistem na NTFS disku, tada datoteka explorer.exe vjerovatno sadrži sažetak. U zavisnosti od sadržaja sažetka, tokovi pod nazivom SummaryInformation, DocumentSummaryInformation i nekoliko drugih mogu biti priloženi datoteci. Na svom računaru sam pronašao nit pod nazivom $MountMgrRemoteDatabase priključenu na C disk.

Korisnik može saznati o streamovima priloženim datoteci samo u nekim slučajevima, na primjer, kada kopira datoteku sa priloženim streamom na disk sa FAT/FAT32. Ovi sistemi datoteka ih ne podržavaju, tako da će sistem od vas tražiti da potvrdite gubitak informacija u streamovima, navodeći njihova imena. Naravno, ova situacija se nikada neće pojaviti ako je stream priključen na disk ili sistemsku fasciklu. Nije potrebno koristiti teme u špijunske svrhe. Ako ste programer shareware programa, onda lako možete koristiti streamove za pohranjivanje informacija o registraciji, broju dana do isteka, jednom riječju, svega što bi trebalo sakriti od korisnika vašeg programa.

Rad sa nitima

Postoje i sličnosti i razlike u radu sa datotekama i streamovima. Nema mnogo sličnog. Obje datoteke i njihovi tokovi kreiraju se i brišu pomoću istih WinAPI funkcija CreateFile i DeleteFile. Čitanje i pisanje se implementiraju pomoću funkcija ReadFile i WriteFile. Tu prestaju sličnosti, slijede samo razlike. Nazivi prijenosa mogu sadržavati posebne znakove koji ne mogu biti dio normalnog naziva datoteke: kao što su “*”, “?”, “<”, “>" ,"|" i znak citata. Općenito, bilo koji naziv toka se pohranjuje u Unicode formatu. Servisni znakovi iz raspona 0x01 – 0x20 također se mogu koristiti. Ne postoji standardna funkcija za kopiranje i premještanje toka: MoveFile i CopyFile ne rade sa tokovima. Ali niko vam ne smeta da pišete svoje funkcije. Streamovi nemaju svoje atribute, datume kreiranja ili pristupa. Oni su naslijeđeni iz datoteke kojoj su priloženi. Ako sama datoteka sadrži bilo kakve podatke, onda se može predstaviti i kao tok. Imena tokova se prikazuju kao "ime datoteke:ime toka:atribut". Standardni atribut toka u kojem se nalaze podaci naziva se $Data. Postoje mnogi drugi atributi čija imena također počinju sa znakom “$”. Sadržaj datoteke je u neimenovanom toku (ime datoteke::$DATA). Ovo svojstvo datotečnog sistema da predstavlja sadržaj datoteke kao stream bilo je povezano sa greškom u starijim verzijama Microsoft IIS-a, kada je haker koji je želeo da sazna tekst skripte na ranjivom serveru jednostavno dodao „:: $DATA” na svoje ime, a server je, umjesto toga, da bi izvršio skriptu, dao svoj izvorni kod. Rad sa streamovima je sličan radu sa datotekama. Pogledajte Listing 1. Ovo je jednostavan primjer programa koji kreira stream datoteku i upisuje informacije u nju. Nakon pokretanja programa, u njegovom direktoriju će se pojaviti prazna “testfile” datoteka. Možete vidjeti sadržaj priloženog streama upisivanjem komandna linija„više< testfile:stream». Как видишь, имя потока указывается после имени файла, отделенное от него знаком двоеточия. Самое трудное при работе с потоками – это получить их список для конкретного файла. Стандартной функции нет, и поэтому придется писать ее самому. Напишем небольшую консольную программу, которая бы возвращала список потоков по имени файла. Такая прога есть у ребят из Sysinternals, с открытым кодом, и она работает, но мне не понравился их способ. Они используют вызовы Native API, и поэтому их код большой и трудный для понимания. Мы же напишем свою прогу, которая будет работать из командной строки, с алгоритмом попроще и со стандартными API функциями.

Dobivanje liste tema

Algoritam se zasniva na upotrebi funkcije BackupRead. Namijenjen je za backup datoteke. Kada to uradiš rezervna kopija datoteke, važno je sačuvati što je moguće više podataka, uključujući tokove datoteka. Informacije su preuzete iz strukture WIN32_STREAM_ID. Odatle možete dobiti naziv toka, njegov tip i veličinu. Trebat će nam samo tokovi tipa BACKUP_ALTERNATE_DATA. Sve funkcije i strukture su opisane u datoteci zaglavlja winnt.h. Prvo morate otvoriti datoteku za čitanje koristeći CreateFile. U parametru dwFlagsAndAttributes morate navesti oznaku FILE_FLAG_BACKUP_SEMANTICS, koja će vam omogućiti otvaranje ne samo datoteka, već i direktorija. Zatim pokrećemo while petlju koja čita informacije o datoteci u sid strukturu, iz koje ćemo dobiti informacije o svakoj niti. Prije sljedećeg prolaza petlje, brišemo strukturu i pomjeramo pokazivač datoteke na sljedeći tok koristeći funkciju BackupSeek. Nakon što su pronađene sve niti, brišemo lpContext koji sadrži servisne informacije i zatvaramo datoteku. Izvorni kod programa je prikazan u Listingu 2. Već kompajlirani program možete preuzeti sa našeg diska. Za rad sa streamovima nije potrebno pisati specijalni programi. Postoje neke stvari koje možete učiniti direktno iz komandne linije. Neki primjeri su prikazani u okviru.

Detekcija

Jednom kada je tok informacija vezan za nešto, njegovom sadržaju je teško pristupiti bez poznavanja njegovog imena. Ako je tok pridružen logičkom volumenu, onda u Windowsu nema standardnim sredstvima da ga otkrijem. Budući da naziv toka može sadržavati znakove koji nisu dozvoljeni u uobičajenim nazivima datoteka, to stvara dodatne poteškoće kada pokušavate da saznate sadržaj toka pomoću komandne linije. Sadržaj sažetka dokumenta obično se pohranjuje u stream s imenom koje sadrži kod karaktera 0x05. Ovaj znak se može ukucati u konzoli (Ctrl+E), ali ako bi to bio znak 0x10 ili 0x13 (povratak nosioca i pomak u red), onda bi ih bilo nemoguće otkucati. Teoretski, o priloženim nitima možete saznati slučajno, koristeći neki softver koji će vjerovatno biti na vašem računalu. WinRAR ima opciju, a ako je ona omogućena, onda možete primijetiti da se veličina male datoteke smještene u arhivu ne samo da se ne smanjuje, već čak i povećava (zbog činjenice da se podaci u streamovima također stavljaju u arhivu). Ovo može izazvati sumnju. Program za nadgledanje pristupa sistemu datoteka - FileMonitor iz istog Sysinternalsa - ne pravi razliku između pristupa datotekama ili streamovima. Shodno tome, pažljivo proučavanje dnevnika pristupa disku sumnjiv program(vaš keylogger) će prikazati i naziv toka u kojem je dnevnik upisan i ime datoteke uz koju je priložen.

Virusi

U septembru 2000. pojavio se prvi virus koji je koristio alternativne tokove datoteka za širenje. W2k.Stream je bio prvi predstavnik nove vrste virusa - stream companion. Traži .exe datoteke u svom direktoriju i ako ih pronađe, započinje proces infekcije. Datoteci je priložen dodatni stream u koji virus prenosi sadržaj originalne datoteke, a zatim se tijelo virusa kopira u glavni tok datoteke. Nakon pokretanja zaražene datoteke, virus ponovo pokušava zaraziti datoteke u svom direktoriju, a zatim pokreće program iz dodatne niti. Zaista, pomoću funkcije CreateProcess možete pokrenuti proces iz niti. Štoviše, datoteka sa streamom može se sigurno izbrisati, ali će proces ostati. Samo bajka za Trojance! Unatoč činjenici da su prošle skoro četiri godine od pojave W2K.Stream-a, još uvijek nisu svi antivirusi u stanju otkriti zlonamjernog koda u tokovima datoteka. Stoga, pojava novih crva i virusa koji ih koriste može predstavljati ozbiljnu opasnost.

Drugi virusi koji koriste streamove

Pored W2K.Stream-a, streamovi su našli primjenu i u drugim virusima i crvima. Prvi crv koji je koristio tokove datoteka bio je I-Worm.Potok. Ova mala zvijer pričvršćuje nekoliko niti na datoteku odbc.ini u Windows direktoriju i tamo pohranjuje skripte za slanje putem pošte. Drugi virus je W2k.Team. Opise ovih i drugih sličnih virusa možete pronaći na web stranici http://www.viruslist.com/

Rad sa streamovima sa konzole

Kreiranje fajla sa streamom:
upišite nul > somefile.txt:Stream

Pišite u stream:
echo "Nešto" >> somefile.txt:Stream

Čitanje iz streama:
više< somefile:Stream

Kopiranje sadržaja postojeće datoteke u stream:
upišite file1.txt >> somefile.txt:Stream

Kopiranje sadržaja streama u datoteku:
više< somefile.txt:Stream >> file2.txt

Uklanjanje niti

Postoji mišljenje da se stream može izbrisati samo zajedno s datotekom kojoj je priložen. Ovo nije u redu. Ako znate naziv toka, uvijek ga možete izbrisati standardna funkcija DeleteFile.

Listing 1. Primjer kreiranja niti.

#include int main() ( DWORD dwRet; HANDLE hStream = CreateFile("testfile:stream", GENERIC_WRITE, FILE_SHARE_WRITE, NULL, OPEN_ALWAYS, NULL, NULL); WriteFile(hFile, "Ovo je tok", 17, &NUdLLw); CloseHandle(hStream return 0);

Listing 2. X-Stream: Program koji prikazuje listu tokova

#include #include #include #include int _tmain(int argc, _TCHAR *argv) ( WIN32_STREAM_ID sid; ZeroMemory(&sid, sizeof(WIN32_STREAM_ID)); DWORD dw1,dw2,dwRead; INT numofstreams = 0; //Naziv međuspremnika u Unicodez formatu W StrVO; lpContext = NULL /* * Otvorite datoteku za čitanje sa parametrom * FILE_FLAG_BACKUP_SEMANTICS, koji nam omogućava da * otvorimo ne samo fajlove, već i direktorijume sa diskovima */ HANDLE hFile = CreateFile(argv,GENERIC_READ,FILE_SHARE_READ, NULL). ,FILE_FLAG_BACKUP_SEMANTICS,NULL ) if (hFile == INVALID_HANDLE_VALUE) (printf("\nGreška: nije moguće otvoriti datoteku, direktorij ili disk %s\n",argv); exit(0); ) DWORD dwStreamHeaderSize = (LPBYTE) &sid.cStreamName - (LPBYTE)&sid + sid.dwStreamNameSize printf("\nInformacije o tokovima za %s:\n",argv while (BackupRead(hFile, (LPBYTE) &sid, dwStreamHeaderSize, &dwRead, F); )) ( / /Ako je tip toka netačan, onda prekidamo petlju if (sid.dwStreamId == BACKUP_INVALID) break; ZeroMemory(&wszStreamName,sizeof(wszStreamName));

//Nabavite ime toka ako (!BackupRead(hFile, (LPBYTE) wszStreamName, sid.dwStreamNameSize, &dwRead, FALSE, TRUE, &lpContext)) break;

  • if (sid.dwStreamId == BACKUP_DATA || sid.dwStreamId == BACKUP_ALTERNATE_DATA) ( numofstreams++; printf("\n\nStream\t\t#%u",numofstreams); switch (sid.dwStreamId) (slučaj BACKfUP_DATA: print ("\nName:\t\t::$DATA" case BACKUP_ALTERNATE_DATA: printf("\nIme:\t\t%S",wszStreamName ) printf("\nVeličina:\t\ t%u\); n",sid.Size); ) //Prelazak na sljedeći tok BackupSeek(hFile, sid.Size.LowPart, sid.Size.HighPart, &dw1, &dw2, &lpContext);

//Obrišite strukturu prije sljedećeg prolaza petlje ZeroMemory(&sid,sizeof(sid)); ) //Obrišite lpContext koji sadrži servisne informacije //da bi funkcija BackupRead radila BackupRead(hFile, NULL, NULL, &dwRead, TRUE, FALSE, &lpContext);//Zatvaranje datoteke CloseHandle(hFile);

return 0; )

Tu je i sljedeće na temu tokova datoteka:< 1013.pdf:Zone.Identifier

Rad sa nitima

Microsoft ima samo nekoliko komandi koje rade sa nitima, zapravo samo< , >rade sa tokovima, pa se stoga mogu koristiti samo naredbe koje mogu raditi s ovim operatorima preusmjeravanja. Pisao sam o tome kako još uvijek možete upravljati nitima samo sa ovim komandama.

Streamovi će raditi samo s programima koji su dizajnirani da rade s njima, jednostavno zato što se njima treba posebno rukovati (uporedite spojne točke kao i NTFS funkciju, ali drajver skriva detalje i programi ne moraju raditi ništa posebno: oni samo broje stvarnu datoteku tačke spajanja).

Kada pokušate da otvorite tok datoteke koristeći start filename:streamname i program kaže nešto poput "nedozvoljen naziv datoteke" ili "datoteka nije pronađena" i sigurni ste da je naziv toka tačan, onda najvjerovatnije program ne podržava streamove. Primijetio sam da Notepad, Wordpad i Word/Excel ispravno rade sa streamovima, iako Word i Excel smatraju da su datoteke opasni. Ispod su neki eksperimenti.

NAPOMENA: Čini vam se da su alternativni tokovi podataka čudni. Oni su čudni jer su tako skriveni, ali mnogi veliki sistemi datoteka (HFS, NSS) imaju ovo, a koncept datira iz ranih 80-ih. U stvari, streamovi su prvobitno dodani u NTFS za interakciju sa drugim sistemima datoteka.

U ovoj temi, pogledat ću četiri tipa metapodataka koji se mogu priložiti datoteci ili direktoriju koristeći sistem datoteka NTFS. Opisaću u koje svrhe se može koristiti ova ili ona vrsta metapodataka i dat ću primjer njihove upotrebe u nekoj Microsoft tehnologiji ili softveru treće strane.

Govorit ćemo o tačkama ponovnog analiziranja, ID-ovima objekata i drugim vrstama podataka koje datoteka može sadržavati pored svog glavnog sadržaja.

ID objekta ovo je 64 bajta koji se mogu priložiti fajlu ili direktorijumu. Od toga, prvih 16 bajtova vam omogućava da jedinstveno identifikujete datoteku unutar volumena i pristupite joj ne imenom, već identifikatorom. Preostalih 48 bajtova može sadržavati proizvoljne podatke.

ID-ovi objekata postoje u NTFS od Windowsa 2000. U samom sistemu se koriste za praćenje lokacije datoteke na koju se odnosi prečica (.lnk). Recimo da je datoteka na koju upućuje prečica premještena unutar volumena. Kada pokrenete prečicu, ona će se i dalje otvoriti. Specijalni Windows usluga ako datoteka nije pronađena, pokušat će je otvoriti ne po njenom imenu, već po prethodno kreiranom i sačuvanom identifikatoru. Ako datoteka nije izbrisana i nije napustila volumen, otvorit će se, a prečica će opet pokazivati ​​na datoteku.

Identifikatori objekata korišćeni su u iSwift tehnologiji Kaspersky Anti-Virus verzije 7. Ovako je opisana ova tehnologija: Tehnologija je razvijena za NTFS sistem datoteka. U ovom sistemu, svakom objektu je dodijeljen NTFS identifikator. Ovaj identifikator se uspoređuje sa vrijednostima u posebnoj iSwift bazi podataka. Ako se vrijednosti baze podataka s NTFS identifikatorom ne podudaraju, tada se objekt provjerava ili ponovno provjerava ako je izmijenjen.

Međutim, prevelika količina kreiranih identifikatora izazvala je probleme sa skeniranjem diska standardnim uslužnim programom za skeniranje chkdsk; U narednim verzijama Kaspersky Anti-Virus, upotreba NTFS Object Id-a je napuštena.

Reparse Point

Na sistemu datoteka NTFS fajl ili direktorij može sadržavati tačku ponovnog analiziranja, koja je prevedena na ruski kao "tačka ponovne obrade". Datoteci ili direktorijumu se dodaju posebni podaci, datoteka prestaje biti obična datoteka i može je obraditi samo poseban drajver filter sistema datoteka.

Windows sadrži tipove tačaka ponovnog analiziranja koje može obraditi sam sistem. Na primjer, tačke ponovnog analiziranja u Windows-u implementiraju simboličke veze (simbolske veze) i spojne tačke (spojne tačke), kao i tačke montiranja za volumene u direktorijumu.
Međuspremnik za ponovnu analizu priložen datoteci je bafer s maksimalnom veličinom od 16 kilobajta. Karakterizira ga prisustvo oznake koja govori sistemu kojem tipu pripada tačka ponovnog analiziranja. Kada koristite bafer za ponovno raščlanjivanje vašeg tipa, i dalje morate postaviti GUID u posebno polje, a u Microsoftovim baferima za ponovno analiziranje možda neće biti prisutan.

Koje vrste tačaka za ponovnu obradu postoje? Navešću tehnologije koje koriste tačke ponovnog raščlanjivanja To su Skladište jedne instance (SIS) i dijeljeni volumeni klastera u Windows Storage Server 2008 R2, Hijerarhijsko upravljanje pohranom, Distributed. Sistem datoteka(DFS), Windows Home Server Drive Extender. Ovo su tehnologije treće strane koje koriste tačke za ponovnu obradu, iako postoje.

Prošireni atributi

Prošireni atributi datoteke. Radilo se o njima. Ovdje je samo vrijedno napomenuti da se ova tehnologija praktički ne koristi pod Windowsom. Koliko ja znam softver samo Cygwin koristi proširene atribute za spremanje POSIX dozvola. Pojedinačna datoteka na NTFS-u može imati ili proširene atribute ili bafer tačaka ponovnog analiziranja. Istovremena instalacija oba je nemoguća. Maksimalna veličina svih proširenih atributa u jednoj datoteci je 64 KB.

Alternativni tokovi podataka

Dodatni tokovi datoteka. Vjerovatno svi već znaju za njih. Navešću glavne karakteristike ove vrste metapodataka: imenovanje (to jest, datoteka može imati nekoliko tokova, a svaki ima svoje ime), direktan pristup iz sistema datoteka (mogu se otvoriti u formatu „ime datoteke, dvotočka, naziv toka”), neograničena veličina, mogućnost pokretanja procesa direktno iz niti (i mogućnost implementacije kroz nju).

Koristi se u iStream tehnologiji Kaspersky Anti-Virus. Koriste se u samom Windowsu, na primjer, prilikom preuzimanja datoteke s Interneta, uz nju se prilaže stream Zone.Identifier koji sadrži informacije o lokaciji s koje je primljen ovaj fajl. Nakon lansiranja izvršnu datoteku korisnik može vidjeti poruku “Nije moguće potvrditi izdavača. Da li zaista želite da pokrenete ovaj program?.

Dakle, korisnik je dat dodatna zaštita od nepromišljenog pokretanja programa dobijenih sa interneta. Ovo je samo jedna upotreba streamova i oni mogu pohraniti širok raspon podataka. Pomenuti Kaspersky Anti-Virus je tu pohranio kontrolne sume svake datoteke, ali je kasnije i ova tehnologija iz nekog razloga napuštena.

Još nešto?

Ima ih još sigurnosni id, plus standardni atributi datoteke koji nisu direktno dostupni, iako su također implementirani kao tokovi datoteka. I oni, i prošireni atributi, i reparse i id objekta - sve su to tokovi datoteka sa stanovišta sistema. Nema smisla direktno mijenjati sigurnosni identifikator, prikazan na sljedećoj slici kao::$SECURITY_DESCRIPTOR neka se sistem pozabavi promjenom; Sam sistem ne pruža direktan pristup drugim vrstama tokova. To je to.

Pregled sadržaja ID-a objekta, tačaka ponovnog analiziranja, kao i rad sa proširenim atributima i alternativnim tokovima datoteka moguć je pomoću programa

Vidljivo-nevidljivo

Čitač bloga Viktor nije mogao da pokrene PowerShell skriptu koju je preuzeo sa interneta. Pažljivo čitanje mojih uputstava izbjeglo je problem, ali korijen toga nisu bile stroge sigurnosne politike PowerShell-a.

Viktor je preuzeo arhivu sa PSWindowsUpdate.zip skriptom iz TechNet galerije za Windows upravljanje Ažuriranje o kojem sam govorio. Međutim, raspakovani skript je odbio da radi. Kada sam sugerisao čitaocu da prva tačka mog uputstva govori o potrebi otključavanja arhive, sve je išlo kao po satu.

Viktor je tražio da objasni zašto je sistem blokirao skriptu i kako je znao da je arhiva preuzeta sa drugog računara.

Da budem iskrena, današnja tema nije nova, ali sam je odlučio obraditi na svom blogu iz nekoliko razloga:

  • Mnogi članci su ponovo napisani Windows vremena XP ili Windows 7 i ne uzimaju u obzir ugrađene mogućnosti novijih Microsoft operativnih sistema.
  • Jedan od članaka planiranih za skoru budućnost dotiče se ove teme, a lakše mi je da se pozovem na materijal za čiju relevantnost i ispravnost sam odgovoran.
  • Blog ima veliku publiku, a za mnoge čitaoce ova tema će i dalje biti nova :)

Danas na programu

NTFS tokovi podataka

Windows dobija informacije o izvoru datoteke iz alternativnog toka podataka (ADS) sistema datoteka NTFS. U svojstvima fajla skromno piše da je sa drugog računara, ali u stvarnosti zna malo više, kao što ćete videti kasnije.

Sa NTFS tačke gledišta, datoteka je kolekcija . Sadržaj datoteke je atribut podataka pod nazivom $DATA. na primjer, tekstualnu datoteku sa linijom “Zdravo, svijete!” ima atribut podataka “Zdravo, svijete!”

U NTFS-u, $DATA atribut je tok podataka i naziva se primarnim ili neimenovanim jer... nema ime. Formalno, to izgleda ovako:

$DATA:""

  • $DATA- Ime atribut
  • : – separator
  • "" - Ime protok(u ovom slučaju nema imena - nema ničega između navodnika)

Zanimljive karakteristike alternativnih tokova podataka

U kontekstu gornjih primjera, želim istaknuti nekoliko zanimljivih stvari.

Nevidljive promjene

Nakon što kreirate tekstualnu datoteku s prvom naredbom, možete je otvoriti uređivač teksta i pobrinite se da sve daljnje manipulacije ni na koji način ne utječu na sadržaj datoteke.

Postaje zanimljivo kada se fajl otvori, recimo, u Notepad++. Ovaj uređivač vas može upozoriti na promjene fajla. I to će učiniti kada napišete alternativni stream u datoteku, ali sadržaj će ostati isti!

Snimite i pregledajte ADS iz CMD-a

ADS se može kreirati i prikazati iz komandne linije. Sljedeće naredbe pišu skriveni tekst u drugi ADS pod nazivom MyStream2, a zatim ga prikazuju.

Echo Hidden Text > C:\temp\test.txt:MyStream2 više< C:\temp\test.txt:MyStream2

Pregled oglasa u tekstualnim uređivačima

Isti Notepad++ će vam pokazati sadržaj ADS-a ako navedete ime toka u komandnoj liniji

"C:\Program Files (x86)\Notepad++\notepad++.exe" C:\temp\test.txt:MyStream1

rezultat:

Sa notepadom, ovaj trik će raditi samo ako postoji .txt. Naredbe u nastavku dodaju treći ADS i otvaraju ga u Notepad-u.

Echo Hidden Text > C:\temp\test.txt:MyStream3.txt notepad C:\temp\test.txt:MyStream3.txt

rezultat:

Blokiranje preuzetih fajlova

Vratimo se na pitanje koje mi je postavio čitatelj. Da li će datoteka biti blokirana zavisi prvenstveno od programa u kojem je preuzeta, a drugo od postavki OS-a. Dakle, svi moderni pretraživači podržavaju blokiranje, a ono je uključeno u Windows.

Zapamtite da kada je arhiva zaključana, svi raspakovani fajlovi će biti zaključani "naslijeđeno". Takođe zapamtite da je ADS karakteristika NTFS-a, tj. Prilikom spremanja ili raspakivanja arhive na FAT32, ne dolazi do blokiranja.

Pogledajte informacije o izvoru blokirane datoteke

U PowerShell-u idite u fasciklu sa preuzetom datotekom i pogledajte informacije o svim nitima.

Get-Item .\PSWindowsUpdate.zip -Stream * Ime datoteke: C:\Users\Vadim\Downloads\PSWindowsUpdate.zip Dužina toka ------ ------ :$DATA 45730 Zone.Identifier 26

Kao što već znate, $Data je sadržaj datoteke, ali se i ADS pojavljuje na listi Zone.Identifier. Ovo je jasan nagoveštaj da je fajl primljen iz neke zone. Znate li odakle je ova slika?

Da biste saznali zonu, potrebno je pročitati sadržaj oglasa.

Get-Content .\PSWindowsUpdate.zip -Stream Zone.Identifier ZoneId=3

Očigledno, ima za cilj grupno otključavanje (na primjer, kada je arhiva već raspakirana). Naredba u nastavku će otključati u folderu Preuzimanja sve datoteke koje sadrže ime PS:

Dir C:\Downloads\*PS* | Deblokiraj fajl

Naravno, postoje razni uslužni programi sa grafičkim interfejsom, čak i oni koji se mogu integrisati kontekstni meni. Ali, po mom mišljenju, PowerShell ili, u najgorem slučaju, streamovi su sasvim dovoljni.

Kako spriječiti blokiranje datoteka

Blokiranje je kontrolisano grupnom politikom. Nemojte čuvati informacije o zoni porekla priloženih datoteka. Kao što ime sugerira, blokiranje je standardno ponašanje Windowsa, a politika vam omogućava da ga promijenite.

Međutim, iz naziva nije očigledno da se politika odnosi ne samo na priloge e-pošte, već i na datoteke preuzete sa interneta. Pročitajte više o upravitelju priloga u KB883260.

U kućnim izdanjima nema uređivača grupnih politika, ali niko nije poništio registar: SaveZoneInformation.zip.

Ostali primjeri praktične primjene ADS-a

Opseg ADS-a nije ograničen na dodavanje zone preuzete datoteke, niti je potrebno pohranjivati ​​samo tekst u ADS-u. Bilo koji program može koristiti ovu NTFS funkciju za pohranjivanje bilo koje vrste podataka, pa ću samo dati nekoliko primjera iz različitih područja.

Infrastruktura za klasifikaciju datoteka

O autoru

Zanimljiv materijal, hvala. Naučio sam nešto novo o PowerShell-u, koji mi je još uvijek malo poznat :)

Često koristim WhatsApp za komunikaciju sa svojom porodicom - do sada je bilo najmanje problema sa ovom uslugom, čak su se i moji roditelji navikli na to. Kontaktik je također uglavnom za porodicu, iako se tamo razmjena poruka uglavnom odvija oko objavljenih albuma sa fotografijama i video zapisima. Neki rođaci ostaju vjerni Viberu - meni nije išlo, samo ih čuvam, a da ne odustajem od pokušaja da ih prevučem na WhatsApp.

Za posao, uglavnom Slack, kada je nešto hitno - WhatsApp, vrlo hitno - SMS. VKontakte za komunikaciju o radu s vanjskim svijetom.

Skype koristim samo za video pozive, uglavnom sa porodicom. Rado bih ga zamijenio WhatsApp-om da ima video poziva.

urix

Viber sada ima video pozive, pa čak i video pozive za desktop verziju. Dakle, možda će Viber biti sljedeći Skype... na dobar način

Andrej Kuznjecov

Zanimljiv materijal, hvala. Znao sam za postojanje niti, ali nisam znao da je tako lako raditi s njima kroz PowerShell.
Što se tiče IM-a: Imam samo pritužbe na Skype u vezi sa vremenom pokretanja Windows Phone. Ne postoji takav problem na iPad-u i Windows-u. Koristim ga za glasovna komunikacija, kada je iz nekog razloga nezgodno koristiti GSM.
I dopisivanje preko Whatsappa. Imati ga samo na telefonu je više plus sa stanovišta privatnosti.

  • Andrej Kuznjecov: I dopisivanje preko Whatsappa. Imati ga samo na telefonu je prilično plus, sa stanovišta privatnosti.

    Andrej, objasni šta je tu plus?

Pavlovsky Roman

1. Najčešće koristim: Skype i Hangouts - za rad na PC-u, za ostalu korespondenciju na VKontakte-u sa bilo kojeg uređaja, budući da poslovni klijenti obično koriste Skype, a prijatelji i poznanici na društvenim mrežama.

2. Idealno bih voleo da koristim: Jabber - za dopisivanje i pozive sa bilo kog uređaja. Što se mene tiče, klijent se može instalirati na bilo koji uređaj i korespondirati jedni s drugima gdje god se korisnik nalazi, čak i na slaboj internet konekciji + osim toga, možete postaviti svoj jabber server i pohraniti svu korespondenciju na server, tako da kasnije možete brzo pronaći potrebnu korespondenciju, ako klijent ne zna kako pohraniti povijest, a mogu se pronaći dodaci za pozive putem Jabbera (na primjer, putem istog SIP Asterisk 1.8+)

Andrey Bayatakov

Najčešće koristim WhatsApp (uglavnom za posao), za pozive (audio/video/međunarodni pozivi) Skype. Iako desktop Skype užasno razbjesni (imam transformator i kod kuće ga koristim uglavnom kao tablet)... Viber se nije uhvatio. Za pozive putem WhatsAppa samo trebate imati čelične živce. Kažete nešto svom sagovorniku i čekate minut-dva da vas čuje (50Mbit konekcija)…
Da je bilo prilike, potpuno bih prešao na Skype. Na Windows 10 Mobile, nakon nedavnog ažuriranja, poruke sa Skypea dolaze direktno u ugrađenu aplikaciju Messages (kao što je SMS), što je vrlo zgodno.

Maxim

1. Nerado koristim ICQ (za retrogradne kupce) i Slack (za modernije).
2. Želio bih da koristim Jabber - iz istih razloga kao Roman Pavlovsky iznad.

Vladimir Kirjušin

Zdravo Vadime!
Prije ovog članka, pročitao sam vaš članak o tome kako pročitati izvještaj o provjeri za sve sistemski disk sa komandom chkdsk. Odličan članak! Zahvaljujući njoj, danas nakon provjere sistemskog diska komandom chkdsk, dobio sam tekstualnu datoteku izvještaja. I ovaj članak također pojašnjava mnoge stvari Program PowerShell. Neke stvari su meni kao penzioneru neshvatljive, ali se trudim da ne paničim i marljivo pročitam do kraja. Hvala vam na studiji koju radite sa nama! Sve najbolje vama!

Lecron

Koji pretraživači i preuzimači kreiraju ovaj stream?

Koje druge opcije postoje za korisnika da koristi niti? A posebno, korisnik pisca scenarija? Jer, iako sam dugo znao za njih, nikada ih nisam koristio. At pravi posao sa kompjuterom ih se jednostavno ne sjećate, i zbog toga možda umjesto toga koristite štake zgodan alat, a bez ovog rada, po sjećanju, nemoguće je bilo šta smisliti.
Mislio sam samo na jednu opciju. Komentar fajlu, ako ne postoji mogućnost ili želja da se upiše dugačak tekst u naziv datoteke. Ali to zahtijeva podršku od upravitelja datoteka, koji ih je ranije, pa čak i sada, upisivao u descript.ion ili files.bbs.

Guru brzine

Još jedna tehnologija smeća kao što je USN magazin. Koliko ćete koristiti od ZoneIdentifier-a ili od virusa prikačenog na datoteku ili mapu? Naravno da ne. Štaviše, ovo je zatrpavanje sistema nepotrebnim „pod-datotekama“ koje ni na koji način nisu potrebne normalnom korisniku. Svako dodatno čitanje u MFT imeniku i druge operacije povezane s održavanjem i održavanjem alternativnih niti su dodatni potrošeni ciklusi procesora, RAM, i što je najvažnije, dodatno opterećenje na tvrdom disku.
Možete mi reći da je ova tehnologija veoma neophodna za sistem. Ali ovo je besmislica - sistem bi radio savršeno bez niti. Ali niko ne pita korisnika - prodali su ga (kao USN magazin) i nisu dali priliku da potpuno onemoguće održavanje ovih tokova. Ali kao korisnicima, meni uopšte ne trebaju, mislim kao i vi…
Sve što možemo učiniti je “streams -s -d %systemdrive%”. Ali ovo također ne omogućava brisanje niti na sistemskoj particiji.

Alexiz Kadev

Imenovani streamovi su odlična stvar, a postojali su, koliko se sjećam, od prvog izdanja NTFS-a. Prilično je zgodno pohranjivati, na primjer, verzije dokumenata u imenovane streamove, što su, ako se ne varam, učinile brojne aplikacije. Ali ostaje zasjeda s kopiranjem na drugu sistem datoteka- imenovani tokovi su jednostavno odsječeni.

Šteta što je bilo nemoguće odabrati nekoliko glasnika u anketi: koristim nekoliko, jer neki od mojih kontakata preferiraju određene. Dakle, koristim WhatsUp, ICQ (iako, naravno, nije native klijent), Skype, SkypeforBusiness (tihi horor, a ne klijent, međutim, kada se zvao Lync bilo je još gore) i Viber (ovdje ima više spama nego kod drugih barem jednom u 5).
I idealno, koristite samo jedan, kao što je Miranda sa dodacima, jer je pronaći, ako je potrebno, ko je nešto rekao/napisao kada je u cijeloj ovoj gomili jednostavno nerealno. Ali nažalost, brojni proizvođači zatvaraju svoje protokole i štite ih kao što Kashchei štiti svoju iglu.

  • VSh

    Vadim Sterkin: Roman, Jabbera nisam uključio u anketu. Odlučio sam da ga malo ljudi koristi i da nema izgleda.

    Uzalud
    Na primjer, koristim OpenFire (besplatni xmpp) kao uredski komunikator na nekoliko domena.

    Stoga je moj glavni XMPP (Pidgin.exe, Spark.exe), ali 99,8% ovih poruka je unutar domena.
    Skype - za eksterne trenutne poruke
    WhatsApp i Viber su za "slučajne veze", zadnjih n mjeseci nisu bili ništa drugo do SPAM, razmišljam - da li da ga izbrišem?

  • Artem

    Iz nekog razloga sve je na Viberu. I kvalitet komunikacije je sasvim zadovoljavajući. Inače bi bio telegram. Tamo je prazno.

    hazet

    1. Skype (na računaru) i Viber (na mobilnom). Razlozi su u osnovi isti kao i kod većine - broj dostupnih kontakata i, naravno, nevoljkost tih istih kontakata da se prebace na drugi messenger.
    2.uTox. Minijaturni, ništa suvišno, klijent za Win, Linux, Mac i Android. Pozicioniran kao zaštićen.
    P.S. Počeću bliže da prevlačim svoje kontakte :-)

    Evgeniy Karelov

    Hvala vam na vašem radu!

    Što se tiče ankete, za dopisivanje koristim QIP 2012 na svom računaru, na koji su povezani ICQ, VKontakte i drugi kontakti. Lično, meni je zgodno da koristim jedan program za komunikaciju preko nekoliko protokola. A mogućnost gledanja sadržaja društvenih medija sa jednog mjesta je veoma ugodna. U idealnom slučaju, jedino što nedostaje je podrška za Skype, koji koristim za glasovnu komunikaciju, ali se očigledno neće pojaviti.
    Iako ovaj program izgleda „napušteno“, jer dugo nije bilo ažuriranja, savršeno obavlja zadate funkcije.

    strafer

    Zanimljiva mješavina teme posta o tokovima podataka i IM ankete.

    Prema anketi: Jabber/Jabber, koji niste trebali uvrstiti na listu, iako postoji WhatsApp baziran na XMPP-u, pa čak i Asechka, koja ide ka uspjehu.

    Jabber, općenito, rješava sve ove probleme zbog otvorenosti protokola, dostupnosti klijenata za mnoge platforme, te prisutnosti servera koji se mogu samostalno podesiti. Ali žvakanje kaktusa je tradicionalnije, da.

    • Lista uključuje klijente, a ne protokole.
      ICQ... pa nisam tu stavio emotikone, jer bi trebalo da bude jasno.
      Jabber definitivno ne rješava jedan problem - nema nikoga.

      • strafer

        Vadim Sterkin: Navedeni su klijenti, a ne protokoli.

        Zbog činjenice da je protokol i izvorni kodovi službeni klijent su zatvoreni, uspostavlja se prirodni identitet između jedinog klijenta i protokola.

        Vadim Sterkin: ICQ... pa nisam tu stavio emotikone, jer bi trebalo da bude jasno.

        Pokvarenoj poštarci nije dovoljno što asečka umire prirodnom smrću - oni se i dodatno trude da brže umre.

        Vadim Sterkin: Jabber definitivno ne rješava jedan problem - nema nikoga.

        Ipak, sami ste pisali za Telegram

        izgleda odlično, ali je prazan (što se može popraviti)

        Jabber je imao sve šanse da postane ono što je ekosistem e-pošte danas (potpuna otvorenost protokola, mogućnost postavljanja vaših servera za bilo koga i osiguravanja interakcije između servera, itd.), ali to korporacijama ne treba, što je jasno vidi se na primjeru odlaska od njega Google ili vlasnički WhatsApp.

        • Za Telegram - popravljivo, za Jabber - vrlo malo vjerovatno. Dakle, prvi je na listi, a drugi nije.

          • strafer

            Naravno, Telegram je moderan, moderan, mladalački, ali Jabber ne koristi niko kul poput Paše Durova. Kakvi su tu izgledi?

            Hm... izađite iz svog rezervoara teorija zavjere "cijeli svijet je protiv slobodnog softvera". Sve mnogo lakše

            Ako nije jasno, ovako izgleda prvo iskustvo osobe u interakciji sa službeno preporučenim Jabber klijentom na najobičnijoj mobilnoj platformi.

            strafer

          • Nisam malo razumeo gde u svom komentaru o zaveri.

            Da, svuda :) Neuspehe jabbera pokušavate da pripišete nemodnosti i nedostatku mladosti, dok njegovi klijenti sa prvog ekrana nisu prilagođeni modernoj stvarnosti.

            Šta treba da vidim na snimku ekrana?

            Zatražite da unesete telefonski broj ~~~O~

          • strafer

            strafer: Pokušavate da pripišete neuspjehe jabber-a tome što nije u modi i ne mladalački

            Pa, ako je to slučaj.

            strafer: dok njegovi klijenti sa prvog ekrana nisu prilagođeni modernoj stvarnosti.

            One. na trenutnu modu, kao što je otkrivanje vašeg broja telefona svima. Jer ne razumijem zašto bi se to uvodilo ako nije potrebno za rad sistema, jer je meni apsolutno divno što se to ovdje ne pita.

            Zapravo, napustio sam nalog, uprkos nekoliko preostalih kontakata tamo, upravo iz tog razloga - Meirushechka je u ultimativnom obliku zahtevala da poveže broj telefona sa nalogom, usled čega je poslata na poznate koordinate.

            Da, ne razumiješ, čak ni nakon objašnjenja sa slikama... Ovo nije moda, ovo je jedini način da se pojednostavi registracija sa mobilnih uređaja, koji čine osnovu publike modernih glasnika i jedini izvor njenog rasta.

            strafer

            Snimak ekrana prikazuje zahtjev za imenom, lozinkom i opcijskim nadimkom. Gdje bismo trebali više pojednostaviti? Ili, osim učenika specijalnih škola, više nema rezervi za rast publike, i treba postojati jedno dugme „uradi to radi toga“?
            Zašto se ovdje uopće nalazi broj telefona i šta bi mesindžer trebao da radi sa brojem telefona?

  • DIR /B C:\WINDOWS\System32\*.SCR

    DIR /B C:\WINDOWS\System32\*.* |PRONAĐI /i ".SCR"

    Detaljno opišite svrhu parametara svake naredbe (zapamtite da za svaku komandu možete pozvati pomoć pomoću tipke /?). Imajte na umu da isti tasteri mogu imati različite efekte za različite komande.

    4.1.8. NTFS* tokovi datoteka

    NTFS sistem datoteka podržava tokove datoteka - alternativne tokove podataka. Zapravo, tokovi datoteka su kombinacija nekoliko datoteka u jednu grupu sa jednim zajedničkim imenom datoteke (svaki tok ima svoje dodatno ime). Unutar grupe postoji glavni tok podataka, s kojim većina programa radi kao datoteka, i dodatni imenovani tokovi koji se ne prikazuju na uobičajen način. Tokom operacija datoteka kopiranja, premeštanja, brisanja itd., u NTFS-u se operacija izvodi na celoj grupi. Kada koristite neke arhivere i kopirate datoteke koje sadrže alternativne tokove na FAT particiju, ovi tokovi mogu biti izgubljeni. Tehnički, alternativni tokovi se koriste za dopunu datoteke informacijama bez promjene sadržaja glavnog toka ili stvaranja dodatnih datoteka koje se mogu izgubiti.

    Alternativni tokovi koriste ih antivirusi za spremanje informacija o datoteci („otisak prsta“, kontrolni zbir) kako bi otkrili promjene u datoteci tokom vremena. Klijenti za dijeljenje datoteka Direct Connect (DC++) mogu pohraniti rezultate heširanja (kalkulacije kontrolne sume) za velike datoteke koje se koriste kada se datoteka premešta i ponovo hešira, uvelike ubrzavajući ažuriranje liste.

    U budućnosti, bibliotečki programi, filmske biblioteke i audio biblioteke mogu koristiti alternativne tokove za skladištenje, zajedno sa dokumentima, tokovima korica, audio zapisa, opisa i na različitim jezicima. Alternativni tokovi omogućavaju prilaganje "tajnih" podataka, što predstavlja potencijalnu opasnost.

    Možete pogledati informacije o streamovima pomoću naredbe STREAMS25, programa NTFS Stream Explorer26, koristeći ekstenzije za upravljanje datotekama27 u Windowsu 7, komanda dir /r prikazuje listu svih tokova za navedene objekte (također možete koristiti dodatne ključeve sa; dir komanda).

    Prilikom spremanja datoteka sa Interneta, po defaultu se tok Zone.Identifier 28 dodaje datoteci u NTFS, koji ima ini format datoteke i obično sadrži tekst:

    Parametar ZoneId sa brojem označava zonu iz koje je datoteka stigla na računar, broj zone je preuzet iz postavki sigurnosne zone (; Control Panel/Internet opcije(Mreža i Internet / Svojstva pretraživača -

    Zera )/kartica Sigurnost). Dozvoljene su sljedeće vrijednosti29: 0 – lokalni računar

    1 – intranet ( lokalna mreža, domena)

    2 – pouzdani izvor

    3 – Internet

    4 – nepouzdani izvor

    Ako je vrijednost 3, sistem će izdati upozorenje “ Ne mogu provjeriti

    rip izdavača. Da li zaista želite da pokrenete ovaj program?"

    Na dnu poruke nalazi se kvadratić " Uvijek pitajte kada otvarate ovaj fajl", uklanjanjem koje uklanja tok Zone.Identifier. Ako ZoneId sadrži vrijednost 4, pojavit će se upozorenje " Ove datoteke se ne mogu otvoriti. Postavke Internet sigurnosti spriječile su otvaranje

    25 tokova (http://technet.microsoft.com/ru-ru/sysinternals/bb897440)

    26 NTFS Stream Explorer, program za rad sa NTFS streamovima (http://hex.pp.ua/ntfs-stream-explorer.php)

    27 Informacije o NTFS fajlu

    (http://forum.farmanager.com/viewtopic.php?t=2050)

    28 Možete onemogućiti kreiranje blokirajuće niti za datoteke u lokalnom uređivaču grupna politika(gpedit.msc):Korisnička konfiguracija

    vatela/Administrativni predlošci/ Windows komponente/ Upravitelj prilozima / Brisanje informacija o zoni porijekla priloga.

    29 Zone.Identifier stream (http://hex.pp.ua/Zone.Identifier.php)

    jedan ili više fajlova" i otvaranje datoteka je blokirano. Kada otvorite prozor Svojstva u Exploreru za datoteku primljenu sa Interneta, dugme Deblokiraj se pojavljuje na dnu kartice Opšte i

    "Oprez: Ovaj fajl je došao sa drugog računara i možda je blokiran radi zaštite vašeg računara" “, pritiskom na dugme Unblock uklanja tok Zone.Identifier.

    Koristeći internet pretraživač, preuzmite STREAMS.zip datoteku (možete preuzeti bilo koju malu datoteku tako što ćete navesti njeno ime u naredbi ispod), sačuvajte je u root folderu F: diska, pogledajte sadržaj toka Zone.Identifier sa naredba:

    VIŠE< F:\Streams.zip:Zone.Identifier

    Otvorite prozor Svojstva u Exploreru (Alt+Enter ili komanda Properties kontekstnog menija) za preuzetu datoteku, na kartici Opšte, kliknite na dugme Deblokiraj i ponovite prethodnu komandu u konzoli.

    Kreirajte test datoteku s naredbom koja preusmjerava tekst operatora izlaznog teksta, dodajte alternativni stream, pogledajte rezultat:

    ECHO Glavni tekst > F:\M.TXT

    ECHO Skriveni tekst > F:\M.TXT:Secret.TXT

    TIP F:\M.TXT

    VIŠE< F:\M.TXT:Secret.TXT

    Alternativni tok teksta se može učitati u notepad:

    BILJEŠKA F:\M.TXT:Secret.TXT

    Alternativni tokovi se također mogu kreirati za foldere i sistemske datoteke30.

    Tokovi se također koriste za pohranjivanje proširenih atributa31.

    30 Skriveno skladištenje podataka u tokovima datoteke $Repair u sistemskom direktoriju $RmMetadata (http://hex.pp.ua/RmMetadata.php)

    31 Prošireni NTFS i FAT16 atributi

    (http://hex.pp.ua/extended-attributes.php) 53

    Veza