Mobile Badger saves all exfiltrated data:
When an USB Mass Storage device is connected to (or disconnected from) a Linux computer, series of udev
events are generated. Particularly there is "add" event for each detected device, and each detected partition. Such events can be intercepted and can eg. run some program, create and start a new systemd service etc.
Mobile Badger works by intercepting such rules and creating ephemeral systemd
services (living until the device is still connected). Each partition is:
ignore.uuid
filesignore.uuid
files (provided via configuration repositories) contain lists of UUID partition identifiers, one per line, eg:
2021-02-18-17-44-06-00
2021-02-18-17-16-26-00
1366-8586
FFFF-FFFF
Partitions defined in these files will be completely ignored by Mobile Badger.
There are 2 example repositories with ignore.uuid
files:
target.uuid
filestarget.uuid
files contain lists of UUID partition identifiers, one per line. Partitions defined in this file will be:
/media/targets/sda1
directory (where "sda1" will be replaced by the actual device identifier)/media/target
If you connect many target drives simultaneously:
/media/target
symlink to fallback storageTo fix it, just disconnect your chosen target drive, wait 10 seconds and connect it again.
rebuild-uuid-lists.sh
scriptignore.uuid
and target.uuid
files are not used directly - instead, after each Git update (or other update operation), all such files are processed by /opt/drivebadger/internal/mobile/rebuild-uuid-lists.sh
script, which generates temporary files, without comments and empty lines.
If you deploy updates to your Mobile Badger devices other way, than by executing /opt/drivebadger/update.sh
script, you need to remember about executing rebuild-uuid-lists.sh
at the end.
For best performance, target partitions should be formatted as ext4
, however it's not required. You can use any Linux-writable filesystem type. However, as opposite to Drive Badger persistent partitions, LUKS encryption is not supported here.
LUKS target drive encryption is not supported - unless you install Mobile Badger on laptop or desktop computer, on top of Kali Linux, instead of Raspberry Pi and Raspbian.
Target filesystem has to have already created one of the following directory chains:
.support/.files
.files/.data
files/data
Exfiltrated data is then saved to eg. /media/target/.files/.data/20210723/$deviceserial/$partition
subdirectory.
If neither of these directory chains is found, then fallback storage will be used. This is a kind of "security by obscurity" mechanism, that at least prevents accidential showing names and serial numbers of exfiltrated devices, when someone accidentally attached your target drive to quickly inspect its contents. You can put eg. some movies or mp3 files inside its root directory, while .files
directory will be hidden by many file managers.
Yes, but only unencrypted ones. LUKS encryption is not supported.
Drive Badger device contains 3 partitions (or more):
ignore.uuid
filepersistence
) should be added to target.uuid
fileignore.uuid
fileWhen:
then all exfiltrated data are saved to internal memory card or hard drive (depending on your chosen hardware), in eg. /media/fallback/20210723/$deviceserial/$partition
subdirectory.