Press "Enter" to skip to content

OWASP WSTG: Testování výchozích přihlašovacích údajů (WSTG-ATHN-02)

Níže nabízím překlad z Home > Stable > 4-Web Application Security Testing > 04-Authentication Testing > Testing for Default Credentials

Shrnutí

V dnešní době webové aplikace často využívají populární open-source nebo komerční software, který lze nainstalovat na servery s minimální konfigurací nebo přizpůsobením správcem serveru. Navíc mnoho hardwarových zařízení (např. síťové routery a databázové servery) nabízí webové rozhraní pro konfiguraci nebo správu.

Tyto aplikace často po instalaci nejsou správně nakonfigurovány a výchozí přihlašovací údaje, které jsou poskytovány pro počáteční autentizaci a konfiguraci, zůstávají nezměněny. Tyto výchozí přihlašovací údaje jsou dobře známé penetračním testerům a, bohužel, i škodlivým útočníkům, kteří je mohou použít k získání přístupu k různým typům aplikací.

Dále, v mnoha případech, když je na aplikaci vytvořen nový účet, je vygenerováno výchozí heslo (s některými standardními charakteristikami). Pokud je toto heslo předvídatelné a uživatel ho při prvním přístupu nezmění, může to vést k tomu, že útočník získá neoprávněný přístup k aplikaci.

Hlavní příčinou tohoto problému mohou být:

  • Nezkušený IT personál, který si není vědom důležitosti změny výchozích hesel na nainstalovaných součástkách infrastruktury, nebo nechává heslo ve výchozím nastavení pro „snadnou údržbu“.
  • Programátoři, kteří nechávají zadní vrátka, aby měli snadný přístup a testovali svou aplikaci, a později je zapomněli odstranit.
  • Aplikace s vestavěnými neodstranitelnými výchozími účty s přednastaveným uživatelským jménem a heslem.
  • Aplikace, které nenutí uživatele změnit výchozí přihlašovací údaje po prvním přihlášení.

Cíle testu

  • Vypsat aplikace s výchozími přihlašovacími údaji a ověřit, zda stále existují.
  • Prozkoumat a posoudit nové uživatelské účty a zjistit, zda jsou vytvářeny s nějakými výchozími nebo identifikovatelnými vzory.

Jak testovat

Testování výchozích přihlašovacích údajů běžných aplikací

Při testování typu black-box tester nic neví o aplikaci a její podkladové infrastruktuře. V praxi to často není pravda, a nějaké informace o aplikaci jsou známy. Předpokládáme, že jste identifikovali alespoň jednu nebo více běžných aplikací, které mohou obsahovat přístupné administrativní rozhraní, pomocí technik popsaných v této Příručce testování v kapitole Shromažďování informací (Information Gathering).

Jakmile identifikujete rozhraní aplikace, například webové rozhraní routeru Cisco nebo administrátorský portál WebLogic, ověřte, zda známá uživatelská jména a hesla pro tato zařízení nevedou k úspěšné autentizaci. K tomu můžete konzultovat dokumentaci výrobce nebo, mnohem jednodušeji, najít běžné přihlašovací údaje pomocí vyhledávače nebo pomocí jednoho z webů nebo nástrojů uvedených v sekci Odkazy.

Když se setkáte s aplikacemi, kde nemáme seznam výchozích a běžných uživatelských účtů (například kvůli tomu, že aplikace není široce rozšířená), můžeme se pokusit odhadnout platné výchozí přihlašovací údaje. Upozorňujeme, že aplikace, kterou testujete, může mít povolenou politiku blokování účtů, a více pokusů o odhad hesla se známým uživatelským jménem může způsobit zablokování účtu. Pokud je možné zablokovat účet administrátora, může být pro správce systému obtížné jej resetovat.

Mnoho aplikací má podrobné chybové zprávy, které informují uživatele webu o platnosti zadaných uživatelských jmen. Tyto informace budou užitečné při testování výchozích nebo odhadnutelných uživatelských účtů. Takovou funkci lze nalézt například na stránce pro přihlášení, stránce pro resetování hesla a zapomenutého hesla a na registrační stránce. Jakmile najdete výchozí uživatelské jméno, můžete také začít odhadovat hesla pro tento účet.

Více informací o tomto postupu naleznete v následujících částech:

