← retour aux outils back to tools

# 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/onesixtyone

## Overview

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