Valerio Di Giampietro
IT Infrastructure Manager @
Valerio Di Giampietro is an IT Infrastructure Manager with a strong and deep technical knowledge and experience in many areas related to IT infrastructures: cloud based infrastructures, networking, web servers, Oracle and mySQL databases, ERP applications, large Linux installation, virtualization environments, storage area networking, IoT devices.
He has a long-lasting passion for electronics and technology since when he was a child, for this reason he studied and got a Master’s in Electronic Engineering.
He became a Linux enthusiast since the beginning: * he installed Linux on his 486 PC with 4 MB of RAM in 1993, * the year later, in 1994, he ran a Linux based Fidonet BBS, * in 1999 he introduced Linux in the company he was working for,
Interested in understanding how devices work, always tinkered with various devices: in 2010 reverse engineered a Fastweb router to find the default password knowing only the SSID, later published tools on GitHub to uncram some non standard router file systems and other tools to find default passwords for some Telecom Italia Alice routers.
More information available at: * LinkedIn: https://www.linkedin.com/in/digiampietro/ * GitHub: https://github.com/digiampietro * Docker repo: https://hub.docker.com/u/digiampietro/ * Personal web site: http://va.ler.io/ * Another web site: http://www.audiocast.it
Emails: * main: [email protected] * alternative: [email protected] * other: [email protected]
Talks
2018 | Introduction To IoT Reverse Engineering with an example on a home router |
---|---|
45'
|
Introduction to firmware reverse engineering process of IoT devices. The process, described with an example on a home router, is based on Information Gathering of hardware and software, Building of an Emulation Environment to run binaries, and Techniques to analyze, hack and modify the firmware.
The introduction to firmware reverse engineering process is described with a real example, done by the author, on a recent home router with the target to load a modified firmware overcoming the router protection that doesn’t allow loading of unsigned firmware (ref: https://github.com/digiampietro/adbtools2)
The process described is based on:
Information Gathering
hw: identify main device components (CPU, Flash, SDRAM, main components)
hw: locate UART and JTAG interfaces
hw tools: Bus Pirate, OpenOCD, Jtagulator
sw: get os image file or firmware file
sw tools: strings, file, binwalk, dd, jefferson, uncramfs etc.
identification of CPU, Flash, RAM, kernel version, C library, toolchain used etc.
identification of Original Manufacturer and Original Firmware Manufacturer
Emulation Environment using QEMU
select a QEMU machine and CPU reasonably similar to the IoT device (same CPU, similar kernel version, similar modules and libraries)
select a tool to build the kernel and the root file system (brief description of Yocto Project, Buildroot and OpenWRT build system). Buildroot will be used in the example and described in more detail
Buildroot and kernel configuration, generation of root file system with binaries and libraries with debugging information
Overcoming obstacles created by the firmware manufacturer
Running interesting binaries in the emulated environment
Use tools like strace, ltrace, gdb to reverse engineer the most interesting binaries
Analyze how the device works
the firmware upgrade process
CLI and Web interface analisys
main processes analisys
finding vulnerabilities
hacking into the system
hack the firmware upgrade process
replace the original firmware
Create a Firmware Modification Kit to simplify the firmware modification process
|