Opprette en skjult strøm i ntfs. Aktivering av ABE-funksjonen. Alternative data og CIO

Artikkelen ble skrevet for magasinet Hacker i 2004. Den ble publisert i utgave 09/04 (69) under tittelen "Destructive Currents".

Når du overtar et annet NT-system og installerer ditt eget hjemmelagde spionprogram i det, må du løse problemet med å lagre den innsamlede informasjonen på offerets datamaskin. Vanligvis skrives loggen til en enkel fil i en katalog med et stort antall filer, for eksempel i system32.

NTFS-funksjoner

Dette er vanlig, men langt fra beste måten skjule informasjon på din lokale datamaskin. Det er en sjanse for at brukeren vil legge merke til en ekstra, konstant oppdatert fil som plutselig dukket opp i systemkatalogen hans. Vil du legge til en logg i en allerede eksisterende fil? Først må du finne en fil som å legge til informasjon ikke vil ødelegge innholdet. Hva med å lagre informasjonen på et sted som ikke vil være synlig verken fra Explorer, eller fra kommandolinjen, eller fra filbehandler? Denne muligheten er gitt til oss av filen NTFS-system. Du ser det sjelden på en vanlig hjemme-PC, siden de fleste brukere fortsatt foretrekker FAT32, selv de som kjører XP. Men på det lokale nettverket til et selskap som kjører Win2k/XP, er NTFS nesten helt sikkert brukt, fordi dette filsystemet gir slike muligheter som å tildele tilgangsrettigheter til brukere, kryptering og filkomprimering. I tillegg er NTFS mye sikrere enn FAT32. Så dataskjulingsmetoden som jeg vil beskrive er ideell for industrispionasje. Med bruken av Longhorn har NTFS en sjanse til å finne et hjem på hjemmestasjoner, som det kommende WinFS-filsystemet, basert på NTFS, lover tilleggsfunksjoner om å organisere og hente informasjon som skal tiltrekke seg vanlige brukere.

Legg ved eventuelle data til filen

Metoden er å lagre data ikke til en fil, som vanlig, men til en NTFS-filstrøm. Strømmen kan kobles til en annen fil (i dette tilfellet endres ikke størrelsen, og dataene forblir urørt, noe som betyr at verktøy som sjekker filsjekksummer ikke vil legge merke til endringene), til en katalog eller til en disk. NTFS alternative filstrømmer er en av funksjonene til NTFS som har vært til stede i den siden de tidligste dagene. tidligere versjoner Windows NT. Det ligger i det faktum at en fil kan ha flere tråder som inneholder data, og bare hovedtråden der innholdet i filen er lagret er tilgjengelig for brukeren. Det er noe lignende i HFS-filsystemet på Macintosh-maskiner. Der kalles bekker for gafler. Inntil nylig ble de brukt som filressurslagring eller inneholdt informasjon om filtypen. Med bruken av MacOS X anbefalte Apple å plassere ressurser i separate filer, og filtyper bestemmes av filtypene. Men forgreningsstøtte gjenstår fortsatt. På Windows brukes strømmer vanligvis til å lagre en slags tilleggsinformasjon om filen. For eksempel kan en strøm inneholde et sammendrag av et dokument. Hvis systemet er på en NTFS-disk, inneholder sannsynligvis explorer.exe-filen et sammendrag. Avhengig av innholdet i sammendraget, kan strømmer kalt SummaryInformation, DocumentSummaryInformation og flere andre legges ved filen. På datamaskinen min fant jeg en tråd kalt $MountMgrRemoteDatabase koblet til C-stasjonen.

Brukeren kan bare finne ut om strømmer knyttet til en fil i noen tilfeller, for eksempel ved kopiering av en fil med en vedlagt strøm til en disk med FAT/FAT32. Disse filsystemene støtter dem ikke, så systemet vil be deg om å bekrefte tap av informasjon i strømmene, og angi navnene deres. Selvfølgelig vil denne situasjonen aldri oppstå hvis strømmen er koblet til en disk eller til en systemmappe. Det er ikke nødvendig å bruke tråder for spionformål. Hvis du er en utvikler av shareware-programmer, kan du enkelt bruke strømmer til å lagre informasjon om registrering, antall dager frem til utløpsdatoen, med et ord, alt som skal være skjult for brukeren av programmet ditt.

Arbeid med tråder

Det er både likheter og forskjeller i arbeidet med filer og strømmer. Det er ikke mye som ligner det. Begge filene og deres strømmer opprettes og slettes av de samme WinAPI-funksjonene CreateFile og DeleteFile. Lesing og skriving implementeres av henholdsvis ReadFile- og WriteFile-funksjonene. Det er her likhetene slutter, bare forskjeller følger. Strømnavn kan inneholde spesialtegn som ikke kan være en del av et normalt filnavn: for eksempel "*", "?", "<”, “>","|" og et anførselstegn. Generelt lagres alle strømnavn i Unicode-format. Tjenestetegn fra området 0x01 – 0x20 kan også brukes. Det er ingen standardfunksjon for å kopiere og flytte en strøm: MoveFile og CopyFile fungerer ikke med strømmer. Men ingen plager deg med å skrive dine egne funksjoner. Strømmer har ikke sine egne attributter, opprettelses- eller tilgangsdatoer. De er arvet fra filen de er vedlagt. Hvis selve filen inneholder data, kan den også representeres som en strøm. Strømnavn vises som "filnavn:strømnavn:attributt". Standardattributtet til strømmen som dataene ligger i kalles $Data. Det er mange andre attributter hvis navn også begynner med "$"-tegnet. Innholdet i filen er i en navnløs strøm (filnavn::$DATA). Denne egenskapen til filsystemet for å representere innholdet i en fil som en strøm, ble assosiert med en feil i eldre versjoner av Microsoft IIS, da en hacker som ønsket å finne ut teksten til et skript på en sårbar server bare la til ":: $DATA" til navnet, og serveren ga i stedet ut kildekoden for å utføre skriptet. Å jobbe med strømmer ligner på å jobbe med filer. Ta en titt på oppføring 1. Dette er et enkelt eksempel på et program som lager en strømfil og skriver informasjon til den. Etter å ha kjørt programmet, vil en tom "testfil"-fil vises i katalogen. Du kan se innholdet i en vedlagt strøm ved å skrive inn kommandolinje"flere< testfile:stream». Как видишь, имя потока указывается после имени файла, отделенное от него знаком двоеточия. Самое трудное при работе с потоками – это получить их список для конкретного файла. Стандартной функции нет, и поэтому придется писать ее самому. Напишем небольшую консольную программу, которая бы возвращала список потоков по имени файла. Такая прога есть у ребят из Sysinternals, с открытым кодом, и она работает, но мне не понравился их способ. Они используют вызовы Native API, и поэтому их код большой и трудный для понимания. Мы же напишем свою прогу, которая будет работать из командной строки, с алгоритмом попроще и со стандартными API функциями.