Protože tyto typy výchozích přihlašovacích údajů jsou často svázány s administrativními účty, můžete postupovat následovně:

  • Vyzkoušejte následující uživatelská jména – „admin“, „administrator“, „root“, „system“, „guest“, „operator“ nebo „super“. Tyto jsou oblíbené mezi systémovými administrátory a často se používají. Dále můžete zkusit „qa“, „test“, „test1“, „testing“ a podobné názvy. Zkuste jakoukoliv kombinaci výše uvedených v polích pro uživatelské jméno i heslo. Pokud je aplikace zranitelná vůči výpisu uživatelských jmen a podaří se vám úspěšně identifikovat některé z výše uvedených uživatelských jmen, zkuste hesla podobným způsobem. Také zkuste prázdné heslo nebo jedno z následujících „password“, „pass123“, „password123“, „admin“ nebo „guest“ s výše uvedenými účty nebo jakýmikoli jinými vypsanými účty. Další permutace výše uvedených můžete také vyzkoušet. Pokud tato hesla selžou, může mít smysl použít běžný seznam uživatelských jmen a hesel a pokusit se o více požadavků proti aplikaci. To lze samozřejmě skriptovat pro úsporu času.
  • Administrativní uživatelé aplikací jsou často pojmenováni podle aplikace nebo organizace. To znamená, že pokud testujete aplikaci nazvanou „Obscurity“, zkuste použít obscurity/obscurity nebo jakoukoliv jinou podobnou kombinaci jako uživatelské jméno a heslo.
  • Při testu pro zákazníka zkuste použít jména kontaktů, které jste obdrželi, jako uživatelská jména s jakýmikoli běžnými hesly. E-mailové adresy zákazníků mohou odhalit konvenci pojmenovávání uživatelských účtů: pokud zaměstnanec „John Doe“ má e-mailovou adresu jdoe@example.com, můžete se pokusit najít jména systémových administrátorů na sociálních sítích a odhadnout jejich uživatelské jméno aplikováním stejné konvence na jejich jméno.
  • Pokuste se použít všechna výše uvedená uživatelská jména s prázdnými hesly.
  • Prohlédněte si zdrojovou stránku a JavaScript buď prostřednictvím proxy, nebo zobrazením zdroje. Hledejte jakékoli odkazy na uživatele a hesla ve zdrojovém kódu. Například if username=’admin‘ then starturl=/admin.asp else /index.asp (pro úspěšné přihlášení oproti neúspěšnému přihlášení). Také pokud máte platný účet, přihlaste se a prohlédněte si každý požadavek a odpověď pro platné a neplatné přihlášení, jako jsou další skryté parametry, zajímavý GET požadavek (login=yes), atd.
  • Hledejte uživatelská jména a hesla zapsaná v komentářích ve zdrojovém kódu. Také prohledejte záložní adresáře pro zdrojový kód (nebo zálohy zdrojového kódu), které mohou obsahovat zajímavé komentáře a kód.

Testování výchozích hesel nových účtů

Může se také stát, že když je v aplikaci vytvořen nový účet, je účtu přiřazeno výchozí heslo. Toto heslo by mohlo mít některé standardní charakteristiky, které ho činí předvídatelným. Pokud uživatel toto heslo při prvním použití nezmění (to se často stává, pokud není uživatel nucen ho změnit) nebo pokud se uživatel ještě nepřihlásil do aplikace, může to vést k tomu, že útočník získá neoprávněný přístup k aplikaci.

Dříve zmíněná rada ohledně možné politiky blokování a podrobných chybových zpráv je také zde aplikovatelná při testování výchozích hesel.

Následující kroky lze použít k testování těchto typů výchozích přihlašovacích údajů:

  • Pohled na stránku registrace uživatele může pomoci určit očekávaný formát a minimální nebo maximální délku uživatelských jmen a hesel aplikace. Pokud stránka registrace uživatele neexistuje, zjistěte, zda organizace používá standardní pojmenovací konvenci pro uživatelská jména, například jejich e-mailovou adresu nebo jméno před @ v e-mailu.
  • Pokuste se odvodit z aplikace, jak jsou generována uživatelská jména. Například může uživatel zvolit své vlastní uživatelské jméno nebo systém vygeneruje jméno účtu pro uživatele na základě některých osobních informací nebo pomocí předvídatelné sekvence? Pokud aplikace generuje jména účtů v předvídatelné sekvenci, například user7811, pokuste se fuzzovat všechny možné účty rekurzivně. Pokud můžete identifikovat jinou odpověď aplikace při použití platného uživatelského jména a nesprávného hesla, můžete poté provést útok hrubou silou na platné uživatelské jméno (nebo rychle vyzkoušet některá z dříve uvedených běžných hesel nebo hesel v sekci odkazy).
  • Zkuste zjistit, zda je systémem generované heslo předvídatelné. K tomu vytvořte rychle za sebou mnoho nových účtů, abyste je mohli porovnat a určit, zda jsou hesla předvídatelná. Pokud jsou předvídatelná, zkuste je korelovat s uživatelskými jmény nebo jakýmikoli vypsanými účty a použít je jako základ pro útok hrubou silou.
  • Pokud jste identifikovali správnou pojmenovací konvenci pro uživatelské jméno, zkuste „brutálně“ vynutit hesla pomocí nějaké běžné předvídatelné sekvence, jako například datum narození.
  • Pokuste se použít všechna výše uvedená uživatelská jména s prázdnými hesly nebo použitím uživatelského jména také jako hodnoty hesla.

Gray-Box Testing

Následující kroky spoléhají na plně gray-box přístup. Pokud je vám k dispozici jen část těchto informací, odkažte se na testování black-box k vyplnění mezer.

  • Promluvte si s IT personálem, abyste zjistili, jaká hesla používají pro administrativní přístup a jak se provádí správa aplikace.
  • Zeptejte se IT personálu, zda jsou výchozí hesla měněna a zda jsou výchozí uživatelské účty deaktivovány.
  • Prozkoumejte databázi uživatelů kvůli výchozím přihlašovacím údajům, jak je popsáno v sekci black-box testování. Také zkontrolujte prázdná pole hesel.
  • Prozkoumejte kód kvůli pevně zakódovaným uživatelským jménům a heslům.
  • Zkontrolujte konfigurační soubory obsahující uživatelská jména a hesla.
  • Prozkoumejte politiku hesel a pokud aplikace generuje vlastní hesla pro nové uživatele, zkontrolujte politiku používanou pro tento postup.

Nástroje

Odkazy

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *