Jump to content

Client Tracking & Tracking Scripts in 2.4.0


Recommended Posts

I have manually added a client MAC to the Client Tracking Client Management list in the format FC:FC:48:12:34:56. This client's WLAN radio is in the physical environment.

For basic testing purposes I have set the tracking script to be:


names = ["fred", "barney", "wilma", "betty", "gazoo", "dino"]

datafile = open("/tracking/test.txt", "a")

for each in names:
        datafile.write(str(each) + "\n")


Per the help pop-up, python is supported.

I have created the /tracking folder and set permissions to 777.

I can run this python script manually via an SSH connection to the MKV and it runs fine. The test.txt file is created and the names are added to it.

However, the script does not run when saved in the Tracking Script section under the Tracking tab of PineAP.

I currently have Karma, PineAP (Beacon Response, Harvester) running. Dogma is not running. But I have tried different combinations of running/not running without success. I have tried reboots and factory resets, all to no avail.

The help bubble for Client Management reads:

This section allows you to add or remove target MAC addresses in the format 00:11:22:33:44:55 to the tracking list.

Every time the WiFi Pineapple sees the MAC addresses in this list, it will execute a user configurable script.

I don't know what is meant by the Pineapple seeing the MAC address in the list; does it just see the MAC no matter what (source, destination, BSSID) or does it have to see the MAC in a specific type of frame (Probe Request, Probe Response, Beacon). Is this really meant to just 'track clients' or is it as the help is worded (i.e. a script will run when the MAC is seen)?

Does it run the script EVERY time is sees the MAC or does it just run it once?

The Tracking Script help bubble reads:

This section allows the modification of the tracking script. This script is executed every time a MAC from the tracking list is found.

The tracking script can be written in any language the WiFi Pineapple supports - simply change the shebang at the top of the script.
The script is automatically passed the MAC address of the tracked client, the event type (0 == probe request, 1 == association), and the SSID the client probed for or has associated to.

This seems to imply that only Probe Request and Association frames will initiate the execution of the script. Is that true? Does the probing node have to be probing an SSID on the SSID Management List or does it just have to be a Probe Request frame in general (Broadcast SSID, non-PineAP involved SSID)? Is there even a relationship between the SSID Management List and the Client Tracking stuff?

The help bubble says the MAC of the tracked client, the event type and the SSID the client probed for are passed to the script. Does that imply that they must somehow be used by the script? Is there any reason my script can't just do its own thing, independent of the information?

Finally, are only event type 0 (probe request) and event type 1 (association) passed? Are there other events types that will be passed by the script? If so, is there a legend? Those values (0 & 1) don't really map to Frame Subtype values.

If this works they way I think it is supposed to work I can conjure up some pretty amazing things to do. But, as of right now, I can't get it to do anything and documentation seems to be non-existent.

Anyone have any insight on this? Please share.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...