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

📄 在tcp三次握手后插入伪造的tcp包.html

📁 里面收集的是发表在www.xfocus.org上的文章
💻 HTML
📖 第 1 页 / 共 3 页
字号:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$tcp_obj = NetPacket::TCP-&gt;decode($ip_obj-&gt;{&#39;data&#39;});<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next if (($tcp_obj-&gt;{&#39;src_port&#39;} ne $opts{&#39;p&#39;})<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;and ($tcp_obj-&gt;{&#39;dest_port&#39;} ne $opts{&#39;p&#39;}));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$counter++;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print &quot;==ID.$counter==&quot;, &#39;=&#39; x 60, &quot;\n&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print get_ip_hdr($ip_obj);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print get_tcp_hdr($tcp_obj);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($tcp_obj-&gt;{&#39;data&#39;}) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my $data;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$data = unpack &#39;a*&#39;, $tcp_obj-&gt;{&#39;data&#39;};<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$data =~ s/[\r][\n]//g;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print pretty_table(&#39;TCP data&#39;, [$data]);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($counter == 3) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my $a = new Net::RawIP;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$a-&gt;set({<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;ip&#39; =&gt; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;id&#39;&nbsp;&nbsp;&nbsp;&nbsp;=&gt; $ip_obj-&gt;{&#39;id&#39;} + 1,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;saddr&#39; =&gt; $ip_obj-&gt;{&#39;src_ip&#39;},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;daddr&#39; =&gt; $ip_obj-&gt;{&#39;dest_ip&#39;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;tcp&#39; =&gt; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;source&#39;&nbsp;&nbsp;=&gt; $tcp_obj-&gt;{&#39;src_port&#39;},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;dest&#39;&nbsp;&nbsp;&nbsp;&nbsp;=&gt; $tcp_obj-&gt;{&#39;dest_port&#39;},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;seq&#39;&nbsp;&nbsp;&nbsp;&nbsp; =&gt; $tcp_obj-&gt;{&#39;seqnum&#39;},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;ack_seq&#39; =&gt; $tcp_obj-&gt;{&#39;acknum&#39;},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;window&#39;&nbsp;&nbsp;=&gt; $tcp_obj-&gt;{&#39;winsize&#39;},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;data&#39;&nbsp;&nbsp;&nbsp;&nbsp;=&gt; $request,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;psh&#39;&nbsp;&nbsp;&nbsp;&nbsp; =&gt; 1,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;ack&#39;&nbsp;&nbsp;&nbsp;&nbsp; =&gt; 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$a-&gt;send;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;last if($counter == 5);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;exit;<br />
} else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;sleep(1);<br />
&nbsp;&nbsp;&nbsp;&nbsp;my $trans_serv = getprotobyname(&#39;tcp&#39;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;my $dest_sockaddr = sockaddr_in($opts{&#39;p&#39;}, inet_aton($opts{&#39;t&#39;}));<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;socket(TCP_SOCK, PF_INET, SOCK_STREAM, $trans_serv);<br />
&nbsp;&nbsp;&nbsp;&nbsp;connect(TCP_SOCK, $dest_sockaddr);<br />
&nbsp;&nbsp;&nbsp;&nbsp;sleep(1);<br />
&nbsp;&nbsp;&nbsp;&nbsp;#close TCP_SOCK;<br />
}<br />
<br />
exit;<br />
<br />
sub print_help {<br />
&nbsp;&nbsp;&nbsp;&nbsp;print &lt;&lt;HELP<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;%./iamFool.pl [-h] &lt;-t,-p,-u,-n&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;-h&nbsp;&nbsp;&nbsp;&nbsp;print help<br />
&nbsp;&nbsp;&nbsp;&nbsp;-t&nbsp;&nbsp;&nbsp;&nbsp;target ipaddr<br />
&nbsp;&nbsp;&nbsp;&nbsp;-p&nbsp;&nbsp;&nbsp;&nbsp;service port<br />
&nbsp;&nbsp;&nbsp;&nbsp;-u&nbsp;&nbsp;&nbsp;&nbsp;requested url<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;by:i_am_jojo\@msn.com<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
HELP<br />
}<br />
<br />
sub get_ip_hdr {<br />
&nbsp;&nbsp;&nbsp;&nbsp;my $ip_obj = shift;<br />
&nbsp;&nbsp;&nbsp;&nbsp;my @ip_hdr;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;push @ip_hdr, [qw(ver tos flags id src_ip proto)];<br />
&nbsp;&nbsp;&nbsp;&nbsp;push @{$ip_hdr[1]}, $ip_obj-&gt;{$_} foreach (qw(ver tos flags id src_ip proto));<br />
&nbsp;&nbsp;&nbsp;&nbsp;push @ip_hdr, [qw(hlen len foffset ttl dest_ip cksum)];<br />
&nbsp;&nbsp;&nbsp;&nbsp;push @{$ip_hdr[3]}, $ip_obj-&gt;{$_} foreach (qw(hlen len foffset ttl dest_ip cksum));<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;return pretty_table(&#39;IP Header&#39;, @ip_hdr);<br />
}<br />
<br />
sub get_tcp_hdr {<br />
&nbsp;&nbsp;&nbsp;&nbsp;my $tcp_obj = shift;<br />
&nbsp;&nbsp;&nbsp;&nbsp;my @tcp_hdr;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;push @tcp_hdr, [qw(src_port seqnum hlen flags)];<br />
&nbsp;&nbsp;&nbsp;&nbsp;push @{$tcp_hdr[1]}, $tcp_obj-&gt;{$_} foreach (qw(src_port seqnum hlen flags));<br />
&nbsp;&nbsp;&nbsp;&nbsp;push @tcp_hdr, [qw(dest_port acknum reserved winsize)];<br />
&nbsp;&nbsp;&nbsp;&nbsp;push @{$tcp_hdr[3]}, $tcp_obj-&gt;{$_} foreach (qw(dest_port acknum reserved winsize));<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;return pretty_table(&#39;TCP Header&#39;, @tcp_hdr);<br />
}<br />
<br />
sub pretty_table {<br />
&nbsp;&nbsp;&nbsp;&nbsp;# prettyTable($aString, @aList); @aList = ( [...], [...] );<br />
&nbsp;&nbsp;&nbsp;&nbsp;# by i_am_jojo@msn.com<br />
&nbsp;&nbsp;&nbsp;&nbsp;my ($title, @data) = @_;<br />
&nbsp;&nbsp;&nbsp;&nbsp;my @temp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;my @max_length;<br />
&nbsp;&nbsp;&nbsp;&nbsp;my $row_length;<br />
&nbsp;&nbsp;&nbsp;&nbsp;my $indent = 4;<br />
&nbsp;&nbsp;&nbsp;&nbsp;my $the_table;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;foreach my $col (0..$#{$data[0]}) { push @{$temp[$col]}, $_-&gt;[$col] foreach (@data); }<br />
&nbsp;&nbsp;&nbsp;&nbsp;$max_length[$_] = length( (sort{length($b) &lt;=&gt; length($a)} @{$data[$_]} )[0]) + 2 foreach (0..$#data);<br />
&nbsp;&nbsp;&nbsp;&nbsp;$row_length+= $max_length[$_] foreach (0..$#{$temp[0]});&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;$row_length+= $#data;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;$the_table = &#39; &#39; x $indent.&#39;+&#39;.&#39;-&#39; x $row_length.&quot;+\n&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;$the_table.= &#39; &#39; x $indent.&#39;| &#39;.$title.&#39; &#39; x ($row_length - length($title) - 1).&quot;|\n&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;foreach my $row (0..$#temp) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$the_table.= &#39; &#39; x $indent;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$the_table.= &#39;+&#39;.&#39;-&#39; x $max_length[$_] foreach (0.. $#{$temp[0]});<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$the_table.= &quot;+\n&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$the_table.= &#39; &#39; x $indent;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$the_table.= &#39;| &#39;.@{$temp[$row]}[$_].&#39; &#39; x ($max_length[$_] - length(@{$temp[$row]}[$_]) - 1) foreach (0.. $#{$temp[0]});<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$the_table.= &quot;|\n&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;$the_table.= &#39; &#39; x $indent;<br />
&nbsp;&nbsp;&nbsp;&nbsp;$the_table.= &#39;+&#39;.&#39;-&#39; x $max_length[$_] foreach (0.. $#{$temp[0]});<br />
&nbsp;&nbsp;&nbsp;&nbsp;$the_table.= &quot;+\n&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;return $the_table;<br />
}<br />
<br />
<br />
四、结果举例<br />
<br />
==Result eXample==<br />
<br />
2005/05/02 21:51:23, begin sniffing ...<br />
==ID.1==============================================================<br />
&nbsp;&nbsp;&nbsp;&nbsp;+---------------------------------------------------+<br />
&nbsp;&nbsp;&nbsp;&nbsp;| IP Header&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
&nbsp;&nbsp;&nbsp;&nbsp;+--------+---------------+---------+----------------+<br />
&nbsp;&nbsp;&nbsp;&nbsp;| ver&nbsp;&nbsp;&nbsp;&nbsp;| 4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | hlen&nbsp;&nbsp;&nbsp;&nbsp;| 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br />
&nbsp;&nbsp;&nbsp;&nbsp;+--------+---------------+---------+----------------+<br />
&nbsp;&nbsp;&nbsp;&nbsp;| tos&nbsp;&nbsp;&nbsp;&nbsp;| 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | len&nbsp;&nbsp;&nbsp;&nbsp; | 60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
&nbsp;&nbsp;&nbsp;&nbsp;+--------+---------------+---------+----------------+<br />
&nbsp;&nbsp;&nbsp;&nbsp;| flags&nbsp;&nbsp;| 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | foffset | 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br />
&nbsp;&nbsp;&nbsp;&nbsp;+--------+---------------+---------+----------------+<br />

⌨️ 快捷键说明

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