SecureState Blog

Read SecureState's award winning blog.

CAMScan is a tool that was developed by SecureState’s Research and Innovation department.  CAMScan was designed to help detect rogue devices that may exist on a network.  The Content Addressable Memory (CAM) table is designed to allow information routed through the switch to be sent to a single computer on a network instead of all networked systems.  A CAM table in essence is what makes a switch a switch instead of a hub.

The CAM table keeps an inventory of all devices by Media Access Control (MAC) addresses currently attached to the switch, much like a post office keeps track ofFunky_Routerwhich mail box belongs to which individual.  When information is sent across the network, it has a MAC address attached to it.  Once the CAM table receives this information, it is sorted by MAC address and then shipped to the system it was intended for, much like a mailman would receive a letter and place the letter within the corresponding mailbox.  Think of the MAC address as the sending and receive address.

SecureState’s CAMScan is used to compare a known list of CAMs to the current CAM table residing on the switch to determine discrepancies.  SecureState also designed CAMScan to support wild cards.  This can be used to whitelist/blacklist all Intel cards, for example with a prefix of “de:ad:*:*:*:*”.  A list of prefixes can be found here.  CAMScan is relatively simple to use, but in order to use it, python 2.7 must be installed or python with the package python-argparse installed.  Below are the switches used when running CAMScan:




Optional Arguments:

–help                show this help message and exit

-v, –version


set the logging level


default user to authenticate as


default password to authenticate with


list of switches to scan


list of MAC addresses to ignore


report CSV file

In order to run the tool, the user will have to log into the switch with proper credentials.  Also, if the user wants to investigate the entire enterprise for rogue devices, CAMScan would need to be ran against every switch in the environment. A basic usage of the command can be found below: –u “username” –p “password” –h “host file” –m “Known good mac address file list” –r “reportname”