If your browser doesn't support IFRAMEs, you can vote directly here.
Create your own user feedback survey
Showing posts with label FruityWifi. Show all posts
Showing posts with label FruityWifi. Show all posts
Thursday, December 17, 2015
Monday, June 01, 2015
toolsmith: IoT Fruit - Pineapple and Raspberry
Prerequisites
Wifi Pineapple
Raspberry Pi 2
Introduction
You could call this
particular column the Internet of Toolsmith. As much as I am a curmudgeonly
buzzword, catch-phrase hater (I lose my mind at RSA and refuse to go any more),
the Internet of Things, or IoT is all the rage for good reason. Once obscure
items are now connected and as such, at risk. The ability to load a full
operating system and a plethora of functionality on a micro device has become
trivial thanks to the likes of Raspberry Pi and Arduino. I’d like to point out
that the Pwnie Express PwnPlug Elite, built on a Sheevaplug, as discussed in March
2012’s toolsmith,
was amongst those devices that met the IoT bar before IoT was all the rage.
Kudos to that crazy pack o’ hackers for seeing the imminent future of security
challenges with smart devices. In 2013 Chris Clearfield wrote Rethinking Security for the Internet ofThings wherein
he stated that “the growing Internet of Things, the connection of physical
devices to the internet, will rapidly expand the number of connected devices
integrated into our everyday lives. They also have the potential to allow cyber
attackers into the physical world in which we live as they seize on security
holes in these new systems.” It is in that mindset that we’ll converge security
assessment tools and services, as implemented on a couple of tiny devices I’m
fond of, with ISSA Journal’s topic of the month. Normally, toolsmith focuses on
free and open source tools, and the software we’ll discuss this month continues
to meet that bar. That said, it’s impossible to explore IoT without some
related “things”, so you’ll need to make a small investment in one or both of
the devices we’ll discuss, or experiment similarly on related platforms. If you
were to purchase the Wifi Pineapple and the Raspberry Pi 2 (RPI2) kits I own,
you’d spend a grand total of $229. Much as the Pwnie Express crew did, the hak5
team started building WiFi penetration testing platforms on tiny hardware as
early as 2008. The Raspberry Pi project has enabled all sorts of makers to
build miniature attack or assessment systems on devices the size of a pack of
playing cards. We’ll drop Kali Linux on a Raspberry Pi 2 here. I chuckled a bit
as I wrote this as I was reminded that WiFi Pineapple, intended for WFi
hacking, was itself popped at Defcon 22. The
language in the resulting message is too salty to print here but it starts with
“Dear Lamer” and ends with “criminally insecure” which should convey the
general concepts. ;-) That said, the Hak5 team addressed the issues quickly,
and the device really is a sound, capable investment; let’s start there.
WiFi Pineapple
| Figure 1 – WiFi Pineapple |
Wifi Pineapple use is about
as easy as plugging in, connecting the included Cat5 cable to a DHCP-enabled
NIC, and browsing to http://172.16.42.1:1471.
“The WiFi Pineapple firmware is a heavily modified version of OpenWRT, packed with
tools to aid your pen testing.” Initial
username is root, you’ll assign a password during initial setup. I did flash my
Pineapple to the latest firmware, 2.3.0 as this was written, using the WiFi
Pineapple MK5 Infusion. Using the Network Infusion, I put my Pineapple in
Client Mode, so I could connect to the Internet for updates and install
additional Infusions. Using the AutoSSG Infusion I setup the AutoSSH service so
I could interact with a remote shell and download/upload file via SCP. Real fun
with a Wifi Pineapple can be had when you add Infusions. I immediately added sitesurvey, status, monitor,
logcheck, connectedclients, notify, and wifimanager as seen in Figure 2.
| Figure 2 – Installing Infusions |
Make sure you install all
Infusions to SD storage as there is much more available in the SD card, you’ll
quickly clog internal storage if you’re not careful.
While WiFI Pineapple is first
and foremost a Wifi attack platform, I believe it can be used as a defensive
platform as well, in particular a monitoring sensor particularly in an area
where many WiFi connected devices are in play and you’d like to monitor the
local IoT.
In the Logs Infusion I
followed the /tmp/pineap.log which logs probes for SSIDs by MAC addresses.
The PineAP Infusion, with MK5
Karma enabled, will allow you to filter under the Log tab as well. From the
Pineapple information content under the PineAP Infusion states that “MK5 Karma
is a module of the PineAP suite intended to host spoofed Access Points, or
honeypots. This is achieved by replying to probe requests with appropriately
crafted probe responses.” You can tweak MK5 Karma and Pine AP as a honeypot to
ensure only trusted, known devices connect in your environment. You can then blacklist
and whitelist both clients and SSIDs, then send notifications via email or
Pushover based on specific rules if you so choose. All the related Infusions
are noted in Figure 3.
| Figure 3 – Monitor and notify with Pineapple Infusions |
As a result, WiFi Pineapple, while a fantastic red team
tool, can also be used for defensive monitoring in a highly connected
environment where only trusted devices are a requirement.
Raspberry Pi 2
Loading Kali on a Raspberry Pi 2 is also quite simple and
is spelled out nicely on Kali.org. Grab a
Class 10 SD card and DD the latest image to the card from a *nix host. I ran dd if= kali-1.1.0-rpi2.img of=/dev/sdb
bs=512k, used gparted to
allocate (resize) all the available storage on my 32GB SD, popped the SD card
in my RPI2, and powered it up. You’ll login as root,
initial password is toor as
expected (change it), then execute startx.
Follow the steps in the Kali.org guidance to change your SSH keys as all ARM
images are pre-configured with the same keys. Initially, this installation is
missing almost all of the Kali packages, easily fixed as follows:
1) apt-get update
2) apt-get upgrade
3) apt-get install kali-linux-full
A bit of patience as kali-linux-full exceeds 3GB, and
voila, you’re running Kali on a kick@$$ wallet-sized computer!
Here’s a scenario I imagine a RPI2 being useful in for a
penetration test/red team exercises, given that it is both inexpensive and
concealable. You’re assessing an organization that has a significant public
area (lobby, customer services offices, conference rooms, and auditorium). The
organization offers guest WiFi and does not lock down numerous Cat5 wall jacks.
Your recon determines that:
1) There
is a keys-to-the-castle health services database on the internal organization
network that is your ultimate goal and primary agenda for the assessment
2) There
is a location in the public space near a cabinet and a large plant where a WiFi
enabled RPI2 (Figure 4) can be plugged into both power and one of the
unregulated wall jacks. Even if discovered in a day or two, you only need a few
hours.
| Figure 4 – Raspberry Pi 2 (in camera support case) |
After “installing” your device, you can access it over
the public WiFI as wlan0 is serving up SSH in the same IP range as your laptop.
You’re simply sitting in the organizations public café, seemingly browsing the
Intarwebs during lunch. As an added bonus, you find that the wired connection
to your RPI2 enjoys unfettered access to the internal (Intranet) environment.
You nmap it accordingly and discover a few hosts offering up HTTP and HTTPS.
You can kick in a little X11 forwarding on your RPI2 or tunnel through your
RPI2 and browse the sites directly from your laptop in the café. Sure enough,
after a bit of review, you discover that one of these web servers hosts the
front end for that health services database you seek. You quickly recognize
that the Security Development Lifecycle long ago left the building (may never
have entered) and that this front end is rampant with SQL injections vulns. You
ready SQLmap and strike while the iron is hot. You run the following from your
RPI2 and in four quick steps have dumped the patient db. Great, now you have to
write the report.
1) sqlmap.py
--url="http://vlab02.pneumann.com/patients13/?bill_month=8&sec=HSPO14"
--data="bill_month" --banner
2) sqlmap.py
--url="http://vlab02.pneumann.com/patients13/?bill_month=8&sec=HSPO14"
--data="bill_month" --dbs
3) sqlmap.py
--url="http://vlab02.pneumann.com/patients13/?bill_month=8&sec=HSPO14"
--data="bill_month" -D db337433205 --tables
4) sqlmap.py --url="http://vlab02.pneumann.com/patients13/?bill_month=8&sec=HSPO14"
--data="bill_month" --dump -D db337433205 -T dbo337433205.PATIENTS
The above gives you the database banner, the populated
databases, the tables in the db337433205
database, and then,yep, there’s the proverbial gold in that dump (Figure
5).
![]() |
| Figure 5 – SQLmap strikes gold from Kali on Raspberry Pi 2 |
This is but one example of an endless slew of
opportunities running Kali and other distros from this credit card-sized
device. Grab some spare SD cards and build out a few of your favorites, then
swap them in as you want to boot them up. Some RPI2 kits come with NOOBS on an
8GB SD card as well, which will help get you started and your feet wet.
Hackers/makers rejoice! I’m going to add sensors and a camera to my kit so I
can implement specific scripted actions when movement initiated.
In Conclusion
Working with the Raspberry Pi 2 or earlier versions allows
you so many options. You’ll recall that FruityWifi, as discussed in November
2014, is specifically tailored to Raspberry Pi, and there are Pwn Pi, Raspberry
Pwn (from Pwnie Express), and MyLittlePwny, amongst others. Grab a kit today
and get started, it’ll be great for your Linux skills development, and can be
used for attack or defense; the options are literally endless. I’d also be
remiss if I didn’t mention that Microsoft is releasing Windows 10 for IoT (Windows
10 IoT Core), currently in Insider Preview mode, so you can play on the Windows
front as well.
Ping me via email or Twitter if you have questions (russ
at holisticinfosec dot org or @holisticinfosec).
Cheers…until next month.
Sunday, November 02, 2014
toolsmith: Inside and Outside the Wire with FruityWifi & WUDS
Prerequisites
I recommend a dedicated (non-VM) Kali distribution if you
don’t have a Raspberry Pi.
Introduction
I have noted to myself, on more than one occasion, now more
than eight years in to writing toolsmith, that I have not once covered wireless
assessment tools. That constitutes a serious shortcoming on my part, one that I
will rectify here with a discussion of FruityWifi and WUDS. These
tools serve rather different purposes but both conform to the same principle of
significant portability as both run on Raspberry Pi. Both also run on Debian
systems (Kali) which is how I ran both for toolsmith testing purposes.
FruityWifi is an open source platform with which to audit wireless networks, allowing
users to conduct various attacks via the web interface or remote messaging. It
is modular, feature-rich, and just celebrated a v2.0 release with many
upgrades. WUDS, or the Wi-Fi User Detection System, on the other hand, is a
proximity-based physical security concept that alerts on unapproved Wi-Fi probe
requests bouncing off a WUDS sensor. Per the WUDS introduction, “The
combination of a white list of unique identifiers for devices that belong in
the area (MAC addresses) and signal strength (RSSI) can be used to create a
protected zone. With tuning, this creates a circular detection barrier that,
when crossed, can trigger any number of alert systems. WUDS includes an SMS
alert module, but the sky is the limit.”
WUDS comes to us courtesy of toolsmith alum Tim Tomes
(@lanmaster53) whose Recon-ng, the 2013 Toolsmith Tool of the Year, we covered
in May 2013.
For FruityWifi highlights I reached out to xtr4nge
(@FruityWifi), the project lead/developer.
The initial idea was to create an open source application to
audit wireless networks and perform penetration tests from a Raspberry-Pi, or
any other platform or device in a flexible, modular and portable manner.
Soon after the first version was published, FruityWifi was
presented to a Rooted Warfare Spain audience (Rooted CON) in March 2014.
FruityWifi was well received at the conference and by users from the onset, and
many users sent feedback and ideas to improve it.
A new version of FruityWifi (v2.0) was published a few weeks
ago featuring many changes and updates; a new interface, new modules, Realtek
chipsets support (confirmed in my testing with my Alfa card), Mobile Broadband
(3G/4G) support, a new control panel, and more. The tool is under constant
development and new modules and improvements are being published regularly.
Tim kindly provided detail regarding his favorite WUDS
features and use case. His favorite feature is the alert system, and I strongly
second this; I’ll show you why later in the article. Tim built a really simple
interface for creating new alerts for the system, which does not require the
need to dig into core components of the code to create new alerts. You need
only add a function to the alerts.py
file, name it correctly, and add associated options to the config.py file, and you’re finished. Tim’s script originally
included just an SMS alerting mechanism, but he has since added a Pushover
notification alert (5 minutes and 8 lines of code to implement); he exclusively
uses the Pushover alert.
Tim’s favorite WUDS use case story is cited in his article, about
the deliveryman alerting the system during testing. He’d been doing some
testing the night before and in the middle of the afternoon the following day,
an SMS message came through to his phone notifying him that someone had crossed
his detection barrier. He was about to write it off as a false positive when
the doorbell rang and it was a delivery service dropping off a package. The
alert served as positive affirmation that the concept is a sound one.
In the future, Tim plans to either expand WUDS, or create
another tool all together, that does the exact opposite of WUDS. Rather than
alert on foreign MAC addresses, this tool would allow the user to configure the
sensor to alert when certain MAC addresses leave the premises during specified
windows of time. This would provide a sort of latchkey system that is not
challenged by MAC randomization issues; devices will be properly connected to
the local WAP with their normal MAC addresses when on premises. That said, the
tool would need to be expanded to sense more than just probes.
I ran FruityWifi and WUDS on a dedicated Lenovo T61p laptop
with Kali 64-bit installed and utilized the onboard wireless adapter. Both tools are optimized to perform well on
Raspberry Pi, but as I don’t have one, I experimented with both Ubuntu and Kali
and was far more satisfied with Kali, no muss, no fuss. All installation steps
that follow assume you’re running on Kali.
FruityWifi
installation
FruityWifi installation is very
simple. Download
the master zip file or git clone the repository to your preferred directory,
then cd /FruityWifi from there. Run ./install-FruityWifi.sh. If you have any
issues after installation where FruityWifi isn’t available via the browser, it
may be related to the Nginx/PHP5-FPM deployment. You can follow the FruityWifi
Nginx wiki guidance to correct the issue. Thereafter, browse to
http://localhost:8000 or https://localhost:8443, login with admin and admin
(change the password), and you’re off to the races as seen in the UI’s
configuration page per Figure 1.
![]() |
| Figure 1 – FruityWifi configuration page |
FruityWifi inside the perimeter
Building on the same principles
as the Pwn Plug,
a FruityWifi-enable device can wreak havoc once unleashed inside any given network.
There are a significant number of modules you can install and enable, a
veritable fruit basket, depending on what you wish to accomplish, as seen in
Figure 2.
![]() |
| Figure 2 – FruityWifi modules galore |
If you utilized the earlier
version of Fruity, you’ll really appreciate the update that is 2.0. Clean,
fast, intuitive, and lots of fresh functionality. Red-teamers will enjoy
AutoSSH, which allows reverse
SSH connections, and automatic restart for connections that have been closed or
dropped. FruityWifi 2.0 includes Nessus, Nmap, and Meterpreter as well. MDK3 is
particularly attractive if you’re conducting an aggressive pentest and you want
to create a distraction or a disruption. You had better have permission before going
off with MDK3, wireless hacking is deemed criminal in more than one state. MDK,
or murder, death, kill for WLAN environments, utilizes a variety of SSID,
authentication, and de-authentication flooding techniques to create wireless
DoS conditions, and on occasion, WLAN hardware resets. My favorite recent
addition to FruityWifi isn’t one of the hacking or enumeration tools, it’s
actually vFeed from our friend @toolswatch. To
quote vFeed’s description from the Fruity UI, is a vulnerability database
(SQLite) that “provides extra structured detailed third-party references and
technical characteristics for a CVE entry through an extensible XML schema.”
You can search it right on your FruityWifi instance, after you’ve run Nmap and
Nessus scans, identified potentially vulnerable targets and want to look up the
related CVE. The available data includes:
- Open security standards: CVE, CWE, CPE, OVAL, CAPEC (all per Mitre), and CVSS
- Vulnerability Assessment & Exploitation IDs: Metasploit, Saint Corporation, Nessus Scripts, Nmap, Exploit-DB, milw0rm
- Vendors Security Alerts: Microsoft, Debian, Redhat, Ubuntu, and others
I looked up CVE-2013-3893, as
seen in Figure 3, and was treated to a summary and exploit details. Take note
of the vFeed export feature as well. I love vFeed so much I wrote an R parser
to turn the XML export into human readable Excel docs for broad reporting and
consumption without the machine layer. I’ll be sharing that via the
HolisticInfoSec blog and website.
![]() |
| Figure 3 – FruityWifi’s vFeed module informs the analyst |
FruityWifi represents a fabulous
way to establish a foothold inside a given perimeter, pivot to additional
targets, and conduct complete compromise. Let’s now explore WUDS, intended to
help you defend the perimeter. First a little red, then a little blue. Wi-fi
not?
WUDS Installation
Tim’s Bitbucket installation
guidance is short and sweet:
sudo apt-get install iw python-pcapy sqlite3 screen
# launch a screen session
screen
# install WUDS
git clone https://LaNMaSteR53@bitbucket.org/LaNMaSteR53/wuds.git
cd wuds
# edit the config file
leafpad config.py
# execute the included run script
./run.sh
You really need to get your
config.py implementation correct. Default settings work well initially until you
get to your ALERT_SMS CONFIG. You’ll need SMTP server access, including the
outgoing SMTP server with the TLS port along with username and password, in
order to send alert messages. Android and iOS users (there are browser plugins
too) can also take advantage of a Pushover account, as Tim mentioned.
Debug is enabled by default, if
there are issues, when you run ./run.sh
you’ll receive failure notice.
WUDS defends the perimeter
Once WUDS is running there’s not
a whole lot to actually see. No sexy UI, just a SQLite database and alerts of
your choosing. Figure 4 represents a sqlite browser view of logs.db the WUDS
datastore.
![]() |
| Figure 4 – A view to the WUDS database |
You’ll note that the detected
devices all have received signal strength indications (RSSI) of higher than
-50. Recall, how much I stressed config.py. The default RSSI threshold for
triggering alerts is -50, but you can adjust it depending on how you wish to
define your perimeter.
The real pleasure comes from the
first alerts received on your mobile device. As you see in a screen shot from
my phone (Figure 5), proximity alerts advise me that a variety of devices have
been detected on the premises. Ruh-roh!
![]() |
| Figure 5 –WUDS alerts of perimeter violations |
True story. When I first enabled
WUDS in my office at work, I immediately received alerts for an HP device that
was beaconing for my home wireless AP. This freaked me out for a minute as I
knew of no HP devices currently in use and certainly not those looking for my house
infrastructure. After looking around again, and calming down a bit, a spotted
it, an old HP printer under my desk that I’d brought in for scanning, had
turned it on years ago, and literally forgotten about it ever since. And there
it was, blindly beaconing away for a WAP it would never again communicate with.
Thanks WUDS!
You’ll find all sorts of
interesting devices chattering away when you enable WUDS. Just remember, the
more dense the population area, the noisier it will be. Avoid self-induced
mobile device DoS attacks. :-)
In Conclusion
Great tools from xtr4nge and Tim, I’m thrilled to have
gotten off the schnide regarding wireless topics with FruityWifi and WUDS. I’m
thinking there’s actually an opportunity to incorporate WUDS in FruityWifi. You
heard it here first. Enjoy these tools, they’re both a ton of fun and
incredibly useful at the same time.
Ping me via email if you have questions (russ at
holisticinfosec dot org).
Cheers…until next month.
Acknowledgements
xtr4nge, FruityWifi project lead
and developer
Tim Tomes, WUDS project lead and
developer
Subscribe to:
Posts (Atom)
Moving blog to HolisticInfoSec.io
toolsmith and HolisticInfoSec have moved. I've decided to consolidate all content on one platform, namely an R markdown blogdown sit...
-
toolsmith and HolisticInfoSec have moved. I've decided to consolidate all content on one platform, namely an R markdown blogdown sit...
-
When, in October and November 's toolsmith posts, I redefined DFIR under the premise of D eeper F unctionality for I nvestigators in R ...
-
You can have data without information, but you cannot have information without data. ~Daniel Keys Moran Here we resume our discussion of ...






