[Gelöst] Hacker in meiner Asterisk

081

Neuer User
Mitglied seit
19 Mrz 2014
Beiträge
7
Punkte für Reaktionen
0
Punkte
0
Hallo Liebes IP Phone Forum,

Seit ein paar Tagen spielen sich seltsame Dinge in meiner Asterisk (11.8.1 - steht im Internet) ab. Zwei bis dreimal am tag schafft es jemand sich als Nebenstelle 101 bzw. 100 anzumelden (die auch existieren) und probiert fleißig drauf los zu telefonieren. Hier ein paar Auszüge aus den Logs:

Code:
[2014-03-19 01:24:57] NOTICE[13246][C-0000000d]: chan_sip.c:25399 handle_request_invite: Call from '101' (192.151.150.162:9845) to extension '00022892045278' rejected because extension not found in context 'intern'.
  == Using SIP VIDEO CoS mark 6
  == Using SIP RTP CoS mark 5
    -- Executing [810972595148702@intern:1] Dial("SIP/101-0000000a", "SIP/810972595148702,30") in new stack
[2014-03-19 01:25:00] WARNING[13538][C-0000000e]: chan_sip.c:6159 create_addr: Purely numeric hostname (810972595148702), and not a peer--rejecting!
[2014-03-19 01:25:00] WARNING[13538][C-0000000e]: app_dial.c:2437 dial_exec_full: Unable to create channel of type 'SIP' (cause 20 - Subscriber absent)
  == Everyone is busy/congested at this time (1:0/0/1)
    -- Executing [810972595148702@intern:2] Hangup("SIP/101-0000000a", "") in new stack
  == Spawn extension (intern, 810972595148702, 2) exited non-zero on 'SIP/101-0000000a'
[2014-03-19 01:25:15] NOTICE[13246]: chan_sip.c:27952 handle_request_register: Registration from '<sip:101@meineIP>' failed for '85.114.101.229:26466' - Wrong password
  == Using SIP VIDEO CoS mark 6
  == Using SIP RTP CoS mark 5
    -- Executing [00972595660856@intern:1] Set("SIP/101-0000000b", "CALLERID(name)=Waehlt extern") in new stack
    -- Executing [00972595660856@intern:2] Set("SIP/101-0000000b", "CALLFILENAME=/var/www/spam/Hack-Waehlt extern-101-19-03-2014 01:25:17") in new stack
    -- Executing [00972595660856@intern:3] MixMonitor("SIP/101-0000000b", "/var/www/spam/Hack-Waehlt extern-101-19-03-2014 01:25:17.wav,V(-1)") in new stack
    -- Executing [00972595660856@intern:4] Dial("SIP/101-0000000b", "SIP/104,10") in new stack
  == Using SIP VIDEO CoS mark 6
  == Using SIP RTP CoS mark 5
    -- Called SIP/104
  == Begin MixMonitor Recording SIP/101-0000000b
    -- SIP/104-0000000c is ringing
    -- Remote UNIX connection
    -- Remote UNIX connection disconnected
  == Spawn extension (intern, 00972595660856, 4) exited non-zero on 'SIP/101-0000000b'
  == MixMonitor close filestream (mixed)
  == End MixMonitor Recording SIP/101-0000000b
    -- Remote UNIX connection
    -- Remote UNIX connection disconnected

...


== Using SIP VIDEO CoS mark 6
  == Using SIP RTP CoS mark 5
    -- Executing [900972598601085@intern:1] Dial("SIP/100-00000001", "SIP/900972598601085,30") in new stack
[2014-03-19 09:51:45] WARNING[2029][C-00000029]: chan_sip.c:6162 create_addr: Purely numeric hostname (900972598601085), and not a peer--rejecting!
[2014-03-19 09:51:45] WARNING[2029][C-00000029]: app_dial.c:2437 dial_exec_full: Unable to create channel of type 'SIP' (cause 20 - Subscriber absent)
  == Everyone is busy/congested at this time (1:0/0/1)
    -- Executing [900972598601085@intern:2] Hangup("SIP/100-00000001", "") in new stack
  == Spawn extension (intern, 900972598601085, 2) exited non-zero on 'SIP/100-00000001'
Hier noch mein Dialplan für context intern
Code:
'_0XZ.' =>1. Set(CALLERID(name)=Waehlt extern)          [pbx_ael]
                2. Set(CALLFILENAME=/var/www/spam/Hack-${CALLERID(name)}-${CALLERID(number)}-${STRFTIME(${EPOCH},,%d-%m-%Y %H:%M:%S)}) [pbx_ael]
                3. MixMonitor(${CALLFILENAME}.wav,V(-1))      [pbx_ael]
                4. Dial(SIP/104,10)                        [pbx_ael]
                5. Ringing()                                   [pbx_ael]
                6. Wait(30)                                    [pbx_ael]
                7. Answer()                                   [pbx_ael]
                8. Echo()                                       [pbx_ael]
  '_Z.' =>  1. Dial(SIP/${EXTEN},30)               [pbx_ael]
                2. Hangup()                                   [pbx_ael]