Får en liste over tråder

Algoritmen er basert på bruk av BackupRead-funksjonen. Den er beregnet på backup filer. Når du gjør det sikkerhetskopi fil, er det viktig å lagre så mye data som mulig, inkludert filstrømmer. Informasjonen er hentet fra WIN32_STREAM_ID-strukturen. Derfra kan du få strømnavnet, dens type og størrelse. Vi trenger bare strømmer av typen BACKUP_ALTERNATE_DATA. Alle funksjoner og strukturer er beskrevet i overskriftsfilen winnt.h. Først må du åpne filen for lesing ved hjelp av CreateFile. I parameteren dwFlagsAndAttributes må du spesifisere FILE_FLAG_BACKUP_SEMANTICS-flagget, som lar deg åpne ikke bare filer, men også kataloger. Deretter kjører vi en while-løkke som leser informasjon om filen inn i sidestrukturen, hvorfra vi får informasjon om hver tråd. Før neste gjennomgang av løkken tømmer vi strukturen og flytter filpekeren til neste strøm ved hjelp av BackupSeek-funksjonen. Etter at alle trådene er funnet, fjerner vi lpContext som inneholder tjenesteinformasjon og lukker filen. Kildekoden til programmet vises i liste 2. Du kan ta det allerede kompilerte programmet fra disken vår. For å jobbe med strømmer er det ikke nødvendig å skrive spesielle programmer. Det er noen ting du kan gjøre direkte fra kommandolinjen. Noen eksempler er vist i boksen.

Oppdagelse

Når en strøm av informasjon er knyttet til noe, er innholdet vanskelig tilgjengelig uten å vite navnet. Hvis en strøm er knyttet til et logisk volum, er det ingen i Windows standard betyrå oppdage det. Fordi strømnavnet kan inneholde tegn som ikke er tillatt i vanlige filnavn, skaper dette ytterligere problemer når du prøver å finne ut innholdet i strømmen ved hjelp av kommandolinjen. Dokumentsammendraget lagres vanligvis i en strøm med et navn som inneholder tegnkoden 0x05. Dette tegnet kan skrives inn i konsollen (Ctrl+E), men hvis det var tegnet 0x10 eller 0x13 (vognretur og linjeskift), ville det være umulig å skrive dem. Teoretisk sett kan du finne ut om vedlagte tråder ved en tilfeldighet, ved å bruke noe programvare som sannsynligvis finnes på datamaskinen din. WinRAR har et alternativ, og hvis det er aktivert, vil du kanskje legge merke til at størrelsen på en liten fil plassert i arkivet ikke bare ikke reduseres, men til og med øker (på grunn av det faktum at dataene i strømmene også er plassert i arkivet). Dette kan vekke mistanker. Et program for overvåking av tilgang til filsystemet - FileMonitor fra samme Sysinternals - skiller ikke mellom tilgang til filer eller strømmer. Følgelig en nøye studie av disktilgangsloggen mistenkelig program(keyloggeren din) vil vise både navnet på strømmen der loggen er skrevet og navnet på filen den er knyttet til.

Virus

I september 2000 dukket det første viruset opp som brukte alternative filstrømmer for å spre seg. W2k.Stream var den første representanten for en ny type virus - stream companion. Den ser etter .exe-filer i katalogen, og hvis den finner den, starter den infeksjonsprosessen. En ekstra strøm er knyttet til filen, som viruset overfører innholdet i den originale filen til, og deretter kopieres virusets hoveddel til filens hovedstrøm. Etter å ha kjørt den infiserte filen, prøver viruset igjen å infisere filer i katalogen og starter deretter programmet fra en ekstra tråd. Ved å bruke CreateProcess-funksjonen kan du faktisk starte en prosess fra en tråd. Dessuten kan filen med strømmen trygt slettes, men prosessen vil forbli. Bare et eventyr for trojanerne! Til tross for at nesten fire år har gått siden W2K.Stream dukket opp, er ikke alle antivirus ennå i stand til å oppdage ondsinnet kode i filstrømmer. Derfor kan fremveksten av nye ormer og virus som bruker dem utgjøre en alvorlig fare.

Andre virus som bruker strømmer

I tillegg til W2K.Stream, har strømmer funnet anvendelse i andre virus og ormer. Den første ormen som brukte filstrømmer var I-Worm.Potok. Dette lille beistet knytter flere tråder til odbc.ini-filen i Windows-katalogen og lagrer skript der for å sende seg selv via post. Et annet virus er W2k.Team. Beskrivelser av disse og andre lignende virus finnes på nettstedet http://www.viruslist.com/

Arbeide med strømmer fra konsollen

Opprette en fil med en strøm:
skriv nul > somefile.txt:Strøm

Skriv til stream:
echo "Noe" >> somefile.txt:Strøm

Leser fra en strøm:
flere< somefile:Stream

Kopiere innholdet i en eksisterende fil til en strøm:
skriv fil1.txt >> somefile.txt:Strøm

Kopiere innholdet i en strøm til en fil:
flere< somefile.txt:Stream >> fil2.txt

Fjerning av tråder

Det er en oppfatning at en strøm bare kan slettes sammen med filen den er knyttet til. Dette er feil. Hvis du vet navnet på strømmen, kan du alltid slette den standard funksjon Slett fil.

Oppføring 1. Eksempel på å lage en tråd.

