0x00基础知识
简单网络管理协议(SNMP)被广泛用于计算机操作系统设备、网络设备等领域监测连接到网络上的设备是否有任何引起管理上关注的情况。在运行SNMP服务的设备上,若管理员配置不当运行默认团体名/弱口令访问,将导致敏感信息泄露。敏感不限于系统运行的进程、已安装的软件、系统存在的用户,运行的服务,端口情况等。通过这些信息,攻击者可以清晰的了解到设备整体情况,根据开放的端口和服务快速定位可入侵点,根据运行的进程名判断是否存在哪些防护软件,有什么bypass的方法。根据存在的用户名,可以大大提高爆破效率等等。
0x01检测与利用
snmp默认团体名属于snmp默认弱口令public/privicy。在win7本机上开启snmp服务,并添加pubilc团体名和允许远程连接后(window默认没有接受的团体名也就是社团名称,且不允许远程连接)
通过nmap自带的审计脚本对snmp安全审计
弱口令检测: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 //获取用户信息
除了能获取以上信息,还能获取系统开启了哪些服务,运行着哪些服务进程,安装了哪些软件,详情利用教程请见0x05参考[5]。当然也可以通过snmputil.exe获取信息,命令如下:
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 //列系统用户列表
0x02安全加固原则
先定位-再判断-后配置。
定位:通过存在snmp弱口令的端口,定位进程ID和进程名
判断:通过开放该服务的运行进程,判断这个进程是否和业务相关,是否需要 对外提供服务,只对哪些远程主机提供服务。
配置:若判断的结果与业务不相关,是没有用处的服务。则关闭端口,kill PID简单暴力没烦恼;若判断的结果与业务有关,服务不能关闭。那就去除弱口令+白名单;(方法见0x03)若判断的结果与业务相关,服务不能关闭,且弱口令还不能修改,那就白名单控制;
0x03配置口令
Window 配置snmp口令
方法一:开始—>程序—>管理工具—>服务—>SNMPService—>属性—>安全 在这个配置界面中,可以修改“社区名称”(community strings),也就是snmp密码。或者可以配置只允许某些安全主机访问SNMP服务。设置完成后在服务(SNMP Service)右键重启snmp服务
方法二:开始- > 运行- > regedit 打开注册表,进入以下注册表路径修改名称:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ValidCommunities]
进入以下注册表路径,设置只允许192.168.19.106访问snmp服务HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\PermittedManagers
Linux 配置snmp口令
第一步:在配置文件/etc/snmp/snmps.conf中,修改public默认团体名字符串。
第三步:访问控制可以通过开启iptable 防火墙。注:iptable可能影响网络性能。
第四步: 重起snmp服务
AIX系统配置snmp口令
AIX 5.3默认的是snmpv3,可以直接修改/etc/snmpdv3.conf的community串或者使用snmpd_ssw命令将snmp的版本降到1,再修改snmpd.conf。
H3C交换机配置snmp口令
取消配置的团体名:undo sump-agent community community-name
//见0x05参考[1]
Solaris 修改snmp弱口令
Cisco 设备配置snmp口令
华为交换机修改snmp弱口令
第一步:删除snmp弱口令(默认团体名public/private/community001)。删除团体名时,和团体名一起配置的信息也会被删除。由于团体名以密文的形式保存在设备上,因此可以使用两种方式删除团体名。
明文形式删除:需要牢记团体名,团体名输入错误会导致删除失败
密文删除:密文形式删除之前需要先查询加密后的团体名
第二步:配置snmp团体名
0x04验证
通过snmputil使用弱口令(团体名)public/privicy连接不成功,使用强口令(团体名)Security_partner_snmp成功连接。
Window
Linux ubuntu
0x05参考
[1] 华为SNMP漏洞规避措施配置指导
http://support.huawei.com/enterprise/NewsReadAction.action?newType=0301&contentId=NEWS1000001152&idAbsPath=0301_10001&nameAbsPath=%25E6%259C%258D%25E5%258A%25A1%25E5%2585%25AC%25E5%2591%258A
[2] 配置SNMP的版本和团体名
http://forum.huawei.com/enterprise/zh/forum.php?mod=viewthread&tid=356461&page=1#pid1954509
[3] 删除SNMP团体名
http://forum.huawei.com/enterprise/zh/forum.php?mod=viewthread&tid=358593&page=1#pid1962357
[4] cisco如何配置SNMP社区字符串
https://www.cisco.com/support/zh/477/SNMP/12.shtml#disableremove
[5] nmap教程文档
https://nmap.org/book/nse.html
[6] http://www.net-snmp.org/
0x06 附录A各系统设备开启SNMP服务
https://jingyan.baidu.com/article/fedf0737abe64c35ac8977a5.html?st=2&net_type=1&bd_page_type=1&os=0&rst=(window7)
https://jingyan.baidu.com/article/a65957f4ea75d024e67f9b88.html(window xp和window 2003)
https://www.cnblogs.com/xdp-gacl/p/4013984.html(window 2008)
http://www.linuxidc.com/Linux/2016-03/129618.htm(ubuntu)
http://www.linuxidc.com/Linux/2014-07/104074.htm(redhat)
https://www.cnblogs.com/linuxprobe/p/5679562.html(centos)
https://www.cisco.com/support/zh/477/SNMP/12.shtml(cisco设备)
http://blog.sina.com.cn/s/blog_698b66a40101ey1r.html(cisco交换机/路由/防火墙)
http://forum.huawei.com/enterprise/zh/search.php?mod=ebggroup&searchsubmit=no&srchtxt=%E5%BC%80%E5%90%AFsnmp&fid=&page=1 (华为设备)