Simple Network Management Protocol (SNMP) Enumeration is the process of collecting information from network devices using SNMP. It is used in network management, monitoring and penetration testing to retrieve details such as system configuration, running services and network interfaces. Poor SNMP configuration can expose sensitive information.
- Application-layer protocol for network monitoring and management
- Uses UDP ports 161 (queries) and 162 (traps)
- Helps extract system and network information from devices
- Misconfiguration may leak sensitive data
- SNMPv3 offers improved security over earlier versions
Working of SNMP Enumeration
- Target Identification: Identify devices with SNMP service running (UDP port 161)
- Community String Discovery: Try default or weak community strings (e.g., public, private). Acts like a password for SNMP access:
- SNMP Request Initiation: Send SNMP queries to the target device
- OID Extraction: Retrieve Object Identifiers (OIDs) containing system data
- Data Analysis: Analyze collected information for vulnerabilities and insights
Tools Used in SNMP
Kali Linux includes several powerful SNMP (Simple Network Management Protocol) tools used for network enumeration, device information gathering and vulnerability assessment. Here’s a list of essential SNMP tools in Kali Linux along with their use cases:
1 . snmpwalk
It is a command line utility used to recursively query SNMP enabled devices for a hierarchy of information, beginning from a specified OID (Object Identifier). It communicates using the Simple Network Management Protocol (SNMP) to retrieve structured data such as system details, network interface statistics, running services and other management information. This tool is especially useful for network enumeration, device monitoring and auditing SNMP configurations.
Syntax:
snmpwalk -v <version> -c <community> <target IP>- -v: SNMP version (1, 2c or 3)
- -c: Community string (e.g., public or private)
- <target IP>: IP address of the SNMP-enabled device
Some Common Options:
Here are some common options in 'snmpwalk'
| Option | Description |
|---|---|
| -t | Timeout (in seconds). |
| -r | Number of retries. |
| -Os | Display only last symbolic name part (short output). |
| -On | Display numeric OIDs (useful for scripting). |
| -Oe | Print enums numerically. |
| -Oq | Quick print (value only). |
| -Cc | Do not check whether the returned OIDs are increasing (faster for some agents). |
| -m | MIB module to load. Use ALL to load all MIBs. |
| -M | Path to search for MIB files. |
Example:
snmpwalk -v1.9 -public 192.168.2.4Output:

Use Case:
- To find active network interfaces.
- Show the inventory SNMP enabled devices.
- It used to assist in vulnerability assessments.
2. snmpget
snmpget is used to retrieve a specific value from an SNMP-enabled device. Unlike snmpwalk, it does not scan the entire SNMP tree and instead focuses on a single Object Identifier (OID), making it faster and more targeted.
Syntax:
snmpget -v <version> -c <community> <target IP> <OID>- -v: SNMP version
- -c: Community string
- <target IP>: Target device IP
- <OID>: Specific object identifier
Example:
snmpget -v1.9 -public 192.168.1.1 1.3.6.1.2.0.1.1.1.1Output:

Use Case:
- Used to fetch a specific SNMP Object Identifier (OID) from a device without querying the entire SNMP tree.
- Ideal for environments where minimal network traffic is preferred, since it retrieves only one value per request.
- Helps network administrators verify the current state of specific components quickly.
3. snmpbulkwalk
snmpbulkwalk is an optimized version of snmpwalk designed for efficient data retrieval in SNMPv2c and SNMPv3. It reduces network overhead by fetching multiple values in a single request, making it faster for large data sets.
Syntax:
snmpbulkwalk -v <version> -c <community> <target IP>- -v: SNMP version (preferably 2c or 3)
- -c: Community string
- <target IP>: Target device
Exmaple:
snmpbulkwalk -1.9 -public 192.168.1.1Output:

Use Case:
- Perfect for extracting complete branches like interface lists, routing tables or system statistics.
- Fewer packets are sent between client and target device, making it faster and more efficient on congested networks.
- Commonly integrated into NMS (Network Management Systems) for regular polling of metrics.
4. nmap
Nmap includes NSE (Nmap Scripting Engine) scripts that facilitate SNMP enumeration. Nmap allowing users to collect detailed information from SNMP enabled devices such as system descriptions, network interfaces and active processes.
Syntax:
nmap -sU -p 161 --script=snmp* [target IP]- -sU: UDP scan (SNMP uses UDP)
- -p 161: SNMP default port
- --script=snmp*: Runs all SNMP-related NSE scripts
- <target IP>: Target device
Example:
nmap -sU -p 161 --script=snmp* 192.168.1.7Output:

Use Case:
- Identify whether SNMP service (UDP port 161) is running on a target device.
- Detect SNMP misconfiguration
- Identify SNMP-related vulnerabilities or software versions that may be outdated.
SNMP Enumeration Components
SNMP (Simple Network Management Protocol) enumeration relies on several key components that work together to enable monitoring and management of network devices. These components help in collecting organizing and exchanging information between devices and a central management system.
1. Managed Device
- These are network devices like routers, switches, servers and computers
- They support SNMP services and provide information for monitoring and management
- They expose data that can be queried remotely
2. SNMP Agent
- This is software installed on managed devices
- It collects system information such as CPU usage, memory usage and network activity
- It sends this data to the Network Management System (NMS)
3. Network Management System (NMS)
- This is a centralized system used to monitor and manage SNMP-enabled devices
- It communicates with SNMP agents to collect performance data
- It helps in identifying network issues and managing devices
4. Management Information Base (MIB)
- This is a structured database used in SNMP
- It organizes information about network devices in a hierarchical format
- It is accessed using Object Identifiers (OIDs) to retrieve specific device data
SNMP Architecture
SNMP (Simple Network Management Protocol) follows a manager–agent model that enables centralized monitoring and control of network devices.

1. Managed Devices and SNMP Agent
Managed devices include routers, switches, servers and other networked systems. Each device runs an SNMP agent, which acts as the bridge between the device and the manager.
- The agent continuously collects operational data such as CPU usage, memory utilization, interface traffic and device status
- This information is organized and stored in the MIB in a standardized format
- When the manager sends a request (e.g., asking for interface statistics), the agent retrieves the exact value from the MIB and returns it
- The agent can also send traps automatically without being asked for example, when a link goes down or a threshold is exceeded
In the diagram, this interaction is shown on the left, where the agent communicates directly with the MIB database.
2. SNMP Manager (Network Management System – NMS)
The SNMP manager or NMS, is the centralized system used by administrators to monitor and control the network.
- It periodically sends requests to agents to collect performance and status data (polling)
- It receives and processes responses, often displaying them in dashboards, logs or alerts
- It listens for traps from agents to quickly detect failures or abnormal conditions
- It can also send configuration changes (SET requests), though this is used more cautiously in practice
In the diagram, the manager is shown on the right side, initiating communication and receiving both responses and alerts.
3. Management Information Base (MIB)
The MIB is a structured, hierarchical database that defines how management data is stored and accessed.
- Each piece of information is represented as an object with a unique Object Identifier (OID)
- OIDs follow a tree-like structure, making it easy to locate specific data (e.g., system uptime or interface speed)
- Standard MIBs like MIB-II ensure consistency across different devices and vendors
- Vendors can also define custom MIB objects for device-specific features
In the diagram, the MIB is closely linked to the agent, showing that data access happens locally on the device.
4. SNMP Protocol and Communication Flow
SNMP defines how messages are exchanged between the manager and agents across the network.
- It uses UDP for fast, connectionless communication with minimal overhead
- Port 161 is used for manager-to-agent requests and agent responses
- Port 162 is used for receiving traps (asynchronous alerts)
Common operations include:
- GET: Retrieve a specific value (e.g., system uptime)
- SET: Modify a value on the device
- TRAP: Send an alert from agent to manager
- GET-NEXT / GET-BULK: Retrieve multiple values efficiently (used in larger networks)
5. Flow From The Diagram
- The SNMP manager sends a request (SNMP command) across the network
- The request reaches the SNMP agent on a managed device
- The agent accesses the MIB database to retrieve the required data
- The agent sends an SNMP response back to the manager
- If an issue occurs, the agent can independently send a trap to the manager
Protective Measures Against SNMP Enumeration
To prevent unauthorized access and data leakage through SNMP enumeration, strong security practices should be implemented across the network infrastructure.
1. Limit SNMP Exposure
Reduce the attack surface by disabling unnecessary services. This ensures that only essential systems are reachable via SNMP.
- Disable or remove SNMP agents on systems where monitoring is not required
- Block UDP port 161 at firewalls or perimeter devices unless SNMP access is explicitly needed
2. Restrict Access to Trusted Sources
Control which systems can communicate with SNMP-enabled devices. This prevents unauthorized systems from querying device information.
- Allow SNMP requests only from trusted IP addresses (e.g., the NMS)
- Use access control lists (ACLs) or firewall rules to enforce restrictions
3. Use Secure SNMP Versions
Older versions of SNMP (v1 and v2c) rely on plaintext community strings, making them vulnerable to interception. This significantly improves confidentiality and integrity.
- Use SNMPv3, which provides authentication and encryption
- Configure strong credentials and avoid default community strings
4. Harden System-Level Access
Strengthen underlying system security to reduce enumeration risks. These measures prevent attackers from gathering system information through indirect methods.
- Apply policies like “Additional restrictions for anonymous connections”
- Disable or restrict null session access (including null session pipes and shares)
5. Secure Network Communication
Protect management traffic as it moves across the network. This reduces the risk of interception or man-in-the-middle attacks.
- Use IPsec or similar mechanisms to encrypt and authenticate SNMP traffic
- Isolate management traffic using dedicated VLANs or management networks