-
32C3 preroll music
-
Herald: The next talk is going to be
“Beyond Your Cable Modem”
-
– how not to do DOCSIS networks.
-
Sorry, I’m not a hardware guy.
But Alexander Graf is going to
-
hold the talk and he has
done a lot of virtualization
-
and stuff other people
think is too complicated.
-
Now he is going to talk about
-
the outside of your apartment.
Give him a warm welcome.
-
applause
-
Alexander: Hi and welcome to my
talk “Beyond Your Cable Modem”.
-
This is going to look at what’s beyond
the stuff you usually see at home
-
where you just plug in a network cable
and you happen to have Internet available.
-
So, who am I?
-
I’m Alexander Graf – I’m usually
more of a virtualization developer.
-
I have nothing to do with
hacking in my day work,
-
I don’t usually go around and
hack embedded devices.
-
Usually, at least.
-
But, during the last year, I had
a lot of spare time at night
-
because the baby was
crying, so I figured:
-
I could as well spend that time
and do something useful.
-
So, what happened?
We moved to a new home.
-
I was living in a home
where I had DSL available,
-
I had a real phone line, everything
was great, things were just awesome.
-
But then we moved into
this new home where…
-
where there was no DSL available. Well,
there was DSL available but there were
-
different circumstances why I couldn’t use
it. So instead, I figured: You know what?
-
Try this cool new technology:
Internet over your cable TV.
-
Ehh, cable. TV cable.
-
So I got myself a cable
modem from the provider,
-
got myself registered and
now had Internet over cable TV.
-
Also, along the same lines, I figured:
-
Why not go and also do your phone
line over that cable provider
-
with your old phone number so that people
still can contact you when they want to.
-
Now, the thing is, when I finally
received the whole package,
-
I realized: Woh! Wait!
Something’s wrong here!
-
That’s an analogue phone line!
Are we, like, in 2015 or is it 1994?
-
So, instead of the usual digital
stuff that I am used to,
-
I just got myself an analogue phone line.
-
So I had to put myself
another box in there
-
that would convert the analogue phone
line back to a digital phone line,
-
so I could route it in my house to
another line, to another machine
-
that would then go and
route it to my phone.
-
You see the problem in there?
-
Yeah, that whole stuff over there
just doesn’t look right, right?
-
Why would you go and convert
something that is obviously digital?
-
I mean, the stuff that goes into
your cable is obviously digital, right?
-
Kind of obvious…
-
and convert it back to analogue
and then back to digital
-
just to be able to do a phone call.
-
So I called up the technicians, Support,
and said: “Hey guys, you know what?
-
Isn’t there a way I can,
like, directly access
-
whatever you have there and go
and use digital throughout?”
-
And the guy said: “Well, you know what?
Actually, behind the scenes,
-
we’re all just running SIP.
It’s just a normal SIP server.
-
Just normal voice-over-IP,
nothing special about it.
-
So, if you know what you’re doing,
just go ahead and connect to it.”
-
laughter and applause
-
Challenge accepted.
-
So, what we learned from
Felix earlier in his car talk:
-
It was: What do you do when you
don’t want to brick your own system?
-
Of course, you buy a new one
on ebay. They’re really cheap,
-
just go and get a cable modem
and then you can go away and
-
treat it with the kind of love that you
want a device to be treated with.
-
laughter
-
Turns out, my modem is actually
just running Linux. Hooh! Nice!
-
That fits me pretty well!
-
And it’s just a normal ARM system.
-
Well, the only special
thing is: It’s Big-Endian.
-
But then again, I’m kind of used to
ARM by now, why not just go away
-
and like go around and just
look at how this thing works.
-
And, well, we really just want to
get this voice-over-IP stuff working,
-
so take a look at how this
voice-over-IP stuff works on the device!
-
Turns out, there’s actually a normal SIP.
-
SIP works on port 5060 usually.
-
Normal SIP client running on
there, but this IP looks weird.
-
So, my external IP looks different.
-
And my internal IP is different, so
where does this IP come from?
-
So I looked at the IP list
of my device and figured:
-
Well, something’s weird here. I have
a lot of IPs in there and connections
-
that I really don’t know
anything about. Hm.
-
So down here, is obviously my phone line.
-
And up here, is something else
that I have no idea what this is about.
-
So I figured: Let’s go
and dig a bit deeper.
-
And see what’s actually happening there.
-
So how does DOCSIS work?
This is just a small introduction,
-
like high-level introduction,
on how the routing runs.
-
So basically, you have the cable modem
that is connected using your TV cable line
-
to a CMTS, just a translation service,
-
that then takes all of the DOCSIC-specific
stuff and just basically gives you
-
an IP routing over into something-
something-something behind it.
-
However, it doesn’t just give you one
line. It actually gives you three.
-
It gives you one line for your Internet.
Makes sense, right? You want
-
to get online. That’s the one you actually
see when you plug into the device.
-
It also gives you another line for VoIP.
-
And it gives you one more line
that I would call the “Admin” line.
-
It’s the provisioning line.
-
Now, let’s start with the Admin line.
That sounds the most interesting, right?
-
laughter
-
What does the Admin line do?
-
Well, in the end, a modem in the DOCSIS
network is just a normal client
-
like in your Ethernet network.
-
So the first thing it does
when it gets online is:
-
it does a DHCP request.
And on the DHCP request
-
it goes and gets an IP address
and gets all the information it needs.
-
And it also, well, it’s kind of sane,
it’s just a normal DHCP request.
-
It also, however, gets something
similar to PXE booting
-
where it gets usually… in PXE booting you
would get an executable that you’d run,
-
here, you get something different.
Here, you also get a file
-
that you need to download
using TFTP just like with PXE.
-
However, in this case,
it’s a configuration file…
-
– There you go –
…configuration file…
-
…that you just receive using
PXE to your cable modem;
-
and then, the cable modem is configured.
-
Now what is inside this Provisioning
File, that’s what I call it? Well,
-
there’s interesting information like: What
is your firmware update filename called?
-
If you want to update your firmware
or if the provider wants to have you
-
update your firmware.
How much bandwidth do I have?
-
laughter
-
I hear, people have been
playing with that one…
-
laughter
-
And, well, since it’s just a normal TFTP
request you can just do it yourself, too.
-
This is my configuration. You just go, get
it, and you have your configuration file.
-
Now, the interesting thing that I realied
when I first started doing this was:
-
Sure, this is my configuration file.
But what about configuration files
-
from other people? Well, you
go and get the MAC address,
-
if you have the MAC address you
just go and get it and there you go:
-
You have the other people’s
configuration file.
-
laughter
-
Easy as that, right? That’s the
way it’s supposed to work.
-
applause
-
The actual effects of that,
we’re going to come to that later.
-
Let’s just declare TFTP,
the whole access to that,
-
as “slightly insecure” for now.
-
laughter
-
But now, if you’re an ISP, you want to
monitor what your people do, right?
-
So imagine, you’re the admin there.
-
Just imagine, you’re one
of the good guys, right?
-
And you want to see what are those
people on your modem doing.
-
Are they, like, downloading
too much content?
-
Because you obviously cannot filter
or find that out from the other side.
-
So, what do you do? Well, you obviously
send the industry standard for that:
-
An SNMP request. Using a
password that only you know.
-
laughter
-
Send it over to the cable modem
and the cable modem then goes in
-
and replies with the respective
reply saying “Oh, yeah, sure,
-
I got that piece of information,
there you go, you have it.”
-
Oh, that was too quick!
-
But how does your modem
actually verify that password?
-
Yeah, you guessed right: Using
the Provisioning File, obviously!
-
laughter
-
Once you download the Provisioning File
from any random modem in there
-
– including yours – you end up
getting an interesting password.
-
laughter
-
However, they actually
did at least one thing:
-
They limited the address range you are
allowed to access those devices on.
-
laughter
-
Yeah…
applause
-
As a hint for those who did not clap:
-
This means, everybody
who is in that network.
-
But how big is this network?
-
I figured: Why not just give it a try
and ask some people in Hannover
-
whether I could just get
their MAC addresses
-
and see how far I could get.
-
Just send an SNMP request over,
I had the password now, right?
-
And ask that modem:
-
“Please tell me everything you know!”
-
And it replied!
laughter
-
There’s a lot of interesting information,
SNMP, you wouldn’t believe it!
-
So this is obviously just stuff like
“Oh, yeah, I’m this and that modem!”
-
But there’s more in there.
There’s, for example…
-
this is my public IP address!
-
– in case you’re searching
for someone specific. Or…
-
these are my internal MAC
addresses and IP addresses.
-
In case you’re searching for some
specific notebook that someone
-
stole from you or so.
laughter
-
Or… this is my Provisioning File, in
case you just happened to port scan
-
all of the machines out there and
ask them using the same password
-
that they all share on what their
Provisioning Files could be called.
-
clears throat
-
Of course, I never did that. Right?
-
laughter
-
So, I would say, the whole SNMP story
isn’t “really” all that secure either.
-
But at a certain point in time, like when
the modem actually doesn’t work
-
like the way you would envision
it to be or if you just need to do
-
more administrative stuff, the admin wants
to have more access than just SNMP, right?
-
This is kind of isolated to a few
specific pieces of information.
-
You want some more hardcore access.
Like real go down into a real shell.
-
How do you do shells in 2015?
Audience: TELNET!
-
Alexander: Telnet. Exactly!
laughter
-
applause
-
We’ll actually get to the point why
Telnet was a good idea later, but…
-
that’s 30 slides down or so.
-
We already managed to get an SNMP
connection working to a different modem,
-
let’s just try the same with Telnet
and see how far we can get.
-
We can go in and just Telnet in and it
replies and says “please give me a login”
-
Hm. Now where do I get this login from?
-
laughter
-
Turns out, the administrator needs to
provide that password just the same
-
to the modem, which needs to verify it.
-
Based on configuration. Which it gets
from the Provisioning File. That…
-
I think you see the point.
-
So in the same Provisioning File that you
can obviously again download for every
-
single user in the network
you also have the password.
-
In plaintext.
-
That’s the part that actually took
me the longest in this whole thing.
-
I spent weeks trying to
figure out what hash this is.
-
raging laughter
-
big applause
-
So if we try to log in to the server
using those credentials we got,
-
we get greeted with a nice
command line interface
-
for poor Mr. Admin at our provider’s side.
-
But I don’t really like those,
like, boiled-down interfaces.
-
I want a real shell.
I want to load kernel modules.
-
I want to filter all my network traffic.
-
I want to reroute everything that
modem does to a different machine.
-
I want to rewrite the VoIP
client to instead do… either way!
-
So I want to do something real.
Let’s do the help command
-
and it tells us that there’s a
cool command called “shell”.
-
laughter
-
Ah yeah, there you go, got a shell!
-
By now, at that point, I can actually
go and do anything I want to that modem.
-
I got full root access. By the way,
all the modems run every single
-
piece of software running on there,
including your web server and your
-
SIP server and anything as UID 0.
Which is a good idea, right?
-
So, I now got shell access so
I can do anything I want.
-
I can re-route all your traffic,
I don’t, obviously, but
-
this is basically where we
went half a year ago.
-
Another thing to note is that
– since it’s so annoying to generate
-
different passwords for different devices…
-
Yeah, yeah, I know.
-
You just use one password
for all, right? It’s good enough.
-
So you don’t even have to read your
other person’s Provisioning File,
-
you can just use your own password
that is in your own Provisioning File
-
which you already have on your modem
because you’re provisioned yourself.
-
The only notable exception that
I found to this whole scheme
-
– I mean, you could basically go
and log in to any modem out there,
-
except for Fritz!Boxes.
applause
-
Yeah, congratulations everyone! Kudos!
-
So, apparently, AVM are the only ones
who did not follow the standard scheme
-
from my provider and instead said: “No
no no, guys! You don’t do the firmware.
-
WE do the firmware”, and they just
don’t like to enable Telnet. Apparently
-
there are people in that company that
actually know what they’re doing.
-
So, I would say the whole Telnet
access thing isn’t exactly…
-
I wouldn’t mark it “secure”
either. Naahhh… naaah…
-
But we didn’t really come here
for the Admin network, right?
-
I was just… it happened to be around.
I just looked at it and… njeeeeeh.
-
We wanted to go and do
voice-over-IP! Hah!
-
Yeah, so how does VoIP look
like? It’s kind of similar.
-
It also does a DHCP
request in the beginning.
-
DHCP is usually fine, I mark
it with a green tick here.
-
I’ll leave it to others to further
dig down into that part.
-
It does the same TFTP bit so if you just
go and – instead of downloading your
-
Provisioning File from your own modem,
from the RAN, from the admin network –
-
you just go and get it from the other MAC
address and there you go, you have it.
-
Nicely enough, all those cable providers
registered consecutive MAC addresses,
-
so if you have one,
you also have the others.
-
Just… You basically just ask a friend:
“Give me your MAC address that’s
-
written on the box” and you basically
have everything you need.
-
SNMP is the same thing.
You can access it using SNMP.
-
The really nice thing about
SNMP here is that the box also
-
tells you the other accesses it has, so
if you only have one IP address, or…
-
I also have a nice DNS service internally
that tells you what the IP address is
-
to a certain MAC address, so you just
ask the DNS for the MAC address of
-
the VoIP access, then you go and
SNMP, ask it for the IP address
-
of the admin network, and
there you go. You’re in the box.
-
However, the really interesting bit
on the voice-over-IP network is SIP.
-
Since… you want to do VoIP, right?
That’s what the whole thing is about.
-
So VoIP basically works… the way that your
modem wants to go and do a phone call.
-
So how do you do a phone call with SIP?
-
You need to provide data like credentials,
like, tell the other side, the server,
-
how you authenticate yourself.
-
Which, obviously, is written
in your Provisioning File.
-
So, you use those and tell the
server: “I want to do a phone call”
-
and there you go: You do a phone call.
-
Now if we look at this Provisioning File,
you can see that it contains your server
-
and your user name and your phone number
-
and your… well, basically everything
you’d need to log in into an SIP server.
-
Now, since I can read, anybody
else’s Provisioning Files, …
-
laughter
-
So, imagine I’m this user up there. Right?
-
And I’m just doing a normal call
as this phone number up there.
-
Well, maybe there’s this
other guy in the network
-
who just goes in and downloads
your Provisioning File
-
and, well, he gets all the credentials
he would need, so he gets
-
the same phone number and
then he can just go and do a call.
-
Hm. Yeah. Maybe I should have
registered a few 0900 numbers.
-
Now the really interesting part here is –
it also works the other way!
-
You register for it and if you’re
the fastest one registering it,
-
the other modem doesn’t get the
chance to receive calls which means
-
now you receive the calls and then you can
just tell the other modem that there was
-
a call, just that, by now, you actually
route all the traffic through your modem
-
and you can listen to all the voice data
that there is on the line. Yay!
-
Yeah…
laughter
-
Not sure it’d be a good idea to
talk to your lawyer around…
-
Using this line for secure stuff
is probably not the best.
-
I wouldn’t mark SIP as secure
on this thing, either.
-
But at this point, so on the Telnet
access and on all the other parts,
-
I was, like, sure,
I can fix it for myself.
-
I’m an egoist, right?
I can fix it for myself.
-
I don’t care about the rest of mankind…
-
I do, but I can claim that!
-
I can just as well ignore all the
others and say: I fix it for myself.
-
But for voice-over-IP, I can’t.
Because I’m completely out of the loop.
-
This other guy, he could just go and
steal my credentials, because he can…
-
and there’s nothing I can do about it.
-
So at that point, I was kind of scared
that someone would be able to hack me.
-
So I started to think about
how to fix this thing.
-
Now, the first thing that comes to
mind is obviously: You as a user
-
go and pick up the phone and call
the service line from your provider.
-
laughter
-
Yeah, I don’t think, that’s a good idea.
laughter
-
Nah, no I didn’t want to go down that
road, nah… So, instead, I figured,
-
I’m going to call someone else.
I’m going to call a couple friends.
-
laughter and applause
-
applause
-
Gonna call a couple of friends from
Heise, thanks to my Linux work, I knew
-
a few of those, and they also tend to
do security, which kind of falls into
-
this whole thing and used them as a proxy.
-
So that nobody could actually go and
sue me until things were public.
-
So, imagine what the provider
would do when he hears
-
that I hacked into their Telnet account.
-
Sure, you’d do the obvious thing:
You’d replace Telnet with SSH, right?
-
It’s what everybody would do. It’s the
first thing. You look at this and think,
-
like, “Oh my god, this is 2015,
why would you be doing Telnet?”
-
Well, the answer is pretty simple. Emm…
laughter
-
Take a look again. It’s not as simple
as you think. Take a look at it again,
-
there’s this Provisioning File. SSH
actually gets different credentials!
-
So, the SSH credentials
are actually down here.
-
And the password is different
from the one on the top.
-
I don’t know what the password is.
-
But I can tell you that the
password hash is really cool!
-
So, the password hash is something
that comes from VxWorks, so I’m pretty
-
sure that there are more devices out there
that might be interesting to look at.
-
The VxWorks hash actually
works in a really simple way:
-
It creates a checksum of your input that
lies somewhere between those 2 numbers
-
and then creates a fancy String out
of them based on some heuristics.
-
But essentially, the whole password down
there boils down to just a single number
-
that is basically, in a realistic case,
the upper limit is 40 characters,
-
so you’re not going to see
a password that long,
-
realistically you basically check around
100 passwords and any hash out there,
-
any password that’s available, you
already cracked it. Which means,
-
there are so many collisions in this
hash, which I wouldn’t even call a hash,
-
that I don’t know what the original
password is like… I don’t know.
-
But this one works pretty well!
-
laughter and applause
-
applause
-
So we go ahead and we log into this
machine and we type in our collision
-
and… there you go! We got
the same thing as before!
-
So we told them again: “Guys,
look, it’s not as easy as that.
-
You should probably take a bit
deeper breath and take a look
-
at how things actually are broken.”
-
Which, turns out, they did!
So what happened next?
-
We had this whole huge mess with
lots of services that are all attackable
-
and everything’s just wholly broken.
-
That was two months ago.
-
There were some circumstances
why we just couldn’t tell them earlier.
-
And we basically told them: “Guys, you
know, in 2 months’ time we’re going to do
-
a talk here and everything’s going to
be public so you might want to fix
-
your network until then.”
laughter
-
So the first thing that they did is: They
added a check to their TFTP server
-
to verify whether you’re actually eligible
to download this Provisioning File.
-
applause
-
So now, you can only download your
own Provisioning File. Which is great…
-
finally! I mean, this is the obvious
thing to do. So that one’s fixed.
-
Then, they went ahead and said: Well,
there’s no real reason why one modem
-
should do SNMP traffic with another.
So they just added a firewall, saying,
-
we’re blocking SNMP traffic
between different machines
-
– problem solved!
-
applause
-
The same for SSH – they went ahead and
said: There’s no reason why you should
-
be doing TCP between
one modem and another.
-
Problem solved!
-
applause
-
And because the VoIP access credentials
-
are actually part of your Provisioning
File which you can now
-
no longer download from somebody
else, that one is fixed too.
-
Awesome! shy applause
Go ahead, go ahead, clap! It’s awesome!
-
applause
-
Thank you, ISPs. So after two months,
you actually managed to limit me
-
into the borders that I was supposed
to be in, in the beginning.
-
It’s cool!
So what do we have…
-
Please guard your networks even if you
believe that somebody couldn’t go in
-
– they probably will.
-
Because, as soon as a customer
can access your device physically,
-
which kind of happens to be the
case with a modem that’s sitting
-
in your apartment,
-
that guy can access your network.
There’s no way you can prevent it.
-
So don’t believe that the border
of your network is the home.
-
The border of your network is
the cable going into that home.
-
The same way goes the other way
around: If an ISP gives you a device,
-
don’t trust that thing.
-
Seriously. They can do anything they like.
-
And sometimes, somebody else can, too.
-
In this case, according to my provider, I
was able to access 3 million devices.
-
applause
That’s quite some number.
-
applause
-
Also, the press is your friend. If you
are afraid of revealing something,
-
tell someone who can do it for you
-
and usually, things go out well.
Let’s hope for the best.
-
And then, this whole thing went
online in the beginning of the week
-
and there were a couple of questions
on the forums that I read
-
and I just wanted to take
the time to reply to those.
-
First thing that always comes
up is: “Is this a conspiracy?”
-
Like “Oh my god, this
is the NSA backdoor!”
-
No way. I mean, seriously,
those guys are not that stupid.
-
They have their own front doors,
they don’t need backdoors.
-
laughter
-
This really is just a case of “If we don’t
secure things, it’s going to be easier
-
for us.” Njee, it was
easier for everybody,
-
including the ones who
shouldn’t have access.
-
So, no, this is not a conspiracy. This is
not some backdoor from some agency.
-
This is really just a matter of a
company not doing their homework.
-
The same thing goes for other providers.
-
My cable just wasn’t long enough
to connect to some other country
-
so I don’t know whether other
DOCSIS networks are affected.
-
From the best of my knowledge:
Yes, they are.
-
I’m not allowed to tell you to check.
-
But if you happen to have
that idea on your own…
-
laughter and applause
-
applause
-
No animals were hurt during
the production of this movie.
-
laughter
-
All the passwords were changed, so if you
happen to know the real passwords,
-
you probably had a good laugh
during the presentation.
-
If you don’t know the real passwords,
njeeee, they are different.
-
To the best of my knowledge, all of that
knowledge that I just gave you is
-
completely useless to you,
because all the issues are fixed.
-
Thank you.
-
applause
-
Herald [to Alexander]: Q&A?
[Alexander nodding]
-
Alexander: So now we can
go for questions if you like.
-
So please… or… you go
ahead and announce it.
-
Herald: So if you have questions,
run towards a microphone and
-
stand behind it visibly.
The first one was on number 4.
-
Q: You were talking about taking
a couple of weeks to get to know
-
that the password wasn’t
hashed but plaintext.
-
So how long did this whole
exchange in total go on?
-
How much facepalming and
how many hours did it take for you?
-
A: So I didn’t spend full time on it,
I really literally just whenever
-
the baby was crying I just went up
and figured “I can do something”.
-
It’s not… I basically got
cable access two years ago.
-
I first got into the modem
about one year ago, I think.
-
That’s when I started looking for real.
-
I basically ended up digging
deeper and deeper, right? It’s not…
-
VoIP, for example, I only realized the
whole voice-over-IP story in August.
-
Since I just didn’t look before. I was
like so excited to see all the other bits.
-
shy laughter
-
Just didn’t look.
-
Herald: Now number 1, please.
-
Q: Are you really sure that the TFTP
Provisioning File fetching is secure now?
-
Because… do they do some MAC
integrity tests for MAC spoofing?
-
A: Yeaaaaah…
-
laughter
-
The problem is the law, right? I’m not
allowed to tell you to try it yourself,
-
I’m not allowed to tell you that I don’t
think that anything on the physical layer
-
is insecure. I’m not allowed to tell you
that… I mean there’s so many things
-
I’m not allowed to tell you about
this whole network… I haven’t tried.
-
I really just went in and said “TFTP
Fetch and see whether I can get it.”
-
laughter and applause
-
applause
-
Herald: Number 7 up
there on the balcony.
-
Q: Hello. My question is, in the
beginning in your config files,
-
I think there was something about traffic
priority or network priority as well.
-
Did you play around with that one as well?
Is that something about Net Neutrality,
-
maybe?
A: Ahh, that’s an interesting…
-
OK, so, it’s not about
Net Neutrality at all.
-
It’s about QoS of different services,
so they basically say that
-
VoIP traffic gets higher
priority than the other bits
-
since you want to have low latency
on voice-over-IP traffic, obviously.
-
So that has nothing to do with
Net Neutrality in this thing at all.
-
I did play around with
those settings, just because…
-
coincidentally, right the day after
the Fahrplan got released,
-
my account got throttled to 80 kBit/s.
-
I don’t know why.
Could be related, could be not.
-
But I figured, “I’m paying for 100 MBit/s”
so I should probably get 100 MBit/s
-
and started to look at those things.
-
I did not manage to actually convince
my modem to get me more.
-
Q: Did you change the
bandwidth in the settings?
-
Herald: No dialogues, please.
-
A: Yes, I did change the bandwidth.
It’s not… my guess is,
-
they’re also QoS’ing on the
other side. But if you want to
-
verify it, I’m not telling you not to.
-
laughter
-
Herald: Number 2, please.
-
Q: Yes. So at first, thank
you for the nice insights.
-
I’m a cable user, so I’m interested here.
-
And I want to, again, make a
statement on the Provisioning File.
-
You should have told them that the
Provisioning File fetching in this way
-
isn’t a good idea anyway.
-
And I personally would believe
if they do not can transfer it
-
via a completely different channel,
it will not get really secure.
-
A: They can not do it differently
because it’s part of a standard.
-
There’s a DOCSIS standard which
all the modems have to adhere to
-
and that’s part of the standard.
They cannot do it differently.
-
If you want to have it done
differently, you have to tell
-
the DOCSIS standardization
committee which is in India.
-
Q: Yes, so I’ll talk to them. Thanks!
-
Herald: Now, we’ll have a
question from the Internet.
-
Q: Could two modems be
programmed to talk among
-
themselves directly,
bypassing the ISP firewall?
-
A: Say it again.
-
Signal Angel repeats question more slowly
-
A: You mean with the new scheme
or with the old scheme?
-
With the old scheme, it was…
you could just go and route through it.
-
With the new scheme… you…
not with the official modems.
-
laughter and applause
-
applause
-
Herald: And number 8 on the balcony.
-
Q: Did you find any traces
of TR-069 in this thing?
-
A: I did on the AVM boxes
that were secure, yeah.
-
So that was the only bit that actually
ended up making a lot of sense.
-
TR-069 is a pretty nice standard.
You basically have authenticated
-
– I think it was even HTTPS – traffic that
basically goes and pokes the server
-
to get you a firmware update. It’s a
perfectly nice way of provisioning
-
such a system. It’s definitely a
lot different from the usual way
-
so on those DOCSIS modems, the usual
way to tell it to get a new “firmware” is
-
either to tell it to reboot and get a new
file from the provisioning server or
-
to just poke directly through SNMP to tell
it: “Go to this TFTP server over there
-
with this file name and
flash it onto your Flash.”
-
laughter
-
No, I have not tried to spoof the
privileged IP address range.
-
laughter
-
Herald: Now it’s number 4 again.
-
Q: The question I have is:
-
When you tried to first
contact them via Heise,
-
was there any way they
might have tried to
-
convince you to not
do the talk and if so,
-
would there be an itch on your head?
-
A: They did not try in any
way whatsoever. Zero.
-
Q: Do you think that was due to
the credibility or do you think
-
they thought “Oh, we screwed up”?
-
A: I don’t know. I don’t think they
thought any other way would work at that
-
point in time. Since the press was already
involved, they are not gonna pull back
-
their story, there’s nothing
else they can do.
-
Q: Thank you again.
-
Herald: Before I hand the microphone,
do you want to do the entire 24
-
remaining minutes Q&A or
do you want to put a limit?
-
Graf: No, I think 24 minutes Q&A is fine.
We can always cap it later on, right?
-
Just go and ask. Ask as much as you like.
-
applause
-
Herald: The Internet, again.
-
Q: How much of this would have been
possible if the modem had been
-
in bridge mode?
A: My modem was in bridge mode.
-
laughter
-
Herald: And number 6.
-
Q: Do you have an idea how
long this has been that way?
-
And do you have any
specific reasons to believe
-
what group of people
-
might have abused these problems?
-
A: I don’t know. I did not see anybody
else on the network but it’s really hard
-
to see someone in a
sea of 3 million devices.
-
I am not aware of anybody exploiting this,
-
so I can only state what Vodafone said.
-
And they said that nobody else
did exploit those problems.
-
According… as far as time… and
I believe that one actually… it’s…
-
I don’t think that anybody
did. Which is surprising
-
since this whole stuff was kind of obvious
-
but apparently nobody thought of
digging into their modem before.
-
The one thing about the timing is:
-
Apparently, they already,
Kabel Deutschland,
-
basically already does
Internet for 10 years by now
-
and there’s very little reason to believe
it’s been different in the beginning.
-
So it was probably vulnerable
for about ten years.
-
That said, in the beginning, they
were not even using DOCSIS 3.0,
-
which did not really do real encryption,
so at the end of the day you could
-
just do whatever, any ways on the network.
-
Back in the day. By now,
it’s only halfway complicated.
-
Herald: Now number 1.
-
Q: Yes, thank you for the talk, too.
-
So it’s completely possible that they may
have not found out that somebody else
-
accessed this before and maybe already
flashed a lot of devices with another
-
firmware which is still
listening to his commands?
-
With the new setup. Because
he changed the firmware.
-
A: They did not… okay, they did update
the firmware at that one point in time
-
when I showed that they switched to SSH.
-
They did not change the
firmware ever since. So
-
all the services that I was talking about,
they are still running on your modem.
-
Q: Okay, but they can’t be sure that there
is another firmware by somebody else
-
on routers running. If somebody else
maybe thought of making a bot net,
-
before all of this came up,
in the last 5 years or 10 years,
-
and already controls some devices
-
and they can’t be sure that their firmware
is not running on those devices.
-
There can be still devices somewhere
controlled by somebody else.
-
A: Sure. You have to, obviously, fake
all the information they receive
-
from the modem pretty well,
otherwise they get you onto the
-
security block that I am on.
But if you do that correctly,
-
you can probably just replace
all the pieces of firmware,
-
just ignore all the updates and try to
behave the same way as they’d expect
-
and then hope that nobody finds out.
-
It’s entirely possible –
I don’t think it’s very likely
-
but it is definitely entirely possible.
-
Q: Let’s hope there are no more
networks like this out there.
-
Herald: Usually, there
are no 2nd questions,
-
so… we still got comfortable time
-
but try to limit yourself to one question.
-
Now it’s number 2.
-
Q: Have you tried to change your
MAC address on the DOCSIS level
-
or also for the DHCP request
-
or how do they do authentication
of the modem over the network?
-
A: So, the authentication
works using certificates.
-
I’m actually not sure, I haven’t
read the standard on that side
-
whether the MAC address is part
of the certificate. I don’t know.
-
If it’s not, you can easily just
change it. I haven’t tried.
-
But then again, the modems
are – what? – 8 Euros?
-
Herald: Number 7.
-
Q: What other recommendations
do you have
-
– if someone were to have a
suspicion about a vulnerability –
-
for the research part and
for the disclosure part?
-
A: What do you have to do… I can’t give
you any legal or any advice on that one.
-
I can tell you that getting
somebody involved
-
that has done this before
is a really smart idea.
-
Because they’ve gone
through a lot of pain points.
-
The press is even better because
they have a really, really big lever
-
nobody wants to be in the press
for 2 months or whatever
-
just on negative news that there was
somebody who was legitimately trying
-
to tell them to improve their
network and they sued them.
-
So there’s a really good chance that
going via the press is going to keep
-
problems away from you,
but there’s no guarantee.
-
I cannot give you real – I mean legal
or any coherent – advice on that one.
-
I would… I mean, if I would find such
a thing again, I would definitely go
-
the same route. I would just call
up Heise and tell them and…
-
That went pretty smoothly.
-
And if… I mean, the really cool thing
is, they actually listen to the press.
-
If I had gone to the service,
they would have just said
-
“Sorry, wrong number,
I can’t help you.”
-
Herald: Now the Internet.
-
Q: How did you obtain the
original data? Did you use JTAG
-
or dump the device’s firmware
and run it virtualized?
-
A: Ahhhhh. Not sure how much of
that I should actually tell everybody.
-
Let’s say, I replaced…
-
You can actually see
this on the slide, wait.
-
makes “Tchtchtchtchtch” sound
-
Oh my god, this is going to take forever.
-
Okay, dududum, where’s my
mouse cursor? There it is.
-
Okay… So, I got a
picture of the modem…
-
…here. There you go. So…
-
…what you can see here, down there,
the white and the yellow cables,
-
those are the serial port.
-
And the IDE cable up there
that’s where the flash chip was
-
before I started fiddling with the modem.
laughter
-
Now, the flash chip is actually
in that socket up there.
-
Which means I could swap the
flash chip between a device I own
-
– BeagleBone Black, for example,
that’s a really nice spy interface
-
that you could just use to write those
-
– and then plug it back into the modem.
-
So I could replace the firmware
and get myself an initial shell.
-
As I mentioned earlier, I really
do not like to lose Internet access.
-
So this is not the modem that
I was actually using at home.
-
Instead, I just used that modem
to fetch a firmware image
-
so I could then look and see
whether there might be other bugs
-
that you could use.
-
Herald: Now number 8.
-
Q: Earlier, you’ve said that
– who was it… –
-
Fritz!Box was more secure and they
didn’t have the same vulnerabilities.
-
Do you think they simply didn’t use
hardcoded passwords and stuff.
-
So do you think they’ll be vulnerable
to similar attacks and that someone
-
probably, like you wouldn’t tell them,
but maybe they should look into it
-
or do you think that it isn’t possible
and someone should, like, prove you wrong.
-
A: From all I can tell, but this is…
I mean, just a gut feeling that I get
-
from looking at different firmware files,
-
the usual way, at least
the Linux based firmware
-
works on those systems is
that there’s TI creating a BSP
-
then they give it out to Motorola.
Then Motorola gives it out to CBN.
-
Then CBN gives it out
to Kabel Deutschland.
-
And then, each party of those
adds a few pieces of stuff.
-
That’s the usual way it
works in those devices.
-
Whereas in the AVM boxes,
things looked vastly different.
-
There was one firmware image
that even contained information
-
for some Austrian provider.
-
So instead of giving full
control to the cable provider,
-
AVM kept control on their own and actually
audited the stuff they were doing.
-
That’s the major difference.
-
applause
-
Herald: One more question
from the Internet.
-
Q: Do you know if they
still use unencrypted SIP?
-
A: Oh yeah. chuckles
slight laughter
-
A: Oh yeah.
loud laughter
-
A: Nothing in the protocols
changed at all, whatsoever.
-
They really just added a few firewalls.
-
So once you are on the physical layer,
you can read everything you like, yes.
-
Well, and you break through
the DOCSIS encryption, obviously.
-
Herald: Now the newly adjusted number 2.
-
Q: Thank you. Mine is
not so much a question
-
as I’d like to add some insight
and perspective to this.
-
I, myself, worked for several ISPs
-
and the… we… actually
I worked for an ISP
-
that had not this particular
issue, but a similar issue.
-
The way that it was fixed and
-
– you can look me up, I’ve worked
for several ISPs, you won’t know
-
which one had this problem –
-
but what was actually the fix
was a simple IP check.
-
So once you downloaded
from the TFTP server,
-
it was just checked if you did it
from the IP that was suspected.
-
So this issue may actually be
reproducible if you can somehow
-
get hold of an IP [address]
you weren’t supposed to have.
-
Like, say, spoof MAC address
or something like that.
-
That being said, I’d like to attach
a comment to the whole SIP thing, too.
-
You indicated that it’d be possible
to silently intercept the conversations
-
which is not necessarily the issue
because many SIP servers
-
can be configured
to allow multiple endpoints
-
so as the
– what’d you call it? –
-
the bad guy would be able
to pick up your calls,
-
you would also hear you
phone calling yourself.
-
A: Right, and if your phone picks
up within 0.01 microseconds,
-
then, yeah, there’s nothing
you can do about it.
-
It just rings again.
That’s the point about it.
-
Also, the other bit that
you have on the SIP server
-
is that that particular server actually
only allowed one endpoint
-
to be registered at a time.
At least from what I could tell.
-
It was some Huawei
box. I don’t know.
-
Herald: Number 3, please.
-
Q: Yeah, I attended this talk today
-
because I know that at the beginning,
when DOCSIS was introduced,
-
the modem were asking
for the configuration file
-
also over the Ethernet
port which is great.
-
And my question is:
-
Is there a way within the DOCSIS standard
so that the ISP can verify their hardware?
-
I mean, you… I have seen
the type and the vendor name
-
and the SNMP but you can
obviously spoof that.
-
Of course, firmware
binaries won’t run on the
-
wrong hardware, but…
-
A: I’m not quite sure
I’m getting what you’re…
-
Q: The question is: Is there
a way to control for the ISP
-
which hardware there is they’re using?
-
A: So I come from a
virtualization background.
-
And in my world, there is
no such thing. It doesn’t exist.
-
slight laughter
-
Sorry. If you can somehow
abstract it, you can abstract it.
-
Q:OK.
Herald: 8, please.
-
Q: Hi. I wanted to add on the
part with the MAC spoofing.
-
Because I had a modem
like that, like 5 years ago,
-
and actually I never went
inside the modem,
-
but I had some applications where
I needed a new IP address
-
in a short period of time…
-
loud laughter
-
And I remember that actually… the thing…
-
if you told the modem your MAC
address, a different MAC address,
-
you got different external
IP addresses back then.
-
I don’t know if things have changed
because it was 5 years ago
-
but… yeah… after what
I’ve heard from you,
-
I’m kind of unsure that things changed.
-
A: No, I’m fairly sure this is actually
accurate. From what I understand,
-
I never did that myself but I
heard from people who did,
-
the MAC address check and the
certificate check are actually separate.
-
So that if you own a valid certificate
from some random dude who happens to
-
actually pay for the service,
and you get that certificate,
-
and you’re not on the
same CMTS as that guy,
-
then you can actually go and, well,
-
basically say that you’re him even if
you have a different MAC address.
-
Which then, again, implies that if you
change the MAC address, you can just
-
be somebody else. Which
then again implies that…
-
maybe you can actually go and get
somebody else’s Provisioning Files, yeah.
-
slight laughter
-
Q: Well, yeah… not up to you.
-
A: Not going to try out.
-
Herald: Number 2, please.
-
Q: Yeah, you had this one
with one particular provider
-
and I happen to know that
there’s a second provider
-
using the same technology in Germany:
were they somehow involved in this loop?
-
I mean, it took Kabel Deutschland
two months to fix this and…
-
A: No, but they better hurry up!
-
laughter and applause
-
Q: Thanks!
applause
-
A: And, quite frankly, I do not believe
-
that this is limited to Germany
at all, whatsoever.
-
So… Yeah. Let’s see who’s faster.
-
Alright, end of questions, right?
Or is there any…?
-
Herald: It looks like we’re
at the end of questions.
-
The Internet maybe…?
-
No, the Internet doesn’t
have any questions.
-
There are 8 empty microphones.
-
So thank you very much for your talk
and thank you very much for the Q&A.
-
applause
-
postroll music
-
Subtitles created by c3subtitles.de
in 2016. Join and help us!