设为首页 收藏本站
查看: 3051|回复: 0

[经验分享] 利用Windows批处理脚本实现SNMP弱口令检测

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-12-16 07:10:22 | 显示全部楼层 |阅读模式
背景:今天老师给了个小任务,对他之前探测到的活跃的路由器结点进行SNMP弱口令检测,给定的txt文本里大概有1000多个孤立的IP结点,solorwinds工具链中的IP Network Browser只能实现对三种IP地址模型的输入:1、单独IP; 2、子网段;3、IP地址段。根本没考虑到我这种大数据量的查询。所以不知不觉想到了对snmp协议进行探测windows命令行工具——snmputil.exe(随便可以下到,简单使用说明http://blog.sina.com.cn/s/blog_701300bc0101976d.html),考虑到它是命令行工具,我之前有些过很多linux shell脚本,不妨使用windows批处理命令解决下。
       脚本及实现步骤:



  • @echo off
  • setlocal enableDelayedExpansion

  • for /f %%i in (%1%) do (
  • for /f "delims=" %%t in ('snmputil get %%i public .1.3.6.1.2.1.1.5.0') do set var=%%t

  • if "!var!" == "error on SnmpMgrRequest 40" (
  • echo "%%i : 失败[var=!var!]" >>"失败%1%"
  • ) else (
  • echo "%%i : 正确[var=!var!]" >>"正确%1%"
  • )
  • )
  • echo THE END
  • pause>nul

     就是通过一个for循环,反复从命令行的第一个参数(按行存放IP的txt文本)中取值,然后,调用snmputil.exe进行查询,然后,跟据查询所得的结果判断,弱口令测试是否成功:如果成功,将输出存入指定文本文件;如果失败,将输出存入另一个文本文件。
     实现过程遇到的问题:
     1、延迟变量扩展:第二行的 setlocal 就是开启延迟变量扩展机制,windows批处理命令和Linux shell脚本有着显著的不同,windows中将if或for或其他任何地方出现的(...)之间的内容看做一条完整的语句,我们举一个例子:




  • @echo off
  • set var=aaa
  • if "%var%" == "aaa" (
  • set var=bbb
  • echo %var%
  • if "%var%" == "bbb" (
  • echo 修改成功
  • ) else (
  • echo 修改失败
  • )
  • )
  • echo THE END !!!
  • pause>nul
   返回结果:



  • aaa

  • 修改失败
  • THE END !!!
    也就是说第一个if中的赋值操作并不是在第二个if语句之前进行操作的,而是他们作为同一个完整的语句运行的,因此结果并不是想象的修改成功。因此应该使用变量延迟扩展机制。事先要加入机制开启环境设定,然后,将需要扩展的变量%var%改为!var!,就可得到相应的结果。



  • @echo off

  • setlocal enableDelayedExpansion

  • set var=aaa
  • if "!var!" == "aaa" (
  •     set var=bbb
  •     echo !
  •     if "!var!" == "bbb" (
  •     echo 成功
  •        ) else (
  •         echo 失败
  •       )
  • )

  • echo THE END !!!
  • pause>nul
2、shell脚本中的for循环,引用的变量都要多加%,比如,第一个参数 1% ,相应的应该表示为%1%;变量%i相应变为%%i。
3、变量使用一定要注意,比如,set num=1,后面无意多加了一个空格,看脚本根本看不出来,判断硬是判断错误,所以最好以这种方式进行赋值set num="1",以免查不出错误纠结死;
4、windows批处理文件的编写相比linux shell脚本编写要麻烦的多,限制条件也多,就拿上述的1,2来说,在Linux中是完全不需要考虑的。所以说微软是做图形化系统的,在命令行方面远远不及Linux。图形化界面加上软件闭源,导致windows的扩展性和灵活性远远不及linux系统

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-151698-1-1.html 上篇帖子: Windows Embedded CE 6.0 下载地址和序列号 下篇帖子: Windows系统信息获取之一 -- 注册表操作
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表