Category: Development

Gaining Root Access on Philips B120N Babycam

Update, I have a new philips babycam, and rooted it again, so I added some more info.

This is an older post, and after having contacted philips, they told me they had received a report of this issue months prior to my report. In the new firmware these problems don’t exist anymore, this doesn’t mean that the b120n is flaweless, because when you reset the babycam it reverts back to the old firmware, and you can root it.

I wanted to try rooting my B120N cam, and tried to follow Paul Prices Owning Philips In.Sight IP Cameras But unfortunately Philips decided to close all interesting ports in the firmware version my cam was running.

I did find a way to gain root access, and I wanted to add a recording of the process so you can try it yourself..

I setup my linux box as ‘router’ with mitmproxy and a hotspot, connecting my ethernet port and directing traffic trough hotspot -> mitmproxy -> internet
In short the steps you need to do:

  1. Install mitmproxy on your pc / notebook (plenty of good tutorials available online), to be able to capture traffic and alter responses
  2. Setup a hotspot, where you will connect your phone and camera
  3. connect your phone, run the insight app, and configure your cam / scan the qrcode
  4. Now your camera will connect to the wifi, once the insight app asks you if you want to ipgrade press i in mitmproxy and set the filter to .* to capture all traffic and halt on every request
  5. click yes on the upgrade prompt in the insight app
  6. press ‘a’ key to allow the requests per line, untill you reach the upgrade_fw.sh line (don’t press a on that line, we want to modify this request)
  7. hit enter on the upgrade_fw.sh and press ‘e’ to edit the request
  8. there will be an option to edit the url (I think it’s ‘u’) then point the request url to ‘http://yoururl.com/upgrade_fw.sh) where you set your own shellscript and ssh_config gile) and press enter, and hit ‘a’ to allow the request to complete.
  9. Your now have rootaccess to your camera.

    below you can find a sample upgrade_fw.sh and sshd_config you can use to complete the rooting.

For this setup I used mitmproxy to capture the traffic from the B120N when it was freshly connected to my wifi network.

When opening the mobile application I immediately got a message to update my cams firmware, when I hit update I saw multiple requests passing through:

Using papertrail logging in Slim Framework v3 with MonoLog

I was looking for a good way to group logs from different webapplications into one managable place, without too much configuration work on the different webservers, since some run on shared hosting, and some have different setups.

I came across Paper Trail App A hosted log management tool, which gives you the ability to aggegrate logs from different places into one location, and here you can filter and group different webservers together, and search the log history.

Simple database backup shellscript

I made a simple shellscript it will:

  • dump a few databases
  • create a tar.gz from them
  • scp a copy of the tar.gz to my backups folder on a remote server, this way I will always have a backup of my most important databases on a remote location.
#!/bin/sh

mysqldump db_name1 -u myUser -pMypassword > db_namedump1$(date +%F_%R).sql
mysqldump db_name1 -u myUser -pMypassword > db_namedump2$(date +%F_%R).sql
mysqldump db_name1 -u myUser -pMypassword > db_namedump3$(date +%F_%R).sql

FILENAME="compressed-$(date +%F_%R).tar.gz"
tar -czf ./backups/$FILENAME *.sql
rm ./*.sql
scp ./backups/$FILENAME [email protected]:backups/

Just save it in a file, and add it to your cronjob (crontab -l) I run it every 4 hours, by adding this to my crontab:

0 */4 * * * /home/user/db_backup.sh

 

git-ftp connecting but not uploading

I’m working on a small project for a client who uses a shared hosting environment. In order to use some sort of versioning,  I setup git-ftp so I can work on my development server and push the changes with git-ftp to the shared hosting ennvironment. This way I will not need to do any manual file picking and uploading. After the first git-ftp init command (where it will upload the complete folder) you can git-ftp push, so it will only push the changed files from the commits.

 

I had a small hickup setting it up, the git-ftp init would hang for 15 minutes and then display an error, so I ran it again with git-ftp init -v to see what was going on, turns out it connected but default git-ftp tries to use epsv connection, which wasn’t supported, so it was just connecting showing connected, with last message TYPE A, and them  waiting for a response and timing out after a set time.

in order to run in PASV mode directly you can use git-ftp init –disable-epsv