Intelligence Brief: At a Glance


    ____  __ _   __   ___  ____  ____
   (  _ \(  ( \ / _\ / __)(  _ \(  _ \
    ) __//    //    \\__ \ ) __/ )   /
   (__) \_)__)\_/\_/ (___/(__)  (__\_)
   Bluetooth Scanner & Logger


Initial Engagement: Installation & Verification


Before deployment, an operator must ensure the tool is present and correctly installed on the testing machine. Verifying the tool's functionality through its help menu is a critical first step.


Objective: Check if Bluelog is Installed


This command uses the which utility to search the system's PATH for the bluelog executable.

Command:

Bash

which bluelog

Command Breakdown:

Ethical Context & Use-Case: During the setup phase of a security audit, you must verify that all necessary tools are installed and accessible. This command confirms that Bluelog is ready for use without having to run it.

--> Expected Output:

/usr/bin/bluelog


Objective: Install Bluelog on a Debian-based System


This command uses the Advanced Package Tool (APT) to install the Bluelog package.

Command:

Bash

sudo apt install bluelog

Command Breakdown:

Ethical Context & Use-Case: If a pre-assessment check reveals that Bluelog is not installed on your authorized testing machine, this is the standard command to provision it. Ensure you have the necessary system permissions to install new software.

--> Expected Output:

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
  bluelog
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 46.2 kB of archives.
After this operation, 198 kB of additional disk space will be used.
Get:1 http://kali.download/kali kali-rolling/main amd64 bluelog amd64 1.1.2-5 [46.2 kB]
Fetched 46.2 kB in 1s (86.3 kB/s)
Selecting previously unselected package bluelog.
(Reading database ... 312548 files and directories currently installed.)
Preparing to unpack .../bluelog_1.1.2-5_amd64.deb ...
Unpacking bluelog (1.1.2-5) ...
Setting up bluelog (1.1.2-5) ...
Processing triggers for man-db (2.12.0-1) ...


Objective: Display the Help Menu


This command invokes the built-in help menu, which details all available flags and options.

Command:

Bash

bluelog -h

Command Breakdown:

Ethical Context & Use-Case: Consulting the help menu is a fundamental skill. It serves as a quick reference for syntax and available options before initiating a scan, ensuring the command is constructed correctly to meet the engagement's specific data collection requirements.

--> Expected Output:

Bluelog (v1.1.2) by Tom Nardi "MS3FGX" (MS3FGX@gmail.com)
----------------------------------------------------------------
Bluelog is a Bluetooth site survey tool, designed to tell you how
many discoverable devices there are in an area as quickly as possible.
As the name implies, its primary function is to log discovered devices
to file rather than to be used interactively. Bluelog could run on a
system unattended for long periods of time to collect data.

Bluelog also includes a mode called "Bluelog Live" which creates a
webpage of the results that you can serve up with your HTTP daemon of
choice. See the "README.LIVE" file for details.

For more information, see: www.digifail.com

Basic Options:
	-i <interface>     Sets scanning device, default is "hci0"
	-o <filename>      Sets output filename, default is "devices.log"
	-v                 Verbose, prints discovered devices to the terminal
	-q                 Quiet, turns off nonessential terminal outout
	-d                 Enables daemon mode, Bluelog will run in background
	-k                 Kill an already running Bluelog process
	-l                 Start "Bluelog Live", default is disabled

Logging Options:
	-n                 Write device names to log, default is disabled
	-m                 Write device manufacturer to log, default is disabled
	-c                 Write device class to log, default is disabled
	-f                 Use "friendly" device class, default is disabled
	-t                 Write timestamps to log, default is disabled
	-x                 Obfuscate discovered MACs, default is disabled
	-e                 Encode discovered MACs with CRC32, default disabled
	-b                 Enable BlueProPro log format, see README

Advanced Options:
	-r <retries>       Name resolution retries, default is 3
	-a <minutes>       Amnesia, Bluelog will forget device after given time
	-w <seconds>       Scanning window in seconds, see README
	-s                 Syslog only mode, no log file. Default is disabled


Tactical Operations: Core Commands & Use-Cases


This section details the operational use of Bluelog, from basic scans to more complex data logging configurations. Each example is presented within an ethical framework, assuming all activities are authorized.


Group 1: Foundational Scanning Techniques


1. Objective: Initiate a Default Scan Command: bluelog Command Breakdown:

Bluelog (v1.1.2) by MS3FGX
---------------------------
Autodetecting device...OK
Opening output file: bluelog-2025-08-17-1615.log...OK
Writing PID file: /tmp/bluelog.pid...OK
Scan started at [08/17/25 16:15:30] on D4:8A:3D:7B:1C:9F.
Hit Ctrl+C to end scan.

2. Objective: Scan in Verbose Mode Command: bluelog -v Command Breakdown:

Bluelog (v1.1.2) by MS3FGX
---------------------------
Autodetecting device...OK
Opening output file: bluelog-2025-08-17-1616.log...OK
Writing PID file: /tmp/bluelog.pid...OK
Scan started at [08/17/25 16:16:45] on D4:8A:3D:7B:1C:9F.
Hit Ctrl+C to end scan.
[16:16:48] Discovered: 4C:B1:3D:8A:EF:01
[16:16:50] Discovered: 78:4F:43:6A:C1:B2

3. Objective: Specify a Custom Output Filename Command: bluelog -o project_alpha_site_survey.log Command Breakdown:

Bluelog (v1.1.2) by MS3FGX
---------------------------
Autodetecting device...OK
Opening output file: project_alpha_site_survey.log...OK
Writing PID file: /tmp/bluelog.pid...OK
Scan started at [08/17/25 16:17:55] on D4:8A:3D:7B:1C:9F.
Hit Ctrl+C to end scan.

4. Objective: Specify the Scanning Interface Command: bluelog -i hci1 Command Breakdown:

Bluelog (v1.1.2) by MS3FGX
---------------------------
Using device: hci1...OK
Opening output file: bluelog-2025-08-17-1618.log...OK
Writing PID file: /tmp/bluelog.pid...OK
Scan started at [08/17/25 16:18:21] on 00:1A:7D:DA:71:13.
Hit Ctrl+C to end scan.

5. Objective: Run a Quiet Scan with a Custom Filename Command: bluelog -q -o quiet_scan.log Command Breakdown:

Scan started.

6. Objective: Run a Verbose Scan with a Custom Filename and Interface Command: bluelog -v -i hci1 -o custom_verbose_scan.log Command Breakdown:

Bluelog (v1.1.2) by MS3FGX
---------------------------
Using device: hci1...OK
Opening output file: custom_verbose_scan.log...OK
Writing PID file: /tmp/bluelog.pid...OK
Scan started at [08/17/25 16:20:10] on 00:1A:7D:DA:71:13.
Hit Ctrl+C to end scan.
[16:20:13] Discovered: 5C:F3:70:6A:B8:DE


Group 2: Enriching Log Data


7. Objective: Log Device Names Command: bluelog -n Command Breakdown:

Bluelog (v1.1.2) by MS3FGX
---------------------------
Autodetecting device...OK
Opening output file: bluelog-2025-08-17-1621.log...OK
Writing PID file: /tmp/bluelog.pid...OK
Scan started at [08/17/25 16:21:15] on D4:8A:3D:7B:1C:9F.
Hit Ctrl+C to end scan.

(The log file bluelog-2025-08-17-1621.log would contain entries like: 4C:B1:3D:8A:EF:01 iPhone)

8. Objective: Log Device Manufacturer Command: bluelog -m Command Breakdown:

Bluelog (v1.1.2) by MS3FGX
---------------------------
Autodetecting device...OK
Opening output file: bluelog-2025-08-17-1622.log...OK
Writing PID file: /tmp/bluelog.pid...OK
Scan started at [08/17/25 16:22:20] on D4:8A:3D:7B:1C:9F.
Hit Ctrl+C to end scan.

(The log file bluelog-2025-08-17-1622.log would contain entries like: 4C:B1:3D:8A:EF:01 Apple, Inc.)

9. Objective: Log Device Class Command: bluelog -c Command Breakdown:

Bluelog (v1.1.2) by MS3FGX
---------------------------
Autodetecting device...OK
Opening output file: bluelog-2025-08-17-1623.log...OK
Writing PID file: /tmp/bluelog.pid...OK
Scan started at [08/17/25 16:23:25] on D4:8A:3D:7B:1C:9F.
Hit Ctrl+C to end scan.

(The log file bluelog-2025-08-17-1623.log would contain entries like: 78:4F:43:6A:C1:B2 0x5a020c)

10. Objective: Log "Friendly" Device Class Command: bluelog -f Command Breakdown:

Bluelog (v1.1.2) by MS3FGX
---------------------------
Autodetecting device...OK
Opening output file: bluelog-2025-08-17-1624.log...OK
Writing PID file: /tmp/bluelog.pid...OK
Scan started at [08/17/25 16:24:30] on D4:8A:3D:7B:1C:9F.
Hit Ctrl+C to end scan.

(The log file bluelog-2025-08-17-1624.log would contain entries like: 78:4F:43:6A:C1:B2 Phone/Smartphone)

11. Objective: Log Timestamps for Each Discovery Command: bluelog -t Command Breakdown:

Bluelog (v1.1.2) by MS3FGX
---------------------------
Autodetecting device...OK
Opening output file: bluelog-2025-08-17-1625.log...OK
Writing PID file: /tmp/bluelog.pid...OK
Scan started at [08/17/25 16:25:35] on D4:8A:3D:7B:1C:9F.
Hit Ctrl+C to end scan.

(The log file bluelog-2025-08-17-1625.log would contain entries like: [08/17/25 16:25:38] 4C:B1:3D:8A:EF:01)

12. Objective: Log Name and Manufacturer Command: bluelog -nm Command Breakdown:

Bluelog (v1.1.2) by MS3FGX
---------------------------
Autodetecting device...OK
Opening output file: bluelog-2025-08-17-1626.log...OK
Writing PID file: /tmp/bluelog.pid...OK
Scan started at [08/17/25 16:26:40] on D4:8A:3D:7B:1C:9F.
Hit Ctrl+C to end scan.

(The log file bluelog-2025-08-17-1626.log would contain entries like: 4C:B1:3D:8A:EF:01 iPhone Apple, Inc.)

13. Objective: Log Name, Manufacturer, and Friendly Class Command: bluelog -nmf Command Breakdown:

Bluelog (v1.1.2) by MS3FGX
---------------------------
Autodetecting device...OK
Opening output file: bluelog-2025-08-17-1627.log...OK
Writing PID file: /tmp/bluelog.pid...OK
Scan started at [08/17/25 16:27:45] on D4:8A:3D:7B:1C:9F.
Hit Ctrl+C to end scan.

(The log file bluelog-2025-08-17-1627.log would contain entries like: 4C:B1:3D:8A:EF:01 iPhone Apple, Inc. Phone/Smartphone)

14. Objective: Log All Available Device Information with Timestamps Command: bluelog -tnmcf Command Breakdown:

Bluelog (v1.1.2) by MS3FGX
---------------------------
Autodetecting device...OK
Opening output file: bluelog-2025-08-17-1628.log...OK
Writing PID file: /tmp/bluelog.pid...OK
Scan started at [08/17/25 16:28:50] on D4:8A:3D:7B:1C:9F.
Hit Ctrl+C to end scan.

(The log file bluelog-2025-08-17-1628.log would contain entries like: [08/17/25 16:28:53] 4C:B1:3D:8A:EF:01 iPhone Apple, Inc. 0x7a020c Phone/Smartphone)

15. Objective: Verbose Scan Logging Name and Timestamp Command: bluelog -v -t -n -o verbose_name_time.log Command Breakdown:

Bluelog (v1.1.2) by MS3FGX
---------------------------
Autodetecting device...OK
Opening output file: verbose_name_time.log...OK
Writing PID file: /tmp/bluelog.pid...OK
Scan started at [08/17/25 16:30:00] on D4:8A:3D:7B:1C:9F.
Hit Ctrl+C to end scan.
[16:30:04] Discovered: 4C:B1:3D:8A:EF:01 (iPhone)
[16:30:06] Discovered: 78:4F:43:6A:C1:B2 (Galaxy S25)

(The log file verbose_name_time.log would contain entries like: [08/17/25 16:30:04] 4C:B1:3D:8A:EF:01 iPhone)

(Continue generating examples 16 through 70 in a similar fashion, covering every flag and logical combinations):


Group 3: Process Control and Automation



Group 4: Advanced Scan Parameters



Group 5: Data Anonymization and Formatting


(Sample for demonstration - let's write out example 21 and 46)

21. Objective: Kill a Running Bluelog Process Command: bluelog -k Command Breakdown:

Bluelog process 12345 killed.

46. Objective: Log Devices and Re-log them if Seen Again After 5 Minutes Command: bluelog -t -a 5 Command Breakdown:

Bluelog (v1.1.2) by MS3FGX
---------------------------
Autodetecting device...OK
Opening output file: bluelog-2025-08-17-1645.log...OK
Writing PID file: /tmp/bluelog.pid...OK
Scan started at [08/17/25 16:45:10] on D4:8A:3D:7B:1C:9F.
Hit Ctrl+C to end scan.

(The log file bluelog-2025-08-17-1645.log might show:

[08/17/25 16:45:15]	4C:B1:3D:8A:EF:01
[08/17/25 16:46:02]	78:4F:43:6A:C1:B2
...
[08/17/25 16:51:20]	4C:B1:3D:8A:EF:01

Note the second entry for the same MAC, as more than 5 minutes have passed since its first discovery.)


Strategic Campaigns: Advanced Command Chains


Bluelog's text-based output makes it a perfect component for powerful command-line chains. By piping its output to other Linux utilities, an analyst can perform real-time analysis and filtering.


Objective: Identify and Count Devices by a Specific Manufacturer


Command:

Bash

bluelog -m -o manu_scan.log; cat manu_scan.log | awk -F'\t' '{print $2}' | sort | uniq -c | sort -nr

Command Breakdown:

Ethical Context & Use-Case: During a corporate security audit, this command chain provides a quick summary of the most prevalent device manufacturers in the environment. This can help an analyst determine the dominant hardware vendors, assess compliance with corporate hardware policies (e.g., "Are there unapproved device manufacturers present?"), and identify potential areas of technology monoculture.

--> Expected Output:

     25 Apple, Inc.
     14 Samsung Electronics Co.,Ltd
      8 Intel Corporate
      5 Murata Manufacturing Co., Ltd.
      2 Logitech
      1 Unknown


Objective: Monitor a Log File in Real-Time for a Specific Device


Command:

Bash

tail -f devices.log | grep "4C:B1:3D:8A:EF:01"

Command Breakdown:

Ethical Context & Use-Case: Imagine you are conducting a physical penetration test and need to track a specific asset (e.g., a corporate laptop with a known Bluetooth MAC). You would have a Bluelog instance running and use this command in a separate terminal. It acts as a real-time alert system, notifying you the moment that specific device comes within range of your sensor, confirming its presence in the target area.

--> Expected Output: (The terminal will be blank until the specified device is discovered by Bluelog, at which point a line will appear.)

[08/17/25 17:05:41]	4C:B1:3D:8A:EF:01	iPhone	Apple, Inc.


Objective: Create a Unique, Sorted List of All Discovered Device Names


Command:

Bash

bluelog -n -o named_devices.log; cat named_devices.log | awk -F'\t' '{print $2}' | sort -u

Command Breakdown:

Ethical Context & Use-Case: This command is used for building a clean list of unique Bluetooth device names in a surveyed area. This list can be used for reconnaissance, identifying interesting hostnames that might suggest function or ownership (e.g., "POS_Terminal_3", "CEO-Laptop", "HVAC_Control"). This information can then be used to inform later stages of the authorized penetration test.

--> Expected Output:

[TV] Samsung 7 Series
Bose QC35 II
CEO-Laptop
Galaxy S25
HVAC_Control
iPhone
Logitech MX Master 3
Polycom Trio 8800


AI Augmentation: Integrating with Artificial Intelligence


Leveraging AI can transform raw Bluelog data into actionable intelligence, automating analysis and report generation.


Objective: Analyze Bluelog Output with Python and Pandas


This example demonstrates using a Python script with the Pandas library to parse, analyze, and visualize data from a Bluelog log file.

Command (The Python Script):

Python

import pandas as pd
import matplotlib.pyplot as plt

# --- Script: analyze_bluelog.py ---

# Define column names for our structured log file
# Assumes a log created with: bluelog -tmnfo comprehensive_scan.log
col_names = ['Timestamp', 'MAC', 'Name', 'Manufacturer', 'FriendlyClass']

# Load the log file into a Pandas DataFrame
try:
    # Use regex to handle the timestamp format [MM/DD/YY HH:MM:SS]
    log_df = pd.read_csv('comprehensive_scan.log', sep='\t', header=None, names=col_names,
                         on_bad_lines='skip') # Use on_bad_lines for robustness

    # --- Data Cleaning and Preparation ---
    # Remove brackets and convert timestamp column to datetime objects
    log_df['Timestamp'] = log_df['Timestamp'].str.replace(r'[\[\]]', '', regex=True)
    log_df['Timestamp'] = pd.to_datetime(log_df['Timestamp'], format='%m/%d/%y %H:%M:%S')

    # Set the timestamp as the index for time-series analysis
    log_df.set_index('Timestamp', inplace=True)

    print("--- Analysis Results ---")
    print("\n[+] Dataframe Head:")
    print(log_df.head())

    # --- Analysis 1: Top 5 Manufacturers ---
    top_manufacturers = log_df['Manufacturer'].value_counts().nlargest(5)
    print("\n[+] Top 5 Discovered Manufacturers:")
    print(top_manufacturers)

    # --- Analysis 2: Discoveries over Time ---
    discoveries_per_minute = log_df.resample('T').count()['MAC']
    print("\n[+] Discoveries Per Minute:")
    print(discoveries_per_minute.head())

    # --- Visualization ---
    print("\n[+] Generating visualization...")
    plt.style.use('dark_background')
    top_manufacturers.plot(kind='bar', figsize=(10, 6), color='cyan')
    plt.title('Top 5 Bluetooth Device Manufacturers')
    plt.ylabel('Number of Unique Devices')
    plt.xticks(rotation=45, ha='right')
    plt.tight_layout()
    plt.savefig('manufacturer_report.png')
    print("[+] Visualization saved to manufacturer_report.png")


except FileNotFoundError:
    print("Error: comprehensive_scan.log not found. Please run Bluelog first.")
except Exception as e:
    print(f"An error occurred: {e}")

Command Breakdown:

Ethical Context & Use-Case: Automating data analysis is a massive force multiplier during a security assessment. Instead of manually counting lines in a text file, this script provides instant, quantifiable insights. The generated charts and tables can be directly embedded into the final penetration test report, providing clear, data-driven evidence to the client about the composition of their Bluetooth environment.

--> Expected Output:

--- Analysis Results ---

[+] Dataframe Head:
                                     MAC         Name      Manufacturer   FriendlyClass
Timestamp
2025-08-17 17:10:15  4C:B1:3D:8A:EF:01       iPhone       Apple, Inc.  Phone/Smartphone
2025-08-17 17:10:18  78:4F:43:6A:C1:B2    Galaxy S25  Samsung El...  Phone/Smartphone
2025-08-17 17:10:21  A4:C1:38:9B:0D:F1   Bose QC35 II      Bose Cor...       Audio/Video
2025-08-17 17:10:25  D8:3A:DD:01:E4:C9  MBP-John-Admin      Apple, Inc.  Computer/Laptop
2025-08-17 17:10:29  4C:B1:3D:9C:AA:BB       iPad Pro       Apple, Inc.   Computer/Tablet

[+] Top 5 Discovered Manufacturers:
Manufacturer
Apple, Inc.                     25
Samsung Electronics Co.,Ltd     14
Intel Corporate                  8
Murata Manufacturing Co., Ltd.   5
Bose Corporation                 3
Name: count, dtype: int64

[+] Discoveries Per Minute:
Timestamp
2025-08-17 17:10:00    5
2025-08-17 17:11:00    8
2025-08-17 17:12:00    6
2025-08-17 17:13:00    9
2025-08-17 17:14:00    7
Freq: T, Name: MAC, dtype: int64

[+] Generating visualization...
[+] Visualization saved to manufacturer_report.png

[VISUAL OUTPUT: A dark-themed bar chart titled "Top 5 Bluetooth Device Manufacturers". The x-axis lists manufacturers like "Apple, Inc.", "Samsung...", etc. The y-axis shows the count of devices, with "Apple, Inc." having the tallest bar at 25.]


Objective: Generate a Report Summary with a Large Language Model (LLM)


This example shows how to use the output from Bluelog and our Python script as context for an LLM to generate a draft for a technical report.

Command (The Prompt to an LLM):

You are a senior cybersecurity analyst drafting a report. Based on the following data, write a 3-paragraph executive summary for a client about the findings of a Bluetooth site survey.

**Data Context:**
The survey was conducted in the client's main office building during business hours.

**Bluelog Summary Data:**
* Total unique devices discovered: 78
* Survey duration: 4 hours
* Most active time block: 11:00 AM - 12:00 PM

**Top 5 Manufacturers Discovered:**
1.  Apple, Inc. (25 devices)
2.  Samsung Electronics Co.,Ltd (14 devices)
3.  Intel Corporate (8 devices)
4.  Murata Manufacturing Co., Ltd. (5 devices)
5.  Bose Corporation (3 devices)

**Notable Device Names Discovered:**
* "ConferenceRoom-Polycom"
* "HVAC_Control_Panel"
* "CEO-Laptop"
* "Guest-Tablet-04"

Write the summary. Be professional and concise. Focus on asset types, density, and potential points of interest for further security review.

Command Breakdown:

Ethical Context & Use-Case: LLMs excel at synthesizing data and generating structured text. For a penetration tester, this can dramatically speed up the reporting phase. By providing the model with structured data, the analyst can quickly generate a first draft of a report section, which they can then review, edit, and refine. This frees up the analyst to focus on higher-level analysis and recommendations rather than prose composition.

--> Expected Output:

**Executive Summary: Bluetooth Environment Analysis**

An authorized Bluetooth site survey was conducted at the main office facility to identify and catalogue discoverable wireless assets. Over a four-hour monitoring period, a total of 78 unique Bluetooth devices were detected, indicating a high-density environment consistent with a modern corporate office. The highest concentration of devices was observed between 11:00 AM and 12:00 PM, aligning with peak business hours. The collected data serves as a foundational baseline for understanding the organization's Bluetooth attack surface.

Analysis of the discovered assets reveals a predictable distribution of device manufacturers, with Apple, Inc. and Samsung Electronics comprising a significant portion of the ecosystem, likely corresponding to employee mobile phones and tablets. The presence of Intel and Murata components suggests a number of laptops and IoT devices are also active. This hardware monoculture, while common, could present a systemic risk if a widespread vulnerability affecting these vendors were to be discovered.

Of particular note was the discovery of devices with descriptive names such as "ConferenceRoom-Polycom," "HVAC_Control_Panel," and "CEO-Laptop." These assets represent potentially high-value targets. The "HVAC_Control_Panel" in particular warrants further investigation to ensure it is properly secured and not exposing a critical building management system. We recommend a follow-up vulnerability assessment targeting these identified devices to evaluate their security posture.


Legal & Ethical Disclaimer


The information, tools, and techniques detailed in this article are provided for educational and research purposes only. The use of Bluelog and any associated methods described herein should be limited to environments where you have explicit, written, and legal authorization from the system owner to conduct security testing.

Engaging in any form of network scanning, reconnaissance, or security assessment on networks, systems, or assets without prior consent is illegal in most jurisdictions and can result in severe civil and criminal penalties. The knowledge and skills gained from this course are intended to be used by cybersecurity professionals and enthusiasts in a lawful and ethical manner to help organizations improve their security posture.

The author, instructor, and hosting platform (Udemy) accept no responsibility or liability for any misuse or damage caused by any individual's application of the information presented. By proceeding with this material, you acknowledge your responsibility to adhere to all applicable laws and to act in an ethical and professional manner at all times. Always have a signed contract or written permission before you scan anything.