ADS, avagy hogyan rejtsünk el NTFS fájlrendszer esetén akár több megabájt adatot?

Talán sokak számára ismeretlen szolgáltatása az NTFS fájlrendszernek az adatok elrejtésének lehetősége.

Frank Heyne FAQ-jában egyszerűen megtudhatjuk, hogyan rejthetünk el akár több megabájtnyi adatot úgy, hogy abból sem a dir parancs, sem a Windows Intéző, sem pedig az egyéb fájlkezelők nem mutatnak semmit.

Mi az az alternate data stream (ADS)?

NTFS esetén egy fájl különböző adatfolyamokat (data streams) tartalmaz. Az egyik adatfolyam tárolja a biztonsági információkat (pl. hozzáférési jogok), a másik magát a fájl tartalmát képező adatot. Lehetőség van újabb adatfolyam fájlhoz kapcsolására, ha a fájl maga egy mutató (link). És ezen túlmenően ott vannak az ADS-ek (alternate data streams), melyek a 'hagyományos' adatfolyamokhoz hasonlóan tárolnak adatot.

Mi a gond ezekkel az ADS-ekkel?

Valójában semmi, a dokumentáció szerinti működést produkálják (igen, a Microsoft adott ki dokumentációt az ADS-ekhez).
De álljunk meg egy pillanatra - valami mégis hibádzik: az ADS-ek tökéletesen láthatatlanok. Tegük fel, hogy van egy 1 bájt hosszú fájlod, melyhez hozzákapcsoltál egy pár megabájt méretű ADS-t. Mit gondolsz, a dir parancs, a fájlkezelők, vagy a Windows Intéző milyen méretet fog mutatni erre a fájlra? Igen, 1 bájt!

A teljes FAQ itt. Windows rendszergazdák egyéb hasznos trükköket és eszközöket is találnak Frank Heyne honlapján.

Hozzászólások

vírusok új generációja van feltörekvőben, mivel ezeket a viruskereső sem látja, szóval ideális hely ...
___
info

Hát ha idáig nem használták ki akkor ezután sem fogják. Ez elég régi dolog, én is kb win2000 idején hallottam először róla, de lehet, hogy már az NT4-ben is tudta az ntfs. Abból a szempontból persze nem árt, hogy szélesebb közönség figyelmét is felhívják rá, mert tényleg nem egy közismert feature.
Egyébként asszem a sysinternals csomagban van valami tool amivel ki lehet listáztatni a streameket. A sysinternals amúgy is alap minden valamirevaló windows adminnak, az ember rögtön a linuxon megszokotthoz hasonló szinten belelát az oprendszer belső dolgaiba vele.
---
Sok gyerekkel ellentétben én sose akartam tűzoltó lenni. Lettem helyette informatikus. Nem találjátok ki, hogy mit csinálok nap mint nap...

Amúgy tetszik, hogy csináltak egy fícsört, de EGYÁLTALÁN nincs hozzá tool, amivel kezelni lehetne.
Az a kedvencem, amikor a chr(5)"SummaryInformation"-ba bele tudod pipeolni a binárist, oszt ha fut, taskmgr az originál file nevét adja meg.

--
"SzAM-7 -es, tudjátok amivel a Mirage-okat szokták lelőni" - Robi.

Gobohide can do that :)

Andi, really. Take it from me. If I tell you something, I'm usually right.

A GoboHide nem alternatív adatfolyamokat kapcsol fájlokhoz láthatatlanul, hanem egyazegyben eltüntet teljes (amúgy közönséges) fájlokat vagy könyvtárakat. És van rá tool, hogy ezt azért lássa a rencergizda...

Amúgy örülök neki, hogy a Gobo feature-jei már ennyire beleivódtak a HUP-os köztudatba...
-------------
Regényeim:
http://adlibrum.hu/Poliverzum/
http://www.novumverlag.hu/novitaeten/8/?product_id=22&detail=1
:::A #86-os sorszámú hivatalosan bejegyzett GoboLinux felhasználó

ha nem remlik, ezt mar a windows 2000 rendszerekkel debutalo ntfs verzio is tudta... ebben mi az ujdonsag?

---
Apple iMac 20"
áéíóöőúüű

Mint pld én. Win98 után rögvest Linuxra ugrottam. Azóta Wint csak munkahelyen láttam (és kezeltem).
-------------
Regényeim:
http://adlibrum.hu/Poliverzum/
http://www.novumverlag.hu/novitaeten/8/?product_id=22&detail=1
:::A #86-os sorszámú hivatalosan bejegyzett GoboLinux felhasználó

Hát azért tavalyelőttnél régebben kezdtem linuxozni. Nem a HUP-on való megjelenésemből kell kiindulnod, ugyanis sokáig nem volt netem, amikor Linuxom már igen. (Uhu1.1) De azt elismerem, jóval tovább használtam win98-at mint mások (ha nem is tavalyelőttig...), egyrészt mert lusta voltam áttérni xp-re, másrészt nem is bíztam benne, harmadrészt a gépem is gyenge lett volna hozzá.
-------------
Regényeim:
http://adlibrum.hu/Poliverzum/
http://www.novumverlag.hu/novitaeten/8/?product_id=22&detail=1
:::A #86-os sorszámú hivatalosan bejegyzett GoboLinux felhasználó

