GNU/Linux >> Znalost Linux >  >> Linux

Otestujte přihlášení WordPress pomocí Hydra na Kali Linuxu

Úvod

Všude na internetu jsou webové formuláře. Dokonce i weby, které obvykle neumožňují přihlášení běžných uživatelů, pravděpodobně mají oblast pro správu. Při spouštění a nasazování webu je důležité zajistit, aby hesla omezující přístup k citlivým ovládacím prvkům a panelům správce byla co nejbezpečnější.

Existují různé způsoby, jak zaútočit na webovou aplikaci, ale tento průvodce se bude zabývat použitím Hydry k provedení útoku hrubou silou na přihlašovací formulář. Cílovou platformou je WordPress. Je to jednoduše nejpopulárnější platforma CMS na světě a je také známá tím, že je špatně spravována.

Pamatujte, Tato příručka vám má pomoci chránit váš WordPress nebo jiný web. Použití na webu, který nevlastníte nebo nemáte písemné povolení k testování, je nezákonné .

Nastavení

Než něco uděláte, budete potřebovat web WordPress, na který budete cílit. Tato příručka také předpokládá, že hostujete web WordPress na svém vlastním počítači. Pokud potřebujete pomoc s nastavením LAMP na vašem počítači, podívejte se na naše průvodce LAMP pro Debian a Ubuntu.

Můžete to udělat buď při běžné instalaci Linuxu, nebo při instalaci Kali Linuxu. Pokud používáte Kali, postupujte podle zdrojové příručky Debian LAMP. Jen se ujistěte, že máte Hydra a cURL nainstalované na jakémkoli systému, který si vyberete. Jsou k dispozici ve většině úložišť.

Pokud opravdu nechcete používat svou běžnou instalaci, můžete určitě použít jiný počítač, stačí zadat IP cílového hostitele pro localhost a zajistit, aby byl cílový počítač dostupný z toho útočícího.

Shromažďování informací

Jakmile máte WordPress spuštěný, je čas najít co nejvíce informací o instalaci, na kterou budete cílit. To znamená zjistit, jak je vytvořen přihlašovací formulář, co se stane, když jej odešlete, a případně kam se dostane, pokud je přihlášení úspěšné.

Zdroj HTML

Začněte přechodem na přihlašovací stránku. Najdete ho na localhost/wp-login.php . Využijte možnosti svého prohlížeče ke kontrole zdrojového kódu. Stačí kliknout pravým tlačítkem někam na stránku a vybrat „Zobrazit zdroj“ nebo „Zkontrolovat prvek“. V obou případech můžete zdroj zobrazit, jen se zobrazí různými způsoby.

Hledejte kolem středu kódu. Hledáte značky. To je skutečný přihlašovací formulář. Uvnitř tohoto formuláře je několik informací, které potřebujete.

Před shromážděním informací zkontrolujte, zda formulář odesílá požadavek GET nebo POST. Na prvním řádku formuláře by měla být možnost metody, která vypadá takto:method="post" . V případě WordPressu se jedná o POST.

Nejprve najděte vstup pro uživatelské jméno. Mělo by to vypadat jako řádek níže.

<input type="text" name="log" id="user_login" class="input" value="" size="20" />

Část, kterou potřebujete, je name . V tomto případě je to log .

Dále vyhledejte zadání hesla. Mělo by to vypadat podobně.

<input type="password" name="pwd" id="user_pass" class="input" value="" size="20" />

Znovu vyhledejte name což je pwd .

Musíte také identifikovat tlačítko Odeslat, aby Hydra mohla odeslat formulář.

<input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="Log In" />

Je důležité zaznamenat obě name a value .

Je tu ještě jeden poslední kousek. Pokud jste si toho nevšimli, ve spodní části formuláře jsou dvě skrytá pole. Jeden říká WordPressu, aby se přesměroval při odeslání formuláře, a druhý je cookie, kterou WordPress bude hledat při odeslání formuláře. Potřebujete cookie.

