⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sinfp6.pm

📁 SinFP是一种新的识别对方计算机操作系统类型的工具
💻 PM
字号:
## $Id: SinFP6.pm,v 1.11.2.8.2.22 2006/06/11 13:44:19 gomor Exp $#package Net::SinFP::SinFP6;use strict;use warnings;require Net::SinFP;our @ISA = qw(Net::SinFP);__PACKAGE__->cgBuildIndices;require Net::Packet::Frame;require Net::Packet::IPv6;require Net::Packet::TCP;require Net::Packet::ETH;use Net::Packet::Consts qw(:tcp :ipv6 :eth);use Net::Packet::Env qw($Env);sub getIpVersion { 'IPv6' }sub _getFilterPassive {   '(ip6 and tcp and '.   '((tcp[tcpflags] & tcp-syn != 0) and'.   ' (tcp[tcpflags] & tcp-ack != 0)) or'.   ' (tcp[tcpflags] & tcp-syn != 0))'.   ' and (not src host '.$Env->ip6.')';}sub _getFilterActive {   my $self = shift;   '(ip6 and host '.$self->target->ip6.' and host '.$Env->ip6.')';}sub _getFileNamePassive { 'sinfp6-passive.pcap' }sub _getFileNameActive {   my $self = shift;   'sinfp6-'.$self->target->ip6.'.'.$self->target->port.'.pcap';}sub getOfflineProbes {   my $self = shift;   my ($targetIp) = @_;   for ($self->_dump->frames) {      next unless $_->isIpv6 && $_->isTcp;      if ($self->doP1      &&  length($_->raw) == 74 && $_->l4->haveFlagSyn && ! $_->l4->haveFlagAck      &&  ! $self->pktP1) {         $self->pktP1($_);         next;      }        if ($self->doP2      &&  length($_->raw) == 94 && $_->l4->haveFlagSyn && ! $_->l4->haveFlagAck      &&  ! $self->pktP2) {         $self->pktP2($_);         next;      }      if ($self->doP3      &&  length($_->raw) == 74 && $_->l4->haveFlagSyn && $_->l4->haveFlagAck      &&  ! $self->pktP3) {         $self->pktP3($_);         next;      }   }}sub getResponseIpTtl   { shift; shift->reply->l3->hopLimit     }sub getResponseIpId    { shift; shift->reply->l3->flowLabel    }sub getResponseIpDfBit { shift; shift->reply->l3->trafficClass }sub getProbeIpId { shift; shift->l3->flowLabel }sub getP1 {   my $self = shift;   my $eth = Net::Packet::ETH->new(      type => NP_ETH_TYPE_IPv6,      dst  => $self->target->mac,   );   my $ip6 = Net::Packet::IPv6->new(      version      => 6,      trafficClass => 0,      flowLabel    => 0,      nextHeader   => NP_IPv6_PROTOCOL_TCP,      hopLimit     => 0xff,      dst          => $self->target->ip6,   );   my $tcp = Net::Packet::TCP->new(      src   => $self->_pTcpSrc,      seq   => $self->_pTcpSeq,      ack   => $self->_pTcpAck,      dst   => $self->target->port,      x2    => 0,      flags => NP_TCP_FLAG_SYN,      win   => 5840,   );   Net::Packet::Frame->new(l2 => $eth, l3 => $ip6, l4 => $tcp)}sub getP2 {   my $self = shift;   my $eth = Net::Packet::ETH->new(      type => NP_ETH_TYPE_IPv6,      dst  => $self->target->mac,   );   my $ip6 = Net::Packet::IPv6->new(      version      => 6,      trafficClass => 0,      flowLabel    => 0,      nextHeader   => NP_IPv6_PROTOCOL_TCP,      hopLimit     => 0xff,      dst          => $self->target->ip6,   );   my $tcp = Net::Packet::TCP->new(      src     => $self->_pTcpSrc + 1,      seq     => $self->_pTcpSeq + 1,      ack     => $self->_pTcpAck + 1,      dst     => $self->target->port,      x2      => 0,      flags   => NP_TCP_FLAG_SYN,      win     => 5840,      options =>         "\x02\x04\x05\xb4".         "\x08\x0a\x44\x45".         "\x41\x44\x00\x00".         "\x00\x00\x03\x03".         "\x01\x04\x02\x00".         "",   );   Net::Packet::Frame->new(l2 => $eth, l3 => $ip6, l4 => $tcp)}sub getP3 {   my $self = shift;   my $eth = Net::Packet::ETH->new(      type => NP_ETH_TYPE_IPv6,      dst  => $self->target->mac,   );   my $ip6 = Net::Packet::IPv6->new(      version      => 6,      trafficClass => 0,      flowLabel    => 0,      nextHeader   => NP_IPv6_PROTOCOL_TCP,      hopLimit     => 0xff,      dst          => $self->target->ip6,   );   my $tcp = Net::Packet::TCP->new(      src   => $self->_pTcpSrc + 2,      seq   => $self->_pTcpSeq + 2,      ack   => $self->_pTcpAck + 2,      dst   => $self->target->port,      x2    => 0,      flags => NP_TCP_FLAG_SYN | NP_TCP_FLAG_ACK,      win   => 5840,   );   Net::Packet::Frame->new(l2 => $eth, l3 => $ip6, l4 => $tcp)}1;=head1 NAMENet::SinFP::SinFP6 - IPv6 operating system fingerprinting=head1 DESCRIPTIONGo to http://www.gomor.org/sinfp to know more.=cut=head1 AUTHORPatrice E<lt>GomoRE<gt> Auffret=head1 COPYRIGHT AND LICENSECopyright (c) 2005-2006, Patrice E<lt>GomoRE<gt> AuffretYou may distribute this module under the terms of the Artistic license.See LICENSE.Artistic file in the source distribution archive.=cut

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -