使用螨螈



snmpenum.pl 在许多关于渗透测试的材料中都有介绍,尽管它已经是一个非常古老的程序。

我从这里下载了它。

这就是我遇到的问题。

$ perl snmpenum.pl 192.168.1.36 public linux.txt    # official usage
----------------------------------------
    SYSTEM INFO
----------------------------------------
" is expected in dotted decimal notation..1.2.1.1.1

我对Perl一无所知。谁能告诉我Linux中是否存在问题.txt或者真正的问题在哪里?谢谢。

我一直在对 snmpenum.pl 脚本进行一些调试,NEt::SNMP 做得很好,问题是脚本在从 OID 值文件(linux.txt、windows.txt、cisco.txt(中读取行时拆分值的方式。溶液:如果在 windows.txt/linux.txt/cisco.txt 文件中的每一行末尾添加 \t,则脚本将再次工作!

我发现,如果您将读取的 OID 值替换为硬编码字符串,例如"1.3.6.1.2.1.1.5"(或您想要的任何值(,Net::SNMP->session.get_bulk_request(( 查询有效。

my $result = $session-get_bulk_request(){
    -callback         => [&table_cb, {}],
    -maxrepetitions   => 10,
    -varbindlist      => [$v]
};

使用硬编码字符串:

my $result = $session-get_bulk_request(){
    -callback         => [&table_cb, {}],
    -maxrepetitions   => 10,
    -varbindlist      => ["1.3.6.1.2.1.1.5"]
};

所以我去看了 var $v 是如何创建的,它是从文件中读取的,代码基于 \t char 进行拆分,该字符不存在于行尾。所以我假设最后一个值可能包含行尾的任何虚假字符 ascii 代码(换行符或回车符?

while (<CONFIG>){
    chomp $_;
    my @system= split /t+/,$_;

最后,我在Windows.txt,linux,txt和cisco的行尾添加了一个\t(制表符.txt这些文件与 snmpenum.pl 一起分发并且都运行良好!例如:

 for filename in $(ls *.txt); do perl -i -p -e 's/rn/trn/' ./$filename; done

另一种解决方案是为 snmpenum.pl 进行代码修改...

干杯摩根

包含snmpenum附带的OID的文件(例如linux.txt(是DOS格式。只需将它们转换为UNIX格式(例如dos2unix(,它应该可以正常工作。

相关内容

  • 没有找到相关文章

最新更新