Satellite wifi maps in 60 minutes for 60 bucks

update 2009-12-03 - I’ve gotten some attention over this little project, including some time on a local radio station!

One Third Of Wireless Networks Are Exposed To Intrusion

Press Release


Project Gobox” has me testing some gps and wifi equipment, specifically the “Black Intellinet Wireless G USB Adapter 503457” and the “Pharos IGPS-500 GPS Receiver”.  So far I couldn’t be happier with the performance.  For about $30 each, its a good deal.  Build quality seems decent.

Pharos iGps 500

Black Intellinet Wireless  ADP-503457

In the future I will be putting these devices through their paces, but for now some informal testing (i.e. fun).

In about 40 minutes I collected hundreds of gps/wifi data points using kismet.

So data in hand i had a sinking feeling… Great I have hundreds of data points, what do I do with them?

The answer is “gpsmap”, a nifty little app bundled with kismet that has tons of mapping options.

Quick searching revealed an excellent post from the California Soil Research Lab (of all places) that got me started on my way.  While I haven’t had much time to tweak the parameters, I have already impressed my geek friends and shocked the less geeky ones when I explain “green = unsecured wireless”.

Here are the commands I found useful:

<span style="color: #808080; font-style: italic;">#interpolated power map</span>
 gpsmap -S <span style="color: #ff4500;">2</span> -e -n <span style="color: #ff4500;">1</span> -t -l ssid  -k -p -Q <span style="color: #ff4500;">20</span> -q <span style="color: #ff4500;">2</span> -P <span style="color: #ff4500;">30</span> -z <span style="color: #ff4500;">2</span> -d <span style="color: #ff4500;">1000</span>,<span style="color: #ff4500;">1000</span> \
 -o map1.<span style="color: black;">png</span> Kismet-Sep<span style="color: #ff4500;">-03</span><span style="color: #ff4500;">-2006</span><span style="color: #ff4500;">-1</span>.<span style="color: black;">gps</span>
 <span style="color: #808080; font-style: italic;">#range map</span>
 gpsmap -e -n <span style="color: #ff4500;">1</span> -t -l ssid  -k -r -R <span style="color: #ff4500;">15</span> -q <span style="color: #ff4500;">2</span> -d <span style="color: #ff4500;">1000</span>,<span style="color: #ff4500;">1000</span> \
 -o map1.<span style="color: black;">png</span> Kismet-Sep<span style="color: #ff4500;">-03</span><span style="color: #ff4500;">-2006</span><span style="color: #ff4500;">-1</span>.<span style="color: black;">gps

</span>

So here is what I came up with after 40 minutes of driving and about 10 mintues messing around with gpsmap

map1map2

Additional:

Google Map

It’s scary how much information you can gather with very little work

This wifi survey was a very spur-of-the-moment thing with very little planning or effort.  It makes me really wonder what can be gathered with some additional foresight and planning.  Any “wardriving” stories you’d like to share?

Getting Your Twitter Status From the Shell

This is probably greatly outdated. See the current twitter API here - Zach 20151109

Here is a quick shell script i whipped up to pull twitter status from the command line. The eventual plan is to pop this in a cron job, pipe it into a file and include this in a php page. Easy status updates for a website headline

#!/bin/sh
USER=$1
wget -qO-
http://twitter.com/statuses/user_timeline/$USER.xml?count=1 |
xmlstarlet select -T -t -v '//text'

Call it like…

./twitter-status.sh <em>twitterid</em>

It needs:


So do you have any interesting uses for twitter?

This shell script was mostly for proof of concept  and playing with the twitter api.  I find the ease of use and hack-abilty to be excellent whenever I can quickly and easily get data to and from a simple script.  Do you have any other neat shell scripts for twitter?

Updating Your Twitter Status From a Script

Just a quick little script modified from the one found here http://cutup.org/anize/?twitter_bash_curl

I hardcoded the username/password and stripped out the “friends” statuses. For my purposes I only need “my” current status.

The script is run from crontab as follows:

*/5 * * * * /home/zachpeters/appliedresearchwi.com/etc/twitter.sh > /home/zachpeters/appliedresearchwi.com/etc/twitter.status

Code - note the “username” and “password” need to be changed:

#!/bin/bash
# Originally from - http://cutup.org/anize/?twitter_bash_curl
function getlastpost {
    curl -u username:password 3 --connect-timeout 5 -s -n $1 | awk '
        { sub(/^[^>]*>/,”",$0) }
            /text/ {
                sub(/<[^<]*>$/,”",$0)
                m=$0
            }
            /relative/ {
                sub(/<[^<]*>$/,”",$0)
                at=$0
            }
            /_name/ {
                sub(/<[^<]*>$/,”",$0)
                #print $0 ” : ” m ” [" at "]”
                print $0 ” :: ” m
            }
    '
}
getlastpost http://twitter.com/statuses/user_timeline.xml?count=1

I have found this method to be very useful

for automated scripts.  I will run cron jobs and then get updated via twitter.  It makes sense, its simple, its quick, it comes right to my phone and I know instantly that things are okay.  This could easily be worked into other monitoring/alerting schemes when a full email is too much overhead.

Good idea? Twitter has been know to have some down-time in the past so I wouldn’t count on it for mission-critical stuff.  Is this something you would use? What other ways have you extended twitter?