sobota, 7 kwietnia 2012

VoIP Hack #1 - CitrusDB 2.4.1 - LFI/SQLi Vulnerability

CitrusDB is an open source customer service and billing database. It can be used by customer service personnel to provide sales and support to customers, and by billing staff to bill customers for their services via invoices and credit card batches. Customers may access the Online customer account manager to view their services, billing history, and make service and support requests online.

  1) LFI

http://192.168.51.8/lab/citrus-2.4.1/index.php?load=../../../../../etc/passwdtype=base

index.php:315

$filepath = "$path_to_citrus/$load.php";
if (file_exists($filepath)) {
include('./'.$load.'.php');


2) SQL INJECTION

include/user.class.php:134

$sql="SELECT password FROM user WHERE username='$user_name' LIMIT 1";


czwartek, 5 kwietnia 2012

Zabezpieczamy Asteriska - fail2ban

W czasach wzmożonych ataków na platformy Asterisk polegających na  próbie poprawnego zalogowania się na jakieś z dostępnych kont SIP warto zablokować taką możliwość. Ponieważ ataki bruteforce/wordlist nie są zazwyczaj groźne - no chyba że nie mamy zabezpieczeń antyfraud'owych - ale potrafią zapchać asteriska/małe łącze  dużą liczbą prób logowań.

Jak poznać czy, ktoś próbuje włamać się na konto SIP'owe?

środa, 4 kwietnia 2012

Monitorowanie Asterisk przez Nagios

W celu monitorowania dostępności naszej centrali telefonicznej Asterisk możemy wykorzystać oprogramowanie Nagios oraz sipsak.

Sciagamy plugin do nagiosa check_asterisk i wrzucamy go do /usr/local/nagios/libexec


Po instalacji sipsak
./configure && make && make install

Definiujemy w commands.cfg nową komendę


define command{
command_name check_asterisk
command_line $USER1$/check_asterisk -U $ARG1$ -P $ARG2$ -w 500 -c 1000
}



Nastepnie w pliku z hostami dodajemy 

define service {

        use generic-service

        host_name Asterisk

        service_description SIP

        check_command  check_asterisk!sip:NAZWA_SIP@IP_NASZEGO_ASTERISKA

        normal_check_interval 1
        retry_check_interval 2

}

Na koniec przeładujemy Nagiosa i powinno wszystko grać ;) 







poniedziałek, 2 kwietnia 2012

Asterisk - automatyczne nawiazywanie polaczen

Do pliku /etc/asterisk/modules.conf dodajemy


load => pbx_spool.so

W bashu klepiemy bardzo prosty skrypt 

#!/bin/bash
sounds=/var/lib/asterisk/sounds/
rOut=/var/spool/asterisk/outgoing/
rUser=root
rGroup=root
nFile=call.csv
rtry=1
mtry=2
stime=1
#############################################
for nums in $(cat $nFile)
        do
                num=`echo $nums | awk -F"," {'print $1'}`
                noise=`echo $nums | awk -F"," {'print $2'}`
                                nTrunk=`echo $nums | awk -F"," {'print $3'}`
echo "`date`,$num,$noise" >> call-log.csv
echo "Channel: SIP/$nTrunk/$num" >> $num.call
echo "RetryTime:$rtry" >> $num.call
echo "MaxRetries:$mtry" >> $num.call
echo "Archive: Yes" >> $num.call
echo "Application: Playback" >> $num.call
echo "Data:$noise" >> $num.call
chown $rUser.$rGroup $num.call
mv $num.call $rOut
sleep $stime
done


Do tego tworzymy plik call.csv 
numer1,nagranie,trunk 
numer2,nagranie,trunk 
numer3,nagranie,trunk 
...


I to wszystko ;) 

Odpalamy skrypt, a asterisk sam dzwoni na numery z pliku call.csv i puszcza odpowiedni komunikat glosowy (nagranie - call.csv). 

Dzieki Archive:Yes  pliki call zostaja zarchiwizowane w katalogu /var/spool/asterisk/outgoing_done/