IVR Security:- Internal A3acks Via Phone Line Who - - PowerPoint PPT Presentation

ivr security internal a3acks via phone line who am i
SMART_READER_LITE
LIVE PREVIEW

IVR Security:- Internal A3acks Via Phone Line Who - - PowerPoint PPT Presentation

IVR Security:- Internal A3acks Via Phone Line Who am I ? Rahul Sasi Security Researcher @ iSIGHT Partners . Member Garage4Hackers.


slide-1
SLIDE 1

IVR ¡Security:-­‑ ¡Internal ¡A3acks ¡Via ¡ Phone ¡Line ¡

slide-2
SLIDE 2

¡ ¡Who ¡am ¡I ¡? ¡

  • Rahul ¡Sasi ¡
  • Security ¡Researcher ¡@ ¡iSIGHT ¡Partners ¡. ¡
  • Member ¡Garage4Hackers. ¡ ¡
slide-3
SLIDE 3

Garage ¡4 ¡Hackers ¡

InformaGon ¡Security ¡ professionals ¡from ¡ Fortune ¡500, ¡Security ¡ research ¡and ¡ConsulGng ¡ firms ¡from ¡all ¡across ¡the ¡

  • world. ¡
  • Security ¡Firms ¡
  • ConsulGng ¡Firms ¡
  • Research ¡Firms ¡
  • Law ¡Enforcements ¡ ¡ ¡

h3p://www.Garage4Hackers.com ¡

slide-4
SLIDE 4

IVR ¡ApplicaGon ¡ ¡

Phone ¡Banking ¡ Telephone ¡Assistant ¡| ¡Operator ¡ ¡ Hospital ¡| ¡Medical ¡Enquiry ¡ ¡

slide-5
SLIDE 5

What ¡Made ¡Me ¡Interested: ¡ IVR ¡ApplicaGon ¡

  • My ¡Phone ¡Banking. ¡
  • How ¡it ¡works. ¡
  • It ¡used ¡16 ¡digit ¡Account ¡No ¡followed ¡by ¡4 ¡digit ¡

ATM ¡pin ¡for ¡authenGcaGon ¡using ¡a ¡voice ¡call ¡ to ¡IVR. ¡ ¡

slide-6
SLIDE 6

How ¡it ¡could ¡be ¡Hacked: ¡ ¡In ¡Theory ¡

  • Probability ¡Theory ¡ ¡

Probability ¡that ¡event ¡A ¡occurs ¡ ¡ ¡ ¡ ¡ ¡P(A) ¡= ¡n(A) ¡/ ¡n(S). ¡ ¡ ¡where, ¡ ¡ ¡n(A) ¡-­‑ ¡number ¡of ¡event ¡occurs ¡in ¡A ¡ ¡ ¡n(S) ¡-­‑ ¡number ¡of ¡possible ¡outcomes ¡ ¡n(A) ¡= ¡n ¡no ¡of ¡customers ¡(huge) ¡ ¡n(S) ¡= ¡no ¡of ¡pin ¡combinaGon ¡(9000) ¡ ¡

slide-7
SLIDE 7

More ¡Theory ¡

  • So ¡if ¡we ¡make ¡a ¡program ¡that ¡dials ¡into ¡IVR ¡

and ¡tries ¡to ¡authenGcates ¡into ¡users ¡account ¡ ¡ ¡ ¡ ¡StarGng ¡form ¡account ¡no ¡1000 ¡to ¡2000 ¡for ¡ ¡ ¡ ¡ ¡ ¡ ¡ password ¡6666. ¡

  • The ¡chances ¡of ¡1000 ¡users ¡having ¡‘6666’ ¡as ¡pin ¡

for ¡there ¡accounts ¡is ¡very ¡high ¡:D ¡. ¡ ¡The ¡lowest ¡possibility ¡lets ¡say ¡‘10’ ¡accounts. ¡

slide-8
SLIDE 8

Enough ¡Theories ¡

  • Individual ¡Users ¡ader ¡3 ¡invalid ¡a3empts, ¡there ¡

account ¡gets ¡blocked. ¡ ¡

  • And ¡every ¡night ¡at ¡12 ¡clock ¡your ¡account ¡

