onesixtyone
Scanner SNMP rapide. Envoie des requêtes SNMP à plusieurs hôtes simultanément pour trouver des chaînes de communauté valides : bien plus rapide qu'un brute-force SNMP séquentiel. Fast SNMP scanner. Sends SNMP requests to multiple hosts simultaneously to find valid community strings — much faster than sequential SNMP brute-forcing.
↗ https://github.com/trailofbits/onesixtyoneOverview
onesixtyone is an SNMP scanner that brute-forces community strings across multiple hosts simultaneously. Named after UDP port 161 (SNMP), it efficiently discovers SNMP-enabled devices and their community strings by sending many requests in parallel rather than sequentially.
Basic Usage
Scan single host with default community strings
onesixtyone 10.10.10.1
With custom community string list
onesixtyone -c /usr/share/seclists/Discovery/SNMP/common-snmp-community-strings.txt 10.10.10.1
Scan multiple hosts from file
onesixtyone -c communities.txt -i hosts.txt
Scan subnet
onesixtyone -c communities.txt 10.10.10.1/24
Increase timeout
onesixtyone -c communities.txt -t 2 10.10.10.1
Finding SNMP Hosts First
Scan for UDP 161 open with nmap
nmap -sU -p 161 --open 10.10.10.0/24 -oG - | grep "161/open" | awk '{print $2}' > snmp_hosts.txt
Or with masscan (faster)
masscan -p U:161 --rate 1000 10.10.10.0/24
Then brute-force community strings
onesixtyone -c /usr/share/seclists/Discovery/SNMP/snmp.txt -i snmp_hosts.txt
Community String Lists
Quick list (most common)
cat > quick_communities.txt << 'EOF'
public
private
community
manager
monitor
admin
cisco
snmp
EOF
# Full list from SecLists
/usr/share/seclists/Discovery/SNMP/common-snmp-community-strings.txt
/usr/share/seclists/Discovery/SNMP/snmp.txt
# Try quick list first, then full list
onesixtyone -c quick_communities.txt 10.10.10.1
onesixtyone -c /usr/share/seclists/Discovery/SNMP/snmp.txt 10.10.10.1
Output and Follow-Up
# Example output:
# 10.10.10.1 [public] Linux mail 4.19.0 #1 SMP Thu Feb 6 UTC 2020
# 10.10.10.5 [private] Cisco IOS Software, Version 15.1(4)M4
After finding community string, enumerate with snmpwalk or snmpcheck:
snmpwalk -v 2c -c public 10.10.10.1
Or comprehensive enum with snmpcheck:
snmpcheck -c public 10.10.10.1
snmpwalk -v 2c -c public 10.10.10.1 1.3.6.1.2.1.1.5.0 # hostname
snmpwalk -v 2c -c public 10.10.10.1 1.3.6.1.2.1.25.4 # processes
Tips
- SNMP v1/v2c sends community strings in plaintext UDP packets — trivially sniffable
- “public” works on a surprising number of devices — always try it first
- Network devices (switches, routers, printers) almost always have SNMP enabled
- Write community (usually “private”) can modify device config — handle carefully
Help / Man page
onesixtyone [options] <host/subnet>
-c FILE Community strings file
-i FILE Hosts file
-o FILE Output file
-t TIME Timeout in milliseconds (default: 10)
-d Debug output
-q Quiet mode
-w N Wait N ms between sending packets
host/subnet: IP, CIDR, or range
Vue d’ensemble
onesixtyone est un scanner SNMP qui brute-force les chaînes de communauté sur plusieurs hôtes simultanément. Nommé d’après le port UDP 161 (SNMP), il découvre efficacement les équipements SNMP activés et leurs chaînes de communauté en envoyant de nombreuses requêtes en parallèle plutôt que séquentiellement.
Utilisation de base
# Scanner un seul hôte avec les chaînes de communauté par défaut
onesixtyone 10.10.10.1
# Avec une liste personnalisée de chaînes de communauté
onesixtyone -c /usr/share/seclists/Discovery/SNMP/common-snmp-community-strings.txt 10.10.10.1
# Scanner plusieurs hôtes depuis un fichier
onesixtyone -c communities.txt -i hosts.txt
# Scanner un sous-réseau
onesixtyone -c communities.txt 10.10.10.1/24
# Augmenter le timeout
onesixtyone -c communities.txt -t 2 10.10.10.1
Trouver les hôtes SNMP d’abord
# Scanner les hôtes avec UDP 161 ouvert via nmap
nmap -sU -p 161 --open 10.10.10.0/24 -oG - | grep "161/open" | awk '{print $2}' > snmp_hosts.txt
# Ou avec masscan (plus rapide)
masscan -p U:161 --rate 1000 10.10.10.0/24
# Puis brute-forcer les chaînes de communauté
onesixtyone -c /usr/share/seclists/Discovery/SNMP/snmp.txt -i snmp_hosts.txt
Listes de chaînes de communauté
cat > quick_communities.txt << 'EOF'
public
private
community
manager
monitor
admin
cisco
snmp
EOF
# Liste complète depuis SecLists
/usr/share/seclists/Discovery/SNMP/common-snmp-community-strings.txt
/usr/share/seclists/Discovery/SNMP/snmp.txt
# Essayer d'abord la liste rapide, puis la liste complète
onesixtyone -c quick_communities.txt 10.10.10.1
onesixtyone -c /usr/share/seclists/Discovery/SNMP/snmp.txt 10.10.10.1
Sortie et suivi
# Exemple de sortie :
# 10.10.10.1 [public] Linux mail 4.19.0 #1 SMP Thu Feb 6 UTC 2020
# 10.10.10.5 [private] Cisco IOS Software, Version 15.1(4)M4
Après avoir trouvé la chaîne de communauté, énumérer avec snmpwalk ou snmpcheck :
snmpwalk -v 2c -c public 10.10.10.1
Ou énumération complète avec snmpcheck :
snmpcheck -c public 10.10.10.1
snmpwalk -v 2c -c public 10.10.10.1 1.3.6.1.2.1.1.5.0 # hostname
snmpwalk -v 2c -c public 10.10.10.1 1.3.6.1.2.1.25.4 # processus
Conseils
- SNMP v1/v2c envoie les chaînes de communauté en clair dans des paquets UDP : trivialement sniffable
- “public” fonctionne sur un nombre surprenant d’équipements : toujours l’essayer en premier
- Les équipements réseau (switchs, routeurs, imprimantes) ont presque toujours SNMP activé
- La communauté d’écriture (généralement “private”) peut modifier la configuration de l’équipement : à manier avec précaution
Aide / Page de manuel
onesixtyone [options] <host/subnet>
-c FILE Community strings file
-i FILE Hosts file
-o FILE Output file
-t TIME Timeout in milliseconds (default: 10)
-d Debug output
-q Quiet mode
-w N Wait N ms between sending packets
host/subnet: IP, CIDR, or range