[img]http://i.minus.com/ieq6viOQ6szdE.gif[/img]
Wifi guys:
This is a tutorial I posted in the legion sub forum a while back, and I just got permission to re-post it. This is a good starting point for learning firmware hacking on your 3g or wifi devices.
Many consumer devices are far more capable than the limited feature set exposed by the manufacturer. To have complete (or near complete) control of a device a person must go beyond pretty interfaces all the way to the serial headers found on the motherboard.
The Goal:
- Near unlimited control of the device.
Requirements:
- A device with serial headers
- A multimeter
- Basic electrical knowledge
- Some wire
- Level shifter (in some cases)
Overview:
- Locate serial header
- ID serial pins
- Connect wires from serial pins to PC
- Connect to serial console via putty
In this tutorial I will use a wireless access point. In this case, I don't have the password to change any settings, but connecting to the serial console should give me root.
Step 1: Locate the Serial Header
![[Image: mYkgQ3r.jpg]](https://i.imgur.com/mYkgQ3r.jpg)
![[Image: STjMQXy.jpg]](https://i.imgur.com/STjMQXy.jpg)
Step 2: ID the Serial Pins
This is where basic electrical know how comes into play. There are typically four pins on each serial connector. At a bare minimum, a person needs at least three pins to control the device. One is a ground (GND), one is to receive output (RX), and one is to send commands (TX).
Identify the TX and GND connection using a multimeter set to DC voltage. Touch the black lead to a known electrical ground (usually the metal case or a large metal contact). Touch the red lead to each of the four pins. If the multimeter reads 0 volts on one of the four pins then that pin is either TX or Ground--If it is ground, it will also have continuity to ground which can be tested on a separate multimeter mode. TX will not also have continuity to ground.
![[Image: 2fY8bmh.jpg]](https://i.imgur.com/2fY8bmh.jpg)
*Using a DVOM to measure voltage between large metal ground and serial pins.
The remaining two pins will be RX and the not usually needed vcc. VCC will have a constant voltage of around ~3.3 volts while RX will have a changing voltage (if it is sending things for a to receive) .
Step 3: Connect Wires from Serial Port to PC
Once pins are identified, it is time to connect them to a PC. I use a TIAO USB Multi Protocol Adapter. It has the advantage of a TTL voltage shifter so I don't fry my device with PC power, and a USB port built in so I don't have to custom wire any adapters.
![[Image: VLehSvB.jpg]](https://i.imgur.com/VLehSvB.jpg)
![[Image: 9RqyyvM.jpg]](https://i.imgur.com/9RqyyvM.jpg)
Step 4: Connect to the Serial Console with Putty.
At this point everything is connected. Putty can be used with the serial setting to connect to our device via its serial headers. If gibberish appears on the screen, you should change the line speed (baud rate). Usually settings are no flow control, no parity, 1 stop bits, and 0 data bits. Line speed varies.
The following video shows the boot process as seen from the serial console, after which I'm dropped to a root shell. Although I had no password, I was able to make all configuration changes and read from the shadow file.
??



![[Image: aLep48U.png]](https://i.imgur.com/aLep48U.png)