资源描述:
《在tcp三次握手后插入伪造的tcp包》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、在TCP三次握手后插入伪造的TCP包~教育资源库 一、说明 用Socket的APIConnect完成TCP建立连接的三次握手,同时子进程抓包,抓完三次握手的包后,插入第四个包即可,从对端返回的第五个包来看插入成功了,但因为插入了一个TCP包,之后的连接将发生混乱。可以将插入的那个包Data设置为HTTPRequest,向ISC=>0, DEV =>'ppp0', #DEV =>'eth0' ); dieNet::PcapUtils::openreturn
2、ed:$pkt_descriptorif(!ref($pkt_descriptor)); printstrftime'%Y/%m/%d%H:%M:%S,',localtimeandprintbeginsniffing...; e_hdr,$ip_packet)=unpack'H32a*',$next_packet; $ip_obj=NetPacket::IP->decode($ip_packet); #$ip_obj=NetPacket::IP->decode
3、(NetPacket::Ether::eth_strip($next_packet)); nextif($ip_obj->{'proto'}!=6); nextif(($ip_obj->{'src_ip'}ne$opts{'t'}) and($ip_obj->{'dest_ip'}ne$opts{'t'})); $tcp_obj=NetPacket::TCP->decode($ip_obj-
4、>{'data'}); nextif(($tcp_obj->{'src_port'}ne$opts{'p'})123456下一页友情提醒:,特别!and($tcp_obj->{'dest_port'}ne$opts{'p'})); $counter++; print==ID.$counter==,'='x60,; printget_ip_hdr($ip_obj); printget
5、_tcp_hdr($tcp_obj); if($tcp_obj->{'data'}){ my$data; $data=unpack'a*',$tcp_obj->{'data'}; $data=~s/[r][]//g; printpretty_table('TCPdata',[$data]); } if($counter==3){ my$a=ne'}, &
6、#39;ack_seq'=>$tcp_obj->{'acknum'}, 'y$trans_serv=getprotobyname('tcp'); my$dest_sockaddr=sockaddr_in($opts{'p'},i_aton($opts{'t'})); socket(TCP_SOCK,PF_I,SOCK_STREAM,$trans_serv); connect(TCP_SOCK,$dest_sock
7、addr); sleep(1); #closeTCP_SOCK;}exit;subprint_help{ print<<HELP %./iamFool.pl[-h]<-t,-p,-u,-n> -h printhelp -t targetipaddr -p serviceport -u requestedurl by:i_am_jojomsn.HELP}subget_ip_hdr{ my$ip_obj=shift; myip_hdr; puship_hdr,[
8、q)]; push{$ip_hdr[3]},$ip_obj->{$_}foreach(q)); returnpretty_table('IPHeader',ip_hdr);}subget_tcp_hdr{ my$tcp_obj=shift; my