<input type="hidden" name="testcookie" value="1" />

Znovu si poznamenejte name a value .

cURL

I když bylo možné získat mnoho informací, když se podíváte na zdroj HTML, existuje několik dalších věcí, které musíte vědět, než spustíte Hydru. Ve většině případů však můžete být schopni provést test pouze s informacemi, které jste shromáždili. Jednoduše byste se pokusili přihlásit s nesprávnými přihlašovacími údaji, zaznamenat chybovou zprávu a použít tuto zprávu jako neúspěšnou testovací podmínku v Hydra.

WordPress je však navržen jinak a ve skutečnosti neexistuje dobrý způsob, jak otestovat neúspěšné pokusy o přihlášení. Z tohoto důvodu musíte otestovat úspěšné přihlášení. Protože si můžete udržovat vlastní instalaci WordPressu a přihlásit se Nezáleželo by na tom, kdybyste testovali systém pro klienta. Podmínka, kterou najdete lokálně, by měla být pro WordPress univerzální.

I zde je další vráska. Pamatujete si na skryté pole přesměrování ve formuláři? Toto přesměrování vám brání v použití podmínky, jako je přítomnost slova „Dashboard“, k testování úspěchu. Budete se muset podívat na samotný požadavek, a proto je zde cURL.

Abyste mohli porovnat, musíte nejprve vidět původní přihlašovací stránku s cURL.

$ curl -v http://localhost/wp-login.php

Většina informací je stejná jako zdrojový kód, který jste si prohlédli v prohlížeči. Nahoře jsou však informace o požadavku HTTP. Vezměte na vědomí tuto informaci. Budete to muset porovnat s úspěšným přihlášením.

Další věc, kterou musíte udělat, je úspěšně se přihlásit pomocí cURL. K tomu budete potřebovat soubor cookie z předchozího požadavku. Podívejte se na data HTTP a najděte řádek, který vypadá jako ten níže.

< Set-Cookie: wordpress_test_cookie=WP+Cookie+check; path=/

Budete potřebovat wordpress_test_cookie=WP+Cookie+check část.

Dobře, nyní budete potřebovat informace, které jste shromáždili z HTML spolu s tímto souborem cookie, abyste mohli odeslat požadavek. Takhle by to mělo vypadat.

curl -v --data 'log=username&pwd=realpassword&wp-submit=Log+In&testcookie=1' --cookie 'wordpress_test_cookie=WP+Cookie+check' http://localhost/wp-login.php

Máte tedy stejný základní požadavek jako dříve, ale tentokrát používáte --data příznak a --cookie příznak pro předání cURL, se kterými daty formuláře chcete interagovat a daným souborem cookie, takže se formulář skutečně odešle.

Tento datový řetězec, log=username&pwd=realpassword&wp-submit=Log+In&testcookie=1 přímo odpovídá informacím, které jste shromáždili z HTML. Znamená to zapojit hodnotu „username“ do vstupu s názvem log a hodnotu „realpassword“ do vstupu s názvem pwd . Ujistěte se, že k přihlášení používáte skutečné uživatelské jméno a heslo. Poté použijte odeslání s názvem wp-submit a hodnotu Log In předložit údaje. Na konci je testcookie s hodnotou 1 . To jen říká cURL, aby to odeslalo spolu se zbytkem dat formuláře.

Když cURL dokončí požadavek, opravdu neuvidíte žádný HTML, jen spoustu informací o požadavku. Pamatujete si, že přesměrování způsobilo, že testování pomocí „Dashboard“ nefungovalo jako testovací podmínka? Nyní bude testovací podmínkou samotné přesměrování. Podívejte se na řádek níže.

< Location: http://localhost/wp-admin/

