找不到perl Net :: Frame :: Layer :: 8021X模块

时间:2015-09-21 18:42:28

标签: perl authentication module

无法尝试传递旧的Cisco dump.pl脚本的最后一个依赖项。

https://supportforums.cisco.com/blog/154046

到目前为止,我已经安装了以下依赖项:

apt-get install libclass-gomor-perl libnet-libdnet-perl libnet-pcap-perl libbit-vector-perl libnetpacket-perl

并将所有自定义perl模块放在Net /目录

然后最后我跑

./dump.pl

我的输出:

*** Net::Frame::Layer::8021X module not found.
*** Either install it (if avail), or implement it.
*** You can also send the pcap file to perl@gomor.org.
Frame number: 11 (length: 60)
Frame NUMBER 11 SSL FOUND, preparing SSL payload and crafting TCP packet
*** Net::Frame::Layer::8021X module not found.
*** Either install it (if avail), or implement it.
*** You can also send the pcap file to perl@gomor.org.
Frame number: 12 (length: 64)
Frame NUMBER 12 SSL FOUND, preparing SSL payload and crafting TCP packet
*** Net::Frame::Layer::8021X module not found.
*** Either install it (if avail), or implement it.
*** You can also send the pcap file to perl@gomor.org.
Frame number: 13 (length: 61)
Frame NUMBER 13 SSL FOUND, preparing SSL payload and crafting TCP packet

使用perl -d dump.pl调试后,我发现它实际上需要模块Net :: Frame :: Layer :: ETH和Net :: Frame :: Layer :: 8021X。我和前者都失踪了。

Net::Frame::Simple::unpack(Net/Frame/Simple.pm:98):
98:    for (1..1000) {
  DB<4> n
Net::Frame::Simple::unpack(Net/Frame/Simple.pm:99):
99:       last unless $raw;
  DB<4> n
Net::Frame::Simple::unpack(Net/Frame/Simple.pm:101):
101:          $encapsulate =~ s/[^-:\w]//g; # Fix potential code injection
  DB<4> n
Net::Frame::Simple::unpack(Net/Frame/Simple.pm:102):
102:          my $layer = 'Net::Frame::Layer::'.$encapsulate;
  DB<4> n
Net::Frame::Simple::unpack(Net/Frame/Simple.pm:103):
103:          eval "require $layer";
  DB<4> n

所以我安装了这些依赖项:

apt-get install cpanminus
cpanm Net::Frame
cpanm Net::Frame::Simple
cpanm Net::Frame::Layer
cpanm Socket6

我仍然遇到同样的问题。

通过额外调试,似乎问题出在raw => $h->{raw},因为我在解释器中运行print Net::Frame::Simple->new( firstLayer => $h->{firstLayer}, timestamp => $h->{timestamp} )print $h->{raw}而没有触发问题。

main::(dump.pl:44):     my $f = Net::Frame::Simple->new(
main::(dump.pl:45):         raw        => $h->{raw},
main::(dump.pl:46):         firstLayer => $h->{firstLayer},
main::(dump.pl:47):         timestamp  => $h->{timestamp},
main::(dump.pl:48):     );

它将写出一个ssl.pcap文件,但它不包含原始数据包数据,只包含firstLayer,例如ETH和UNIX时间戳。我还确保通过用use替换所有require语句并用::替换::来使用Net /目录中的本地模块。

在尝试require Net::Frame::Layer::8021X时,仍然会抱怨互联网上任何地方似乎都不存在......

0 个答案:

没有答案