snmp默认团体名/弱口令漏洞及安全加固

一、漏洞描述

SNMP(简单网络管理协议)被广泛用于计算机操作系统设备、网络设备等领域监测连接到网络上的设备是否有任何引起管理上关注的情况。在运行SNMP服务的设备上,若管理员配置不当运行默认团体名/弱口令访问,将导致敏感信息泄露。敏感不限于系统运行的进程、已安装的软件、系统存在的用户,运行的服务,端口情况等。通过这些信息,攻击者可以清晰的了解到设备整体情况,根据开放的端口和服务快速定位可入侵点,根据运行的进程名判断是否存在哪些防护软件,有什么bypass的方法。根据存在的用户名,可以大大提高爆破效率等等。

多操作系统或者网络设备的SNMP代理服务都存在默认口令。如果您没有修改这些默认口令或者口令为弱口令,远程攻击者就可以通过SNMP代理获取系统的很多细节信息。如果攻击者得到了可写口令,它甚至可以修改系统文件或者执行系统命令。snmp默认团体名属于snmp默认弱口令public/privicy。

危险级别:高危

漏洞编码:CVE-1999-0516、CVE-1999-0517

二、处理建议;

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 name),这里是notConfigUser。Public相当于用户notConfigUser的密码:
(2)定义一个组名(groupName)这里是notConfigGroup,及组的安全级别,把notConfigGroup这个用户加到这个组中。
(3)定义一个可操作的范围(view)名,修改查看设备节点的权限,增加下面一行,表示可以查看.1节点下的所有设备信息:view all included .1 80
(4)定义notConfigUser这个组在all这个view范围内可做的操作,这时定义了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)windows:

1> 开始—>程序—>管理工具—>服务—>SNMPService—>属性—>安全 在这个配置界面中,可以修改“社区名称”(community strings),也就是snmp密码。
在这里插入图片描述
如上图所示,也可以配置只允许某些安全主机访问SNMP服务。设置完成后在服务(SNMP Service)右键重启snmp服务
2> 直接修改注册表:开始- > 运行- > regedit 打开注册表,进入以下注册表路径修改名称:

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

在这里插入图片描述
找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\PermittedManagers,设置只允许192.168.19.106访问snmp服务,完成后重启服务。

备注: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使用弱口令(团体名)public/privicy连接不成功,执行:

snmputil walk 127.0.0.1 new_community 1.3.6.1.4.1.77.1.2.25.1.1
在这里插入图片描述

一. 账号口令 1.1 检查设备密码复杂度策略(高危) 1.2 检查口令最小长度(高危) 1.3 检查是否设置口令更改最小间隔天数(高危) 1.4 检查是否设置口令生存周期(高危) 1.5 检查是否设置口令过期前警告天数(高危) 1.6 检查是否存在空口令账号(高危) 1.7 检查是否设置除root之外UID为0的用户(中危) 二. 认证授权 2.1 检查用户目录缺省访问权限设置(高危) 2.2 检查用户umask设置(中危) 2.3 检查重要文件属性设置(中危) 2.4 检查重要目录或文件权限设置(中危) 2.5 检查是否设置ssh登录前警告Banner(低危) 三. 日志审计 3.1 检查是否对登录进行日志记录(高危) 3.2 检查是否启用cron行为日志功能(低危) 3.3 检查是否配置su命令使用情况记录(低危) 3.4 检查日志文件是否非全局可写(低危) 3.5 检查安全事件日志配置(低危) 3.6 检查是否记录用户对设备的操作(低危) 3.7 检查是否配置远程日志功能(低危) 四. 协议安全 4.1 检查是否禁止root用户远程登录(高危) 4.2 检查是否禁止匿用户登录FTP(高危) 4.3 检查使用IP协议远程维护的设备是否配置SSH协议,禁用telnet协议(高危) 4.4 检查是否修改snmp默认团体字(中危) 4.5 检查系统openssh安全配置(中危) 4.6 检查是否禁止root用户登录FTP(中危) 五. 其他安全 5.1 检查是否使用PAM认证模块禁止wheel组之外的用户su为root(高危) 5.2 检查是否设置命令行界面超时退出(高危) 5.3 检查是否关闭不必要的服务和端口(高危) 5.4 检查是否关闭系统信任机制(高危) 5.5 检查是否删除了潜在危险文件(高危) 5.6 检查系统core dump设置(中危) 5.7 检查root用户的path环境变量(中危) 5.8 检查系统是否禁用ctrl+alt+del组合键(中危) 5.9 检查密码重复使用次数限制(中危) 5.10 检查是否配置用户所需最小权限(中危) 5.11 检查系统内核参数配置(中危) 5.12 检查FTP用户上传的文件所具有的权限(低危) 5.13 检查/usr/bin/目录下可执行文件的拥有者属性(低危) 5.14 检查是否按用户分配账号(低危) 5.15 检查历史命令设置(低危) 5.16 检查系统磁盘分区使用率(低危) 5.17 检查日志文件权限设置(低危) 5.18 检查是否设置系统引导管理器密码(低危) 5.19 检查是否限制FTP用户登录后能访问的目录(低危) 5.20 检查是否设置ssh成功登录后Banner(低危) 5.21 检查是否使用NTP(网络时间协议)保持时间同步(低危) 5.22 检查是否关闭IP伪装和绑定多IP功能(低危) 5.23 检查是否限制远程登录IP范围(低危) 5.24 检查NFS(网络文件系统)服务配置(低危) 5.25 检查拥有suid和sgid权限的文件(低危) 5.26 检查是否配置定时自动屏幕锁定(适用于具备图形界面的设备)(低危) 5.27 检查是否安装chkrootkit进行系统监测(低危) 5.28 检查是否对系统账号进行登录限制(低危) 5.29 检查是否禁用不必要的系统服务(低危) 5.30 检查别文件/etc/aliase(或/etc/mail/aliases)配置(低危) 5.31 检查账户认证失败次数限制(低危) 5.32 检查telnet Banner 设置(低危) 5.33 检查FTP Banner设置(低危) 5.34 检查是否关闭数据包转发功能(适用于不做路由功能的系统)(低危) 5.35 检查是否安装OS补丁(低危) 5.36 检查是否按组进行账号管理(低危) 5.37 检查是否删除与设备运行、维护等工作无关的账号(低危)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羌俊恩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值