would ¡be ¡automaGcally ¡acGvated ¡;) ¡

  • So ¡if ¡I ¡start ¡my ¡brute ¡force ¡program ¡at ¡night ¡10 ¡

O’clock ¡, ¡I ¡could ¡try ¡5 ¡different ¡pins ¡for ¡1000 ¡ accounts ¡with ¡out ¡blocking ¡any ¡accounts ¡:D ¡ ¡ ¡

slide-9
SLIDE 9

Now ¡what ¡

  • With ¡the ¡above ¡logic ¡any ¡one ¡would ¡be ¡able ¡to ¡

crack ¡least ¡50 ¡ATM ¡pins ¡in ¡4 ¡hours ¡Gme ¡:O ¡ ¡ ¡

¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Enough ¡Theories ¡ ¡

slide-10
SLIDE 10

AT ¡Commands ¡Basic ¡

  • Sending ¡DTMF ¡tones ¡using ¡phone ¡modem. ¡

– AT ¡[A3enGon ¡] ¡ – ATD ¡ ¡ – ATZ ¡+ ¡vts ¡ – ATH ¡

slide-11
SLIDE 11

How ¡to ¡Automate ¡

  • Serial ¡Port ¡CommunicaGon ¡

¡

  • Talk ¡to ¡your ¡phone ¡modem. ¡
slide-12
SLIDE 12

Demo ¡#1 ¡ ¡ IVR ¡Brute.mp4 ¡

slide-13
SLIDE 13

IVR: ¡IntroducGon ¡

  • InteracGve ¡Voice ¡RecogniGon ¡systems, ¡use ¡

Touch-­‑tone ¡or ¡Speech ¡RecogniGon ¡to ¡make ¡ callers ¡interact ¡with ¡the ¡system. ¡

  • Touch ¡Tones: ¡DTMF ¡inputs. ¡
  • Speech ¡RecogniGon: ¡Could ¡send ¡in ¡voice ¡

commands, ¡and ¡TTS(Text ¡to ¡Speech) ¡Engine ¡ Could ¡detect ¡it. ¡

slide-14
SLIDE 14

IVR ¡Architecture ¡

slide-15
SLIDE 15

Layers ¡of ¡IVR ¡

Telephone ¡Network ¡ ¡TCP, ¡IP ¡Network ¡ VXML ¡Telephony ¡Server ¡ Web ¡ApplicaGon ¡server ¡

slide-16
SLIDE 16

Modules: ¡How ¡it ¡works ¡

  • Client ¡(Telephone ¡Phone) ¡
  • Telephone ¡Network ¡ ¡

– PBX ¡(Private ¡Branch ¡Exchange ¡) ¡

  • VXML ¡Telephony ¡Server ¡

– VXML ¡ – CXML ¡

  • Web ¡ApplicaGon ¡Servers ¡
  • Databases ¡ ¡
slide-17
SLIDE 17

Finger ¡PrinGng ¡Internal ¡Servers: ¡

  • Triggering ¡Errors: ¡

– If ¡we ¡could ¡trigger ¡error ¡messages ¡on ¡Internal ¡ servers ¡, ¡the ¡text ¡to ¡voice ¡(3s) ¡machine ¡would ¡ read ¡out ¡the ¡error. ¡ ¡

  • There ¡are ¡many ¡ways ¡to ¡trigger ¡error, ¡Fuzz ¡for ¡

the ¡grammar ¡files, ¡or ¡best ¡way ¡is ¡source ¡code ¡ audiGng ¡. ¡

  • ¡ Automated ¡Fuzzing ¡for ¡Errors.(tools) ¡
slide-18
SLIDE 18

Vulnerable ¡Programs ¡ ¡

  • Sample ¡Vulnerable ¡Program: ¡

¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡error_vul.xml ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡

slide-19
SLIDE 19

Demo ¡#2 ¡ ¡ Finger ¡PrinGng ¡Internal ¡Servers ¡ ¡ ¡[Demo ¡Video] ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ivr_error_video.mp4 ¡ ¡

slide-20
SLIDE 20

Input ¡ValidaGon ¡A3acks: ¡

  • Using ¡Grammar ¡files ¡[Nonsense ¡Grammar ¡

format] ¡ ¡ ¡

  • Using ¡prebuilt ¡grammar ¡files ¡. ¡
slide-21
SLIDE 21