Őszinténszólva nem értem, mit lehet kedvelni bennük. Az a win amit úgy-amennyire kedveltem valamennyire (no azt sem _nagyon_ ...) az a Win3.11 volt. Persze azt is talán csak amiatt, mert akkor még csak nem is hallottam a Linuxról.
-------------
Regényeim:
http://adlibrum.hu/Poliverzum/
http://www.novumverlag.hu/novitaeten/8/?product_id=22&detail=1
:::A #86-os sorszámú hivatalosan bejegyzett GoboLinux felhasználó

az érdekes az lesz, hogy vajon ha egy vírus ADSbe rejti magát, észre veszi-e a user? És főleg: észre veszi-e a vírusirtó? ...egyébként van dir kapcsoló az ADSek listázására. Csak már én sem tudom mi az.... (sosem használtam (mint ahogy wint is csak ritkán) de olvastam róla)

Van ennek haszna, amikor létezik jogosultságkezelés?

Én csak ennyit szeretnék mondani:


atya@fractal <20:31:55><0> ~ $ sudo mount -o user_xattr /dev/sdc1 /mnt/sdc1/
[sudo] password for atya: 
atya@fractal <20:32:11><0> ~ $ sudo mkdir /mnt/sdc1/cam_test
atya@fractal <20:32:29><0> ~ $ sudo chown atya:andrews /mnt/sdc1/cam_test
atya@fractal <20:32:41><0> ~ $ cd /mnt/sdc1/cam_test
atya@fractal <20:32:42><0> /mnt/sdc1/cam_test $ echo "camouflage :)" > test
atya@fractal <20:32:57><0> /mnt/sdc1/cam_test $ ls -l *
-rw-r--r-- 1 atya andrews 14 2008-08-06 20:32 test
atya@fractal <20:33:02><0> /mnt/sdc1/cam_test $ cat test 
camouflage :)
atya@fractal <20:33:09><0> /mnt/sdc1/cam_test $ setfattr -n user.dodgethis -v `perl -e 'print "a"x4032;'` test
atya@fractal <20:33:29><0> /mnt/sdc1/cam_test $ ls -l *
-rw-r--r-- 1 atya andrews 14 2008-08-06 20:32 test
atya@fractal <20:33:36><0> /mnt/sdc1/cam_test $ cat test 
camouflage :)
atya@fractal <20:33:39><0> /mnt/sdc1/cam_test $ getfattr --dump test
# file: test
user.dodgethis="aaaaaaa.......aaaaaa"
atya@fractal <20:33:50><0> /mnt/sdc1/cam_test $

És még van néhány ilyen titokzatos dolog.

Hát itt épp az adatrejtésről volt szó. Ezt egy egyszerű júzer soha a büdös életben meg nem találja. Ahogy a hálózati interfészeknek felvett extra címeket és az extra routing táblákat se. :) A grafikus programoknak még csak fogalma sincs róla, hogy ezek léteznek. Látszólag minden a legnagyobb rendben, de a rendszer tele van aknákkal.

NOD32 víruskereső, és igen windowson fut :) lévén NTFS is windózon van főleg.

Az ADS-t pedig windózos körökben már ismerik annyira a sokat látott sysadminok (gyk. akik ismerik a sysinternals svájcibicska készletét) h. nekik nem újdonság. A kvóta pl. SZERINTEM azokra is vonatkozik.


$ sudo ip addr add 10.0.0.1 dev wlan0
$ ifconfig wlan0
wlan0     Link encap:Ethernet  HWaddr ......  
          inet addr:10.0.0.1  Bcast:0.0.0.0  Mask:255.255.255.255
...
$ sudo ip addr add 10.0.0.2 dev wlan0
$ ifconfig wlan0
wlan0     Link encap:Ethernet  HWaddr ......  
          inet addr:10.0.0.1  Bcast:0.0.0.0  Mask:255.255.255.255
...
$ ip addr show dev wlan0
4: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc sfq qlen 1000
    link/ether ...... brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.1/32 scope global wlan0
    inet 10.0.0.2/32 scope global wlan0
$

Csak ezt baromi kevesen használják, főleg a grafikus tool-ok nem.

Az nem baj, hogy csináltak egy általánosabb megoldást. A baj az, hogy a régi userspace nem ment utána. Ez egyébként tényleg tipikus Linux betegség. Mindazonáltal kíváncsi lennék, hogy mennyi idő alatt jönnél rá, hogy a tcpdump kimenetben miért épp azt látod, amit... Kedvencem, amikor a csomagban az én címem van, csak nem az én MAC-em. Csak nézem és nézem, hogy mi a francért nem válaszol a gépem, pedig megjön a csomag. Ha a routing tábla van megpiszkálva, az is ilyen misztikus tud lenni a legtöbben soha nem jönnének rá, hogy mi is történik valójában, de az a kevés, aki rájönne, az is valszeg csak órák-napok alatt. És közben többször kitépné a haját :)

