<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Wireless on SRA Labs | Cybersecurity Research &amp; Innovation by Security Risk Advisors</title>
    <link>https://labs.sra.io/tags/wireless/</link>
    <description>Recent content in Wireless on SRA Labs | Cybersecurity Research &amp; Innovation by Security Risk Advisors</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Tue, 26 May 2026 12:00:00 +0000</lastBuildDate><atom:link href="https://labs.sra.io/tags/wireless/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>PacketHuffer: Making Sense of Kismet Data</title>
      <link>https://labs.sra.io/posts/packethuffer/</link>
      <pubDate>Tue, 26 May 2026 12:00:00 +0000</pubDate>
      
      <guid>https://labs.sra.io/posts/packethuffer/</guid>
      <description>&lt;h1 id=&#34;background&#34;&gt;Background&lt;/h1&gt;
&lt;p&gt;&lt;a href=&#34;https://www.kismetwireless.net/&#34; target=&#34;_blank&#34;&gt;Kismet&lt;/a&gt; is a widely-used tool for wireless reconnaissance and other RF information gathering. Wireless reconnaissance, or wardriving, is a key part of wireless engagements during which operators survey the wireless networks and devices in a given area. Kismet is used to easily ingest data from multiple sources (WiFi, BLE, GPS) and identify potentially vulnerable networks and interesting devices.&lt;/p&gt;
&lt;p&gt;Kismet provides output in the form of KismetDB &lt;code&gt;.kismet&lt;/code&gt; files, which are SQLite databases.&lt;/p&gt;</description>
      <content>&lt;h1 id=&#34;background&#34;&gt;Background&lt;/h1&gt;
&lt;p&gt;&lt;a href=&#34;https://www.kismetwireless.net/&#34; target=&#34;_blank&#34;&gt;Kismet&lt;/a&gt; is a widely-used tool for wireless reconnaissance and other RF information gathering. Wireless reconnaissance, or wardriving, is a key part of wireless engagements during which operators survey the wireless networks and devices in a given area. Kismet is used to easily ingest data from multiple sources (WiFi, BLE, GPS) and identify potentially vulnerable networks and interesting devices.&lt;/p&gt;
&lt;p&gt;Kismet provides output in the form of KismetDB &lt;code&gt;.kismet&lt;/code&gt; files, which are SQLite databases.&lt;/p&gt;

  &lt;figure class=&#34;center&#34; &gt;
    &lt;img src=&#34;kismetdb-sqlite.png&#34;  alt=&#34;KismetDB SQLite File&#34;   style=&#34;border-radius: 8px;&#34;  /&gt;
    
      &lt;figcaption class=&#34;center&#34; &gt;Viewing a KismetDB file using DB Browser for SQLite.&lt;/figcaption&gt;
    
  &lt;/figure&gt;


&lt;p&gt;There are limited tools available to easily pull out Access Points (APs) from these files, and things get especially tricky when dealing with large batches of captures. Enter &lt;a href=&#34;https://github.com/SecurityRiskAdvisors/packethuffer&#34; target=&#34;_blank&#34;&gt;&lt;em&gt;PacketHuffer&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;h1 id=&#34;packethuffer&#34;&gt;PacketHuffer&lt;/h1&gt;
&lt;p&gt;The primary motivations of &lt;a href=&#34;https://github.com/SecurityRiskAdvisors/packethuffer&#34; target=&#34;_blank&#34;&gt;PacketHuffer&lt;/a&gt; are to ease the struggle of dealing with multiple Kismet captures, implement out of the box rules/detections for items of interest a-la BloodHound, and add flexibility for the easy viewing and analysis of wireless recon data. PacketHuffer takes information from batches of kismet files, extracts the wireless devices, and provides a de-duplicated/concise view of identified networks. The tool has both a CLI and Web GUI, and allows for JSON and XLSX data exports.&lt;/p&gt;

  &lt;figure class=&#34;center&#34; &gt;
    &lt;img src=&#34;viewing-data.png&#34;  alt=&#34;Network Data in the PacketHuffer GUI&#34;   style=&#34;border-radius: 8px;&#34;  /&gt;
    
      &lt;figcaption class=&#34;center&#34; &gt;Viewing a KismetDB file using the PacketHuffer GUI.&lt;/figcaption&gt;
    
  &lt;/figure&gt;


