首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux系统利用可执行文件Capabilities实现权限提升

一、操作目的和应用场景 Capabilities机制是在Linux内核2.2之后引入,原理很简单,就是将之前与超级用户root(UID=0)关联特权细分为不同功能组,Capabilites作为线程...(Linux并不真正区分进程和线程)属性存在,每个功能组都可以独立启用和禁用。...其本质就是将内核调用分门别类,具有相似功能内核调用被分到同一组中。...(二)利用Capabilities实现权限提升 现在假设管理员对一些可执行文件设置了capabilities。测试人员通过下面的命令查找这些文件: getcap -r / 2>/dev/null ?...在kali linux提权成功,获取了root shell。 在CentOS 7系统中安装低版本php无法提权: ?

4.4K20
您找到你想要的搜索结果了吗?
是的
没有找到

Linux可执行文件与进程虚拟地址空间

Linux可执行文件与进程虚拟地址空间 一个可执行文件被执行同时也伴随着一个新进程创建。...Linux会为这个进程创建一个新虚拟地址空间,然后会读取可执行文件文件头,建立虚拟地址空间与可执行文件映射关系,然后将CPU指令指针寄存器设置成可执行文件入口地址,然后CPU就会从这里取指令执行...一个可执行文件包含可被CPU执行指令和待处理数据,CPU之前,指令和数据全部被翻译成成二进制形式。在可执行文件内部,划分出了一些专门段,如代码段,数据段,BSS段等。...Proc目录下进程虚拟地址空间布局 Linux在装载可执行文件时候,会将这些segment映射到进程地址空间中。映射时候,这里面的segment会对应一个VMA。...所以,操作系统实际并不关心可执行文件各个段所包含实际内容,OS只关心一些跟装载相关问题,最主要是段权限(可读,可写,可执行)。

4.2K30

Linux系统创建可执行文件软链接

这里我们使用案例是通过TMalign这个蛋白质打分文件,在编译好可执行文件之后,可以使用建立软链接方法快捷使用该可执行文件。...Mac可能需要去掉static): $ g++ -static -O3 -ffast-math -lm -o TMalign TMalign.cpp 编译之后就会在当前路径下生成一个名为TMalign可执行文件...,有时候会遇到想把可执行文件放在特定路径下问题,比如放到/usr/bin目录下,这样可以全局可调用,又不需要手动添加各种乱七八糟系统路径。...这就需要使用到Linux软链接功能,通常使用ln -s指令即可。...本文顺带介绍了蛋白质结构评分软件TMalign源码下载和安装使用基本方法,编译成一个可执行文件后,可以建立一个软链接,在系统各处都可以使用,是一个比较基础操作。

2.8K20

详解 Linux 可执行文件 ELF 文件内部结构

引言 一篇文章中,我们介绍了如何让汇编语言与 C 语言相互调用: 如何实现汇编语言与 C 语言之间相互调用 还记得我们自制操作系统脚步到哪里了呢?...在 linux 中,可执行文件、Object文件、动态库文件都是ELF格式文件,他相当于 windows 操作系统中 PE 文件。 通过 readelf 命令可以读取 ELF 文件内容。 3....这里提到了“节”概念,一篇文章中,我们在汇编中使用了 section 关键字,就是指定了对应代码块 section 类型,linux 支持下面的三种 section: .text — 代码段,用来存放代码...别忘了我们目标,我们需要通过汇编语言编写 loader 程序将在 linux 环境编译 C 语言内核程序载入到内存并执行,因此,实际我们只需要知道 ELF 文件需要如何被载入内存,并从哪里开始执行...了解了上面的结构信息,你就会发现,事实与我们目标直接相关是 ELF 文件中 Program Header 部分,他描述了可执行文件中有那几个段,每个段需要被载入到内存哪个位置,而每个段包含多少个节

2.7K21

Manjaro Linux平台用pyinstaller打包python可执行文件

