首页 电脑 电脑学堂 查看内容

隐藏自己

2004-9-29 20:05 830 0

摘要: 隐藏自己目录:Zap2 程序其它脚本程序 隐藏自己的关键是你要不断的学习了解新的系统知识。如果你做了很苯的事情,比如有一次忘了清除你的utmp、wtmp日志或传送记录等等,你可能就...
关键词: nbsp entries utmp defined printf USER struct return lastlog FILE

一、说明用Socket的API  Connect完成TCP建立连接的三次握手,同时子进程抓包,抓完三次握手的包后,插入第四个包即可,从对端返回的第五个包来看插入成功了,但因为插入了一个TCP包,之后的连接将发生混乱。可以将插入的那个包Data设置为HTTP  Request,向WEB服务器提交请求。又如果目标系统的TCP序列号是可预计算的,那么是否可以做带伪源地址的Blind  TCP  three-time  handshakes和插入,值得试验!二、脚本1、用到几个模块Net::RawIP  Net::Pcap  Net::PcapUtils  NetPacket;2、pretty_table()函数是我原来做的,用来在命令行下打印表格(Table);3、测试环境-Linux、ADSL拨号,抓包的接口是ppp0,帧的结构和Eth帧结构不同,不能使用NetPacket::Ethernet模块中的strip函数处理帧首部,根据ethereal抓包的结构,我使用unpack函数取得了帧中的IP包;三、源代码#!/usr/bin/perl#By  [email protected],  2005/04use  strict;use  warnings;use  Net::RawIP;use  Net::PcapUtils;use  NetPacket::Ethernet;use  NetPacket::IP;use  NetPacket::TCP;use  Socket;use  Getopt::Std;use  POSIX  qw(strftime);my  %opts;getopts('ht:p:u:n:',  \%opts);print_help()  and  exit  if(defined($opts{'h'}));print_help()  and  exit  if(not  defined($opts{'t'})  or  not  defined($opts{'p'}));die  "\tInvalid  Target  Ipaddress!\n"        if(defined($opts{'t'})  and  $opts{'t'}  !~  m/^\d+.\d+.\d+.\d+$/);die  "\tInvalid  Service  Port!\n"        if(defined($opts{'p'})  and  $opts{'p'}  !~  m/^\d+$/);my  $request;if(defined($opts{'u'}))  {        $request  =  "GET  $opts{'u'}  HTTP/1.1\r\n";        $request.=  "Accept:  text/html;  text/plain\r\n";        $request.=  "\r\n";}  else  {        $request  =  "GET  /  HTTP/1.1\r\n";        $request.=  "Accept:  text/html;  text/plain\r\n";        $request.=  "\r\n";}my  $child  =  fork();if($child  ==  0)  {        #child  process        my  ($next_packet,  %next_header);        my  ($frame_hdr,  $ip_packet);        my  ($ip_obj,  $tcp_obj);        my  $counter  =  0;        my  $pkt_descriptor  =  Net::PcapUtils::open(                FILTER    =>  'ip',                PROMISC  =>  0,                DEV          =>  'ppp0',                #DEV        =>  'eth0'        );        die  "Net::PcapUtils::open  returned:  $pkt_descriptor\n"  if  (!ref($pkt_descriptor));        print  strftime  '%Y/%m/%d  %H:%M:%S,  ',  localtime  and  print  "begin  sniffing  ...\n";                while(($next_packet,  %next_header)  =  Net::PcapUtils::next($pkt_descriptor))  {                                ($frame_hdr,  $ip_packet)  =  unpack  'H32a*',  $next_packet;                $ip_obj  =  NetPacket::IP->decode($ip_packet);                #$ip_obj  =  NetPacket::IP->decode(NetPacket::Ethernet::eth_strip($next_packet));                                next  if  ($ip_obj->{'proto'}  !=  6);                next  if  (($ip_obj->{'src_ip'}  ne  $opts{'t'})                                    and  ($ip_obj->{'dest_ip'}  ne  $opts{'t'}));                                $tcp_obj  =  NetPacket::TCP->decode($ip_obj->{'data'});                next  if  (($tcp_obj->{'src_port'}  ne  $opts{'p'})                                    and  ($tcp_obj->{'dest_port'}  ne  $opts{'p'}));                                $counter++;                                print  "==ID.$counter==",  '='  x  60,  "\n";                print  get_ip_hdr($ip_obj);                print  get_tcp_hdr($tcp_obj);                if($tcp_obj->{'data'})  {                        my  $data;                        $data  =  unpack  'a*',  $tcp_obj->{'data'};                        $data  =~  s/[\r][\n]//g;                        print  pretty_table('TCP  data',  [$data]);                }                                if($counter  ==  3)  {                        my  $a  =  new  Net::RawIP;                        $a->set({                                'ip'  =>  {                                        'id'        =>  $ip_obj->{'id'}  +  1,                                        'saddr'  =>  $ip_obj->{'src_ip'},                                        'daddr'  =>  $ip_obj->{'dest_ip'}                                        },                                'tcp'  =>  {                                        'source'    =>  $tcp_obj->{'src_port'},                                        'dest'        =>  $tcp_obj->{'dest_port'},                                        'seq'          =>  $tcp_obj->{'seqnum'},                                        'ack_seq'  =>  $tcp_obj->{'acknum'},                                        'window'    =>  $tcp_obj->{'winsize'},                                        'data'        =>  $request,                                        'psh'          =>  1,                                        'ack'          =>  1                                        }                                });                        $a->send;                }                last  if($counter  ==  5);        }        exit;}  else  {        sleep(1);        my  $trans_serv  =  getprotobyname('tcp');        my  $dest_sockaddr  =  sockaddr_in($opts{'p'},  inet_aton($opts{'t'}));                socket(TCP_SOCK,  PF_INET,  SOCK_STREAM,  $trans_serv);        connect(TCP_SOCK,  $dest_sockaddr);        sleep(1);        #close  TCP_SOCK;}exit;sub  print_help  {        print  <<HELP                %./iamFool.pl  [-h]  <-t,-p,-u,-n>        -h        print  help        -t        target  ipaddr        -p        service  port        -u        requested  url                                        by:i_am_jojo\@msn.com                                HELP}sub  get_ip_hdr  {        my  $ip_obj  =  shift;        my  @ip_hdr;                push  @ip_hdr,  [qw(ver  tos  flags  id  src_ip  proto)];        push  @{$ip_hdr[1]},  $ip_obj->{$_}  foreach  (qw(ver  tos  flags  id  src_ip  proto));        push  @ip_hdr,  [qw(hlen  len  foffset  ttl  dest_ip  cksum)];        push  @{$ip_hdr[3]},  $ip_obj->{$_}  foreach  (qw(hlen  len  foffset  ttl  dest_ip  cksum));                return  pretty_table('IP  Header',  @ip_hdr);}sub  get_tcp_hdr  {        my  $tcp_obj  =  shift;        my  @tcp_hdr;                push  @tcp_hdr,  [qw(src_port  seqnum  hlen  flags)];        push  @{$tcp_hdr[1]},  $tcp_obj->{$_}  foreach  (qw(src_port  seqnum  hlen  flags));        push  @tcp_hdr,  [qw(dest_port  acknum  reserved  winsize)];        push  @{$tcp_hdr[3]},  $tcp_obj->{$_}  foreach  (qw(dest_port  acknum  reserved  winsize));                return  pretty_table('TCP  Header',  @tcp_hdr);}sub  pretty_table  {        #  prettyTable($aString,  @aList);  @aList  =  (  [...],  [...]  );        #  by  [email protected]        my  ($title,  @data)  =  @_;        my  @temp;        my  @max_length;        my  $row_length;        my  $indent  =  4;        my  $the_table;        foreach  my  $col  (0..$#{$data[0]})  {  push  @{$temp[$col]},  $_->[$col]  foreach  (@data);  }        $max_length[$_]  =  length(  (sort{length($b)  <=>  length($a)}  @{$data[$_]}  )[0])  +  2  foreach  (0..$#data);        $row_length+=  $max_length[$_]  foreach  (0..$#{$temp[0]});            $row_length+=  $#data;                $the_table  =  '  '  x  $indent.'+'.'-'  x  $row_length."+\n";        $the_table.=  '  '  x  $indent.'|  '.$title.'  '  x  ($row_length  -  length($title)  -  1)."|\n";        foreach  my  $row  (0..$#temp)  {                $the_table.=  '  '  x  $indent;                $the_table.=  '+'.'-'  x  $max_length[$_]  foreach  (0..  $#{$temp[0]});                $the_table.=  "+\n";                $the_table.=  '  '  x  $indent;                $the_table.=  '|  '.@{$temp[$row]}[$_].'  '  x  ($max_length[$_]  -  length(@{$temp[$row]}[$_])  -  1)  foreach  (0..  $#{$temp[0]});                $the_table.=  "|\n";        }        $the_table.=  '  '  x  $indent;        $the_table.=  '+'.'-'  x  $max_length[$_]  foreach  (0..  $#{$temp[0]});        $the_table.=  "+\n";                return  $the_table;} 四、结果举例==Result  eXample==2005/05/02  21:51:23,  begin  sniffing  ...==ID.1==============================================================        +---------------------------------------------------+        |  IP  Header                                                                                  |        +--------+---------------+---------+----------------+        |  ver        |  4                          |  hlen        |  5                            |        +--------+---------------+---------+----------------+        |  tos        |  0                          |  len          |  60                          |        +--------+---------------+---------+----------------+        |  flags    |  2                          |  foffset  |  0                            |        +--------+---------------+---------+----------------+        |  id          |  20682                  |  ttl          |  64                          |        +--------+---------------+---------+----------------+        |  src_ip  |  218.11.149.14  |  dest_ip  |  64.233.189.104  |        +--------+---------------+---------+----------------+        |  proto    |  6                          |  cksum      |  31878                    |        +--------+---------------+---------+----------------+        +------------------------------------------+        |  TCP  Header                                                              |        +----------+------------+-----------+------+        |  src_port  |  32851            |  dest_port  |  80      |        +----------+------------+-----------+------+        |  seqnum      |  1104143983  |  acknum        |  0        |        +----------+------------+-----------+------+        |  hlen          |  10                  |  reserved    |  0        |        +----------+------------+-----------+------+        |  flags        |  2                    |  winsize      |  5808  |        +----------+------------+-----------+------+==ID.2==============================================================        +---------------------------------------------------+        |  IP  Header                                                                                  |        +--------+----------------+---------+---------------+        |  ver        |  4                            |  hlen        |  5                          |        +--------+----------------+---------+---------------+        |  tos        |  0                            |  len          |  44                        |        +--------+----------------+---------+---------------+        |  flags    |  0                            |  foffset  |  0                          |        +--------+----------------+---------+---------------+        |  id          |  63029                    |  ttl          |  241                      |        +--------+----------------+---------+---------------+        |  src_ip  |  64.233.189.104  |  dest_ip  |  218.11.149.14  |        +--------+----------------+---------+---------------+        |  proto    |  6                            |  cksum      |  26154                  |        +--------+----------------+---------+---------------+        +------------------------------------------------+        |  TCP  Header                                                                          |        +----------+------------+-----------+------------+        |  src_port  |  80                  |  dest_port  |  32851            |        +----------+------------+-----------+------------+        |  seqnum      |  3660731207  |  acknum        |  1104143984  |        +----------+------------+-----------+------------+        |  hlen          |  6                    |  reserved    |  0                    |        +----------+------------+-----------+------------+        |  flags        |  18                  |  winsize      |  4356              |        +----------+------------+-----------+------------+==ID.3==============================================================        +---------------------------------------------------+        |  IP  Header                                                                                  |        +--------+---------------+---------+----------------+        |  ver        |  4                          |  hlen        |  5                            |        +--------+---------------+---------+----------------+        |  tos        |  0                          |  len          |  40                          |        +--------+---------------+---------+----------------+        |  flags    |  2                          |  foffset  |  0                            |        +--------+---------------+---------+----------------+        |  id          |  20684                  |  ttl          |  64                          |        +--------+---------------+---------+----------------+        |  src_ip  |  218.11.149.14  |  dest_ip  |  64.233.189.104  |        +--------+---------------+---------+----------------+        |  proto    |  6                          |  cksum      |  31896                    |        +--------+---------------+---------+----------------+        +------------------------------------------------+        |  TCP  Header                                                                          |        +----------+------------+-----------+------------+        |  src_port  |  32851            |  dest_port  |  80                  |        +----------+------------+-----------+------------+        |  seqnum      |  1104143984  |  acknum        |  3660731208  |        +----------+------------+-----------+------------+        |  hlen          |  5                    |  reserved    |  0                    |        +----------+------------+-----------+------------+        |  flags        |  16                  |  winsize      |  5808              |        +----------+------------+-----------+------------+==ID.4==============================================================        +---------------------------------------------------+        |  IP  Header                                                                                  |        +--------+---------------+---------+----------------+        |  ver        |  4                          |  hlen        |  5                            |        +--------+---------------+---------+----------------+        |  tos        |  16                        |  len          |  89                          |        +--------+---------------+---------+----------------+        |  flags    |  2                          |  foffset  |  0                            |        +--------+---------------+---------+----------------+        |  id          |  20685                  |  ttl          |  64                          |        +--------+---------------+---------+----------------+        |  src_ip  |  218.11.149.14  |  dest_ip  |  64.233.189.104  |        +--------+---------------+---------+----------------+        |  proto    |  6                          |  cksum      |  31830                    |        +--------+---------------+---------+----------------+        +------------------------------------------------+        |  TCP  Header                                                                          |        +----------+------------+-----------+------------+        |  src_port  |  32851            |  dest_port  |  80                  |        +----------+------------+-----------+------------+        |  seqnum      |  1104143984  |  acknum        |  3660731208  |        +----------+------------+-----------+------------+        |  hlen          |  5                    |  reserved    |  0                    |        +----------+------------+-----------+------------+        |  flags        |  24                  |  winsize      |  5808            ,   |        +----------+------------+-----------+------------+        +--------------------------------------------+        |  TCP  data                                                                      |        +--------------------------------------------+        |  GET  /  HTTP/1.1Accept:  text/html;  text/plai  |        +--------------------------------------------+==ID.5==============================================================        +---------------------------------------------------+        |  IP  Header                                                                                  |        +--------+----------------+---------+---------------+        |  ver        |  4                            |  hlen        |  5                          |        +--------+----------------+---------+---------------+        |  tos        |  0                            |  len          |  40                        |        +--------+----------------+---------+---------------+        |  flags    |  0                            |  foffset  |  0                          |        +--------+----------------+---------+---------------+        |  id          |  47931                    |  ttl          |  241                      |        +--------+----------------+---------+---------------+        |  src_ip  |  64.233.189.104  |  dest_ip  |  218.11.149.14  |        +--------+----------------+---------+---------------+        |  proto    |  6                            |  cksum      |  41256                  |        +--------+----------------+---------+---------------+        +------------------------------------------------+        |  TCP  Header                                                                          |        +----------+------------+-----------+------------+        |  src_port  |  80                  |  dest_port  |  32851            |        +----------+------------+-----------+------------+        |  seqnum      |  3660731208  |  acknum        |  1104144033  |        +----------+------------+-----------+------------+        |  hlen          |  5                    |  reserved    |  0                    |        +----------+------------+-----------+------------+        |  flags        |  16                  |  winsize      |  4356              |        +----------+------------+-----------+------------+===End===
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部