&lt;p&gt;The GUI displays a single record per SSID and aggregates information from all supplied Kismet files. In addition to the data provided by Kismet, PacketHuffer performs analysis to provide columns such as &lt;code&gt;mfp_status&lt;/code&gt; and &lt;code&gt;is_enterprise&lt;/code&gt;. These columns provide additional insight based on the Kismet data to make querying and filtering the data easier.  For example, &lt;code&gt;mfp_status&lt;/code&gt;, which indicates whether protected management frames are required for a network in a distinct column, is derived from Kismet&amp;rsquo;s &lt;code&gt;dot11.advertisedssid.wpa_mfp_required&lt;/code&gt; and &lt;code&gt;dot11.advertisedssid.wpa_mfp_supported&lt;/code&gt; attributes.&lt;/p&gt;

  &lt;figure class=&#34;center&#34; &gt;
    &lt;img src=&#34;cli.png&#34;  alt=&#34;PacketHuffer CLI Use&#34;   style=&#34;border-radius: 8px;&#34;  /&gt;
    
      &lt;figcaption class=&#34;center&#34; &gt;Processing Kismet files using the PacketHuffer CLI.&lt;/figcaption&gt;
    
  &lt;/figure&gt;


&lt;p&gt;Sample anonymized JSON output:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;SSID&amp;#34;&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;0&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;DIKomLAG78&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;1&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;af8oiic6bv&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;2&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;B10MKwloKl&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    },
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;crypt_string&amp;#34;&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;0&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;open&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;1&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;wpa2 wpa2-eap aes-ccmp&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;2&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;open&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    },
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;mfp_status&amp;#34;&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;0&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Disabled&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;1&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Disabled&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;2&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Disabled&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    },
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;is_wpa2&amp;#34;&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;0&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;1&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;2&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    },
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;is_psk&amp;#34;&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;0&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;1&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;2&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    },
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;[SNIPPED]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;rules&#34;&gt;Rules&lt;/h2&gt;
&lt;p&gt;A main focus of the tool is the ability to use YAML defined rules and custom queries to identify interesting networks, providing operators with an intuitive UI for Kismet data. PacketHuffer rules consist of a condition and guidance. Networks that meet the criteria for a given rule will have information added to the &lt;code&gt;guidance&lt;/code&gt; column.&lt;/p&gt;
&lt;p&gt;The following rule can be used to identify potential deauth candidates, it identifies WPA-PSK networks without protected management frames.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;- &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;deauth&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;condition&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;mfp_status == &amp;#39;Disabled&amp;#39; and is_wpa == True and is_psk == True&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;guidance&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;WPA(2)-PSK network with management frame protection disabled, potential deauthentication candidate.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
  &lt;figure class=&#34;center&#34; &gt;
    &lt;img src=&#34;rule-filtering.png&#34;  alt=&#34;Using Rule Filtering&#34;   style=&#34;border-radius: 8px;&#34;  /&gt;
    
      &lt;figcaption class=&#34;center&#34; &gt;Using rules to identify open networks while hiding hotspots&lt;br&gt;and APs with locally administered MAC addresses.&lt;/figcaption&gt;
    
  &lt;/figure&gt;


&lt;h3 id=&#34;default-rules&#34;&gt;Default Rules&lt;/h3&gt;
&lt;p&gt;The default PacketHuffer config currently ships with the following rules:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Name&lt;/th&gt;
          &lt;th&gt;Logic&lt;/th&gt;
          &lt;th&gt;Guidance&lt;/th&gt;
          &lt;th&gt;Note&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;hidden_networks&lt;/td&gt;
          &lt;td&gt;advertised_SSID == &#39;&#39;&lt;/td&gt;
          &lt;td&gt;Hidden network, SSID identified by examining device probes and responses.&lt;/td&gt;
          &lt;td&gt;PacketHuffer/Kismet will automatically reveal hidden network names by parsing device probes/associations.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;deauth&lt;/td&gt;
          &lt;td&gt;mfp_status == &amp;lsquo;Disabled&amp;rsquo; and is_wpa == True and is_psk == True&lt;/td&gt;
          &lt;td&gt;WPA(2)-PSK network with management frame protection disabled, potential deauthentication candidate.&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;pmkid_candidate&lt;/td&gt;
          &lt;td&gt;is_wpa == True and is_psk == True&lt;/td&gt;
          &lt;td&gt;WPA(2)-PSK network, potential PMKID attack candidate.&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;dragonblood&lt;/td&gt;
          &lt;td&gt;is_wpa3_transition == True and mfp_status == &amp;lsquo;Disabled&amp;rsquo;&lt;/td&gt;
          &lt;td&gt;Network is in WPA3 transition mode, potential WPA3 downgrade attack candidate (DragonBlood).&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;wep_encryption&lt;/td&gt;
          &lt;td&gt;is_wep == True&lt;/td&gt;
          &lt;td&gt;Network uses WEP encryption, potential candidate for ARP Request Replay Attack.&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;open_network&lt;/td&gt;
          &lt;td&gt;crypt_string == &amp;rsquo;&amp;rsquo; or crypt_string == &amp;rsquo;none&amp;rsquo; or crypt_string == &amp;lsquo;open&amp;rsquo;&lt;/td&gt;
          &lt;td&gt;Open network with no encryption.&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;hotspots&lt;/td&gt;
          &lt;td&gt;hotspot == True&lt;/td&gt;
          &lt;td&gt;This network&amp;rsquo;s OUI maps to a hotspot or mobile device vendor.&lt;/td&gt;
          &lt;td&gt;This is determined based on OUI lookups / vendors&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;locally_administered_mac&lt;/td&gt;
          &lt;td&gt;locally_administered_mac == True&lt;/td&gt;
          &lt;td&gt;This network&amp;rsquo;s MAC is in the range for locally administered MACs. This may be randomized by a mobile OS/privacy feature.&lt;/td&gt;
          &lt;td&gt;This flags as true if the 2nd character of the MAC is in a locally administered range&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;evil_twin&lt;/td&gt;
          &lt;td&gt;is_enterprise == True&lt;/td&gt;
          &lt;td&gt;Enterprise network with EAP enabled. Check the EAP method(s) in use, potential candidate for evil-twin attacks or relay attacks w/sycophant.&lt;/td&gt;
          &lt;td&gt;More work will need to be done here to determine if specific guidance can be given based on EAP types&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;custom-queries&#34;&gt;Custom Queries&lt;/h2&gt;
