Home Blog pc-software Joomla | prolomené weby

Joomla | prolomené weby

Popis: Joomla 1.5 hacked. Jak odstranit škodlivý kód z webu a jak se bránit s Joomla 1.5?
Klíčová slova: hack, joomla 1.5
Hits: 829
Hodnocení uživatelů: / 0
NejhoršíNejlepší 
Blog - pc-software
Napsal uživatel Admin   
Středa, 04 Listopad 2015 20:56

Prolomeno

vlivem používání zastaralého vydání Content Management System došlo k prolomení webu a vložení škodlivého kódu do webu do

  • samostatných, nově vytvořených souborů
  • již existujících, často klíčových nebo naopak do upozaděných souborů
    • existující :
      • .htaccess - zneužito rewrite
      • index.php - od defaultní šablony
      • /includes/defines.php - má obsahovat jen řádky define.., rozhodně ne "function request_url_data($url)"
    • nové:
      • nesmyslné nebo potencionálně reálné názvy

Napadení webu lze v nejhorším případě zjistit z divného chování webu nejčastěji o "podstrčení" webu  při kliknutí na napadené stránce.

Přijatá opatření

vyhledání a odstranění škodlivého kódu

  1. vyhledávání podle datum souborů (sofistikovanější průnik php se neprojeví v datu souboru)
  2. vyhledávání podle známé struktury webu (zejména u CMS dobře použitelné v systémových oblastech CMS)

    451-searcher-script

  3. vyhledávání podle obsažených textových řetězců (pomocí vlastnního php skriptu využívající J1.5 framework)
    • soubor se skriptem nahrát kamkoliv na hosting a nastavit cestu k joomla Root nebo do rootu webu  a odkomentovat možnost 1. viz text v souboru skriptu
  4. kombinace uvedených
    • výživný bývá např. řetězec 'eval(' nebo 'base64_decode('. Smazat lze poměrně často výskyty obsahující za závorkou výrazu 'eval(' změť znaků. Případně smazat celý soubor.
      Pozor nejde o pravidlo podle kterého smažeš veškeré takové soubory! V Joomle se najdou jednotky neškodlivých souborů používající eval a decode php funkce. Zkontroluj s výše bodem 2.
      Rovněž pokud má soubor neobvyklý název nebo obsahuje jen jednu řádku o délce více než 1024 změti znaků může jít o škodlivý soubor... .
    • podezřelé jsou i řetězce delší než cca 100znaků, vyjímku mohou tvořit například soubory cache v diru /cache

Úprava souboru .htaccess

  • joomla .htaccess defensive setup

Instalace ochranného pluginu 3tí strany

  • plg_ JHack Guard

Úprava práv souborů a adresářů

  • soubory na 0640 až 0440 pro configuration.php a .htaccess
  • adresáře na 6750

Přejmenování prefixů Joomla tabulky

  • Přejmenovat prefixy z (tenkáte) defaultního prefixu jos_ na jiný vlastní
  • Následně nutné v souboru /configuration.php zmenit definovaný prefix
  • Lze použít připravený skript využívající s J1.5 framework
    • soubor se skriptem nahrát kamkoliv na hosting a nastavit cestu k joomla Root nebo do rootu webu  a odkomentovat možnost 1. viz text v souboru skriptu
    • ve skriptu nastavit cestu k Joomla instalaci a novou předponu tabulek

Změna loginu superadmina

  • zakázání účtu administrator (ale je ponechán)
  • vytvoření jiného superadmina (ideálně bezpečného - neprolomitelného názvu)
  • vygenerování silného hesla

Odstranění metetagu generator

  • v souboru /libraries/joomla/document/html/renderer/head.php zakomentován řádek

$strHtml .= $tab.'getGenerator().'" />'.$lnEnd;

 

Zapnutí https

  • pokud ne pro veškeré stránky, tak alespoň pro /administrator
    • v soubotu /configuration.php, konstanta z $force_ssl = '0'; na $force_ssl = '1';
  • joomla 1.5 má bug a možná Vám pak nepůjde se přihlásit do administrace
    • řešení může být ponechat konstantu z $live_site z soubotu /configuration.php prázdnou, ale to vždy nejde (např pokud hostujete u wedos, kde rewrite pomocí .htaccess generuje ošklivé URL)
  • použite návod, konkrétně malý hack v souboru /libraries/joomla/environment/uri.php, kde na hraďte
    if(JPATH_BASE == JPATH_ADMINISTRATOR) {
                         $base['path'] .= '/administrator';
                     }
    
    za
    
     if(JPATH_BASE == JPATH_ADMINISTRATOR)
                    {
                    $force_ssl = $config->getValue('config.force_ssl');
                    if($force_ssl > 0)
                    {
                    $base['prefix'] = ereg_replace("http://","https://",$base['prefix']);
                    }
                    $base['path'] .= '/administrator';
                    }
    

 

Links

Aktualizováno Pátek, 02 Prosinec 2016 12:17

Komentáře  

 
0 # další zdroje informací k odhalení hacknutých webů a jejich léčbyAdmin 2017-04-12 09:24 Odpovědět | Odpovědět citací | Citovat