I recently finished building my first MiniPwner – a tiny OpenWrt-based system for pen-testing. At only 2.25 x 2.25 inches, the device plus battery is still extremely small – it easily fits in a pocket, and could be hidden anywhere.
The device is based on the TP-LINK TL-WR703N, which uses a 400Mhz Atheros AR7240 CPU – not exactly a power-house, but enough power for standard pen-testing (or even just as a super-portable linux box). In cases where the 400Mhz CPU and 32MB RAM aren’t enough, you can easily use OpenVPN as a tunnel to run your tests remotely.
The total investment for the build was only $38 – though next time I’ll pay a little extra and get the 16GB drive – mostly for extra room when working with logs. The 4GB drive used in the standard build has plenty of room for the software – but I’d rather have the extra room to work with.
The build process was process was simple – thankfully the instructions are quite good, though I did have to change a few things to make it all work.
Step 1): To save looking, here’s a direct link to the OpenWrt image.
Step 4): I formated the thumb drive by mounting it in a Ubuntu VM, and used GParted to delete the existing partition, and created a 512MB swap partition, then the rest is ext4.
Step 16): Read step 17 first so you don’t feel so stupid for wasting time trying to figure out why step 16 doesn’t seem to do anything.
Step 21): I use WPA2 on my network, so I had to edit the
/etc/config/wireless a little differently:
option device wlan0
option network wan
option mode sta
option ssid <ssid>
option encryption psk2+tkip
option key <password>
More information about the wireless setup can be found here.
Step 24): My local wireless network is in the 192.168.1.x range, so this wasn’t working for me. Seeing as changing the wireless doesn’t make sense for me (way too many static devices), I had to change the IP address of
eth0 to deal with the issue. I updated my
/etc/config/network to look something like this:
config 'interface' 'lan'
option 'ifname' 'eth0'
option 'type' 'bridge'
option 'proto' 'static'
option 'ipaddr' '192.168.2.1'
option 'netmask' '255.255.255.0'
Once the change is made, you’ll need to execute
/etc/init.d/network restart – then update your PC’s static IP address to “192.168.2.111” and reconnect your telnet session.
Step 27): When executing the installs I was receiving this error:
opkg_install_cmd: Cannot install package <package-name>
To correct this error, I had to run
opkg update – after this the installs started working fine.
Step 27b): The install for
samba2-client was failing, as there isn’t a package by that name – though
samba36-client installed fine.
Overall, it’s a great little setup – I’m quite pleased.