Mám takovou malou aplikaci na správu a monitoring serverů. Je sice přístupná přes doménu ale na jiném portu než 80, takže prostým zadáním domény se k ní nedostanete (nehledě na to, že musíte znát doménu). Přesto se jí nedávno někdo domákl a provedl zhruba 100 pokusů o průnik. Vcelku lituji, že jsem neviděl jeho obličej když se mu to ani jednou nepovedlo. Ta aplikace totiž na PHP běží jen zdánlivě.
Původní návrh celé aplikace počítal s PHP. To se ovšem ukázalo na různých místech jako zcela nepoužitelné nebo zbytečně komplikované. Proto jsem nakonec sáhl po jiném jazyce a sice Pythonu. Vzal jsem to jako praktický test svých schopností v tomto jazyce, protože jsem v něm už delší dobu podnikal různé nesmělé krůčky.
V té době jsem ale měl již hotové šablony v HTML a v nich odkazy na PHP soubory, které se mi opravdu nechtělo přepisovat. Z toho důvodu jsem udělal to nejjednodušší co šlo – v configu Apache jsem změnil interpreter .php z PHP na Python. PHP pak putovalo do pryč, jelikož ho nadále nebylo zapotřebí. Nějaké kdovíjaké zabezpečovací práce jsem neprováděl – k úspěšnému přihlášení bylo potřeba znát login, heslo a mít k dispozici klíč.
Jeho, skoro zoufalé, pokusy o uploadování nějakých PHP scriptů na server a jejich následné spuštění jsem z logu četl vcelku pobaven. Sice jsem byl mírně rozladěn tím, že se mu tam jeden script opravdu podařilo dostat ale díky absenci PHP jej nebyl schopen spustit, tudíž žádné velké drámo a onu chybičku jsem si opravil. Následovalo zjištění, že tudy cesta nevede a tak byl nasazen kalibr CURL a jiná mocná zaříkadla, která taktéž nikam nevedla, protože dotyčná osoba stále zkoušela s jejich pomocí nějak spustit alespoň malinký PHP script. Když se ani tohle nezdařilo, zkusil konečně opačný postup a sice nejprve zjistit co že na tom serveru vlastně všechno běží. Jenže v tomhle případě jsem zrovna paranoidní, protože se jedná o čistě můj stroj a nemám zájem na tom, aby se mi v něm nějaký moula hrabal.
Ve této chvíli, kdy „hacker“ obdržel kýžené informace, by se normální člověk se špetkou zdravého rozumu otočil a na celou věc by se vykašlal. Mého „hackera“ ale zjištění, že na stroji běží Windows 95 s démonem IIS nijak nerozhodilo. Nevím jestli je to opravdu takový blb a věří, že by někdo provozoval webový server na Windows 95 (já bych to nedělal ani na Windows 2000 nebo jakémkoliv jiném Windows) nebo mu stačilo prostě jen to slovíčko Windows, každopádně další pokusy byly o to veselejší.
Můj stroj, na kterém běží Debian (mnou preferovaná distribuce linuxu) tak zažil dosud nevídané věci. Několik různých pokusů z knížky Hacking bez tajemství: Windows 2000 (taky jí možná ještě někde doma mám a ty příklady si dobře pamatuji) mi jen o něco více rozhýbalo bránici. Automaticky už většina pokusů směřovala k napíchnutí na Remote Desktop, čímž se „hacker“ vlastně sám odřízl od alespoň malinké šance se kamkoliv dostat. Několik zbývajících pak musely být už jen vzteklé výkřiky do tmy, jelikož se alespoň pokusil o podstrčení přikazu k vypnutí stroje.
Tento incident mne nicméně donutil mírně pozměnit několik věcí v konfiguraci. Přepnul jsem SSH na přístup s klíčem a jen z určitých strojů (port jsem změnil hned po instalaci), v iptables jsem nastavil zahazování dotazů na porty (podle určitých pravidel) a k oné inkriminované aplikace se teď lze dostat pouze pokud server obdrží správnou identifikaci od klienta. Tentokrát to byl nějaký trouba s Windows – příště by to mohl být někdo, kdo ví že existují i jiné operační systémy a výsledek už by nemusel být tak zábavný.