#inkludere int main() ( DWORD dwRet; HANDLE hStream = CreateFile("testfil:stream", GENERIC_WRITE, FILE_SHARE_WRITE, NULL, OPEN_ALWAYS, NULL, NULL); WriteFile(hFile, "Dette er en strøm", 17, &dwRet, NULL); CloseHandle(hStream return 0;

Oppføring 2. X-Stream: Program som viser en liste over strømmer

#inkludere #inkludere #inkludere #inkludere int _tmain(int argc, _TCHAR *argv) ( WIN32_STREAM_ID sid; ZeroMemory(&sid, sizeof(WIN32_STREAM_ID)); DWORD dw1,dw2,dwRead; INT numofstreams = 0; //Buffer for streamnavnet WCHamAR;wscode lpContext = NULL; /* * Åpne filen for lesing med parameteren * FILE_FLAG_BACKUP_SEMANTICS, som lar oss * åpne ikke bare filer, men også kataloger med disker */ HANDLE hFile = CreateFile(argv,GENERIC_READ,FILE_SHARE_READ, NULL,OPEN_EXISTING. ,FILE_FLAG_BACKUP_SEMANTICS,NULL ); if (hFile == INVALID_HANDLE_VALUE) (printf("\nFeil: Kunne ikke åpne filen, katalogen eller disken %s\n",argv); exit(0); ) DWORD dwStreamHeaderSize = (LPBYTE) &sid.cStreamName - (LPBYTE)&sid + printf("\nStreamer informasjon for %s:\n",argv while (BackupRead(hFile, (LPBYTE) &sid, dwStreamHeaderSize, &dwRead, &FALSE, TRUE; )) ( / /Hvis strømtypen er feil, avbryter vi loopen if (sid.dwStreamId == BACKUP_INVALID) break; ZeroMemory(&wszStreamName,sizeof(wszStreamName));

//Få strømnavnet hvis (!BackupRead(hFile, (LPBYTE) wszStreamName, sid.dwStreamNameSize, &dwRead, FALSE, TRUE, &lpContext)) bryter;

  • if (sid.dwStreamId == BACKUP_DATA || sid.dwStreamId == BACKUP_ALTERNATE_DATA) ( numofstreams++; printf("\n\nStream\t\t#%u",antall streams); switch (sid.dwStreamId) (case: BACKUP ("\nNavn:\t\t::$DATA"); kasus BACKUP_ALTERNATE_DATA: printf("\nNavn:\t\t%S",wszStreamName ) printf("\nStørrelse:\t\t%u\ n",sid.Size); ) //Flytt til neste strøm BackupSeek(hFile, sid.Size.LowPart, sid.Size.HighPart, &dw1, &dw2, &lpContext);

//Tøm strukturen før neste pass av loopen ZeroMemory(&sid,sizeof(sid)); ) //Tøm lpContext som inneholder tjenesteinformasjon //for at BackupRead-funksjonen skal fungere BackupRead(hFile, NULL, NULL, &dwRead, TRUE, FALSE, &lpContext);//Lukk filen CloseHandle(hFile);

returner 0; )

Det er også følgende om emnet filstrømmer:< 1013.pdf:Zone.Identifier

Arbeid med tråder

Microsoft har bare noen få kommandoer som fungerer med tråder, faktisk bare< , >arbeid med strømmer, og derfor kan bare kommandoer som kan fungere med disse omdirigeringsoperatørene brukes. Jeg skrev om hvordan du fortsatt kan kontrollere tråder med bare disse kommandoene.

Strømmer vil bare fungere med programmer som er designet for å fungere med dem, rett og slett fordi de må håndteres spesielt (sammenlign koblingspunkter så vel som NTFS-funksjonen, men driveren skjuler detaljene og programmer trenger ikke å gjøre noe spesielt: de teller bare den virkelige filen for krysspunktet).

Når du prøver å åpne en filstrøm ved å bruke start filnavn:strømnavn og programmet sier noe sånt som "ulovlig filnavn" eller "fil ikke funnet" og du er sikker på at strømnavnet er riktig, så støtter mest sannsynlig ikke programmet strømmer . Jeg la merke til at Notepad, Wordpad og Word/Excel fungerer riktig med strømmer, selv om Word og Excel anser filene som farlige. Nedenfor er noen eksperimenter.

MERK: Det ser ut til at de alternative datastrømmene er rare. De er rare fordi de er så skjulte, men mange store filsystemer (HFS, NSS) har dette, og konseptet dateres tilbake til tidlig på 80-tallet. Faktisk ble strømmer opprinnelig lagt til NTFS for å samhandle med andre filsystemer.

I dette emnet vil jeg se på fire typer metadata som kan knyttes til en fil eller katalog ved hjelp av filsystemet NTFS. Jeg vil beskrive for hvilke formål denne eller den typen metadata kan brukes, og jeg vil gi et eksempel på bruken i noe Microsoft-teknologi eller tredjepartsprogramvare.

Vi vil snakke om reparse-punkter, objekt-IDer og andre typer data som en fil kan inneholde i tillegg til hovedinnholdet.

Objekt-ID dette er 64 byte som kan knyttes til en fil eller katalog. Av disse lar de første 16 bytene deg unikt identifisere en fil i volumet og få tilgang til den ikke ved navn, men etter identifikator. De resterende 48 bytene kan inneholde vilkårlige data.

Objekt-IDer har eksistert i NTFS siden Windows 2000. I selve systemet brukes de til å spore plasseringen til filen som en snarvei (.lnk) refererer til. La oss si at filen referert til av snarveien har blitt flyttet innenfor volumet. Når du starter snarveien, vil den fortsatt åpnes. Spesiell Windows-tjeneste hvis filen ikke blir funnet, vil den forsøke å åpne filen ikke ved navn, men med en tidligere opprettet og lagret identifikator. Hvis filen ikke ble slettet og ikke forlot volumet, åpnes den, og snarveien vil igjen peke til filen.