Da die Asterisk Installation nur zum testen ist habe ich erst einmal jeden Anruf der raus will auf die Nebenstelle 104 geschickt, damit ich mitbekomme wann und wie oft er es schafft.

Nun zu meinen Sicherheitseinstellungen:
- Passwörter der Clients sind 20 Zeichen lang (groß, klein, Sonderzeichen und Zahlen), dies habe ich auch schon mehrmals geändert
- Passwörter der Clients sind per md5 Hash gespeichert
- context Default legt einfach auf wenn jemand drin landen sollte
- allowguest = no
- Fail2ban ist installiert und setzt jeden auf die Blacklist der sein Passwort nach dem dritten Versuch immer noch nicht richtig schreiben kann
- Root Login auf dem Server ist deaktiviert und laut Logfile war auch immer nur ich auf dem Server angemeldet.



Hat jemand von euch eine Idee wie die da rein kommen und was ich dagegen machen kann???
 
Zuletzt bearbeitet von einem Moderator:
Zeig mal dein sip.conf. insecure=invite oder insecure=very im general oder dem user Kontext?
 
Zeig mal dein sip.conf. insecure=invite oder insecure=very im general oder dem user Kontext?

Hier die sip.conf
Code:
[general]
allowguest=no
alwaysauthreject=yes
bindport = 5060 
bindaddr=0.0.0.0
port=5060

bindaddr = 0.0.0.0 
externhost = mein.server
host= mein.server
realm= mein.server
tcpbindaddr = 0.0.0.0 
rtnoupdate=no
tcpenable = yes
rtcachefriends=yes


nat=no
jbenable=yes
jbforce=yes

disallow=all
allow=alaw
allow=ulaw
allow=g722
allow=gsm
allow=g729
videosupport=yes
allow=h264
allow=h263
qualify=yes

textsupport=yes
allow=t140
allow=red

insecure=[B]port[/B]

sendrpid=no
jitterbuffer= yes
forcejitterbuffer= yes
rtpkeepalive=5 
t38pt_udptl=yes
autocreatepeer=no

// ---------------

[100]
username=100
md5secret=182a6e8d01*************
callerid=Name 100
type=friend
insecure=[B]port[/B]
context=intern
host=dynamic
canreinvite=no
port=5060
dtmfmode=rfc2833
qualify=yes
transport=tcp, udp
Mailbox=100@VoiceMail
nat=comedia
encryption=no
disallow=alaw

[101]
username=101
md5secret=2f48edd803*************
callerid=Name 101
type=friend
insecure=[B]port[/B]
context=intern
host=dynamic
canreinvite=yes
port=5060
dtmfmode=rfc2833
qualify=yes
transport=tcp, udp
Mailbox=101@VoiceMail
nat=comedia
encryption=no
disallow=alaw

Ich hab jetzt mal aus insecure=invite, insecure=port gemacht und in der letzten Nacht wurde kein Ruf aufgebaut. Ich hoffe das war es dann auch.
Vielen Dank für dein Tipp. So wie ich das verstanden habe bewirkt insecure=port, dass für den Rufaufbau die IP des Client zur Authentifizierung verwendet wird.
 
Also, eigentlich ist der insecure Schalter für peers, welche mittels "host" eine feste Address zugeteilt bekommen haben. Wenn du z.B. einen sipgate Account hast, und in host steht "sipgate.de" ->217.10.79.9 + insecure=invite wird jedes INVITE kommend von 217.10.79.9:5060 ohne Authentifizierung "reingelassen"

Bei host=dynamic und insecure=invite wird jedes INVITE von _jeder_ Addresse durchgelasssen... Das Ergebniss davon ist, wie du bemerkt hast, "nicht so schön"

Die insecure Option port bewirkt nur, das der peer zwecks Zuordnung nur auf die IP ohne Port geprüft wird.

Abschließend: Die insecure Option bei dynamic hosts's nicht setzen. Die Zeile in der Konfiguration entfernen.
 
Vielen Dank, Zeile habe ich entfernt. Im CLI unter sie show peer (100) steht jetzt insecure=no. Heißt das jetzt, das sich jeder Client bei ausgehenden Gesprächen mit seinem Passwort authentifizieren muss? Also kein Freifahrtsschein für bekannte IP's oder Ports.
 
Zuletzt bearbeitet von einem Moderator:
Vielen Dank.
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
246,219
Beiträge
2,248,328
Mitglieder
373,792
Neuestes Mitglied
gilbertsamson563
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.