Tento řádek nebyl v předchozí žádosti. Neobsahuje také žádné konkrétní informace související s tímto uživatelem nebo přihlášením. To znamená, že to bude vždy být přítomen během úspěšného přihlášení k WordPress, což z něj činí perfektní podmínku úspěchu k testování.

Testování s Hydra

Konečně máte vše, co potřebujete k testování svých hesel pomocí Hydra. Cílem této příručky není ani tak pokrýt syntaxi Hydry, ale rozebere použitý příkaz. Pokud se chcete o Hydra dozvědět více, podívejte se na průvodce SSH, který jde mnohem podrobněji.

Existuje opravdu jen jeden příkaz, který potřebujete, aby Hydra prošla možnými uživatelskými jmény a hesly a otestovala bezpečnost vašeho webu WordPress. Nejjednodušší věc, kterou můžete udělat, je podívat se na příkaz a rozebrat jej.

$ hydra -L lists/usrname.txt -P lists/pass.txt localhost -V http-form-post '/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log In&testcookie=1:S=Location'

Dobře, takže toho je očividně hodně najednou. -L flag říká Hydra, aby použila seznam uživatelských jmen na lists/usrname.txt . Podobně -P flag říká Hydra, aby použila seznam hesel na lists/pass.txt . localhost říká Hydra, aby cílila na localhost, a -V říká, že má zaznamenat každý test do výstupu konzoly.

Zbytek příkazu se zabývá samotným HTTP požadavkem. http-form-post aktivuje modul Hydra pro zpracování HTTP formulářů metodou POST. Pamatujte, že přihlašovací formulář WordPress je tváří v tvář POST od. Následující řetězec obsahuje všechny parametry, které bude Hydra používat. Měli byste si všimnout, že je velmi podobný tomu, který se používá k přihlášení přes cURL.

Řetězec se skládá z různých částí oddělených : . První část je přesná adresa, která se testuje, /wp-login.php . Další část je téměř stejná jako ta, kterou používá cURL. Předá hodnoty do formuláře a odešle jej, včetně cookie. Místo předávání doslovných hodnot Hydra ve skutečnosti používá proměnné. Upozornění v log=^USER^ a pwd=^PASS^ . To jsou proměnné oddělené znakem mrkve, které přebírají hodnoty ze seznamů slov a předávají je v požadavku pro každý test, který Hydra spustí.

Úplně posledním kouskem provázku je testovací podmínka. S znamená, že testuje úspěch. Pokud byste chtěli otestovat selhání, použili byste F . Nastavíte, že se rovná slovu nebo frázi, na které se testuje. Přemýšlejte, jestli je to skoro jako grep .

Když toto spustíte, měli byste získat kladný výsledek za předpokladu, že správné uživatelské jméno a heslo jsou v seznamu slov, který jste poskytli Hydra.

Úvahy na závěr

Za prvé, gratuluji, že jste to všechno zvládli. Pokud jste to zvládli, nyní máte solidní metodu pro testování síly hesla vašich uživatelských účtů WordPress.

Tato příručka byla přizpůsobena pro WordPress, ale můžete snadno postupovat podle stejných kroků a otestovat další webové formuláře. Pokud spouštíte webovou aplikaci s více uživateli, je určitě dobré se
ujistit, že používají silná hesla. To vám může pomoci informovat o zásadách vašeho hesla. Opět se ujistěte, že vždy testujete pouze se svolením.


Linux
  1. Použijte Aircrack-ng k otestování hesla WiFi na Kali Linuxu

  2. Nainstalujte WordPress na Linux pomocí Apache

  3. Vydání Kali Linux 2022.3 (Discord &Test Lab)

  1. Jak aktualizovat Kali Linux jediným příkazem

  2. Vydání Kali Linux 1.0.8 s podporou spouštění EFI

  3. Začněte s Latexem na Linuxu

  1. Kalení Kali Linuxu

  2. Jak poskytnout uživateli oprávnění root na Kali Linuxu

  3. Používáte SDL2 na linuxu s g++?