poniedziałek, 4 lutego 2013

Hack VoIP #4 - Niebezpieczny system telekomunikacyjny - EasyITSP

EasyITSP by Lemens Telephone Systems <= 2.0.7


Drugie podejście do systemu telekomunikacyjnego EasyITSP firmy Lemens Telephone.  Odkryty przeze mnie błąd polega na możliwości wyszukiwania, odczytywania i usuwania plików *.txt  na serwerze, oraz odsłuchiwania poczty głosowej innych użytkowników tego systemu VoIP dzięki atakowi directory traversal - w sumie to nic wielkiego nawet gdy weźmie się pod uwagę to, żeby wykonać atak należy wcześniej być zalogowanym - na szczęście atakującego jako klient, a nie administrator czy reseller.

Błąd pokazuje tylko tyle, że firma Lemens Telephone, która jest autorem systemu telekomunikacyjnego EasyITSP nie za bardzo bierze pod uwagę bezpieczeństwo klientów korzystających z ich systemu VoIP.

Dobre jest przynajmniej to, że Lemens wskazane błędy stara się poprawiać, ale nie informuje nikogo dlaczego wprowadza daną poprawkę. Mam tu na myśli już raz opublikowany przeze mnie exploit za którego pomocą można było poznać wszystkie loginy, hasła oraz dane kart kredytowych użytkowników usług telekomunikacyjnych wykorzystujących system EasyITSP. Błąd zaliczyć należało jako krytyczny, a w ChangeLogu dołączonym do systemu EasyITSP przeczytamy tylko:

....
#################################################
2012-10-31 - Matthew Lemens <support@lemens-ts.com>
        new login system for admin/customer
 ....


Problem w tym, że z takim podejściem  mało kto zaktualizuje wersję swojego EasyITSP bo nie wie o krytycznej luce, którą spotkać można do tej pory w niektórych instalacjach systemu firmy Lemens Telephone.

Wracając do samego błędu, którego tematem miał być ten wpis. Problem znajduje się w pliku voicemail.php w linii 220.



plik: voicemail.php linia: 220


foreach (glob("$vmdir/$_SESSION[phone]/$vmfolder/*.txt") as $filename) {


zmienna $vmfolder to nieodfiltrowany zwykły $_GET

plik: voicemail.php linia: 186 - 190

if(isset($_GET['folder'])) {
$vmfolder = $_GET['folder'];
} else {
$vmfolder = "INBOX";
}


Przykład wykonania ataku:

http:///easyitsp/WEB/customer/voicemail.php?currentpage=phones&folder=../../

Nie jestem żadnym specjalistą ds. bezpieczeństwa ale uważam, że zachowanie firmy Lemens Telephone należy piętnować. Poprawnym zachowaniem powinno być głośne alarmowanie użytkowników systemu o wprowadzonej poprawce gdy ta dotyczy, aż tak krytycznego problemu, tak aby zachęcić ich do upgrade do najnowszej wersji.

Coś czuję, że to nie koniec przygód z firmą Lemens Telephone i ich systemem telekomunikacyjnym EasyITSP. Może w następnym odcinku kilka SQLi? A może firma w końcu zainwestuje w audyt własnego kodu? ;)

Biorąc pod uwagę, że problem dotyczy systemu telekomunikacyjnego to najlepiej na dzień dzisiejszy z migrować na inny system VoIP.