Objektidentifikatorer ble brukt i iSwift-teknologien til Kaspersky Anti-Virus versjon 7. Slik beskrives denne teknologien: Teknologien ble utviklet for NTFS-filsystemet. I dette systemet er hvert objekt tildelt en NTFS-identifikator. Denne identifikatoren sammenlignes med verdier i en spesiell iSwift-database. Hvis databaseverdiene med NTFS-identifikatoren ikke stemmer overens, blir objektet sjekket eller sjekket på nytt hvis det er endret.

Imidlertid forårsaket overfloden av opprettede identifikatorer problemer med å skanne disken med standard chkdsk-skanneverktøy, det tok for lang tid. I påfølgende versjoner av Kaspersky Anti-Virus ble bruken av NTFS Object Id forlatt.

Reparse Point

På filsystemet NTFS-fil eller katalogen kan inneholde et reparse-punkt, som er oversatt til russisk som "gjenbearbeidingspunkt". Spesielle data legges til filen eller katalogen, filen slutter å være en vanlig fil og kan kun behandles av en spesiell filsystemfilterdriver.

Windows inneholder reparasjonspunkttyper som kan behandles av systemet selv. For eksempel, reparse-punkter i Windows implementerer symbolske lenker (symlinks) og koblingspunkter (krysspunkter), samt monteringspunkter for volumer i en katalog.
Reparse-bufferen som er knyttet til en fil er en buffer med en maksimal størrelse på 16 kilobyte. Det er preget av tilstedeværelsen av en merkelapp som forteller systemet hvilken type reparasjonspunktet tilhører. Når du bruker en reparse-buffer av din egen type, må du fortsatt sette GUID-en i et spesialfelt, og i Microsoft-reparse-buffere er den kanskje ikke til stede.

Hvilke typer reprosesseringspunkter finnes det? Jeg vil liste opp teknologiene som bruker reparse-punkter. Disse er Single Instance Storage (SIS) og Cluster Shared Volumes i Windows Storage Server 2008 R2, Hierarchical Storage Management, distribuert. Filsystem(DFS), Windows Home Server Drive Extender. Dette er Microsoft-teknologier som bruker reprosesseringspunkter er ikke nevnt her, selv om disse også finnes.

Utvidede attributter

Utvidede filattributter. Det handlet om dem. Det er bare verdt å nevne her at denne teknologien praktisk talt ikke brukes under Windows. Fra det jeg vet programvare bare Cygwin bruker utvidede attributter for å lagre POSIX-tillatelser. En enkelt fil på NTFS kan ha enten utvidede attributter eller en reparasjonspunktbuffer. Samtidig installasjon av begge er umulig. Maksimal størrelse på alle utvidede attributter i én fil er 64 KB.

Alternative datastrømmer

Ytterligere filstrømmer. Sannsynligvis alle vet om dem allerede. Jeg vil liste opp hovedtrekkene til denne typen metadata: navn (det vil si at en fil kan ha flere strømmer, og hver har sitt eget navn), direkte tilgang fra filsystemet (de kan åpnes ved å bruke formatet "filnavn, kolon, strømnavn"), ubegrenset størrelse , muligheten til å kjøre en prosess direkte fra en tråd (og muligheten til å implementere den gjennom den).

Brukes i iStream-teknologien til Kaspersky Anti-Virus. De brukes i selve Windows, for eksempel når du laster ned en fil fra Internett, er en Zone.Identifier-strøm knyttet til den, som inneholder informasjon om stedet den ble mottatt fra denne filen. Etter lansering kjørbar fil brukeren kan se meldingen "Kan ikke bekrefte utgiver. Vil du virkelig kjøre dette programmet?.

Så brukeren er gitt ekstra beskyttelse fra tankeløst lansering av programmer hentet fra Internett. Dette er bare én bruk av strømmer, og de kan lagre et bredt utvalg av data. Det nevnte Kaspersky Anti-Virus lagret kontrollsummer for hver fil der, men senere ble denne teknologien også forlatt av en eller annen grunn.

Noe annet?

Det er flere sikkerhets-ID, pluss standard filattributter som ikke er direkte tilgjengelige, selv om de også er implementert som filstrømmer. Og de, og utvidede attributter, og reparse og objekt-ID - alt dette er filstrømmer fra systemets synspunkt. Det er ingen vits i å endre sikkerhetsidentifikatoren, vist i følgende bilde som:$SECURITY_DESCRIPTOR la ​​systemet håndtere å endre det. Systemet i seg selv gir ikke direkte tilgang til andre typer strømmer. Så det er det.

Å se innholdet i objekt-ID, reparasjonspunkter, samt arbeide med utvidede attributter og alternative filstrømmer er mulig ved å bruke programmet

Synlig-usynlig

Bloggleser Victor klarte ikke å kjøre PowerShell-skriptet han lastet ned fra Internett. Å lese instruksjonene mine nøye unngikk problemet, men roten til det var ikke PowerShells strenge sikkerhetspolicyer.

Victor lastet ned et arkiv med PSWindowsUpdate.zip-skriptet fra TechNet-galleriet for Windows-administrasjon Oppdatering som jeg snakket om. Det utpakkede manuset nektet imidlertid å fungere. Da jeg foreslo for leseren at det første punktet i instruksjonene mine snakket om behovet for å låse opp arkivet, gikk alt som smurt.

Victor ba om å forklare hvorfor systemet blokkerte skriptet, og hvordan det visste at arkivet ble lastet ned fra en annen datamaskin.

For å være ærlig er ikke dagens tema nytt, men jeg bestemte meg for å dekke det på bloggen min av flere grunner:

  • Mange artikler ble skrevet tilbake Windows-tider XP eller Windows 7 og tar ikke hensyn til de innebygde egenskapene til nyere Microsoft-operativsystemer.
  • En av artiklene som er planlagt i nær fremtid berører dette emnet, og det er lettere for meg å referere til materiale for relevansen og riktigheten jeg selv er ansvarlig for.
  • Bloggen har et stort publikum, og for mange lesere vil dette temaet fortsatt være nytt :)

I dag på programmet

NTFS datastrømmer

Windows henter informasjon om filens kilde fra den alternative datastrømmen (ADS) til NTFS-filsystemet. I filegenskapene skriver hun beskjedent at det er fra en annen datamaskin, men i virkeligheten vet hun litt mer, som du skal se senere.

