Přikazová řádka Windows i textové konzole z Linuxu jsou mocným nástrojem každého pokročilého uživatele PC. Dokážou rychle budovat a ještě rychleji ničit.
Textová konzole operačního systému je mocnou zbraní každého správce počítače. Co jeden provede hektickým šermováním ukazatele myši po obrazovce, zvládne zkušený člověk několika údery klávesnice v černobílém okénku.
Práci s textovým prostředím jsme si připomněli v dubnovém článku Začněte skutečně ovládat PC: Používejte příkazovou řádku, tentokrát se ale na celou věc podíváme trošku jinak. Terminál totiž umožňuje nejen rychle splnit zadaný úkol, ale také jako mávnutím kouzelného proutku zahltit procesor i paměť nebo třeba na kusy rozmetat souborový systém.
Dnes se tedy podíváme na několik bláznivých příkazů pro počítačové sebevrahy. Terminál je mocný především na linuxovém systému. Jako ideální testovací prostředí poslouží libovolná virtualizovaná distribuce spuštěná ve VirtualBoxu. Pokud žádný virtuální Linux nemáte, nemusíte jej zdlouhavě instalovat, na internetu totiž najdete celou plejádu již připravených virtuálních disků s nainstalovaným operačním systémem. Nabízí se třeba web Virtualboxes.org.
Teď už ale konec legrace a pojďme zničit počítač.
:(){ :|: & };:
Tato podivná sekvence znaků spolehlivě odstřelí každý linuxový systém – stačí ji zadat do textové konzole. Ve skutečnosti se jedná o jednoduchý bashový příkaz, který bude rekurzivně spouštět nové a nové procesy sebe sama. Rozbor příkazu, který je známý jako tzv. fork bomba, najdete znak po znaku na tuzemské Wikipedii.
Příkaz po spuštění v podstatě způsobí totální zahlcení systému požadavky na spouštění nových procesů, jedná se tedy o takový hezký lokální příklad útoku DoS. Po zahlcení se systém zpravidla zhroutí.
Obrana není jednoduchá, značka ampersandu (&) totiž znamená, že se budou nové procesy spouštět na pozadí a tedy zcela nezávisle na tom prvním. I když by se vám tedy podařilo po spuštění rychle zavřít okno konzole, je to zbytečné, příkaz se už totiž šíří jako virus na pozadí. Virtuální Ubuntu ve VirtualBoxu si s touto neplechou neporadilo a během okamžiku zcela zamrzlo.
Smršť Internet Explorerů
Na rozdíl od předchozího příkladu z Linuxu se nyní podíváme na Windows a na jednoduchý dávkový skript uložený do souboru *.BAT. Dejme tomu, že budeme chtít vytvořit nekonečnou smyčku, která nebude dělat nic jiného, než že se bude pokoušet stále dokola otevírat nová a nová okna Internet Exploreru. Než se nadějete, budete mít na ploše desítky otevřených prohlížečů a systém začne zoufale swapovat.
Stačí tedy otevřít libovolný textový editor a napsat tuto jednoduchou smyčku:
:smycka
start iexplore www.zive.cz
goto smycka
Výsledek uložte třeba jako soubor legrace.bat a zvesela na něj poklepejte. Následný ohňostroj předčí i oslavy Silvestra.
Kolik oken Internet Exploreru systém unese? Co třeba šedesát během několika sekund?
Nezničitelný Průzkumník
Ve smyčce samozřejmě můžeme spouštět cokoliv. Kdybych tedy namísto Internet Exploreru napsal pouze start ., bude se naopak stále dokola spouštět Průzkumník ve vaší uživatelské složce. V tomto případě se ale nebude spouštět pokaždé v novém okně, ale stále v tom samém, což v praxi znamená, že jeho okno bude mít stále fokus a to tak dlouho, dokud nezabijete proces našeho skriptu.
:smycka
start .
goto start
Když Průzkumník vypnete, okamžitě se zase spustí, když jej minimalizujete, okamžitě se obnoví, a pokud zobrazíte okno jiného programu, okamžitě jej opět překryje náš dobrý Průzkumník.
Odstřel Windows během okamžiku
Pokud ani jedna z těchto smyček na Windows nezabije systém dostatečně rychle, můžete nasimulovat fork bombu z Linuxu. V podstatě se jedná opět o smyčku GOTO, ale v tomto případě mnohem spolehlivější.
Pokud vytvoříte skript BAT s těmito řádky:
:smycka
start "" %0
goto smycka,
systém přestane reagovat prakticky okamžitě.
BSOD kdykoliv pomocí klávesové zkratky
Pomocí skriptů výše sice rychle zahltíte systém, nicméně není nad starou dobrou BSOD – modru obrazovku smrti. V posledních verzích Windows ji už jen tak snadno nevyvoláte, Microsoft však na fanoušky BSOD myslí i nadále, vytvořením jednoduchého klíče v systémovém registru ji totiž budete moci vyvolat přidržením pravého Ctrl a dvojitým klepnutím na Scroll Lock.
Nastavení pro USB klávesnici:
Navštivte klíč registru HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\kbdhid\Parameter a vytvořte v něm nový záznam typu DWORD s hodnotou 1 a názvem CrashOnCtrlScroll.
Po restartu můžete BSOD vyvolávat od rána do večera. Podrobnější dokumentaci najdete na stránkách Microsoftu a naše starší povídání o práci se systémovým registrem Windows pak hledejte v článku Začněte skutečně ovládat PC: Kouzlete s registrem Windows.
Instantní BSOD na přání
Tisíce zbytečných složek během minuty
Zpět ale ke smyčkám. Procesor a RAM tedy zahltíte snadno a nyní přichází na řadu pevný disk. Smyčku GOTO z příkazové řádky Windows lze použít samozřejmě libovolným způsobem a meze představivosti se nekladou. Pokud byste tedy chtěli třeba zahltit pevný disk náhodnými adresáři, stačí použít tuto smyčku:
:smycka
md %random%
goto smycka
Smaž se
Pokud nic vytvářet nechcete, ale naopak se v přímém přenosu chcete dívat, jak se hroutí celý váš systémový oddíl, otevřete s právy administrátora příkazovou řádku, přesuňte se do C:\ a jednoduše napište rmdir . /S.
Příkaz začne mazat adresář po adresáři, soubor po souboru a zůstanou jen zamčená data, se kterými pracuje nějaký proces. Na mém virtuálním Windows XP po chvíli vyskočilo hlášení, že v systému chybějí klíčová data a ať vložím instalační CD-ROM. To už ale byl pouze poslední záchvěv a po restartu se Windows už neprobudil.
Mažeme céčko
Na Linuxu by mohl být ideální alternativou příkaz rm -rf /, který vzhledem k stromovému charakteru smaže prostě všechno v kořenovém adresáři, čili i data na aktuálně připojených médiích.
Na Linuxu jsem ale chtěl vyzkoušet ještě jeden příkaz a to dd if=/dev/random of=/dev/sda.
DD je program, který na Linuxu slouží k nízkoúrovňovému kopírování dat – doslova tedy RAW dat. Parametr IF představuje vstup, tedy odkud se čte, a parametr OF pak přirozeně výstup, tedy kam se zapisuje. Zařízení /dev/random je generátor pseudonáhodných čísel a /dev/sda je můj pevný disk – v tomto testu pouze virtuální.
Přepisujeme pevný disk pseudonáhodnými čísly za běhu systému
Po spuštění s právy administrátora tedy začne program DD zapisovat náhodné hodnoty na pevný disk, což logicky povede k pádu celého souborového systému. Uživatel samozřejmě zpočátku nic nepozná, protože instance je načtená v RAM, brzy se ale začnou objevovat všemožné komplikace, aplikace budou hlásit chyby při pokusu o přístup k disku a po restartu počítače nadobro nastane tma.
Systémová textová konzole je tedy opravdu všehoschopná, čehož by si měli být při hrátkách vědomi hlavně méně zkušení uživatelé. S právy administrátora totiž mají v rukou skutečně tlačítko k odpálení pomyslné jaderné bomby.
A na závěr srandičky
Nakonec malé odlehčení. Dnes jsme s pomocí textové konzole ničili systém a data, ale stojí za to připomenout, že zvláště linuxový terminál dokáže být s těmi správnými prográmky i docela zábavný.
Jede, jede mašinka, kouří se jí z komínka…
Jedním z nich může být třeba textová parní lokomotiva, která se vám projede po počítači. Na většině distribucí ji „bohužel“ nenajdete předinstalovanou přímo v systému, stačí ji ale doinstalovat z výchozího repozitáře – jedná se o balíček sl.
Matrix
Šetřiče obrazovky s Matrixem už sice vyšly z módy před mnoha lety (ostatně to dnes platí o šetřičích obrazovek obecně), to ale neznamená, že si log Matrixu nemůžete spustit i v terminálu. Komunita okolo Linuxu má totiž Matrix i po letech stále ráda, a tak stačí opět doinstalovat balíček cmatrix. Po spuštění se v okně spustí pestrobarevný rej znaků a vy můžete ohromit blízké, že se v tom vyznáte.
Kráva
A do třetice ještě kráva. Tentokráte se bude jednat o balíčky cowsay a xcowsay, které bohužel opět nejsou součástí standardních instalací linuxových distribucí. I v tomto případě je ale můžete doinstalovat z výchozího repozitáře.
Pokud do terminálu napíšete třeba cowsay Ahoj světe!, zobrazí se textová kráva s komiksovou bublinou, ve které bude vaše sdělení. Xcowsay je už vyšší dívčí, tentokráte se totiž kráva vykresli přímo v grafické podobě mimo terminál. Tato kráva tedy nepoběží v čistě textovém Linuxu.
Takže hurá do toho.