对于使用场景不是很复杂,我们可以直接做成一个可执行文件,这样开发者只需要维护可执行文件功能正常,以及对于各种平台兼容性较好,这就可以了。...构造python测试实例 因为可执行文件自身内容都是固定,只能通过配置文件或者是命令行输入参数来进行传参,因此我们构造python文件时候主要从命令行这个角度来出发,通过读取命令行输入参数来决定...那么最后还缺一步,就是我们如果想要通过项目名 -参数表示 参数这样方法来运行我们项目的话,就需要把这个可执行文件添加到系统路径中。...最常用方法其实是直接将该可执行文件拷贝到/usr/bin/目录下,这样该可执行文件就可以直接使用,BLACKPINK不需要在前面加上路径就能运行。...总结概要 通过pyinstaller我们可以将一个python项目打包编译构建成一个可执行文件,然后将该可执行文件放置到一个系统路径下,使得系统可以不需要路径也能够识别到这个可执行文件,这样我们就可以仅配置一些输入文件或者命令行入参

2.8K00

Linux下,使用nm命令输出可执行文件符号表

可执行文件符号表(symbol table)记录了某个可执行文件函数名、全局变量、宏定义等符号信息,这些信息对于我们调试十分重要。...目前,我正在DragonOS开发内核栈traceback程序,因此需要导出内核文件符号表.这个时候就需要用到Linuxnm命令。...nm命令属于GNU binutils功能,能够输出可执行文件符号表。它用法是这样: 用法:nm [选项] [文件] 列举 [文件] 中符号 (默认为 a.out)。...效果如下图: 图片 图片中所看到就是DragonOS内核符号表。最左侧一栏指的是符号在内核文件中地址,中间一栏表示符号类型,最右侧表示符号名称。...对于符号类型字母含义,有下列解释: -A, -o, --print-file-name 在找到各个符号名字前加上文件名,而不是在此文件所有符号前只出现文件名一次 -a, --debug-syms

2.4K30

可执行文件组成

大家好,又见面了,我是你们朋友全栈君。 在 ADS 下,可执行文件有两种,一种是.axf 文件,带有调试信息,可供 AXD 调试工具使用.另一种是.bin 文件,可执行二进制代码文件。...我们重点是讲描.bin 文件组成。 我们把可执行文件分为两种情况:分别为存放态和运行态。 1. 存放态 存放态是指可执行文件通过 fromelf 产生后,在存储介质(flash 或磁盘)分布....可执行文件存放态如下: +————-+———– | .bss | +————-+– 数据段 | .data | +————-+———– | .rodata | | |...运行态 可执行文件通过装载过程, 搬入到 RAM 中运行, 这时候可执行文件就变成运行态。...| 保留区 1 | +————-+– RO 段结束地址 | RO 段 | +————-+– RO 段起始地址 | … | 装载后 所以装载过程必须完成把执行文件各个段从存储介质搬到

62420

Manjaro Linux平台用pyinstaller打包python可执行文件

对于使用场景不是很复杂,我们可以直接做成一个可执行文件,这样开发者只需要维护可执行文件功能正常,以及对于各种平台兼容性较好,这就可以了。...构造python测试实例 因为可执行文件自身内容都是固定,只能通过配置文件或者是命令行输入参数来进行传参,因此我们构造python文件时候主要从命令行这个角度来出发,通过读取命令行输入参数来决定...那么最后还缺一步,就是我们如果想要通过项目名 -参数表示 参数这样方法来运行我们项目的话,就需要把这个可执行文件添加到系统路径中。...最常用方法其实是直接将该可执行文件拷贝到/usr/bin/目录下,这样该可执行文件就可以直接使用,不需要在前面加上路径就能运行。...总结概要 通过pyinstaller我们可以将一个python项目打包编译构建成一个可执行文件,然后将该可执行文件放置到一个系统路径下,使得系统可以不需要路径也能够识别到这个可执行文件,这样我们就可以仅配置一些输入文件或者命令行入参

3K20

内核级木马与病毒攻防:Linux可执行文件ELF格式描述