Fra et NTFS-synspunkt er en fil en samling av . Innholdet i filen er et dataattributt kalt $DATA. For eksempel tekstfil med linjen "Hello, World!" har dataattributtet "Hello, World!"

I NTFS er $DATA-attributtet en datastrøm og kalles primær eller ikke navngitt fordi... den ikke har noe navn. Formelt ser det slik ut:

$DATA:""

  • $DATA- Navn attributt
  • : – separator
  • "" - Navn strømme(i dette tilfellet er det ikke noe navn - det er ingenting mellom sitatene)

Interessante funksjoner ved alternative datastrømmer

I sammenheng med eksemplene ovenfor, vil jeg komme med noen interessante poeng.

Usynlige endringer

Etter å ha opprettet en tekstfil med den første kommandoen, kan du åpne den i tekstredigerer og sørg for at alle ytterligere manipulasjoner ikke påvirker innholdet i filen på noen måte.

Det blir interessant når filen åpnes, for eksempel i Notepad++. Denne editoren kan advare deg om filendringer. Og det vil den gjøre når du skriver en alternativ strøm til filen, men innholdet forblir det samme!

Ta opp og se ADS fra CMD

ADS kan opprettes og vises fra kommandolinjen. Følgende kommandoer skriver skjult tekst til en annen ADS kalt MyStream2 og viser den deretter.

Ekko skjult tekst > C:\temp\test.txt:MyStream2 mer< C:\temp\test.txt:MyStream2

Vise ADS i tekstredigerere

Den samme Notepad++ vil vise deg innholdet i ADS hvis du spesifiserer navnet på strømmen på kommandolinjen

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

Resultat:

Med notisblokk vil dette trikset bare fungere hvis det er en .txt. Kommandoene nedenfor legger til en tredje ADS og åpner den i Notisblokk.

Ekko skjult tekst > C:\temp\test.txt:MyStream3.txt notatblokk C:\temp\test.txt:MyStream3.txt

Resultat:

Blokkering av nedlastede filer

La oss gå tilbake til spørsmålet en leser stilte meg. Hvorvidt en fil vil bli blokkert avhenger først og fremst av programmet den ble lastet ned i, og for det andre av OS-innstillingene. Så alle moderne nettlesere støtter blokkering, og det er inkludert i Windows.

Husk at når et arkiv er låst, vil alle utpakkede filer bli låst "arvet". Husk også at ADS er en funksjon i NTFS, dvs. Når du lagrer eller pakker ut et arkiv på FAT32, skjer det ingen blokkering.

Se informasjon om kilden til en blokkert fil

I PowerShell, gå til mappen med den nedlastede filen og se informasjon om alle trådene.

Get-Item .\PSWindowsUpdate.zip -Stream * Filnavn: C:\Users\Vadim\Downloads\PSWindowsUpdate.zip Strømlengde ------ ------ :$DATA 45730 Zone.Identifier 26

Som du allerede vet, er $Data innholdet i filen, men ADS vises også i listen Zone.Identifier. Dette er et klart hint om at filen ble mottatt fra en sone. Vet du hvor dette bildet er fra?

For å finne ut sonen må du lese innholdet i ADS.

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

Det er åpenbart rettet mot batch-opplåsing (for eksempel når arkivet allerede er pakket ut). Kommandoen nedenfor vil låse opp alle filene i nedlastingsmappen som inneholder navnet PS:

Dir C:\Nedlastinger\*PS* | Fjern blokkering av fil

Selvfølgelig finnes det alle slags verktøy med et grafisk grensesnitt, også de som kan integreres i kontekstmenyen. Men etter min mening er PowerShell eller, i verste fall, streams ganske nok.

Hvordan forhindre at filer blokkeres

Blokkeringen styres av gruppepolicyen. Ikke lagre informasjon om opprinnelsessonen til vedlagte filer. Som navnet antyder, er blokkering standard Windows-adferd, og policyen lar deg endre den.

Det fremgår imidlertid ikke av navnet at policyen ikke bare gjelder for e-postvedlegg, men også for filer lastet ned fra Internett. Les mer om vedleggsansvarlig i KB883260.

I hjemmeutgaver er det ingen gruppepolicyredigerer, men ingen har kansellert registret: SaveZoneInformation.zip.

Andre eksempler på praktisk anvendelse av ADS

Omfanget av ADS er ikke begrenset til å legge til en nedlastet filsone, og det er heller ikke nødvendig å lagre kun tekst i ADS. Ethvert program kan bruke denne NTFS-funksjonen til å lagre alle typer data, så jeg vil bare gi et par eksempler fra forskjellige områder.

Filklassifiseringsinfrastruktur

Om forfatteren

Interessant materiale, takk. Jeg lærte noe nytt om PowerShell, som fortsatt er litt kjent for meg :)

Jeg bruker ofte WhatsApp for å kommunisere med familien min – så langt har det vært færrest problemer med denne tjenesten, selv foreldrene mine har blitt vant til det. Kontaktik er også hovedsakelig for familie, selv om utveksling av meldinger der hovedsakelig er rundt publiserte album med bilder og videoer. Noen slektninger forblir trofaste mot Viber - det fungerte ikke for meg, jeg beholder det bare for dem, uten å gi opp å prøve å dra dem til WhatsApp.

For jobb, hovedsakelig Slack, når noe haster - WhatsApp, veldig presserende - SMS. VKontakte for kommunikasjon om å jobbe med omverdenen.

Jeg bruker Skype kun for videosamtaler, hovedsakelig med familien min. Jeg ville gjerne erstattet det med WhatsApp hvis det var videosamtaler.

urix

Viber har nå videosamtaler, og til og med videosamtaler for skrivebordsversjonen. Så kanskje Viber blir neste Skype... på en god måte

Andrey Kuznetsov

