February 16, 2011
This article was contributed by Nathan Willis
Servers and PCs get the lion's share of security attention, so it is refreshing to occasionally find a security tool addressing other areas of the ubiquitous computing landscape. One such tool is Bluepot, a GPLv3-licensed honeypot for Bluetooth attacks originally written as a school project by developer Andrew Smith.
A "honeypot" is security slang for a trap designed to lure in attackers by
masquerading as a vulnerable system. Generally speaking, a honeypot is used
to catch attackers before they reach a genuine network resource (either to
shut them down or to report them), but honeypots can also be used as purely
research devices — helpful tools to profile the current vulnerability
landscape. In Bluetooth attack preparedness, setting up an attractive
honeypot probably means pretending to be a phone model with known exploits,
known or weak PINs, or other enticing properties.
Bluepot is written in Java and distributed as a JAR file, although,
despite the language choice, for the moment it runs only on Linux. This is
because Smith designed the application to support the use of multiple
Bluetooth adapters simultaneously, which is a feature that Windows cannot
handle. The current release is version 0.1, from December 29, 2010. From
the Subversion logs, it appears that the bulk of the code was written in
the spring of 2010, with a cleanup phase preceding its public release in December. Smith announced the release on his blog, on which he regularly writes about honeypot development.
To get started, you must first install the Bluetooth development libraries for your distribution (presumably this is required to make use of the libraries' lower-level Bluetooth utilities in order to manipulate the adapter's hardware settings more easily). Debian and Ubuntu title the package libbluetooth-dev, while Fedora and Red Hat name it bluez-libs-devel, and openSUSE calls it bluez-devel. You must also have one or more BlueZ-supported Bluetooth adapters. With the dependencies taken care of, simply unpack the Bluepot tarball, and launch Bluepot-0.1.jar with root privileges (root is required in order to change adapter settings; if you attempt to start Bluepot without root privileges, it will not even run).
Normally, your Bluetooth adapter advertises a public name set through the GNOME or KDE tool's Bluetooth configuration utility, and a "computer" major device class. Bluepot allows you to advertise each adapter on your system with a different name, major device class, and minor device class. Historically, lower-level devices such as low-end cell phones, printers, and headsets have had most of the Bluetooth security holes exploited in the wild, particularly because few consumers update the firmware of such products. Thus, to make your honeypot the most attractive to would-be attackers, you may wish to set its name to an older-model Nokia phone and its device class to phone/cellular. Alternatively, Bluepot can randomly alter the advertised name and device class of each adapter, which is probably wise if you want to take a longer look at the attackers in your surroundings.
Attacks
Bluepot runs its adapters in discoverable mode, accepting all incoming connection requests and transfers. It tracks the OBEX (Object Exchange) protocol used to directly transfer files between devices, the RFCOMM (Radio Frequency Communication) protocol used for serial communication, and the L2CAP (Logical Link Control and Adaptation Protocol) used for transmission control.
The simplest Bluetooth attack is called bluejacking. In spite
of the seeming connection to "hijacking," bluejacking is simply sending an
unauthorized message of file transfer to another device, using OBEX. For
the most part, modern phones and printer now refuse to accept incoming file
transfers without explicit user authorization, but there are older models
that still accept files from previously-paired devices, and some phones
that automatically accept vCards (or any other file payload with the
.vcf
extension) in the interest of friendly business-card-like information
exchange.
Cracking tools may allow an attacker to brute-force the
four-digit numeric PIN used to initially pair new devices, which
potentially allows for an attack vector to get around the
previously-paired-device limitation.
According to the
specification, Bluetooth PINs can be up to 128 bits long; consumer
electronics manufacturers tend to use 4-6 numeric digits to make them easier
to remember — which also makes them far easier to brute-force. Even
worse, a significant percentage of non-computer devices use easily guessed
PINs like 0000 or 1234.
A far more serious exploit goes by the memorable name bluesnarfing; this attack involves remotely reading files from another device: address books, SIM contacts, photos, saved text messages and emails, etc. As with bluejacking, it works over OBEX, although it is more complex, because the remote device must authorize file browsing. The weak-PIN problem is a potential issue here, too, although most devices use encryption, and there are fewer devices that accept any form of incoming file browsing requests without explicit user authorization.
The most serious attack is referred to as bluebugging, which
amounts to remotely taking over control of the target device, using it to
place or route calls, send SMS or MMS messages, or consume data services.
This is typically done by exploiting the Bluetooth stack in order to do a
privilege escalation. In addition to these phone-centric attacks, there is an array of potential exploits not centered around cell phone usage, including uploading malware to Bluetooth devices, and hijacking or snooping audio connections.
Bluepot should be able to track and log all of these connections. In its configuration tab, you can specify a directory in which to store any files uploaded by attackers, and you can customize the OBEX and RFCOMM response messages sent, in order to better masquerade as a specific device.
Testing
News and blog coverage of bluejacking and bluesnarfing peaked in the
mid-2000s, at which point there were a number of common cell phones on the
market with known vulnerabilities. Most of the media coverage of the
phenomenon I read involves attackers lying in wait for victims in
high-traffic public locations such as mass transit points. Since I did not
expect to find such nefarious behavior on display in the
non-public-transport-served area where I live, I opted to test Bluepot at
home instead, by using a pair of machines and a variety of Internet-provided tools.
That itself proved to be a challenge, since most of the publicly-available pen-testing tools date from the mid-2000s as well, and BlueZ, the Linux Bluetooth stack, has undergone a number of revisions since then. The Bluesnarfer tool, for example, is apparently written for BlueZ prior to the version 4.0 release, which changed a number of the setup utilities. Others, like Blooover, are written for Java MIDP-powered phones.
Nevertheless, I was able to test and verify Bluepot's ability to falsely
advertise my desktop's USB Bluetooth adapter as a phone, a printer, a
network access point, and several other devices, and to safely intercept
OBEX file transfers. Along the way, I think I discovered what I would have
to call a bug in the GNOME Bluetooth stack, namely that every Linux machine
that I tested with aggressively caches the advertised names and device
classes of the Bluetooth devices that it discovers when scanning for nearby
connections — even when I could verify that a name change had taken
place on the Bluepot machine (with hciconfig), it took a reboot of the
attacker machines to pick up the updated information.
Along those lines, though, one thing I was not able to do was browse files on the Bluepot machine. That is a feature I was expecting in a honeypot application — to see which files attackers requested, and potentially to feed them bogus data in response. It is possible that Bluepot supports this and I simply could not get it to work — sadly, BlueZ 4.x on Linux is almost completely undocumented. It has improved considerably in the past two or three years, but vague and cryptic error messages (such as "Unable to find service record" in response to a failed OBEX file transfer to a paired device) are still the norm.
I had better luck with the audio device exploit tester carwhisperer, which is designed to inject a harmless audio message to un-secured car hands-free devices, and to intercept and record audio from them. Naturally there was no audio to record when using Bluepot to simulate a hands-free device, but Bluepot tracked and logged the connections admirably.
Bluepot has some basic diagnostic tools, allowing you to chart protocol traffic and file downloads over time, and to view the session logs sorted by adapter and attacker (for each attacker, it logs the Bluetooth device address). One area in which Bluepot falls short, however, is in saving these session logs: its logs its internal status in the logs directory of the unpacked tar archive, but this only includes startup, adapter initialization, and shutdown messages. It apparently attempts to log attack data with the log4j Java library, but through some misconfiguration, fails to do so, and the log settings are not configurable in the user interface. Thus, if you want to save session data, you will have to cut-and-paste information from the GUI's log tab into an external editor.
Smith is pretty open about Bluepot's feature set and limitations on the project site and on his blog; the basic framework is there to collect Bluetooth attack data, and, through multiple-adapter support and device randomization, to do so without the likelihood of discovery. It might be more powerful to masquerade as other Bluetooth addresses, or to provide some more interactive honeypot-like features (such as dummy file content), but it is still a nice starting point, and admirably simple to get started using. I don't expect to catch bluebugging criminals at my local Starbucks, but it will be tempting to take Bluepot with me to the next free software conference I attend, just to see what turns up in the hallway track.
Comments (1 posted)
Brief items
From: Greg
To: Jussi
Subject: Re: need to ssh into rootkit
yes jussi thanks
did you reset the user greg or?
-------------------------------------
From: Jussi
To: Greg
Subject: Re: need to ssh into rootkit
nope. your account is named as hoglund
-- "
Anonymous"
does some social engineering (as reported by ars technica)
Security isn't just a tax on the honest; it's a very expensive tax on the
honest. It's the most expensive tax we pay, regardless of the country we
live in. If people were angels, just think of the savings!
--
Bruce
Schneier
In my own private-sector security industry work, I observed a pattern: the
higher the stakes, the worse the security. "Worse" usually means "more
easily resolved with known techniques". I evaluated a wide range of
applications and platforms, and almost invariably found that the most
important systems — those managing life, health, and money —
were poorly
engineered. By contrast, small startups doing something interesting but not
(yet) critical would sometimes have very well-engineered systems, with
entire classes of vulnerability designed away, minimal feature creep, and
solid development practices reducing the risk of accidental implementation
flaws.
--
Chris
Palmer in the EFF's Deeplinks blog
Comments (2 posted)
New vulnerabilities
abcm2ps: multiple unspecified vulnerabilities
| Package(s): | abcm2ps |
CVE #(s): | CVE-2010-3441
|
| Created: | February 15, 2011 |
Updated: | November 21, 2011 |
| Description: |
From the Fedora advisory:
Abcm2ps v5.9.12: Multiple unspecified security vulnerabilities
Abcm2ps v5.9.13: More multiple unspecified security vulnerabilities
|
| Alerts: |
|
Comments (none posted)
cgiirc: cross-site scripting
| Package(s): | cgiirc |
CVE #(s): | CVE-2011-0050
|
| Created: | February 10, 2011 |
Updated: | February 16, 2011 |
| Description: |
From the Debian advisory:
Michael Brooks (Sitewatch) discovered a reflective XSS flaw in
cgiirc, a web based IRC client, which could lead to the execution
of arbitrary javascript.
|
| Alerts: |
|
Comments (none posted)
chrome/chromium: multiple vulnerabilities
Comments (none posted)
chromium: multiple vulnerabilities
| Package(s): | chromium-browser |
CVE #(s): | |
| Created: | February 14, 2011 |
Updated: | February 16, 2011 |
| Description: |
Version 9.0.597.94 contains an updated version of Flash player (10.2), along with several security fixes. |
| Alerts: |
|
Comments (none posted)
ffmpeg: multiple vulnerabilities
| Package(s): | ffmpeg mplayer |
CVE #(s): | CVE-2010-3429
CVE-2010-4704
CVE-2010-4705
|
| Created: | February 16, 2011 |
Updated: | September 12, 2011 |
| Description: |
The ffmpeg library suffers from integer overflow and "arbitrary offset dereference" vulnerabilities which can be exploited via hostile flic and Vorbis files. |
| Alerts: |
|
Comments (none posted)
flash-player: multiple vulnerabilities
| Package(s): | flash-player |
CVE #(s): | CVE-2011-0558
CVE-2011-0559
CVE-2011-0560
CVE-2011-0561
CVE-2011-0571
CVE-2011-0572
CVE-2011-0573
CVE-2011-0574
CVE-2011-0575
CVE-2011-0577
CVE-2011-0578
CVE-2011-0607
CVE-2011-0608
|
| Created: | February 10, 2011 |
Updated: | March 22, 2011 |
| Description: |
From the Red Hat advisory:
Multiple security flaws were found in the way flash-plugin displayed
certain SWF content. An attacker could use these flaws to create a
specially-crafted SWF file that would cause flash-plugin to crash or,
potentially, execute arbitrary code when the victim loaded a page
containing the specially-crafted SWF content. (CVE-2011-0558,
CVE-2011-0559, CVE-2011-0560, CVE-2011-0561, CVE-2011-0571, CVE-2011-0572,
CVE-2011-0573, CVE-2011-0574, CVE-2011-0575, CVE-2011-0577, CVE-2011-0578,
CVE-2011-0607, CVE-2011-0608)
|
| Alerts: |
|
Comments (none posted)
italc: remote system breach
| Package(s): | italc |
CVE #(s): | CVE-2011-0724
|
| Created: | February 11, 2011 |
Updated: | February 16, 2011 |
| Description: |
From the Ubuntu advisory:
Stéphane Graber discovered that the iTALC private keys shipped with the
Edubuntu Live DVD were not correctly regenerated once Edubuntu was
installed. If an iTALC client was installed with the vulnerable keys, a
remote attacker could gain control of the system. Only systems using keys
from the Edubuntu Live DVD were affected.
|
| Alerts: |
|
Comments (none posted)
java: denial of service
| Package(s): | java-1.6.0-openjdk |
CVE #(s): | CVE-2010-4476
|
| Created: | February 11, 2011 |
Updated: | July 22, 2011 |
| Description: |
From the Red Hat advisory:
A denial of service flaw was found in the way certain strings were
converted to Double objects. A remote attacker could use this flaw to cause
Java-based applications to hang, for instance if they parse Double values
in a specially-crafted HTTP request. |
| Alerts: |
|
Comments (none posted)
kernel: information disclosure
| Package(s): | kernel |
CVE #(s): | CVE-2010-4655
|
| Created: | February 16, 2011 |
Updated: | July 6, 2011 |
| Description: |
An initialization flaw in the ethtool ioctl() handler could disclose information to a local user with the CAP_NET_ADMIN capability. |
| Alerts: |
|
Comments (none posted)
nbd: remote code execution
| Package(s): | nbd |
CVE #(s): | CVE-2011-0530
|
| Created: | February 16, 2011 |
Updated: | June 26, 2012 |
| Description: |
The developers of the nbd block device server managed to reintroduce CVE-2005-3534 - a buffer overflow enabling code execution by a remote attacker. |
| Alerts: |
|
Comments (none posted)
openssh: hash collision attacks
| Package(s): | openssh |
CVE #(s): | CVE-2011-0539
|
| Created: | February 14, 2011 |
Updated: | February 16, 2011 |
| Description: |
From the Pardus advisory:
The key_certify function in usr.bin/ssh/key.c in OpenSSH 5.6 and 5.7,
when generating legacy certificates using the -t command-line option in
ssh-keygen, does not initialize the nonce field, which might allow
remote attackers to obtain sensitive stack memory contents or make it
easier to conduct hash collision attacks. |
| Alerts: |
|
Comments (none posted)
openssl: denial of service
| Package(s): | openssl |
CVE #(s): | CVE-2011-0014
|
| Created: | February 11, 2011 |
Updated: | May 19, 2011 |
| Description: |
From the openssl advisory:
Incorrectly formatted ClientHello handshake messages could cause OpenSSL
to parse past the end of the message.
This issue applies to the following versions:
1) OpenSSL 0.9.8h through 0.9.8q
2) OpenSSL 1.0.0 through 1.0.0c
The parsing function in question is already used on arbitrary data so no
additional vulnerabilities are expected to be uncovered by this.
However, an attacker may be able to cause a crash (denial of service) by
triggering invalid memory accesses.
|
| Alerts: |
|
Comments (none posted)
pam: multiple vulnerabilities
| Package(s): | pam |
CVE #(s): | CVE-2010-3430
CVE-2010-3431
CVE-2010-4706
|
| Created: | February 14, 2011 |
Updated: | May 31, 2011 |
| Description: |
From the Pardus advisory:
The privilege-dropping implementation in the (1) pam_env and (2)
pam_mail modules in Linux-PAM (aka pam) 1.1.2 does not perform the
required setfsgid and setgroups system calls, which might allow local
users to obtain sensitive information by leveraging unintended group
permissions, as demonstrated by a symlink attack on the .pam_environment
file in a user's home directory. NOTE: this vulnerability exists because
of an incomplete fix for CVE-2010-3435. (CVE-2010-3430)
The privilege-dropping implementation in the (1) pam_env and (2)
pam_mail modules in Linux-PAM (aka pam) 1.1.2 does not check the return
value of the setfsuid system call, which might allow local users to
obtain sensitive information by leveraging an unintended uid, as
demonstrated by a symlink attack on the .pam_environment file in a
user's home directory. NOTE: this vulnerability exists because of an
incomplete fix for CVE-2010-3435. (CVE-2010-3431)
The pam_sm_close_session function in pam_xauth.c in the pam_xauth module
in Linux-PAM (aka pam) 1.1.2 and earlier does not properly handle a
failure to determine a certain target uid, which might allow local users
to delete unintended files by executing a program that relies on the
pam_xauth PAM check. (CVE-2010-4706) |
| Alerts: |
|
Comments (none posted)
patch: arbitrary file creation
| Package(s): | patch |
CVE #(s): | CVE-2010-4651
|
| Created: | February 14, 2011 |
Updated: | September 14, 2012 |
| Description: |
From the Pardus advisory:
It was discovered that the patch utility allowed '..' in path names
which could allow an attacker to create arbitrary files using a
specially-crafted patch file.
|
| Alerts: |
|
Comments (none posted)
php: multiple vulnerabilities
| Package(s): | mod_php php-cli php-common |
CVE #(s): | CVE-2010-4697
CVE-2010-4698
|
| Created: | February 10, 2011 |
Updated: | May 5, 2011 |
| Description: |
From the Pardus advisory:
CVE-2010-4697:
Use-after-free vulnerability in the Zend engine in PHP before 5.2.15 and
5.3.x before 5.3.4 might allow context-dependent attackers to cause a
denial of service (heap memory corruption) or have unspecified other
impact via vectors related to use of __set, __get, __isset, and __unset
methods on objects accessed by a reference.
CVE-2010-4698:
Stack-based buffer overflow in the GD extension in PHP before 5.2.15 and
5.3.x before 5.3.4 allows context-dependent attackers to cause a denial
of service (application crash) via vectors related to the iimagepstext
function and invalid anti-aliasing.
|
| Alerts: |
|
Comments (none posted)
php: multiple vulnerabilities
| Package(s): | mod_php php-cli php-common |
CVE #(s): | CVE-2011-0752
CVE-2011-0753
CVE-2011-0755
|
| Created: | February 14, 2011 |
Updated: | April 5, 2011 |
| Description: |
From the Pardus advisory:
The extract function in PHP before 5.2.15 does not prevent use of the
EXTR_OVERWRITE parameter to overwrite (1) the GLOBALS superglobal array
and (2) the this variable, which allows context-dependent attackers to
bypass intended access restrictions by modifying data structures that
were not intended to depend on external input. (CVE-2011-0752)
Race condition in the PCNTL extension in PHP before 5.3.4, when a
user-defined signal handler exists, might allow context-dependent
attackers to cause a denial of service (memory corruption) via a large
number of concurrent signals. (CVE-2011-0753)
Integer overflow in the mt_rand function in PHP before 5.3.4 might make
it easier for context-dependent attackers to predict the return values
by leveraging a script's use of a large max parameter, as demonstrated
by a value that exceeds mt_getrandmax. (CVE-2011-0755)
|
| Alerts: |
|
Comments (none posted)
phpmyadmin: multiple vulnerabilities
| Package(s): | phpmyadmin |
CVE #(s): | CVE-2011-0986
CVE-2011-0987
|
| Created: | February 14, 2011 |
Updated: | February 25, 2011 |
| Description: |
From the Mandriva advisory:
When the files README, ChangeLog or LICENSE have been removed from
their original place (possibly by the distributor), the scripts used
to display these files can show their full path, leading to possible
further attacks (CVE-2011-0986).
It was possible to create a bookmark which would be executed
unintentionally by other users (CVE-2011-0987).
|
| Alerts: |
|
Comments (none posted)
poppler: arbitrary command execution
| Package(s): | poppler |
CVE #(s): | CVE-2010-4653
|
| Created: | February 14, 2011 |
Updated: | February 16, 2011 |
| Description: |
From the Pardus advisory:
Due to an integer overflow when parsing CharCodes for fonts and a
failure to check the return value of a memory allocation, it is possible
to trigger writes to a narrow range of offsets from a NULL pointer. |
| Alerts: |
|
Comments (none posted)
python-django: multiple vulnerabilities
| Package(s): | python-django |
CVE #(s): | CVE-2011-0696
CVE-2011-0697
|
| Created: | February 14, 2011 |
Updated: | October 5, 2011 |
| Description: |
From the Debian advisory:
For several reasons the internal CSRF protection was not used to validate ajax requests in the past. However, it was discovered that this exception can be exploited with a combination of browser plugins and redirects and thus is not sufficient. (CVE-2011-0696)
It was discovered that the file upload form is prone to cross-site scripting attacks via the file name. (CVE-2011-0697)
|
| Alerts: |
|
Comments (none posted)
qemu-kvm: session hijack
| Package(s): | qemu-kvm |
CVE #(s): | CVE-2011-0011
|
| Created: | February 15, 2011 |
Updated: | May 2, 2011 |
| Description: |
From the Ubuntu advisory:
Neil Wilson discovered that if VNC passwords were blank in QEMU
configurations, access to VNC sessions was allowed without a password
instead of being disabled. A remote attacker could connect to running
VNC sessions of QEMU and directly control the system. By default, QEMU
does not start VNC sessions.
|
| Alerts: |
|
Comments (none posted)
shadow: privilege escalation
| Package(s): | shadow |
CVE #(s): | CVE-2011-0721
|
| Created: | February 16, 2011 |
Updated: | March 28, 2011 |
| Description: |
The chfn and chsh utilities fail to properly sanitize user input, allowing the injection of newlines into the password file; that, in turn, allows the addition of arbitrary entries. |
| Alerts: |
|
Comments (none posted)
tomcat: multiple vulnerabilities
| Package(s): | tomcat6 |
CVE #(s): | CVE-2010-3718
CVE-2011-0013
CVE-2011-0534
|
| Created: | February 14, 2011 |
Updated: | October 20, 2011 |
| Description: |
From the Debian advisory:
It was discovered that the SecurityManager insufficiently restricted the working directory. (CVE-2010-3718)
It was discovered that the HTML manager interface is affected by cross-site scripting. (CVE-2011-0013)
It was discovered that NIO connector performs insufficient validation of the HTTP headers, which could lead to denial of service. (CVE-2011-0534)
|
| Alerts: |
|
Comments (none posted)
vlc: arbitrary command execution
| Package(s): | vlc |
CVE #(s): | CVE-2011-0531
|
| Created: | February 11, 2011 |
Updated: | April 7, 2011 |
| Description: |
From the CVE entry:
demux/mkv/mkv.hpp in the MKV demuxer plugin in VideoLAN VLC media player 1.1.6.1 and earlier allows remote attackers to cause a denial of service (crash) and execute arbitrary commands via a crafted MKV (WebM or Matroska) file that triggers memory corruption, related to "class mismatching" and the MKV_IS_ID macro.
|
| Alerts: |
|
Comments (none posted)
vlc: arbitrary code execution
| Package(s): | vlc vlc-firefox |
CVE #(s): | CVE-2011-0021
|
| Created: | February 14, 2011 |
Updated: | February 16, 2011 |
| Description: |
From the Pardus advisory:
Multiple heap-based buffer overflows in cdg.c in the CDG decoder in
VideoLAN VLC Media Player before 1.1.6 allow remote attackers to cause a
denial of service (application crash) or possibly execute arbitrary code
via a crafted CDG video.
|
| Alerts: |
|
Comments (none posted)
wireshark: denial of service
| Package(s): | wireshark |
CVE #(s): | CVE-2011-0538
|
| Created: | February 14, 2011 |
Updated: | April 19, 2011 |
| Description: |
From the Pardus advisory:
Wireshark 1.5.0, 1.4.3, and earlier frees an uninitialized pointer
during processing of a .pcap file in the pcap-ng format, which allows
remote attackers to cause a denial of service (memory corruption) or
possibly have unspecified other impact via a malformed file. |
| Alerts: |
|
Comments (none posted)
Page editor: Jake Edge
Next page: Kernel development>>