要想在Linux系统实现逆向工程,分析,设计或查杀病毒和恶意代码,你不得不深入掌握其可执行文件ELF格式,这样你才能了解进程在内存空间布局和运行基本规律,这样你才能有针对性设计有效病毒或恶意代码入侵系统...ET_EXEC表示可执行文件,它是由多个.o文件链接起来,可以被加载到内存进行执行进程数据文件;ET_DYN表示动态链接库,它里面包含一系列向外导出函数代码,当进程需要调用其内部函数时会将其加载到内存...ELF格式可执行文件在概念由各种”段“组成,例如用于存储代码文本段,用于存储数据数据段等,这些段数量和相关信息就由程序表头来描述,在加载运行ELF可执行文件时,系统会读取程序表头,获得各个段信息...,将段对应内容加载到内存,这样可执行文件才能变成可以运行进程,我们可以使用命令readelf -l 来读取程序表头内容,具体情况如下: ?...但所谓黑客,本质是无限制扩充自己技术能力圈程序员,因此我们需要掌握哪些工作不常用,但能帮你探寻到技术核心真相知识和信息,这就像黑客帝国中莫非是拉尼奥入伙时给出两颗药丸,吞入红色药丸他就能理解世界本质

1.5K10

『Python』Python编译成计算机可执行文件(Windows计算机可执行文件exe,Linux 计算机可执行文件elf,Mac计算机可执行文件mach-O)

我们主角 :PyInstaller PyInstaller 是一个十分有用第三方库,可以用来打包 python 应用程序,打包完程序就可以在没有安装 Python 解释器机器运行了。...PyInstaller将 Python应用程序冻结(打包)在Windows,GNU / Linux,Mac OS X,FreeBSD,Solaris和AIX下独立可执行文件中。...与类似工具相比,PyInstaller主要优势在于PyInstaller可与Python 2.7和3.5-3.7一起使用;由于透明压缩,它可生成较小可执行文件;它是完全多平台;并且使用OS支持来加载动态库...产生单个可执行文件 -D,--onedir 产生一个目录(包含多个文件)作为可执行程序 -a,--ascii 不包含 Unicode 字符集支持 -d,--debug 产生 debug 版本可执行文件...也可使用路径分隔符(Windows 使用分号,Linux 使用冒号)来分隔多个路径 -n NAME,--name=NAME 指定项目(产生 spec)名字。

3.4K10

Linux文件权限管理

---- ---- 前言         不同于平常使用window操作系统,在Linux系统下,常常会有很多人共同使用一台机器(当然window也可以,但是不常用),这就引发了一些问题,在同一台机器存在不同用户信息...这时候有人就捣鼓出了权限方法来管理同一台机器信息管理。 ---- 1.Linux权限概念 Linux下有两种用户:超级用户(userroot)、普通用户。...超级用户(root):可以再linux系统下做任何事情,不受限制 普通用户(user):在linux下做有限事情。 超级用户命令提示符是“#”,普通用户命令提示符是“$”。...p:管道文件         c:字符设备文件(例如屏幕等串口设备)         s:套接口文件 特别的:Linux在识别文件类型时,不同于windows会通过后缀来辨别文件类型,但是我们在Linux...但实际你所创建文件和目录,看到权限往往不是上面这个值。原因就是创建文件或目录时候还要受到umask影响。

1.1K20

Linux安装Redis

Redis具有如下特点: 1.Redis支持数据持久化,可以将内存中数据保持在磁盘中,重启时候可以再次加载进行使用,不会造成数据丢失 2.Redis支持五种不同数据结构类型之间映射,包括简单...支持异步将内存中数据写到硬盘上,在持久化同时不影响继续服务 2.取最新N个数据操作,如:可以将最新10条评论ID放在RedisList集合里面 3.数据可以设置过期时间 4.自带发布、订阅消息系统...5.定时器、计数器 Redis安装 Windows版Redis安装,整体来说还是非常简单,网上也有很多教程,考虑到Redis大部分使用场景都是在Linux,因此这里我对Windows安装不做介绍...,小伙伴们有兴趣可以自行搜索,下面我们主要来看下Linux怎么安装Redis。...环境: CentOS7 redis4.0.8 1.首先下载Redis,下载地址https://redis.io/,下载获得redis-4.0.8.tar.gz后将它放入我们Linux目录/opt

3.3K60
领券