Bar nem pont rejtozkodesre, de mas celra hasznalhato:
Peldaul ha van egy geped, amin tobb virtualis gepet akarsz futtatni, ugy, hogy minden virtualis gepnek legyen sajat, publikus IP cime. Ezzel megadhatod, hogy a halokartyanak tobb IP cime legyen, es igy a virtualis gepek lassak.
Persze ez ugy is megoldhato, ha tun/tap-ot hasznalsz, es bridge-be teszed a halokartyat. De a masik talan tisztabb.

----
I have a solaris box that does nothing.. its pretty good at it aswell. - besok, deviantart
honlapkészítés

Igazabol ha az ip addr paranccsal ugy veszed fel az uj IP-t, hogy utanarakod, hogy "label eth0:1", akkor maris latni fogja az ifconfig is :) Szoval szvsz ugyanazt csinalja mindketto, ugyanugy az eth0-hoz rendeled az uj cimet, csak az ifconfig nem veszi eszre, ha nem rendelsz hozza egy olyan labelt, hogy eth0:xxxxx. Sot, ha mondjuk eth0_valaminek nevezed, akkor ifconfigtol kapsz is egy hibauzenetet: "eth0_xxxxx: error fetching interface information: Device not found", szoval a kettospontot ugy tunik, hogy elegge megkoveteli :)

Nem kell bonyolult dolgokra gondolni, egyszerűen az ifconfig és a route már régóta deprecated, csak a legtöbb disztro még szállítja megszokásból, meg mert részben függenek tőle. A /etc/net project van már jóideje a kiváltására, az kezelni tudja az összes új hálózati megoldást, technológiát.

Akkor még ennyit hozzá:


atya@fractal <21:52:07><0> /mnt/sdc1/cam_test $ setfattr -n user.dodgethis \
    -v 'echo "en egy titkos gonosz shell script vagyok"; echo "rm -rf $HOME" ' test
atya@fractal <21:52:22><0> /mnt/sdc1/cam_test $ sh -c "`getfattr -n user.dodgethis --only-values test`"
en egy titkos gonosz shell script vagyok
rm -rf /home/atya
atya@fractal <21:52:37><0> /mnt/sdc1/cam_test $

Szerintem nem olyan bonyolult.

A Sony trükközött már ezzel valami driver telepítésénél. Itt is volt róla szó.

Ha a Sony Rootkitre gondolsz, akkor az nem így működött... Ott maga a rootkit kernel drivere hookolta a szükséges rendszerhívásokat és a $SYS$ kezdetű file- és registry neveknél azt adta vissza, hogy nem létezik (a saját filejainak neve és registry bejegyzései pedig így kezdődtek).

egy olyan jó 8 évvel elkéstek, ez nem egy mai dolog. Igy lehetett az mp3-at a suliba a gépeken elrejteni :D

ntfs 3.0 ota van ez
________________________
Blog | Hogyan?

No news here. Technet Magazin has written an article about it for a long time ago.
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

$ echo hello > teszt
$ runat teszt cp /etc/release .
$ runat teszt cp /bin/bash .
$ ls -l teszt
-rw-r--r--   1 nemethe  staff          6 Aug  7 09:39 teszt
$ ls -@ teszt
-rw-r--r--@  1 nemethe  staff          6 Aug  7 09:39 teszt
$ runat teszt ls -l
total 1154
-r-xr-xr-x   1 nemethe  staff     578964 Aug  7 09:40 bash
-r--r--r--   1 nemethe  staff        238 Aug  7 09:39 release
$ runat teszt ./bash
shell-init: could not get current directory: getcwd: cannot access parent directories: Not a directory
bash-2.05$ pwd
pwd: could not get current directory: getcwd: cannot access parent directories: Not a directory
bash-2.05$ ls -l
total 1154
-r-xr-xr-x   1 nemethe  staff     578964 Aug  7 09:40 bash
-r--r--r--   1 nemethe  staff        238 Aug  7 09:39 release
bash-2.05$ cat release
                        Solaris 9 9/04 s9s_u7wos_09 SPARC
           Copyright 2004 Sun Microsystems, Inc.  All Rights Reserved.
                        Use is subject to license terms.
                             Assembled 29 June 2004

Gyulolom ezt a ficsort, mint az osszes hozza hasonlot.
Egy felhasznalonak legyen teljes kontrolja a gepe felett, a kiskapu, kiskapujanak, kiskapujazasa nelkul. A felhasznalo adatai, legyenek egyszeruen es konnyen elerhetoek.
Nincs unduritobb dolog az adatrejtesnel...
--
"Maradt még 2 kB-om. Teszek bele egy TCP-IP stacket és egy bootlogót. "