SNMP デフォルトのコミュニティ名/脆弱なパスワードの脆弱性とセキュリティ強化

1. 脆弱性の説明

SNMP (Simple Network Management Protocol) は、ネットワークに接続されている機器の管理上の問題を監視するために、コンピュータ オペレーティング システム機器やネットワーク機器などで広く使用されています。SNMP サービスを実行しているデバイスで、管理者がアクセスするためのデフォルトのコミュニティ名/弱いパスワードを不適切に設定すると、機密情報が漏洩します。機密性は、システム上で実行されているプロセス、インストールされているソフトウェア、システム内に存在するユーザー、実行中のサービス、ポートの状態などに限定されません。この情報を通じて、攻撃者はデバイスの全体的な状況を明確に把握し、開いているポートとサービスに基づいて侵入ポイントを迅速に特定し、実行中のプロセスの名前に基づいて保護ソフトウェアの有無とバイパス方法を判断できます。既存のユーザー名に応じて、発破効率を大幅に向上させることができます。

複数のオペレーティング システムまたはネットワーク デバイスの SNMP エージェント サービスにはデフォルトのパスワードがあります。これらのデフォルトのパスワードを変更しない場合、またはパスワードが脆弱な場合、リモートの攻撃者が SNMP エージェントを通じてシステムの多くの詳細を取得する可能性があります。攻撃者が書き込み可能なパスワードを取得すると、システム ファイルを変更したり、システム コマンドを実行したりする可能性もあります。snmp のデフォルトのコミュニティ名は、snmp のデフォルトの弱いパスワード public/privacy に属します。

危険レベル: 高リスク

脆弱性コード: CVE-1999-0516、CVE-1999-0517

2. 提案への対応。

1) デフォルトの SNMP パスワードを変更するか、SNMP サービスを無効にするか、ファイアウォールで内部ネットワーク UDP ポート 161 (ポートは Linux では変更できません) へのアクセスをフィルタリングして除外します。

rpm -aq | grep snmp
vim /etc/snmp/snmpd.conf中,修改public默认团体名字符串
com2sec notConfigUser default public  //将public修改为复杂的字符串,将“default”改为你想哪台机器可以看到你 的snmp信息的ip
view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc  //解注释
view all included .1 80  //查看全部
access notConfigGroup "" any noauth exact systemview none none  //修改为
access notConfigGroup "" any noauth exact mib2 none none
access notConfigGroup "" any noauth exact all none none //或
#完成后重启
/etc/rc.d/init.d/snmpd restart
#配置参考
rocommunity public

rwcommunity mysecret 127.0.0.1

com2sec notConfigUser default public

group notConfigGroup v2c notConfigUser
group notConfigGroup v1 notConfigUser

view systemview included .1
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.25.1.1
view all included .1 80

access notConfigGroup "" any noauth exact systemview none none

proc mountd
proc ntalkd 4
proc sendmail 10 1

disk / 10000000 
disk /boot 30%
disk /dev/shm
disk PATH [MIN=100000]
load 12 14 14
#设置用户鉴权
rouser ciesnmp2015 auth

#对于V3,可配置v3用户及密码鉴权
#创建用户和设置MD5 DES 加密,在/var/lib/net-snmp/snmpd.conf 新增
createUser snmpuser MD5 snmppasswd 3 DES snmppasswd
ciesnmp:用户名,即sercurity Name
#验证,通过snmpget获取内存大小
snmpget -v 3 -a MD5 -A snmpuser -u snmppasswd -l authPriv -x DES -X snmppasswd 127.0.0.1 1.3.6.1.4.1.2021.4.5.0

例証します:

デフォルトの基本構成:
(1) 最初の選択肢はコミュニティ名 (community) を定義することです (ここでは public です)、そしてこの public にアクセスできるユーザー名 (sec 名) (ここでは notConfigUser) を定義します。Public は、ユーザー notConfigUser のパスワードに相当します。
(2) グループ名 (groupName) を定義し、ここでは notConfigGroup とグループのセキュリティ レベルを定義し、ユーザー notConfigGroup をこのグループに追加します。
(3) 操作可能なスコープ (ビュー) 名を定義し、デバイス ノードを表示する権限を変更し、.1 ノードの下にあるすべてのデバイス情報を表示できることを示す次の行を追加します: view all Included .1 80 (4) 定義グループ
notConfigUser すべてのビュー範囲で実行できる操作。現時点では、notConfigUser グループのメンバーは .1 の範囲で読み取り専用操作を実行できると定義されています。

Solaris システムでは、/
etc/snmp/conf/snmpd.conf のデフォルトのパスワードを変更し、次のコマンドを実行してそれを有効にします。

/etc/init.d/init.snmpdx stop
/etc/init.d/init.snmpdx start

Solaris システムで、次のコマンドを実行して SNMP サービスを無効にします。

/etc/init.d/init.snmpdx stop
mv /etc/rc3.d/S76snmpdx /etc/rc3.d/s76snmpdx

2)窓:

1> [スタート] -> [プログラム] -> [管理ツール] -> [サービス] -> [SNMPService] -> [プロパティ] -> [セキュリティ] この設定インターフェイスでは、SNMP パスワードである「コミュニティ ストリング」を変更できます。
ここに画像の説明を挿入
上の図に示すように、特定のセキュリティ ホストのみが SNMP サービスにアクセスできるように構成することもできます。設定が完了したら、サービス (SNMP サービス) を右クリックして SNMP サービスを再起動します。
2> レジストリを直接変更します。[開始] -> [実行] -> [regedit] を選択してレジストリを開き、次のレジストリ パスを入力して名前を変更します。

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ValidCommunities]

ここに画像の説明を挿入
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\PermittedManagers を見つけ、snmp サービスへのアクセスを許可するように 192.168.19.106 のみを設定し、完了後にサービスを再起動します。

注: Windows は SNMP サービスのポート番号を変更します。構成ファイルは C:\WINDOWS\system32\drivers\etc\ にあり、メモ帳で開き、次の行を変更できます。

snmp 161/udp #SNMP //161 はポート番号です。必要に応じて変更するだけです。たとえば、2012
snmp 2012/udp #SNMPに変更します。

3) 検出:
#弱いパスワード検出
nmap –sU –p161 –script=snmp-brute ip //snmpの弱いパスワードを検索
#弱いパスワードを使用
nmap -sU -p161 --script=snmp-netstat ip //ネットワークポートのステータスを取得ソースサイト
nmap –sU –p161 –script=snmp-sysdescr ip //システム情報を取得
nmap -sU -p161 --script=snmp-win32-user ip //ユーザー情報を取得
snmputil walk ip public .1.3.6.1.2.1。 25.4.2.1.2//システムプロセスの一覧表示
snmputil walk ip public.1.3.6.1.2.1.25.6.3.1.2 //インストールされているソフトウェアの一覧表示
snmputil walk ip public .1.3.6.1.2.1.1 //システム情報の一覧表示
snmputil get ip public .1.3.6.1.4.1.77.1.4.1.0 //ドメイン名をリストする
snmputil walk ip public.1.3.6.1.4.1.77.1.2.25.1.1 //システムユーザーをリストする

4) 確認する

snmputil が弱いパスワード (コミュニティ名) を使用してパブリック/プライバシーに接続できませんでした。次のコマンドを実行します。

snmputil walk 127.0.0.1 new_community 1.3.6.1.4.1.77.1.2.25.1.1
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/ximenjianxue/article/details/131210911