0:00:00.000,0:00:17.790
35C3 preroll music
0:00:17.790,0:00:25.360
Herald Angel: We start the next talk. It's[br]by Martin Vigo. He stands here. He is a
0:00:25.360,0:00:32.500
product security lead and researcher and[br]he's responsible for mobile security,
0:00:32.500,0:00:39.860
identity, and authentication. So he helps[br]people design and secure systems and
0:00:39.860,0:00:46.710
applications. And he has worked on stuff[br]like breaking password managers or
0:00:46.710,0:00:57.500
exploiting Apple's FaceTime to create a[br]spy... yeah, a spy program. So give him a
0:00:57.500,0:01:09.360
warm applause for his talk.[br]Applause
0:01:09.360,0:01:12.650
Martin Vigo: Thank you for joining me in[br]this talk. I'm super excited to be here.
0:01:12.650,0:01:16.500
It's actually my second year at the[br]conference, so super super excited that
0:01:16.500,0:01:20.490
the first year I was sitting there, and[br]the second year I'm sitting here. This is
0:01:20.490,0:01:24.980
me, but an introduction was already made.[br]Just pointing out that this is me, 9 year
0:01:24.980,0:01:32.640
old, with an Amstrad CPC 6128. You had[br]this machine before? I see only one hand?
0:01:32.640,0:01:36.480
I think this was sold in Europe, but I was[br]playing here La Abadía del crímen, which
0:01:36.480,0:01:40.770
is the best video game ever written. If[br]you guys like abandonware, you should
0:01:40.770,0:01:45.410
definitely check it out. So like any good[br]research we have to start by looking at
0:01:45.410,0:01:49.860
previous art, right? We can learn a lot[br]from researchers that did stuff in the
0:01:49.860,0:01:55.800
past. And in this case I went all the way[br]back to the 80s to understand how freakers
0:01:55.800,0:01:59.590
of the time, when the hacking thing[br]started, we're doing to actually hack into
0:01:59.590,0:02:06.110
voicemail systems. I condensed everything[br]I learned in five different paragraphs of
0:02:06.110,0:02:11.670
five different essences, that I actually[br]got from frac website, which is an amazing
0:02:11.670,0:02:16.870
resource. So, here from the Hacking[br]Telephone Answering Machines, the
0:02:16.870,0:02:20.840
paragraph that I extracted was that "You[br]can just enter all 2-digit combinations
0:02:20.840,0:02:25.240
until you get the right one", "A more[br]sophisticated and fast way to do this is
0:02:25.240,0:02:29.200
to take advantage of the fact that such[br]machines typically do not read two numbers
0:02:29.200,0:02:33.330
at a time, and discard them, but just look[br]for the correct sequence". What is this
0:02:33.330,0:02:41.650
about? In older voicemail systems if you[br]will enter like 1234 for the 2-digit PIN,
0:02:41.650,0:02:47.770
it will not process 12 and 34 to to verify[br]the PIN, but it will also process 23,
0:02:47.770,0:02:52.280
which is very interesting. In fact, in[br]Hacking AT&T Answering Machines, again,
0:02:52.280,0:02:56.960
this is amazing from their 90s or 80s, we[br]actually get the correct sequence to cover
0:02:56.960,0:03:01.230
the entire 2-digit key space. So, if you[br]enter all these, you are basically brute
0:03:01.230,0:03:05.770
forcing the entire key space, without[br]having to enter in the entire thing that
0:03:05.770,0:03:11.541
covers it. I also learned, from A Tutorial[br]of Aspen Voice Mailbox Systems, that in
0:03:11.541,0:03:16.319
the 80s there was default passwords.[br]Surprise, surprise! But also that as
0:03:16.319,0:03:21.660
humans, we actually have patterns when we[br]choose PINs. And so we have the classics:
0:03:21.660,0:03:28.230
1111, 9999, 1234. And another thing that I[br]learned in Hacking Answering Machines in
0:03:28.230,0:03:32.700
the 90s, was that "There is also the old[br]'change the message' secret to make it say
0:03:32.700,0:03:36.970
something to the effect of this line[br]accepts all toll charges so you can bill
0:03:36.970,0:03:41.849
third party calls to that number". This is[br]basically a trick used by inmates to get
0:03:41.849,0:03:46.160
free calls. Basically, they would record[br]in the voicemail a greeting message "yes,
0:03:46.160,0:03:49.750
yes, yes", so when the automated system[br]comes in and asks "Do you want to accept
0:03:49.750,0:03:53.890
the toll charges from the call from the[br]penitentiary, it will go and they will be
0:03:53.890,0:03:59.940
able to do free calls. So, condensing[br]everything and summarizing what what I
0:03:59.940,0:04:04.350
learned from looking at what previous[br]hackers did in the 80s: we know that the
0:04:04.350,0:04:08.780
voicemail system security looked like...[br]there was default PINs, there was common
0:04:08.780,0:04:12.650
PINs, there was bruteforceable PINs, there[br]was efficient bruteforcing because we can
0:04:12.650,0:04:16.779
enter multiple PINs at the same time, that[br]the greeting message is actually an attack
0:04:16.779,0:04:21.470
vector. So let's play a game. Let's do[br]checklist and let's look at the voicemail
0:04:21.470,0:04:26.970
security today. So, I looked at the[br]American carriers because I live in the
0:04:26.970,0:04:32.340
US, but because I was invited to talk in[br]Germany, I took some friends to give me
0:04:32.340,0:04:37.190
some SIM cards and I actually wanted to[br]put about German carriers as well. So,
0:04:37.190,0:04:41.490
checklist time, default PINs: all American[br]carriers do have default PINs and
0:04:41.490,0:04:45.940
unfortunately they are really not a secret[br]because most of them is actually the last
0:04:45.940,0:04:51.060
digits of your phone number. When it comes[br]to German carriers it's actually a much
0:04:51.060,0:04:54.840
better state, for example Vodaphone it's[br]the last 4 digits of the client number
0:04:54.840,0:04:59.530
which you don't know. I mean, you know as[br]the customer, not others, it's a secret.
0:04:59.530,0:05:03.650
Or if it comes to the CallYa, that is the[br]card that I got, it's the last 4 digits of
0:05:03.650,0:05:07.440
the PUK. For Telekom it's the last 4[br]digits of the card number, which is the
0:05:07.440,0:05:11.590
card you get with the SIM card. For O2,[br]unfortunately, there is a default PIN,
0:05:11.590,0:05:18.440
which is 8705, which is the only PIN you[br]can't set, when you choose to set one.
0:05:18.440,0:05:23.680
Yeah. So, voicemail security today when it[br]comes to common PINs: according to like a
0:05:23.680,0:05:28.180
fantastic research from Data Genetics,[br]this is actually about people choosing
0:05:28.180,0:05:33.530
PINs for their credit cards, but there was[br]a lot of conclusions that I learned from
0:05:33.530,0:05:38.500
this research and basically, to summarize[br]the most important regarding this work, is
0:05:38.500,0:05:44.940
that for example by trying the top 20 most[br]common PINs, you have a 22 percent chance
0:05:44.940,0:05:50.060
of getting the right one. What this means[br]in other words is for every fourth victim
0:05:50.060,0:05:53.990
that I tried to brute force the PIN from[br]their voicemail system, I will get it
0:05:53.990,0:05:58.290
right every fourth person. There are other[br]conclusions that are very interesting
0:05:58.290,0:06:08.660
like, the PINs mostly start by 19. Who has[br]an idea why is that? Birth year, right? Is
0:06:08.660,0:06:13.819
very common to set as your birth year.[br]Most of us were born in the 20th
0:06:13.819,0:06:20.440
century... to set it as a PIN.[br]Bruteforceable PINs. Same thing in Germany
0:06:20.440,0:06:24.650
and in the US, it accepts 4-digit PINs[br]which, we will see later, is just not
0:06:24.650,0:06:29.970
enough key space. Efficient bruteforcing[br]all the carriers accept concatenation of
0:06:29.970,0:06:34.880
payload. So, in this case I use it to try[br]different PINs and I don't even have to
0:06:34.880,0:06:38.919
wait for error messages. I just use the[br]pound as kind of like an enter in a
0:06:38.919,0:06:43.270
voicemail system and I can try three PINs[br]at a time. Usually carriers will hang up
0:06:43.270,0:06:46.710
when you enter three PINs wrong, for[br]security purposes, but we will take
0:06:46.710,0:06:52.289
advantage of that. So with everything that[br]I learned from the 80s, I verified that it
0:06:52.289,0:06:56.711
was still a problem today. I decided to[br]write a tool that allows you to brute
0:06:56.711,0:07:01.970
force voicemail system fast, cheap,[br]easily, efficiently, and undetected. So,
0:07:01.970,0:07:08.179
fast: I used Twilio... who is familiar[br]with Twilio here? Some of you? So a Twilio
0:07:08.179,0:07:11.950
is basically an online services that[br]allows you to programmatically interact
0:07:11.950,0:07:15.410
with phone calls. You can make phone[br]calls, interact with them, and all that.
0:07:15.410,0:07:18.780
So I use it to launch hundreds and[br]hundreds of calls at the same time in
0:07:18.780,0:07:24.150
order to brute force PINs. It's cheap! The[br]entire 4-digit keyspace costs 40 dollars.
0:07:24.150,0:07:29.490
So if I want to have a 100 percent chance[br]of getting your 4-digit PIN, I only have
0:07:29.490,0:07:33.460
to pay 40 bucks. A 50 percent chance,[br]according to the research from Data
0:07:33.460,0:07:37.370
Genetics, it will cost me five dollars. So[br]once every two victims, I will get the
0:07:37.370,0:07:41.490
PIN. Actually, if I want to take a[br]different approach and instead of just
0:07:41.490,0:07:46.620
trying to brute force only yours, I want[br]to brute force the PIN from everyone here,
0:07:46.620,0:07:50.620
according to Data Genetics, and in this[br]case, according to the fact that that is
0:07:50.620,0:07:54.570
default PINs... I'm not going to ask how[br]many of you have O2, now that they know
0:07:54.570,0:07:58.490
that there is a default PIN to their[br]voicemail system. It will be more
0:07:58.490,0:08:03.320
interesting to actually try a thousand[br]phone numbers for that default PIN for O2
0:08:03.320,0:08:08.410
customers, only for 13 dollars. It's easy:[br]fully automated, the tool does everything
0:08:08.410,0:08:11.770
for you, you just have to provide the[br]victim number, the carrier, and couple
0:08:11.770,0:08:16.091
other parameters and it's efficient! It[br]optimizes brute forcing, I use the
0:08:16.091,0:08:20.910
research from Data Genetics to favor the[br]PINs that are most common, and obviously
0:08:20.910,0:08:25.350
it tries different PINs and all that[br]stuff. But the most important here is
0:08:25.350,0:08:28.750
detection, because think about it. In[br]order for me to interact with your
0:08:28.750,0:08:33.049
voicemail system I need to call you and[br]you cannot pick up, because if not, it
0:08:33.049,0:08:36.539
doesn't go to the voicemail system. So I[br]was trying to find ways, because I need
0:08:36.539,0:08:41.938
to, in the end, make a lot of calls,[br]trying different PINs. How can I interact
0:08:41.938,0:08:46.100
directly with your voicemail? I try call[br]flooding like basically doing three calls
0:08:46.100,0:08:49.810
at a time, because the line gets flooded[br]just with three calls, it goes directly to
0:08:49.810,0:08:54.220
the voicemail, but it wasn't very[br]reliable. You can use OSINT techniques, a
0:08:54.220,0:08:57.290
lot of people likes to tweet that they,[br]you know, they go on a trip, they are
0:08:57.290,0:09:01.980
about to board a plane, so it goes into[br]airplane mode, or you go in a remote area,
0:09:01.980,0:09:06.850
or you are in a movie theater, or at night[br]you put in Do Not Disturb. Those are all
0:09:06.850,0:09:12.300
situations in which calls go directly to[br]the voicemail. You can use HLR database to
0:09:12.300,0:09:17.529
find out if mobile devices are[br]disconnected or the SIM cards have been
0:09:17.529,0:09:21.720
discarded, but they are still assigned to[br]an account. And you can use online
0:09:21.720,0:09:25.800
services like realphonevalidation.com[br]which I actually reached out and they
0:09:25.800,0:09:30.300
provide services that allow you to know if[br]a phone is acutally connected to a tower
0:09:30.300,0:09:34.870
at the moment, so it's basically[br]available, so you could use that too. You
0:09:34.870,0:09:40.509
can also use class 0 SMS, which gives you[br]feedback. It's basically a type of SMS
0:09:40.509,0:09:45.570
that will... it has more priority and will[br]basically display on the screen and you'll
0:09:45.570,0:09:49.519
get the feedback if it was displayed. So,[br]that's a nice trick to find out if the
0:09:49.519,0:09:55.259
phone actually connected to a tower. But[br]in reality, I wanted a bullet proof way to
0:09:55.259,0:09:59.480
do this and in the U.S. I found that there[br]is this concept of backdoor voice mail systems.
0:09:59.480,0:10:03.019
So instead of me calling you, I'm going to[br]call one of these services that you guys
0:10:03.019,0:10:08.129
have listed here for every carrier and[br]there I enter the number, in this case the
0:10:08.129,0:10:11.769
number of the victim from the voicemail I[br]want to interact to. And of course it
0:10:11.769,0:10:16.069
allows you to access to the logging[br]prompt. Actually in Germany I find it
0:10:16.069,0:10:19.740
interesting that you guys have it as a[br]service, because in the US it's more a
0:10:19.740,0:10:24.589
secret that I had to found using Google,[br]but here... Basically if I dial your phone
0:10:24.589,0:10:28.029
number and when it comes to Vodafone[br]between the area code and the rest of the
0:10:28.029,0:10:33.889
number I put 55, or for Telekom 13, or for[br]O2 33, I directly go to the voicemail, you
0:10:33.889,0:10:37.469
won't ring your phone. So I can use that.[br]Who was aware of this, that is from
0:10:37.469,0:10:42.439
Germany? OK, many of you. So that's what I[br]thought. Like here it's not really like
0:10:42.439,0:10:46.569
something you guys care too much about. In[br]the U.S. it's actually used a lot for
0:10:46.569,0:10:53.429
scammers or to leave directly voicemail[br]messages from spammers as well. So,
0:10:53.429,0:10:56.809
voicemailcracker actually takes advantage[br]of backdoor numbers, so it allows you to
0:10:56.809,0:11:00.119
be undetected. I don't need to call you, I[br]don't need to wait till you are flying, I
0:11:00.119,0:11:04.399
can do that. And for example for the U.S.[br]it's great, because when I launch that
0:11:04.399,0:11:08.549
many calls, the line gets flooded even if[br]you are offline. But when I use these
0:11:08.549,0:11:14.959
backdoor voicemail systems, because they[br]are meant to be used by everyone, those
0:11:14.959,0:11:19.320
don't get flooded. So I literally make[br]hundreds and hundreds of calls and it
0:11:19.320,0:11:25.339
never fails.So, but you know like[br]carriers, or some of them, add a brute
0:11:25.339,0:11:28.799
force protections, right? So that you[br]can't actually launch brute forcing
0:11:28.799,0:11:32.929
attacks. And I looked at the German[br]carriers and for example Vodafone, I saw
0:11:32.929,0:11:37.619
that it resets the 6 digit PIN and sends[br]it over SMS. So, I guess I can flood your
0:11:37.619,0:11:41.260
phone with text but who cares, that's not[br]a big deal, but I think it's actually a
0:11:41.260,0:11:45.709
pretty effective measure against[br]voicemail... against brute forcing.
0:11:45.709,0:11:48.660
Telekom blocks the Caller ID from[br]accessing the mailbox or even leaving
0:11:48.660,0:11:53.220
messages. I tried and after six times that[br]it's wrong every time, I call it says
0:11:53.220,0:11:56.949
"Hey, you can't do anything", and it hangs[br]up. And for O2 it connects directly to the
0:11:56.949,0:12:01.059
customer help-line, but someone started[br]talking German and my German is not that
0:12:01.059,0:12:08.410
good. So brute force, I wanted to be able[br]to bypass this writing and so if you look
0:12:08.410,0:12:12.869
at telecom I mentioned that it blocks the[br]caller I.D. but it turns out that Twilio
0:12:12.869,0:12:16.959
you can actually buy caller IDs you can,[br]well, you can buy phone numbers, right?
0:12:16.959,0:12:22.509
and they are really cheap. So it's very[br]easy for me to do randomization of caller
0:12:22.509,0:12:28.329
I.D.s for very very cheap and bypass[br]telecom's brute force protection. So
0:12:28.329,0:12:33.009
voicemailcracker also supports that. It[br]supports caller ID randomization. So let's
0:12:33.009,0:12:38.490
make the first demo. So as you can see[br]here on the left is the victim's mobile
0:12:38.490,0:12:43.789
device, and on the right is the tool. And[br]in this case I'm going to use the brute
0:12:43.789,0:12:47.509
force option. The brute force option[br]allows me to basically brute force the
0:12:47.509,0:12:51.940
pin. It makes hundreds of calls as I[br]explain and I'll try to guess it. And
0:12:51.940,0:12:55.070
there is a number of parameters like the[br]victim number, the carrier... the carrier
0:12:55.070,0:12:58.990
is important because they put their[br]specific payloads for every single carrier
0:12:58.990,0:13:03.589
because all the voicemail systems are[br]different, how you interact with them, and
0:13:03.589,0:13:06.869
in this case are using a backdoor number[br]because he's more efficient. And then
0:13:06.869,0:13:11.109
there is no detection. And in this case I[br]did the option of top pin. So this is
0:13:11.109,0:13:17.499
basically trying the top 20 pins according[br]to the research for four digits. So as you
0:13:17.499,0:13:21.639
can see it's trying actually three pins at[br]a time as I mentioned before rather than
0:13:21.639,0:13:26.959
one. So we have to do a third of the of[br]the of the calls, right? And how did you
0:13:26.959,0:13:34.390
think that I'm detecting if the pin was[br]correct or not? Any ideas?
0:13:34.390,0:13:40.170
Unintelligible suggestion from audience[br]M.V.: OK. So the disconnect and hang up.
0:13:40.170,0:13:43.879
That's what I heard. And that's exactly[br]right. If you think about it I can look at
0:13:43.879,0:13:48.170
the call duration because when I tried[br]three pins and it hangs up it's always the
0:13:48.170,0:13:54.379
same call duration. For T-Mobile in this[br]case it's like 18 seconds. So I instruct
0:13:54.379,0:13:58.110
Twilio to after dialing and putting the[br]payload to interact with the voicemail
0:13:58.110,0:14:03.109
system trying the pins to wait 10 extra[br]seconds. So all I got to do, I don't need
0:14:03.109,0:14:07.509
any sound processing to try to guess what[br]the voicemail voice is telling me if it's
0:14:07.509,0:14:11.069
correct or not. I just use the call[br]duration. So if the call duration is ten
0:14:11.069,0:14:15.549
times longer then I know that's the right[br]pin because because it locked in. So as
0:14:15.549,0:14:19.239
you can see it found out one of those[br]three is actually the correct one: in this
0:14:19.239,0:14:24.649
case it's 1983. So in order to give you[br]the exact one because at that time it
0:14:24.649,0:14:29.389
tried the three of them, now it's trying[br]one by one and it may look like it's
0:14:29.389,0:14:35.350
taking longer than it should for only 20[br]pins but remember failing pins is very
0:14:35.350,0:14:38.989
very quick. It's just that because in the[br]top 20 found already the right pin it
0:14:38.989,0:14:46.219
takes longer than it should, and there you[br]go. We got that it's 1983. Awesome. So
0:14:46.219,0:14:50.410
what is the impact really why am I here[br]talking to you at CCC that has such
0:14:50.410,0:14:55.560
amazing talks, right? And this is really[br]the thing about this. No one cares about
0:14:55.560,0:15:00.720
the voicemail. Probably if I ask here, who[br]knows his own voicemail pin?
0:15:00.720,0:15:05.329
laughter[br]M.V.: Nice. That's what I was expecting.
0:15:05.329,0:15:09.869
Probably less hands here. So some of them[br]are lying but that's the thing, right? We
0:15:09.869,0:15:13.910
don't care about the voicemail. We don't[br]even use it, which is the crazy thing
0:15:13.910,0:15:18.309
here. We have we have an open door for[br]discussing an issue that we don't even
0:15:18.309,0:15:23.290
know about or we don't even remember. So[br]many people is not familiar with the fact
0:15:23.290,0:15:27.869
that you can a reset passwords over phone[br]call. We are familiar with resetting
0:15:27.869,0:15:32.699
passwords over e-mail. You get a unique[br]link maybe over SMS you get a code that
0:15:32.699,0:15:36.809
you that you then have to enter in the UI.[br]But a lot of people cannot receive SMS, or
0:15:36.809,0:15:41.990
that's what services claim. So they allow[br]you to provide that temporary code over a
0:15:41.990,0:15:46.559
phone call, and that's exactly what we[br]take advantage of, because I ask you what
0:15:46.559,0:15:50.909
what happens if you don't pick up the[br]phone if basically I go to a service,
0:15:50.909,0:15:55.209
enter your e-mail or your phone number and[br]reset a password, and everyone can do
0:15:55.209,0:16:01.989
that. Anyone can reset it, initiate the[br]reset password process, and I know that
0:16:01.989,0:16:05.709
you are not going to pick up the phone. I[br]know that thanks to my tool I got access
0:16:05.709,0:16:09.759
to your voicemail system. So basically the[br]voicemail system will pick up the call and
0:16:09.759,0:16:15.309
it will start recording, so it will record[br]the voice spelling out the code that I
0:16:15.309,0:16:22.569
need to basically reset your account and[br]get access to it. So -- oops! -- and I
0:16:22.569,0:16:26.570
press play here.[br]Static
0:16:26.570,0:16:31.319
M.V.: Okay, so, what does the attack[br]vector look like? You brute force the
0:16:31.319,0:16:35.799
voicemail system using the tool ideally[br]using backdoor numbers. For that
0:16:35.799,0:16:38.779
particular call -- that is, the call that[br]the victim will receive once you initiate
0:16:38.779,0:16:42.369
the password reset -- that one it cannot[br]go through the backdoor number, right?,
0:16:42.369,0:16:45.849
because it's gonna-- PayPal is gonna[br]directly call the victim. So for that one
0:16:45.849,0:16:50.149
you need to make sure that the victim is[br]not connected to a tower through all the
0:16:50.149,0:16:53.979
methods that I showed before. You start[br]the password reset process using the
0:16:53.979,0:16:57.799
economy feature. You listen to the[br]recorded message, secret code and profit.
0:16:57.799,0:17:01.679
You hijacked that account, and[br]Voicemailcracker can do all that for you.
0:17:01.679,0:17:09.549
Let's compromise Whatsapp. So on the left[br]you see my number, right?, with a secret
0:17:09.549,0:17:13.939
lover group, and a secret group, and all[br]that stuff. On the right notice that I'm
0:17:13.939,0:17:19.709
not even using an actual device. It's an[br]android emulator that I installed, an APK.
0:17:19.709,0:17:23.809
And there is some sound to this, and you[br]are gonna see -- so again on your left
0:17:23.809,0:17:27.898
it's the victims number. On the right is[br]an emulator of the attacker. So you'll see
0:17:27.898,0:17:33.919
that I'm going to use my tool with the[br]message payload, with the message option.
0:17:33.919,0:17:38.520
So in this case what I'm doing is I'm[br]setting the victim's phone to airplane
0:17:38.520,0:17:43.880
mode, simulating that it's now offline for[br]some reason, and I detected that. So if
0:17:43.880,0:17:50.680
you see, WhatsApp allows sends you a text[br]to actually register as a WhatsApp user,
0:17:50.680,0:17:54.880
but if you don't reply in a minute it[br]allows you-- it gives you an option to
0:17:54.880,0:17:59.430
call, to call me, right? And that's[br]exactly what I click. So now WhatsApp is
0:17:59.430,0:18:04.080
basically calling the victim which is[br]again in airplane mode, because he went on
0:18:04.080,0:18:08.600
a remote trip or on a plane, and so I'm[br]using Voicemailcracker with the option
0:18:08.600,0:18:14.059
"message" to automatically retrieve that[br]newest message. So the tool is gonna
0:18:14.059,0:18:17.589
provide me as you can see the last option[br]is the pin, because I brute forced it
0:18:17.589,0:18:21.960
before. So it's going to give me a URL[br]with the recording of the newest message,
0:18:21.960,0:18:29.529
which, hopefully -- it's a recorded demo[br]-- hopefully contains actually the code.
0:18:29.529,0:18:46.079
So let's see... I got the URL.[br]Phone alert sound
0:18:46.079,0:18:48.760
Computerized phone voice: New Message! --[br]M.V.: It's interacting with the voicemail
0:18:48.760,0:18:50.550
system right now.[br]Phone voice: -- your verification code is:
0:18:50.550,0:19:01.440
3 6 5 9 1 5. Your verification code is: 3[br]6 5 9 1 5. Your ver--
0:19:01.440,0:19:06.059
M.V.: And that simple. We just hijacked[br]that person's WhatsApp, and I -- here I'm
0:19:06.059,0:19:08.819
fast forwarding just to show you--[br]Applause
0:19:08.819,0:19:18.760
M.V: --that you get actually that. Thank[br]you. I do want to point out that WhatsApp
0:19:18.760,0:19:21.841
is super secure, it like-- end to end[br]encryption all that -- and there is a
0:19:21.841,0:19:25.179
number of things that you can notice this[br]attack. For example you wouldn't be able
0:19:25.179,0:19:28.690
to see the previous messages that were[br]there but you can just hold on and ask
0:19:28.690,0:19:32.910
people, right? The groups will pop up. So[br]you hijacked that WhatsApp account. There
0:19:32.910,0:19:37.559
is also fingerprinting. But who really[br]pays attention to the fingerprinting when
0:19:37.559,0:19:43.440
someone changes the device, right? So are[br]we done? Not yet. Because the truth is,
0:19:43.440,0:19:48.029
some researchers talked about this in the[br]past then and actually services tried to
0:19:48.029,0:19:52.159
slowly pick up. So that is actually[br]something that I found in several
0:19:52.159,0:19:56.710
services. That is what I call the user[br]interaction based protection. So when you
0:19:56.710,0:20:01.060
received that phone call that provides you[br]with the temporary code in reality it's
0:20:01.060,0:20:04.700
not giving it away. You have to press a[br]key. It comes in three different flavors
0:20:04.700,0:20:08.530
from what I found from my tests. Please[br]press any key to hear the code, so when
0:20:08.530,0:20:11.679
you get the call, you have to press, and[br]then it will tell you the code; please
0:20:11.679,0:20:15.950
press a random key so specifically please[br]press 1, please press 2, or please enter
0:20:15.950,0:20:20.090
the code. PayPal does that, and instead of[br]you having to press a key to hear the code
0:20:20.090,0:20:24.289
when you reset the password you will see a[br]four digits code that you have to enter
0:20:24.289,0:20:29.140
when you receive the call and then it will[br]reset the password. So I'm going to get
0:20:29.140,0:20:33.680
the help from all of you guys. Can we beat[br]this currently recommended protection what
0:20:33.680,0:20:37.920
is nowadays recommended to prevent these[br]kind of attacks? And we're going to play a
0:20:37.920,0:20:44.590
game. I'm going to give you two hints.[br]This is the first one. So, you probably
0:20:44.590,0:20:48.510
guys are familiar with this, but Captain[br]Crunch. Again we go back today it is we
0:20:48.510,0:20:54.509
can learn so much from them, use this to[br]generate specific sounds at a specific
0:20:54.509,0:20:58.169
frequency to basically -- you can go and[br]read it -- to get free international
0:20:58.169,0:21:02.549
calls. So he will create that sound and[br]the system will process it on the on the
0:21:02.549,0:21:07.430
line. And the second one is that I[br]cheated. When we did the checklist, I
0:21:07.430,0:21:11.750
actually skipped one , which was the[br]greeting message is an attack vector. So I
0:21:11.750,0:21:16.549
ask you guys how can we bypass the[br]protection that requires user interaction
0:21:16.549,0:21:20.129
in order to get the code recorded on the[br]voicemail system?
0:21:20.129,0:21:26.269
Inaudible suggestion from audience[br]M.V.: What was that?... Exactly. Record
0:21:26.269,0:21:31.470
DTMF tones as the greeting message. We own[br]the voice mail system so we can alter the
0:21:31.470,0:21:36.729
greeting message. So this is exactly how[br]it works: We just alter the greeting
0:21:36.729,0:21:42.260
message we call the DTMF that the system[br]is expecting and it works every single
0:21:42.260,0:21:48.039
time. The best thing of this is what[br]really is so awesome about about all of us
0:21:48.039,0:21:52.169
that really care about technology. We want[br]to have a deep understanding because when
0:21:52.169,0:21:57.049
I was asking people when when you know I[br]wanted to show them this I was asking them
0:21:57.049,0:22:01.480
how does this protection really work. And[br]they will say well you have to press a key
0:22:01.480,0:22:05.789
and then you know it will give you the[br]code. But that's not really true. That's
0:22:05.789,0:22:09.490
what you have to do is to provide a[br]specific sound that the system is
0:22:09.490,0:22:13.990
expecting. That is different than saying[br]you have to press a key, because if you
0:22:13.990,0:22:18.520
say I have to press a key that requires[br]physical access. If you say I have to
0:22:18.520,0:22:22.460
provide a sound, now we know it doesn't[br]require physical access. That is why
0:22:22.460,0:22:26.490
hackers are so cool, because we really[br]want to understand what is happening
0:22:26.490,0:22:30.720
backstage, and we take advantage of that.[br]So how does the attack vector look like?
0:22:30.720,0:22:34.090
Bruteforcing voicemail systems as before.[br]So basically we have an extra step which
0:22:34.090,0:22:38.121
is update the greeting message according[br]to the account to be hacked in voicemail.
0:22:38.121,0:22:40.929
Cracker can do that for you. Let's[br]compromise PayPal.
0:22:40.929,0:22:46.990
Laughter[br]M.V.: So on the left side you see that as
0:22:46.990,0:22:53.330
before I brute force the pin of the voice[br]mail. And in this case on the right side
0:22:53.330,0:23:00.769
I'm going to start a password reset for[br]that account. So I do that and I choose
0:23:00.769,0:23:05.799
"please call me with a temporary code".[br]But in this case PayPal works differently
0:23:05.799,0:23:10.139
because it will show me a four digits code[br]that I need to enter when I receive the
0:23:10.139,0:23:15.690
call in order to reset the password. So[br]you see that here I'm using the greeting
0:23:15.690,0:23:20.310
option. So the greeting is going to allow[br]me to enter a payload that I want to
0:23:20.310,0:23:26.270
record as the greeting message. In this[br]case is 6 3 5 3. So I may be very very
0:23:26.270,0:23:31.500
verbose for this demo. There you see[br]the last option use PayPal code and I
0:23:31.500,0:23:36.989
enter 6 3 5 3. Now the tool is going to[br]use the pin to log into the voicemail
0:23:36.989,0:23:42.350
system, interact with it, change the[br]greeting message, record the DTMF tones
0:23:42.350,0:23:50.759
according to 6 3 5 3 and then it should be[br]able to fool the call. In this case I'm
0:23:50.759,0:23:55.860
asking to call again, because it didn't[br]have enough time to do that. And in 3 2 1
0:23:55.860,0:24:00.690
we should get that we actually compromise[br]PayPal's account, and there we go. We can
0:24:00.690,0:24:05.200
now set our own password.[br]Applause
0:24:05.200,0:24:14.580
M.V.: Thank you. So, I showed you some[br]vulnerable servers. Let's go very quick
0:24:14.580,0:24:19.240
about it because I'm I'm concerned I'm[br]running out of time. So, I'm just
0:24:19.240,0:24:23.490
mentioning Alexa top 100 types of[br]services, no favoring anything, but... so
0:24:23.490,0:24:27.610
for password reset that supports over[br]phone call: PayPal, Instagram-- no,
0:24:27.610,0:24:35.059
Snapchat-- Netflix, Ebay, LinkdIn. I'm[br]still on Facebook. What can I say? 2FA for
0:24:35.059,0:24:38.279
all they major forms so 2FA over phone[br]call for Apple, Google, Microsoft,
0:24:38.279,0:24:42.289
Yahoo... Verification: So basically you[br]don't register with a username and
0:24:42.289,0:24:47.020
password on on WhatsApp or Signal you[br]actually use directly the phone number,
0:24:47.020,0:24:50.790
right? As we saw before and you register[br]through a phone call or SMS. So you can
0:24:50.790,0:24:54.710
compromise this too. Twilio, the own[br]service that I use for these is actually
0:24:54.710,0:25:00.519
really cool because you can own a caller[br]I.D. by verifying it by getting a phone
0:25:00.519,0:25:05.460
call so I can actually own your caller ID[br]and make calls on your behalf, send texts,
0:25:05.460,0:25:10.039
and these all legitimately, right?,[br]because you've pressed one. Google Voice,
0:25:10.039,0:25:13.289
it's actually another interesting service[br]because it's used a lot by scammers,
0:25:13.289,0:25:17.009
right? And this is the same thing: you[br]have to verify ownership so you can do
0:25:17.009,0:25:21.549
those phone calls and you can fool it as[br]well with this, but I found I was looking
0:25:21.549,0:25:24.730
like what other services really take[br]advantage of this? And this is super
0:25:24.730,0:25:30.789
common in San Francisco, where I live. You[br]can buzz in people like when they want to
0:25:30.789,0:25:35.279
enter, right?, they enter your house[br]number, and then your phone rings and you
0:25:35.279,0:25:39.449
press any key to open the door. So we are[br]talking about physical security now. And
0:25:39.449,0:25:44.019
I've seen this in offices as well. They[br]all work this way, basically because they
0:25:44.019,0:25:47.769
want to be able -- for tenants, that you[br]know, come and go -- be able to switch
0:25:47.769,0:25:52.620
that very quickly. So it works just[br]through the phone that you buzz people in.
0:25:52.620,0:25:56.710
But my favorite is consent, because when[br]we think about consent we think about
0:25:56.710,0:26:00.779
lawyers and we think about signing papers[br]and we think about all of these difficult
0:26:00.779,0:26:07.799
things. And I find out about these[br]location smart service that is not anymore
0:26:07.799,0:26:15.190
there and you will see why... But this was[br]recently in the news because, basically
0:26:15.190,0:26:19.690
Brian Krebs wrote a really great article[br]about it. But I'm going to let you hear
0:26:19.690,0:26:23.389
then their YouTube channel, how Location[br]Smart works.
0:26:23.389,0:26:30.380
LS vid speaker 1: The screen that you're[br]showing, that you're seeing right now is a
0:26:30.380,0:26:36.800
demo that we have on our Web site it's at[br]location smart.com/pride, and I've entered
0:26:36.800,0:26:43.190
my name, my email, my mobile phone number,[br]and it's again going to get my permission
0:26:43.190,0:26:48.470
by calling my phone, and then it'll[br]locate. So let's go ahead and, I clicked
0:26:48.470,0:26:55.100
the box to say yes I agree, click the[br]locate, and the screen now shows that it's
0:26:55.100,0:26:58.170
going to call my device to get my[br]permission.
0:26:58.170,0:27:03.680
vid speaker's phone vibrates, sounds like an airhorn in video[br]LS vid speaker 2: Heh, that's a nice ring
0:27:03.680,0:27:05.610
tone --[br]M.V.: No, it's not--
0:27:05.610,0:27:09.620
LS vid speaker 1's phone: To log into[br]Location Smart Services, press 1 or say
0:27:09.620,0:27:16.870
'Yes'. To repeat, press 2 or say 'Repeat'.[br]LSVS1: Yes
0:27:16.870,0:27:21.809
Phone: Congratulations. You have been[br]opted in to Location Smart Services.
0:27:21.809,0:27:23.419
Goodbye[br]M.V.: So as you see, this service, this
0:27:23.419,0:27:30.091
Web site had a free demo, had a free demo[br]that allow you to put out a phone number
0:27:30.091,0:27:33.639
-- yours, of course -- and you will get a[br]phone call and then you will give
0:27:33.639,0:27:38.499
permission by pressing one. So someone[br]could locate you and keep tracking -- I
0:27:38.499,0:27:47.970
mean, I checked with them -- for up to 30[br]days, real time. So now you know why they
0:27:47.970,0:27:51.580
don't exist anymore![br]Applause
0:27:51.580,0:28:00.810
M.V.: Open source..[br]More Applause
0:28:00.810,0:28:05.490
M.V: Open source. So, and this was with[br]the permission of the carriers. This was
0:28:05.490,0:28:11.740
not some fishy thing. This was actually a[br]service. So I wanted to release code,
0:28:11.740,0:28:15.009
because I want you guys to verify that[br]what I mentioned is true and have code to
0:28:15.009,0:28:20.490
hopefully help push the industry forward[br]to make a voice mail systems more secure,
0:28:20.490,0:28:24.990
right?. We want to push carriers to do so.[br]A but I didn't want to provide on tool
0:28:24.990,0:28:29.639
that works out of the box and anyone can[br]very easily as we saw like just start to
0:28:29.639,0:28:32.929
bruteforce pins, especially because I saw[br]that there is so many people with the
0:28:32.929,0:28:37.280
default PINs out there. So I just removed[br]the brute forcing, so the tool allows you
0:28:37.280,0:28:41.220
to test it on your own. You can test, you[br]know, you can test the greeting message
0:28:41.220,0:28:45.010
you can test the retreiving messages[br]compromising the services and all that. So
0:28:45.010,0:28:48.221
the tool allows you to test on your own[br]device. I won't give you code to brute
0:28:48.221,0:28:54.220
force someone else's device. And feel free[br]to go to my github repo. So now like all
0:28:54.220,0:28:59.309
the talks comes the recommendations, but I[br]know what you guys are thinking, right?
0:28:59.309,0:29:02.509
When someone comes with all this paranoia[br]and stuff you still think "yeah but you
0:29:02.509,0:29:07.080
know still like no one is gonna come after[br]me. I don't have anything to hide" or
0:29:07.080,0:29:11.330
anything like that. So I wanted to give[br]you reasons why you should still care
0:29:11.330,0:29:17.490
about this, and why we need to do better.[br]Because do carriers set default PINs? Yes,
0:29:17.490,0:29:23.350
we saw that. Is testing for default pins[br]cheap, fast, undetected, and automatable?
0:29:23.350,0:29:28.899
Yes it is. Is updating reading the message[br]automatable? Yes it is. Is retrieving you
0:29:28.899,0:29:34.929
the newest message automatable? Yes it is.[br]Is there speech to text description, so
0:29:34.929,0:29:39.190
that I can get the sound that I played[br]before with the code and get it in text?
0:29:39.190,0:29:45.920
Yeah. Twilio gives you that as well. So[br]can the account compromise process be
0:29:45.920,0:29:49.640
automatable? Of course you can use[br]selenium if you want to automate the UI.
0:29:49.640,0:29:55.549
Or you can use a Web proxy and look at the[br]APIs and do it yourself. So it is only a
0:29:55.549,0:30:00.629
matter of time that someone actually does[br]all these steps that I showed you step by
0:30:00.629,0:30:05.350
step and just makes it all straight and[br]starts to go over phone numbers trying the
0:30:05.350,0:30:10.389
default PINs, and just automatically[br]compromising services like WhatsApp like
0:30:10.389,0:30:16.140
PayPal and all that. You can do basically,[br]not a worm, but, you know, you can
0:30:16.140,0:30:20.700
compromise a lot of devices without doing[br]anything. Recommendations for online
0:30:20.700,0:30:24.879
services. Don't use automated calls for[br]security purposes. if not possible detect
0:30:24.879,0:30:28.270
answering machines and fail. I mean this[br]is not very accurate and you can still
0:30:28.270,0:30:33.630
trick it. Require user interaction before[br]providing the secret. I just show you how
0:30:33.630,0:30:39.630
to bypass that, but that's with hope that[br]carriers ban DTMF tones from the greeting
0:30:39.630,0:30:44.370
message. I don't see why that should be[br]supported, right? Recommendations for
0:30:44.370,0:30:48.119
carriers. The most important thing: Ban[br]DTMF tones from the greeting message,
0:30:48.119,0:30:53.250
eliminate backdoor mobile services, or at[br]least a give no access to the login
0:30:53.250,0:30:57.080
prompt, right? There is no reason why you[br]should be able to access your voicemail
0:30:57.080,0:31:01.710
directly to leave a message. But then I[br]can access the login prompt by pressing
0:31:01.710,0:31:05.749
star. Voicemail disabled by default. This[br]is very important and can only be
0:31:05.749,0:31:10.100
activated from the actual phone, or[br]online maybe with a special code. Oh great
0:31:10.100,0:31:15.730
I have time for questions. No default[br]pins. Learn from the German carriers:
0:31:15.730,0:31:19.399
don't allow common pins, detect and[br]prevent brute force attempts, don't
0:31:19.399,0:31:23.619
process multiple pins at once.[br]Recommendations for you which, is in the
0:31:23.619,0:31:28.389
end, very important here. disable the[br]voice mail if you don't use it. I found
0:31:28.389,0:31:31.760
though that some carriers you're still[br]through the backdoor voicemail numbers you
0:31:31.760,0:31:37.330
are unable to activate it again. So kind[br]of sucks. So I guess use the longest
0:31:37.330,0:31:41.649
possible random pin. Don't provide phone[br]numbers to online services unless
0:31:41.649,0:31:45.680
required, or is the only way to get 2FA.[br]2FA is more important. Use a virtual
0:31:45.680,0:31:50.250
number to prevent OSINT like a Google[br]Voice number so no one can you know learn
0:31:50.250,0:31:55.399
about your phone number digits by[br]resetting the password or do SIM swapping.
0:31:55.399,0:31:59.660
Use 2FA apps only. And I always like to[br]finish my talk with ones like that kind of
0:31:59.660,0:32:03.519
summarizes everything. Automated phone[br]calls are a common solution for password
0:32:03.519,0:32:07.129
reset, 2FA, verification, and other[br]services. These can be compromised by
0:32:07.129,0:32:11.379
leveraging old weaknesses and current[br]technology to exploit the weakest link
0:32:11.379,0:32:15.050
voicemail systems. Thank you so much.[br]Danke Schön, CCC!
0:32:15.050,0:32:33.129
Applause[br]Herald Angel: Thank you, Martin. We have
0:32:33.129,0:32:37.450
time for questions, so if you have any[br]questions or if someone in the Internet
0:32:37.450,0:32:44.989
has questions just go to these[br]microphones. Where is the microphone?
0:32:44.989,0:32:50.020
You've got it. Yes. You were black and the[br]microphone too. So maybe you start and we
0:32:50.020,0:32:55.830
take the question from the Internet.[br]Q: Yes I have a question. You mentioned
0:32:55.830,0:33:02.510
that the phone needed to be offline. Would[br]a call like a sim teen's call to the phone
0:33:02.510,0:33:11.049
that it would be in what is called in[br]english - besetzt?- like occupied so let's
0:33:11.049,0:33:19.720
say I already called the victim. So the[br]caller gets, yeah, the line's occupied
0:33:19.720,0:33:21.960
that would then go to voicemail, wouldn't[br]it?
0:33:21.960,0:33:26.350
M.V.: So that's a great question. I think[br]the question is if you are on a call and
0:33:26.350,0:33:31.429
someone else calls you, so your attack[br]will be: I somehow make up a story to keep
0:33:31.429,0:33:34.980
the person on the phone call while I[br]launch other calls... that will work. I
0:33:34.980,0:33:38.850
tried that but the problem is usually to[br]force, I mean that will not be too big of
0:33:38.850,0:33:41.860
a deal I guess but it supports two calls[br]right. They will warn you all there is
0:33:41.860,0:33:45.719
another incoming call. But I guess you[br]could keep doing more. So that's what I
0:33:45.719,0:33:50.509
meant a partly with a call flooding. In[br]that case what I tried was just launching
0:33:50.509,0:33:53.909
all of them at the same time. And if the[br]person picks up I don't care but it's
0:33:53.909,0:33:57.490
somewhat related to what you mentioned and[br]that's definitely possible.
0:33:57.490,0:33:59.300
Questioner: Okay. Thank you.[br]M.V.: Yeah.
0:33:59.300,0:34:03.739
Herald: Question from the internet please[br]Signal Angel: Does this work with the
0:34:03.739,0:34:07.879
phone calls that start talking[br]immediately, will the new code being
0:34:07.879,0:34:12.159
recorded then?[br]M.V.: if I understood the question
0:34:12.159,0:34:16.429
correctly it's that when the voicemail[br]picks up like basically the automated
0:34:16.429,0:34:21.230
system that spits out the code already[br]started to talk. I believe that's the
0:34:21.230,0:34:23.230
question.[br]Herald: We don't know it's from the
0:34:23.230,0:34:27.030
Internet.[br]M.V.: OK so if that is the question I
0:34:27.030,0:34:30.739
found actually that, because usually[br]greeting messages last like 15 seconds so
0:34:30.739,0:34:35.460
by the time it starts recording you[br]already finish the recording that gives
0:34:35.460,0:34:39.199
you the code, but you own the greeting[br]message so you make it as short as one
0:34:39.199,0:34:44.469
second. And I never found a problem with[br]that. You actually recorded DTMF tones for
0:34:44.469,0:34:47.729
like two seconds.[br]Herald: Ladies first let me take your
0:34:47.729,0:34:54.799
question.[br]Q: You talked about how you learned all of
0:34:54.799,0:35:07.589
that through reading e-zines. How are they[br]called, and how do I find them?
0:35:07.589,0:35:10.979
M.V: That's the best question I've ever[br]heard and it deserves an applause,
0:35:10.979,0:35:15.770
seriously. I like that because you also[br]want to learn about it. So that's that's
0:35:15.770,0:35:20.190
really fantastic. So the Phrack Web site[br]is the best resource you can get. I guess
0:35:20.190,0:35:26.730
everyone will agree here. So you just look[br]up google for phrack magazine and there is
0:35:26.730,0:35:32.040
a lot a lot of interesting stuff that we[br]can learn there still today.
0:35:32.040,0:35:36.120
Q: Are there any others?[br]M.V.: Yeah I mean you can then follow the
0:35:36.120,0:35:42.040
classic. I mean I like Twitter to get my[br]security news because it's very concise so
0:35:42.040,0:35:47.180
I kind of get like you know the 140[br]characters version.. if I'm interested
0:35:47.180,0:35:51.980
then I will read it. So I think you can[br]google for like top security people to
0:35:51.980,0:35:57.510
follow. Brian Krebs is great. It depends[br]also on your technical depth. There is
0:35:57.510,0:36:03.970
different people for that. And if not just[br]you know specialized blogs in magazines.
0:36:03.970,0:36:06.590
Q: All right. Thanks.[br]M.V.: Thank you.
0:36:06.590,0:36:10.810
Herald: And your question please.[br]Q: Hi. And so for me the solution is
0:36:10.810,0:36:14.700
obvious: I just turn off my voicemail. But[br]thinking about some relatives which are
0:36:14.700,0:36:19.170
maybe too lazy or don't really care and[br]still use two factor authentication. I was
0:36:19.170,0:36:24.450
thinking about could I easily adapt your[br]script to automatically turn off voice
0:36:24.450,0:36:37.569
boxes or generate random pins?[br]M.V.: You can automate it to turn off the pin. Like
0:36:37.569,0:36:41.600
for example on Vodaphone I don't know why[br]that allows you to turn off the pin. To turn
0:36:41.600,0:36:47.430
off the voicemail... I don't... I haven't[br]tested that. I think you may have to call
0:36:47.430,0:36:51.569
the IT department but you know what. It[br]would be really great to do that. It would
0:36:51.569,0:36:55.630
be really awesome. Great question. I guess[br]if you can turn it off then you can turn
0:36:55.630,0:37:00.040
it on as well. Yeah.[br]Herald: Your question please.
0:37:00.040,0:37:03.109
Q: Did Twilio ban you or did they find out[br]what you did?
0:37:03.109,0:37:09.700
M.V.:I got some emails I got some emails[br]but they were really cool. I have to say
0:37:09.700,0:37:13.740
that. I explained to them what I was[br]coming from, I gave them my identity...
0:37:13.740,0:37:18.180
like I wasn't hiding anything. Actually I[br]had to pay quite some money and because of
0:37:18.180,0:37:21.650
all the calls that I was doing while I was[br]doing the research, so I do think hide my
0:37:21.650,0:37:27.049
identity at all. So, they did detect tact[br]that I was doing many calls and stuff like
0:37:27.049,0:37:31.809
that. So there is I guess at the high[br]volumes there is some detection, but
0:37:31.809,0:37:35.970
Twilio is not the only service. So again[br]you can switch between services, space it
0:37:35.970,0:37:40.330
out, change caller I.D.s, a number of[br]things.
0:37:40.330,0:37:45.549
Herald: And one more question here.[br]Q: Hi. You talked about being undetected
0:37:45.549,0:37:50.400
when making all these calls by going[br]directly to these direct access numbers.
0:37:50.400,0:37:56.030
In Germany it's very common that if[br]someone calls your voicemail you get an
0:37:56.030,0:38:00.460
SMS text even if they don't leave a[br]message. But I suspect there's some kind
0:38:00.460,0:38:05.370
of undocumented API to actually turn that[br]off through the menus. Have you looked
0:38:05.370,0:38:08.710
into that?[br]M.V.: No I haven't looked into that
0:38:08.710,0:38:14.230
specifically. The question is that usually[br]in Germany for the carriers you'll get an
0:38:14.230,0:38:18.220
SMS when you when you get a call. I[br]wonder... the test that I did on the
0:38:18.220,0:38:22.250
German carriers, I was getting a text if I[br]was leaving a message, not if someone was
0:38:22.250,0:38:26.420
calling there. I guess you are talking[br]about a missed call, that kind of
0:38:26.420,0:38:32.089
notification. I'm not sure about it. What[br]I do want to point out is remember that a
0:38:32.089,0:38:35.609
you can do these while the person is[br]offline maybe on a long trip so you can
0:38:35.609,0:38:40.750
time it, and that will be a good probation[br]I guess to just not launch at any, you
0:38:40.750,0:38:44.300
know, at any point in time, but you can[br]just always time it, and by the time the
0:38:44.300,0:38:47.850
person gets a million text it's too late.[br]Q: Thanks.
0:38:47.850,0:38:50.189
M.V.: Yeah.[br]Herald: One more question over here
0:38:50.189,0:38:55.200
please.[br]Q: Thank you. On apple phones you can
0:38:55.200,0:39:00.540
activate with some care the, what they[br]call visual voicemail. Would that prevent
0:39:00.540,0:39:04.950
your attack to work, or..?[br]M.V.: No there is actually, I believe he
0:39:04.950,0:39:11.550
was an Australian researcher, that looked[br]into the visual voicemail and he was able
0:39:11.550,0:39:16.770
to find that in reality uses the IMAP, If[br]I remember correctly, protocol, and for
0:39:16.770,0:39:23.110
some carriers he was able to to launch[br]brute force attacks because the
0:39:23.110,0:39:28.450
authentication wasn't with the same pin as[br]you get when you dial in. But he found at
0:39:28.450,0:39:34.819
least one carrier in Australia I believe[br]that was vulnerable through visual
0:39:34.819,0:39:37.930
voice mail protocol. And I check for[br]German carriers. I did that, I actually
0:39:37.930,0:39:43.010
follow the steps that he did, to see if[br]that was worth mentioned in here. I didn't
0:39:43.010,0:39:49.100
find it to be vulnerable, but that doesn't[br]mean that that's not the case.
0:39:49.100,0:39:53.750
Herald: One more last question.[br]Q: Thank you for the talk. What is your
0:39:53.750,0:39:58.090
recommendation to American carriers to[br]protect themselves against this attack?
0:39:58.090,0:40:03.460
M.V.: I put a slight slide there. Like for[br]me I guess the most important thing is
0:40:03.460,0:40:07.839
really look at what some German carriers[br]are doing I really like that in the recent
0:40:07.839,0:40:12.940
past where it sends it to you over SMS as[br]soon as it detects that someone dialed,
0:40:12.940,0:40:17.730
tried six times the wrong pin. I mean if[br]you have physical access to a locked
0:40:17.730,0:40:22.619
device you could claim that if someone has[br]the preview turned on the device you could
0:40:22.619,0:40:26.910
still see the pin, you know when you get[br]it so. But then it wouldn't be like a
0:40:26.910,0:40:33.900
remote attack anymore, so definitely[br]detect brute forcing and shut down. I mean
0:40:33.900,0:40:38.490
we know that with the caller I.D. is not[br]working so well for a Telecom, because I
0:40:38.490,0:40:43.440
was able to bypass it. But I know that,[br]because I did some test with HLR records
0:40:43.440,0:40:46.850
that you can actually tell the type of[br]device that it is, if it's a virtual
0:40:46.850,0:40:51.400
number. So if carriers could actually look[br]at the type of phone that is trying to
0:40:51.400,0:40:55.830
call in. I think if it's a virtual number,[br]you know, red flag. If it's not I don't
0:40:55.830,0:40:59.400
think someone is going to have... I guess[br]the government could like, you know have
0:40:59.400,0:41:05.810
3333 devices because you try one pin for[br]the 10000 keyspace, you know. You try 3
0:41:05.810,0:41:10.889
pins at a time and just have 3333 SIM[br]cards and so it will come from real
0:41:10.889,0:41:15.990
devices. But then at least it will quite[br]significantly mitigate it. And then like
0:41:15.990,0:41:22.850
again like if you ban DTMF tones from the[br]greeting message that will help as well.
0:41:22.850,0:41:26.270
Herald: Thank you Martin. I have never[br]provided any telephone number to any
0:41:26.270,0:41:32.230
platform and now thanks to you I know why.[br]Warm applause for Martin Vigo please.
0:41:32.230,0:41:33.552
M.V.: Thank you
0:41:33.552,0:41:39.532
applause
0:41:39.532,0:41:45.100
35c3 postroll music
0:41:45.100,0:42:02.000
subtitles created by c3subtitles.de[br]in the year 2019. Join, and help us!