Chances ¡of ¡SQL ¡InjecGon ¡A3ack ¡

¡ ¡ ¡ ¡Vulnerable ¡Program ¡ ¡ ¡ ¡ ¡

slide-22
SLIDE 22

Demo ¡#3 ¡ ¡ Fuzzing ¡for ¡Grammar ¡files ¡ ¡

slide-23
SLIDE 23

SQL ¡Payloads ¡Via ¡DTMF ¡

  • DTMF ¡LimitaGons ¡, ¡we ¡could ¡only ¡send ¡ ¡

[0-­‑9 ¡] ¡* ¡# ¡A ¡B ¡C ¡D ¡ ¡ Advance ¡SQL ¡injecGon ¡Based ¡on ¡[ ¡False ¡ InjecGon ¡] ¡

slide-24
SLIDE 24
  • Basic ¡InjecGon: ¡

select ¡* ¡from ¡users ¡where ¡id='$id' ¡and ¡ password='$password’ ¡ ¡‘or ¡1=1 ¡ ¡

slide-25
SLIDE 25
  • select ¡* ¡from ¡users ¡where ¡id='$id' ¡and ¡

password='$password’ ¡'=0# ¡ ¡ Input: ¡ ¡'=0# ¡ ¡[ ¡and ¡It ¡Works ¡] ¡ Other ¡inputs ¡that ¡will ¡work: ¡

  • AddiGon ¡

¡ ¡ ¡‘+0# ¡

  • MulGplicaGon ¡

¡ ¡ ¡'*9# ¡ ¡ ¡1*0*0*1 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡[True] ¡ ¡ ¡1*0*0*1 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡[False] ¡ ¡

h3p://www.exploit-­‑db.com/papers/18263/ ¡

slide-26
SLIDE 26

IVR: ¡Enter ¡User ¡ID ¡ User: ¡1337 ¡ IVR: ¡Wrong ¡User ¡ID, ¡Please ¡try ¡again ¡ ¡ IVR: ¡Enter ¡User ¡ID ¡ User: ¡31337 ¡ IVR: ¡Welcome ¡Rahul ¡Sasi ¡ ¡

slide-27
SLIDE 27

IVR: ¡Enter ¡User ¡ID ¡ User: ¡31337*1*1*1*1 ¡ IVR: ¡Welcome ¡Rahul ¡Sasi ¡ ¡ IVR: ¡Enter ¡User ¡ID ¡ User: ¡31337*1*1*1*0 ¡ IVR: ¡Invalid ¡User ¡[or] ¡“No ¡Response ¡“ ¡

slide-28
SLIDE 28

SQL ¡InjecGon ¡Check ¡using ¡DTMF ¡

¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Demo ¡Video ¡

slide-29
SLIDE 29

Long ¡strings, ¡chances ¡of ¡Buffer ¡ Overflow ¡. ¡ ¡

  • Improper ¡Input ¡validaGon ¡on ¡input ¡to ¡CGI ¡

applicaGons ¡form ¡VXML ¡server. ¡

  • Voice ¡and ¡DTMF ¡Fuzzing ¡could ¡Reveal ¡Bugs. ¡
  • Our ¡tool ¡will ¡be ¡having ¡voice ¡fuzzing ¡Support. ¡
slide-30
SLIDE 30
  • LimitaGons. ¡
  • Payloads ¡cannot ¡have ¡“/” ¡and ¡other ¡special ¡
  • characters. ¡

– Sending ¡payload ¡using ¡“Upper ¡Case ¡Alpha ¡ Numeric ¡Shell ¡code. ¡

  • The ¡payload ¡has ¡to ¡be ¡converted ¡to ¡DTMF ¡

(0-­‑9) ¡and ¡Alphabets ¡(A-­‑Z) ¡

slide-31
SLIDE 31

Vulnerable ¡Program ¡

  • Demo ¡Video ¡
slide-32
SLIDE 32

The ¡making ¡of ¡Voice ¡Payload. ¡

¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Upper ¡Case ¡Alpha ¡Numeric ¡Payload ¡ ¡

slide-33
SLIDE 33

Demo ¡#4 ¡

¡ ¡ ¡ ¡ ¡ ¡ ¡IVR: ¡A3acking ¡Internal ¡Server ¡using ¡Voice ¡

  • Payload. ¡