&lt;p&gt;In addition to rules, users can filter data using custom queries using &lt;a href=&#34;https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.query.html&#34; target=&#34;_blank&#34;&gt;Pandas syntax&lt;/a&gt;. We can extend the deauth example from above by only identifying networks with connected clients.&lt;/p&gt;

  &lt;figure class=&#34;center&#34; &gt;
    &lt;img src=&#34;custom-query.png&#34;  alt=&#34;Making Custom Queries&#34;   style=&#34;border-radius: 8px;&#34;  /&gt;
    
      &lt;figcaption class=&#34;center&#34; &gt;Using custom queries to identify PSK networks&lt;br&gt;with more than 5 connected clients.&lt;/figcaption&gt;
    
  &lt;/figure&gt;


&lt;p&gt;This can be used to identify networks based on specific criteria, e.g. a specific string in the SSID, or to test logic for rule creation.&lt;/p&gt;
&lt;h2 id=&#34;handling-multiple-captures&#34;&gt;Handling Multiple Captures&lt;/h2&gt;
&lt;p&gt;Warwalking generally involves the collection of GPS data to locate identified networks, but this isn&amp;rsquo;t always feasible depending on the site. When performing recon of small sites such as office buildings, GPS data isn&amp;rsquo;t helpful in pinpointing network locations. To combat this, I wanted a way to view networks found across a series of captures scoped to a specific area (e.g. floor-1.kismet, floor-2.kismet) and identify which files each network was present in.&lt;/p&gt;
&lt;p&gt;When PacketHuffer processes multiple captures, data is de-duplicated by device MAC address, PacketHuffer will provide a single row of data for each broadcasted SSID. The &lt;code&gt;source_db&lt;/code&gt; column provides a list of capture files each network was identified in.&lt;/p&gt;

  &lt;figure class=&#34;center&#34; &gt;
    &lt;img src=&#34;multi-capture.png&#34;  alt=&#34;Networks identified in multiple capture files&#34;   style=&#34;border-radius: 8px;&#34;  /&gt;
    
      &lt;figcaption class=&#34;center&#34; &gt;Viewing networks identified in multiple capture files.&lt;/figcaption&gt;
    
  &lt;/figure&gt;


&lt;p&gt;The row displayed for each SSID will be the record from the last time the network was seen by Kismet. Some columns such as &lt;code&gt;channel&lt;/code&gt;, &lt;code&gt;num_connected_clients&lt;/code&gt;, and &lt;code&gt;devmac&lt;/code&gt; will contain aggregated data from all records.&lt;/p&gt;
&lt;h1 id=&#34;closing&#34;&gt;Closing&lt;/h1&gt;
&lt;p&gt;It can be difficult to turn wireless recon data into an actionable plan. Using tools like PacketHuffer, you can more easily make sense of Kismet data and identify targets on wireless engagements.&lt;/p&gt;
&lt;p&gt;PacketHuffer source code can be found &lt;a href=&#34;https://github.com/SecurityRiskAdvisors/packethuffer&#34; target=&#34;_blank&#34;&gt;here&lt;/a&gt;. Feel free to contribute with additional rules and detection logic.&lt;/p&gt;
</content>
    </item>
    
  </channel>
</rss>