Interessant materiale, takk. Jeg visste om eksistensen av tråder, men jeg visste ikke at det var så enkelt å jobbe med dem gjennom PowerShell.
Når det gjelder IM: Jeg har kun klager på Skype angående lanseringstiden Windows Phone. Det er ikke noe slikt problem på iPad og Windows. jeg bruker det til stemmekommunikasjon, når det av en eller annen grunn er upraktisk å bruke GSM.
Og korrespondanse via Whatsapp. Å ha det bare på telefonen er heller et pluss, fra et personvernsynspunkt.

  • Andrey Kuznetsov: Og korrespondanse via Whatsapp. Å ha det bare på telefonen er heller et pluss, fra et personvernsynspunkt.

    Andrey, forklar hva som er plusset her?

Pavlovsky Roman

1. Jeg bruker oftest: Skype og Hangouts - for arbeid på en PC, for annen korrespondanse på VKontakte fra hvilken som helst enhet, siden jobbklienter vanligvis bruker Skype, og venner og bekjente på sosiale nettverk.

2. Jeg vil ideelt sett bruke: Jabber - for korrespondanse og samtaler fra alle enheter. Når det gjelder meg, kan klienten installeres på hvilken som helst enhet og korrespondere med hverandre uansett hvor brukeren er, selv på en svak internettforbindelse + i tillegg kan du distribuere din egen jabber-server og lagre all korrespondanse på serveren, slik at senere du kan raskt finne nødvendig korrespondanse, hvis klienten ikke vet hvordan han skal lagre historikk, og plugins for samtaler via Jabber kan bli funnet (for eksempel gjennom samme SIP Asterisk 1.8+)

Andrey Bayatakov

Oftest bruker jeg WhatsApp (hovedsakelig for jobb), for samtaler (lyd/video/internasjonale samtaler) Skype. Selv om stasjonær Skype er fryktelig irriterende (jeg har en transformator og hjemme bruker jeg den hovedsakelig som nettbrett)... Viber har ikke fått med seg. For å ringe via WhatsApp trenger du bare å ha nerver av stål. Du sier noe til samtalepartneren din og venter et minutt eller to på at han skal høre deg (50Mbit-tilkobling)...
Hvis det var en mulighet, ville jeg byttet helt til Skype. På Windows 10 Mobile, etter en nylig oppdatering, kommer meldinger fra Skype direkte til den innebygde meldingsapplikasjonen (som SMS), noe som er veldig praktisk.

Maxim

1. Motvillig bruker jeg ICQ (for retrograde kunder) og Slack (for mer moderne).
2. Jeg vil gjerne bruke Jabber - av samme grunner som Roman Pavlovsky ovenfor.

Vladimir Kiryushin

Hei Vadim!
Før denne artikkelen leste jeg artikkelen din om hvordan du leser en kontrollrapport for alt systemdisk med chkdsk-kommandoen. Flott artikkel! Takket være henne, i dag, etter å ha sjekket systemdisken med chkdsk-kommandoen, mottok jeg en tekstfil med rapporten. Og denne artikkelen klargjør også mange ting i PowerShell-programmet. Noen ting er uforståelig for meg som pensjonist, men jeg prøver å ikke få panikk og leser flittig til slutt. Takk for studiet du gjør hos oss! Alt godt til deg!

Lecron

Hvilke nettlesere og nedlastere lager denne strømmen?

Hvilke andre alternativer er det for brukeren å bruke tråder? Og spesielt en manusforfatterbruker? For selv om jeg visste om dem lenge, brukte jeg dem aldri. På ekte arbeid med en datamaskin husker du rett og slett ikke om dem, og på grunn av dette kan du bruke krykker i stedet praktisk verktøy, og uten dette arbeidet, fra minnet, er det umulig å komme på noe.
Jeg tenkte bare på ett alternativ. En kommentar til filen, dersom det ikke er mulighet eller ønske om å skrive lang tekst i filnavnet. Men dette krever støtte fra filbehandleren, som tidligere, og selv nå, skriver dem til descript.ion eller files.bbs.

Hastighetsguru

En annen søppelteknologi som USN magazine. Hvor mye bruk vil du få fra ZoneIdentifier eller fra et virus knyttet til en fil eller mappe? Selvfølgelig ikke. Dessuten fyller dette systemet med unødvendige "underfiler" som på ingen måte er nødvendig for en vanlig bruker. Hver ekstra lesning i MFT-katalogen og andre operasjoner knyttet til vedlikehold og vedlikehold av alternative tråder er ekstra brukte prosessorsykluser, VÆR, og viktigst av alt, en ekstra belastning på harddisken.
Du kan fortelle meg at denne teknologien er veldig nødvendig for systemet. Men dette er tull - systemet ville fungere perfekt uten tråder. Men ingen spør brukeren - de solgte det (som et USN-magasin) og ga ikke muligheten til å fullstendig deaktivere vedlikeholdet av disse strømmene. Men som brukere trenger jeg dem ikke i det hele tatt, jeg tenker som deg...
Alt vi kan gjøre er "streams -s -d %systemdrive%". Men dette gjør det heller ikke mulig å slette tråder på systempartisjonen.

Alexiz Kadev

Navngitte strømmer er en flott ting, og de eksisterte, så vidt jeg husker, fra den første utgivelsen av NTFS. Det er ganske praktisk å lagre for eksempel dokumentversjoner i navngitte strømmer, noe som, hvis jeg ikke tar feil, en rekke applikasjoner har gjort. Men det gjenstår et bakhold med kopiering til en annen filsystemet– navngitte bekker blir rett og slett kuttet av.

