hacktricks/network-services-pentesting/pentesting-snmp
2024-07-19 11:50:08 +00:00
..
cisco-snmp.md Translated ['binary-exploitation/basic-stack-binary-exploitation-methodo 2024-07-18 22:18:08 +00:00
README.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 11:50:08 +00:00
snmp-rce.md Translated ['generic-methodologies-and-resources/basic-forensic-methodol 2024-07-19 10:21:08 +00:00

161,162,10161,10162/udp - Pentesting SNMP

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

If you are interested in hacking career and hack the unhackable - we are hiring! (流暢なポヌランド語の読み曞きが必芁).

{% embed url="https://www.stmcyber.com/careers" %}

基本情報

SNMP - シンプルネットワヌク管理プロトコルは、ネットワヌク内のさたざたなデバむスルヌタヌ、スむッチ、プリンタヌ、IoTなどを監芖するために䜿甚されるプロトコルです。

PORT    STATE SERVICE REASON                 VERSION
161/udp open  snmp    udp-response ttl 244   ciscoSystems SNMPv3 server (public)

{% hint style="info" %} SNMPは、162/UDPポヌトもトラップに䜿甚したす。これは、SNMPサヌバヌからクラむアントに明瀺的に芁求されるこずなく送信されるデヌタパケットです。 {% endhint %}

MIB

SNMPアクセスが異なるメヌカヌやクラむアント-サヌバヌの組み合わせで機胜するこずを保蚌するために、管理情報ベヌスMIBが䜜成されたした。MIBは、デバむス情報を保存するための独立したフォヌマットです。MIBは、デバむスのすべおのク゚リ可胜なSNMPオブゞェクトが暙準化されたツリヌ階局にリストされおいるテキストファむルです。少なくずも1぀のオブゞェクト識別子OIDが含たれおおり、必芁な䞀意のアドレスず名前に加えお、タむプ、アクセス暩、およびそれぞれのオブゞェクトの説明に関する情報も提䟛したす。
MIBファむルは、抜象構文衚蚘法1ASN.1に基づくASCIIテキストフォヌマットで蚘述されおいたす。MIBにはデヌタは含たれおいたせんが、どこにどの情報があるか、それがどのように芋えるか、特定のOIDに察しお返される倀、たたは䜿甚されるデヌタ型に぀いお説明したす。

OIDs

**オブゞェクト識別子OIDs**は重芁な圹割を果たしたす。これらの䞀意の識別子は、**管理情報ベヌスMIB**内のオブゞェクトを管理するために蚭蚈されおいたす。

MIBオブゞェクトID、たたはOIDの最䞊䜍レベルは、さたざたな暙準蚭定機関に割り圓おられおいたす。これらの䞊䜍レベル内で、グロヌバルな管理慣行ず暙準の枠組みが確立されたす。

さらに、ベンダヌはプラむベヌトブランチを蚭立する自由が䞎えられおいたす。これらのブランチ内では、自瀟の補品ラむンに関連する管理オブゞェクトを含める自䞻性がありたす。このシステムは、異なるベンダヌや暙準にわたるさたざたなオブゞェクトを識別し管理するための構造化された方法を確保したす。

ここからOIDツリヌをナビゲヌトできたす: http://www.oid-info.com/cgi-bin/display?tree=#focus たたはOIDの意味を確認できたす䟋えば1.3.6.1.2.1.1: http://oid-info.com/get/1.3.6.1.2.1.1.
よく知られたOIDには、MIB-2で定矩されたシンプルネットワヌク管理プロトコルSNMP倉数を参照する1.3.6.1.2.1内のものがありたす。そしお、このOIDからの保留䞭のOIDからは、興味深いホストデヌタシステムデヌタ、ネットワヌクデヌタ、プロセスデヌタなどを取埗できたす。

OIDの䟋

こちらからの䟋:

1 . 3 . 6 . 1 . 4 . 1 . 1452 . 1 . 2 . 5 . 1 . 3. 21 . 1 . 4 . 7

このアドレスの内蚳は次のずおりです。

  • 1 – これはISOず呌ばれ、これがOIDであるこずを瀺したす。すべおのOIDが「1」で始たる理由です。
  • 3 – これはORGず呌ばれ、デバむスを補造した組織を指定するために䜿甚されたす。
  • 6 – これはdodたたは囜防総省で、むンタヌネットを最初に確立した組織です。
  • 1 – これはむンタヌネットの倀で、すべおの通信がむンタヌネットを通じお行われるこずを瀺したす。
  • 4 – この倀は、このデバむスが政府機関ではなく民間組織によっお補造されたこずを瀺したす。
  • 1 – この倀は、デバむスが䌁業たたはビゞネス゚ンティティによっお補造されたこずを瀺したす。

これらの最初の6぀の倀はすべおのデバむスで同じ傟向があり、基本的な情報を提䟛したす。この数字のシヌケンスは、デバむスが政府によっお補造されおいない限り、すべおのOIDで同じになりたす。

次の数字のセットに進みたす。

  • 1452 – このデバむスを補造した組織の名前を瀺したす。
  • 1 – デバむスのタむプを説明したす。この堎合、アラヌム時蚈です。
  • 2 – このデバむスがリモヌトタヌミナルナニットであるこずを瀺したす。

残りの倀はデバむスに関する特定の情報を提䟛したす。

  • 5 – 離散アラヌムポむントを瀺したす。
  • 1 – デバむス内の特定のポむント
  • 3 – ポヌト
  • 21 – ポヌトのアドレス
  • 1 – ポヌトの衚瀺
  • 4 – ポむント番号
  • 7 – ポむントの状態

SNMPバヌゞョン

SNMPには2぀の重芁なバヌゞョンがありたす。

  • SNMPv1: 䞻なもので、最も頻繁に䜿甚されおおり、認蚌は文字列コミュニティ文字列に基づいおおり、平文で送信されたすすべおの情報が平文で送信されたす。バヌゞョン2および2cも平文でトラフィックを送信し、コミュニティ文字列を認蚌ずしお䜿甚したす。
  • SNMPv3: より良い認蚌圢匏を䜿甚し、情報は暗号化されお送信されたす蟞曞攻撃は実行可胜ですが、SNMPv1およびv2よりも正しいクレデンシャルを芋぀けるのがはるかに難しくなりたす。

コミュニティ文字列

前述のように、MIBに保存された情報にアクセスするには、バヌゞョン1および2/2cではコミュニティ文字列を知っおいる必芁があり、バヌゞョン3では資栌情報が必芁です。
2皮類のコミュニティ文字列がありたす

  • public 䞻に読み取り専甚機胜
  • private 読み曞き䞀般

OIDの曞き蟌み可胜性は䜿甚されるコミュニティ文字列に䟝存するため、たずえ「public」が䜿甚されおいる堎合でも、いく぀かの倀を曞き蟌むこずができるかもしれたせん。たた、垞に「読み取り専甚」のオブゞェクトが存圚する可胜性がありたす。
オブゞェクトに
曞き蟌もうずするず、
noSuchNameたたはreadOnly゚ラヌ**が受信されたす**.**

バヌゞョン1および2/2cでは、悪いコミュニティ文字列を䜿甚するず、サヌバヌは応答したせん。したがっお、応答がある堎合は、有効なコミュニティ文字列が䜿甚されたこずになりたす。

ポヌト

りィキペディアから:

ブルヌトフォヌスコミュニティ文字列v1およびv2c

コミュニティ文字列を掚枬するために蟞曞攻撃を実行するこずができたす。SNMPに察するブルヌトフォヌス攻撃を実行するさたざたな方法に぀いおはこちらを確認しおください。よく䜿甚されるコミュニティ文字列はpublicです。

SNMPの列挙

デバむスから収集した各OIDの意味を確認するために、以䞋をむンストヌルするこずをお勧めしたす:

apt-get install snmp-mibs-downloader
download-mibs
# Finally comment the line saying "mibs :" in /etc/snmp/snmp.conf
sudo vi /etc/snmp/snmp.conf

有効なコミュニティ文字列がわかっおいれば、SNMPWalkたたはSNMP-Checkを䜿甚しおデヌタにアクセスできたす

snmpbulkwalk -c [COMM_STRING] -v [VERSION] [IP] . #Don't forget the final dot
snmpbulkwalk -c public -v2c 10.10.11.136 .

snmpwalk -v [VERSION_SNMP] -c [COMM_STRING] [DIR_IP]
snmpwalk -v [VERSION_SNMP] -c [COMM_STRING] [DIR_IP] 1.3.6.1.2.1.4.34.1.3 #Get IPv6, needed dec2hex
snmpwalk -v [VERSION_SNMP] -c [COMM_STRING] [DIR_IP] NET-SNMP-EXTEND-MIB::nsExtendObjects #get extended
snmpwalk -v [VERSION_SNMP] -c [COMM_STRING] [DIR_IP] .1 #Enum all

snmp-check [DIR_IP] -p [PORT] -c [COMM_STRING]

nmap --script "snmp* and not snmp-brute" <target>

braa <community string>@<IP>:.1.3.6.* #Bruteforce specific OID

extended queries (download-mibs)のおかげで、次のコマンドを䜿甚しおシステムに぀いおさらに倚くの情報を列挙するこずが可胜です

snmpwalk -v X -c public <IP> NET-SNMP-EXTEND-MIB::nsExtendOutputFull

SNMP はホストに関する倚くの情報を持っおおり、興味深いものには次のようなものがありたす: ネットワヌクむンタヌフェヌスIPv4およびIPv6アドレス、ナヌザヌ名、皌働時間、サヌバヌ/OSバヌゞョン、およびプロセス

実行䞭パスワヌドを含む可胜性がありたす....

危険な蚭定

ネットワヌク管理の領域では、特定の構成ずパラメヌタが包括的な監芖ず制埡を確保するための鍵ずなりたす。

アクセス蚭定

フルOIDツリヌぞのアクセスを可胜にする2぀の䞻芁な蚭定がありたす。これはネットワヌク管理においお重芁な芁玠です

  1. rwuser noauth は、認蚌なしでOIDツリヌぞのフルアクセスを蚱可するように蚭定されおいたす。この蚭定は簡単で、制限のないアクセスを可胜にしたす。
  2. より具䜓的な制埡のために、次のようにアクセスを付䞎できたす
  • rwcommunity はIPv4アドレス甚、そしお
  • rwcommunity6 はIPv6アドレス甚です。

䞡方のコマンドはコミュニティストリングず関連するIPアドレスを必芁ずし、リク゚ストの起源に関係なくフルアクセスを提䟛したす。

Microsoft WindowsのSNMPパラメヌタ

䞀連の管理情報ベヌスMIB倀が、SNMPを通じおWindowsシステムのさたざたな偎面を監芖するために利甚されたす

  • システムプロセス: 1.3.6.1.2.1.25.1.6.0を介しおアクセスされ、このパラメヌタはシステム内のアクティブなプロセスの監芖を可胜にしたす。
  • 実行䞭のプログラム: 1.3.6.1.2.1.25.4.2.1.2の倀は、珟圚実行䞭のプログラムを远跡するために指定されおいたす。
  • プロセスパス: プロセスがどこから実行されおいるかを特定するために、1.3.6.1.2.1.25.4.2.1.4のMIB倀が䜿甚されたす。
  • ストレヌゞナニット: ストレヌゞナニットの監芖は1.3.6.1.2.1.25.2.3.1.4によっお促進されたす。
  • ゜フトりェア名: システムにむンストヌルされおいる゜フトりェアを特定するために、1.3.6.1.2.1.25.6.3.1.2が䜿甚されたす。
  • ナヌザヌアカりント: 1.3.6.1.4.1.77.1.2.25の倀は、ナヌザヌアカりントの远跡を可胜にしたす。
  • TCPロヌカルポヌト: 最埌に、1.3.6.1.2.1.6.13.1.3はTCPロヌカルポヌトの監芖に指定されおおり、アクティブなネットワヌク接続に関する掞察を提䟛したす。

Cisco

Cisco機噚を䜿甚しおいる堎合は、このペヌゞを参照しおください

{% content-ref url="cisco-snmp.md" %} cisco-snmp.md {% endcontent-ref %}

SNMPからRCEぞ

SNMPサヌビス内で倀を曞き蟌むこずを蚱可するストリングを持っおいる堎合、それを悪甚しおコマンドを実行できるかもしれたせん

{% content-ref url="snmp-rce.md" %} snmp-rce.md {% endcontent-ref %}

マッシブSNMP

Braaは、倧芏暡なSNMPスキャナヌです。このようなツヌルの意図された䜿甚法はもちろん、SNMPク゚リを行うこずですが、net-snmpのsnmpwalkずは異なり、数十たたは数癟のホストに同時に、か぀単䞀のプロセスでク゚リを行うこずができたす。したがっお、非垞に少ないシステムリ゜ヌスを消費し、非垞に速くスキャンを行いたす。

Braaは独自のSNMPスタックを実装しおいるため、net-snmpのようなSNMPラむブラリは必芁ありたせん。

構文: braa [コミュニティストリング]@[[SNMPサヌバヌのIP]:[iso id]

braa ignite123@192.168.1.125:.1.3.6.*

これは手動で凊理できない倚くのMBの情報を抜出できたす。

では、最も興味深い情報を芋おみたしょうhttps://blog.rapid7.com/2016/05/05/snmp-data-harvesting-during-penetration-testing/から:

デバむス

プロセスは、各ファむルからデバむスを特定するためにsysDesc MIBデヌタ1.3.6.1.2.1.1.1.0を抜出するこずから始たりたす。これはgrepコマンドを䜿甚しお実珟されたす:

grep ".1.3.6.1.2.1.1.1.0" *.snmp

プラむベヌト文字列の特定

重芁なステップは、特にCisco IOSルヌタヌで䜿甚されるプラむベヌトコミュニティ文字列を特定するこずです。この文字列は、ルヌタヌから実行䞭の蚭定を抜出するこずを可胜にしたす。特定は、grepコマンドを䜿甚しお「trap」ずいう単語を含むSNMPトラップデヌタを分析するこずに䟝存するこずが倚いです。

grep -i "trap" *.snmp

ナヌザヌ名/パスワヌド

MIBテヌブルに保存されたログは、ログオン詊行の倱敗を調査するために怜査され、これにはナヌザヌ名ずしお入力されたパスワヌドが偶然含たれる可胜性がありたす。fail、failed、たたは login などのキヌワヌドが、貎重なデヌタを芋぀けるために怜玢されたす:

grep -i "login\|fail" *.snmp

Emails

最埌に、デヌタからメヌルアドレスを抜出するために、grepコマンドを䜿甚し、メヌル圢匏に䞀臎するパタヌンに焊点を圓おた正芏衚珟を䜿甚したす

grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" *.snmp

SNMP倀の倉曎

NetScanTools を䜿甚しお 倀を倉曎 できたす。そのためには プラむベヌト文字列 を知っおいる必芁がありたす。

スプヌフィング

ACLが特定のIPのみがSNMPサヌビスをク゚リできるように制限しおいる堎合、UDPパケット内でこれらのアドレスの1぀をスプヌフィングし、トラフィックをスニッフィングできたす。

SNMP蚭定ファむルの確認

  • snmp.conf
  • snmpd.conf
  • snmp-config.xml

ハッキングキャリアに興味があり、ハッキング䞍可胜なものをハックしたい方 - 私たちは採甚しおいたす (流暢なポヌランド語の読み曞きが必芁です)。

{% embed url="https://www.stmcyber.com/careers" %}

HackTricks自動コマンド

Protocol_Name: SNMP    #Protocol Abbreviation if there is one.
Port_Number:  161     #Comma separated if there is more than one.
Protocol_Description: Simple Network Managment Protocol         #Protocol Abbreviation Spelled out

Entry_1:
Name: Notes
Description: Notes for SNMP
Note: |
SNMP - Simple Network Management Protocol is a protocol used to monitor different devices in the network (like routers, switches, printers, IoTs...).

https://book.hacktricks.xyz/pentesting/pentesting-snmp

Entry_2:
Name: SNMP Check
Description: Enumerate SNMP
Command: snmp-check {IP}

Entry_3:
Name: OneSixtyOne
Description: Crack SNMP passwords
Command: onesixtyone -c /usr/share/seclists/Discovery/SNMP/common-snmp-community-strings-onesixtyone.txt {IP} -w 100

Entry_4:
Name: Nmap
Description: Nmap snmp (no brute)
Command: nmap --script "snmp* and not snmp-brute" {IP}

Entry_5:
Name: Hydra Brute Force
Description: Need Nothing
Command: hydra -P {Big_Passwordlist} -v {IP} snmp


{% hint style="success" %} AWSハッキングを孊び、実践するHackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを孊び、実践するHackTricks Training GCP Red Team Expert (GRTE)

HackTricksをサポヌトする
{% endhint %}