Det er synd at det var umulig å velge flere budbringere i avstemningen: Jeg bruker flere, siden noen av kontaktene mine foretrekker visse. Så jeg bruker WhatsUp, ICQ (selv om det selvfølgelig ikke er en innfødt klient), Skype, SkypeforBusiness (stille skrekk, ikke en klient, men da det het Lync var det enda verre) og Viber (her er det mer spam) enn i andre minst én gang av 5).
Og ideelt sett, bruk bare en, som Miranda med plugins, siden det å finne, om nødvendig, hvem som sa/skrev noe når i hele denne gjengen er rett og slett urealistisk. Men dessverre, en rekke produsenter lukker protokollene sine og beskytter dem som Kashchei beskytter nålen hans.

  • VSh

    Vadim Sterkin: Roman, jeg tok ikke med Jabber i undersøkelsen. Jeg bestemte meg for at få mennesker bruker det, og det er ingen utsikter.

    Forgjeves
    For eksempel bruker jeg OpenFire (freeware xmpp) som kontorkommunikator på flere domener.

    Derfor er min viktigste XMPP (Pidgin.exe, Spark.exe), men 99,8% av disse meldingene er intradomene.
    Skype - for ekstern IM
    WhatsApp og Viber er for "tilfeldige tilkoblinger", de siste n månedene har ikke vært annet enn SPAM, tenker jeg - skal jeg slette det?

  • Artem

    Av en eller annen grunn er alt på Viber. Og kvaliteten på kommunikasjonen er ganske tilfredsstillende. Ellers ville det vært et telegram. Det er tomt der.

    hazet

    1. Skype (på PC) og Viber (på mobil). Årsakene er i utgangspunktet de samme som for de fleste - antall tilgjengelige kontakter og, naturligvis, motviljen til de samme kontaktene til å bytte til en annen messenger.
    2.uTox. Miniatyr, ingenting overflødig, klient for Win, Linux, Mac og Android. Plassert som beskyttet.
    P.S. Jeg begynner å dra kontaktene mine tettere inn på den :-)

    Evgeniy Karelov

    Takk for arbeidet ditt!

    Angående undersøkelsen bruker jeg QIP 2012 på min PC for korrespondanse, som ICQ, VKontakte og andre kontakter er koblet til. Personlig er det praktisk for meg å bruke ett program til å kommunisere over flere protokoller. Og muligheten til å se feeds fra sosiale medier fra ett sted er veldig gledelig. Ideelt sett er det eneste som mangler støtte for Skype, som jeg bruker til talekommunikasjon, men det vises tydeligvis ikke.
    Selv om dette programmet ser "forlatt ut", fordi det ikke har vært noen oppdateringer på lenge, utfører det de tildelte funksjonene perfekt.

    strafer

    En interessant blanding av temaet for innlegget om dataflyt og IM-undersøkelsen.

    I følge undersøkelsen: Jabber/Jabber, som du ikke burde ha inkludert i listen, selv om det er WhatsApp basert på XMPP, og til og med Asechka, som er på vei mot suksess.

    Jabber, generelt, løser alle disse problemene på grunn av åpenheten til protokollen, tilgjengeligheten av klienter for mange plattformer, og tilgjengeligheten av servere som kan settes opp uavhengig. Men å tygge kaktus er mer tradisjonelt, ja.

    • Listen inkluderer klienter, ikke protokoller.
      ICQ ... vel, jeg la ikke uttrykksikoner der, fordi det burde være tydelig.
      Jabber løser definitivt ikke ett problem - ingen er der.

      • strafer

        Vadim Sterkin: Klienter er oppført, ikke protokoller.

        På grunn av at protokollen og kildekoder offisiell klient er lukket, etableres en naturlig identitet mellom den eneste klienten og protokollen.

        Vadim Sterkin: ICQ... vel, jeg la ikke uttrykksikoner der, fordi det burde være tydelig.

        Det er ikke nok for den råtne postjenta at asechkaen dør en naturlig død - de gjør også ekstra innsats for å få den til å dø raskere.

        Vadim Sterkin: Jabber løser definitivt ikke ett problem - det er ingen der.

        Likevel skrev du selv for Telegram

        ser bra ut, men det er tomt (som kan fikses)

        Jabber hadde alle muligheter til å bli det e-postøkosystemet er i dag (fullstendig åpenhet i protokollen, muligheten til å sette opp serverne dine for hvem som helst og sikre interaksjon mellom servere osv.), men selskaper trenger ikke dette, noe som helt klart er sett i eksemplet med avgang fra ham Google eller proprietære WhatsApp.

        • For Telegram - kan fikses, for Jabber - svært usannsynlig. Derfor er den første på listen, men den andre er det ikke.

          • strafer

            Selvfølgelig er Telegram stilig, moteriktig, ungdommelig, men Jabber brukes ikke av noen kule som Pasha Durov. Hva er utsiktene her?

            Hm... kom ut av tanken din med "hele verden er imot fri programvare" konspirasjonsteorier. Alle mye enklere

            Hvis det ikke er klart, er dette hvordan en persons første opplevelse av å samhandle med den offisielt anbefalte Jabber-klienten på den vanligste mobilplattformen ser ut.

            strafer

          • Jeg forsto ikke litt hvor i kommentaren min om konspirasjonen.

            Ja, overalt :) Du prøver å tilskrive jabberens feil til umoderne og mangel på ungdom, mens klientene fra den første skjermen ikke er tilpasset moderne virkelighet.

            Hva skal jeg se på skjermbildet?

            Spør om å angi et telefonnummer ~~~O~

          • strafer

            strafer: Du prøver å tilskrive feilene til jabber til å være umoderne og ikke ungdommelig

            Vel, hvis det er tilfelle.

            strafer: mens klientene fra den første skjermen ikke er tilpasset moderne virkelighet.

            De. til dagens mote, for eksempel å oppgi telefonnummeret ditt til alle. For jeg forstår ikke hvorfor det skal introduseres hvis det ikke er nødvendig for driften av systemet, for meg er det helt fantastisk at det ikke blir spurt her.

            Faktisk forlot jeg kontoen, til tross for de få gjenværende kontaktene der, nettopp av denne grunn - Meirushechka, i ultimatumform, krevde å koble telefonnummeret til kontoen, som et resultat av at hun ble sendt til kjente koordinater.

            Ja, du forstår ikke, selv etter forklaringer med bilder... Dette er ikke en mote, dette er den eneste måten å forenkle registrering med mobile enheter, som danner grunnlaget for publikum av moderne budbringere og den eneste kilden til dens vekst.

            strafer

            Skjermbildet viser en forespørsel om navn, passord og valgfritt kallenavn. Hvor skal vi forenkle mer? Eller, bortsett fra elevene på spesialskoler, er det ikke flere reserver igjen for publikumsvekst, og det må være én knapp "gjør det for sakens skyld"?
            Hvorfor finnes det et telefonnummer i det hele tatt, og hva skal messenger gjøre med telefonnummeret?

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

    DIR /B C:\WINDOWS\System32\*.* |FINN /i ".SCR"

    Beskriv i detalj formålet med parameterne for hver kommando (husk at for hver kommando kan du ringe hjelp med /?-tasten). Vær oppmerksom på at de samme tastene kan ha forskjellige effekter for forskjellige kommandoer.

    4.1.8. NTFS* filstrømmer

    NTFS-filsystemet støtter filstrømmer - alternative datastrømmer. Faktisk er filstrømmer en kombinasjon av flere filer i én gruppe med ett felles filnavn (hver strøm har sitt eget tilleggsnavn). Innenfor en gruppe er det en hoveddatastrøm, som de fleste programmer fungerer med som en fil, og ytterligere navngitte strømmer som ikke vises på vanlige måter. Under filoperasjoner med kopiering, flytting, sletting osv., i NTFS utføres operasjonen på hele gruppen. Når du bruker noen arkivere og kopierer filer som inneholder alternative strømmer til en FAT-partisjon, kan disse strømmene gå tapt. Teknisk sett brukes alternative strømmer for å supplere en fil med informasjon uten å endre innholdet i hovedstrømmen eller opprette flere filer som kan gå tapt.

    Alternative strømmer brukes av antivirus for å lagre informasjon om en fil ("fingeravtrykk", kontrollsum) for å oppdage endringer i filen over tid. Direct Connect (DC++) fildelingsklienter kan lagre hash-resultater (sjekksumberegninger) for store filer som brukes når en fil flyttes og hashhas på nytt, noe som gjør oppdateringen av listen betraktelig raskere.

    I fremtiden kan bibliotekprogrammer, filmbiblioteker og lydbiblioteker bruke alternative strømmer til å lagre, sammen med dokumenter, strømmer av omslag, lydspor, beskrivelser og på forskjellige språk. Alternative strømmer lar "hemmelige" data legges ved, noe som er en potensiell fare.

    Du kan se informasjon om strømmer ved å bruke STREAMS-kommandoen25, NTFS Stream Explorer26-programmet, ved å bruke filbehandlerutvidelser27 i Windows 7, dir /r-kommandoen viser en liste over alle strømmer for de angitte objektene (du kan også bruke tilleggsnøkler med; dir kommando).

    Når du lagrer filer fra Internett, legges som standard en Zone.Identifier 28-strøm til filen i NTFS, som har et ini-filformat og vanligvis inneholder teksten:

    ZoneId-parameteren med et nummer betyr sonen som filen kom fra på datamaskinen sonenummeret er hentet fra sikkerhetssoneinnstillingene (; Kontrollpanel/Internett-alternativer(Nettverk og Internett / Nettleseregenskaper -

    Zera )/Sikkerhet-fanen). Følgende verdier er tillatt29: 0 – lokal datamaskin

    1 – intranett ( lokalt nettverk, domene)

    2 – pålitelig kilde

    3 – Internett

    4 – upålitelig kilde

    Hvis verdien er 3, vil systemet gi en advarsel " Kan ikke sjekke

    rive forlaget. Vil du virkelig kjøre dette programmet?"

    Nederst i meldingen er det en avmerkingsboks " Spør alltid når du åpner denne filen", fjerner som fjerner Zone.Identifier-strømmen. Hvis ZoneId inneholder en verdi på 4, vises en advarsel " Disse filene kan ikke åpnes. Sikkerhetsinnstillinger for Internett forhindret deg i å åpne

    25 strømmer (http://technet.microsoft.com/ru-ru/sysinternals/bb897440)

    26 NTFS Stream Explorer, et program for å jobbe med NTFS-strømmer (http://hex.pp.ua/ntfs-stream-explorer.php)

    27 NTFS-filinformasjon

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

    28 Du kan deaktivere opprettelsen av en blokkerende tråd for filer i den lokale editoren gruppepolitikk(gpedit.msc):Brukerkonfigurasjon

    vatela/Administrative maler/ Windows-komponenter/ Vedleggsbehandling / Sletting av informasjon om opprinnelsessonen for vedlegg.

    29 Zone.Identifier-strøm (http://hex.pp.ua/Zone.Identifier.php)

    én eller flere filer" og åpning av filer er blokkert. Når du åpner vinduet Egenskaper i Utforsker for en fil mottatt fra Internett, vises knappen Fjern blokkering nederst i kategorien Generelt og

    "Advarsel: Denne filen kom fra en annen datamaskin og kan ha blitt blokkert for å beskytte datamaskinen din" ", ved å trykke på en knapp Unblock fjerner Zone.Identifier-strømmen.

    Bruk en nettleser, last ned STREAMS.zip-filen (du kan laste ned en hvilken som helst liten fil ved å spesifisere navnet i kommandoen nedenfor), lagre den i rotmappen på F:-stasjonen, se innholdet i Zone.Identifier-strømmen med kommandoen:

    FLERE< F:\Streams.zip:Zone.Identifier

    Åpne Egenskaper-vinduet i Utforsker (Alt+Enter eller Egenskaper-kommandoen i kontekstmenyen) for den nedlastede filen, på Generelt-fanen, klikk på Unblock-knappen, og gjenta forrige kommando i konsollen.

    Lag en testfil med en kommando som omdirigerer teksten til tekstutdataoperatøren, legg til en alternativ strøm, se resultatet:

    ECHO Hovedtekst > F:\M.TXT

    EKKO Skjult tekst > F:\M.TXT:Hemmelig.TXT

    TYPE F:\M.TXT

    FLERE< F:\M.TXT:Secret.TXT

    En alternativ tekststrøm kan lastes inn i notisblokk:

    NOTISBORD F:\M.TXT:Hemmelig.TXT

    Alternative strømmer kan også opprettes for mapper og systemfiler30.

    Strømmer brukes også til å lagre utvidede attributter31.

    30 Skjult lagring av data i strømmer av $Repair-filen i systemkatalogen $RmMetadata (http://hex.pp.ua/RmMetadata.php)

    31 Utvidede NTFS- og FAT16-attributter

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

    Forbindelse