前言
Author: 0x584A
- nmap
- cisco password cracker
- john && hashcat
- CrackMapExec
- winrm_login
- psexec
- procdump
信息收集
在 Beginner Track 中还剩下一些CTF的题,不太想做先放着,这里在做 Intro to Dante 里的题目,发现有几个已经做过了。
老规矩,nmap开局
开放的端口有 80、135、445、5985、49669,综合之前的经验,可能存在SMB、远程管理端口拿shell的可能性。
首先查看下运行的HTTP服务,一个PHP的站。
当点击页面上的 “Login as guest” 时,会跳转至一个类似QA的页面。
嗨,我的Cisco路由器遇到了问题。 这是以前的管理员使用过的部分配置。 我对此并不陌生,不知道如何解决。 http://10.10.10.149/attachments/config.txt
通过对话了解到,附件内提供的内容是 Cisco 路由器的配置指令,完了他还让管理员帮他创建了一个同名的账号,也就是 Hazard
先看配置:
version 12.2
no service pad
service password-encryption
!
isdn switch-type basic-5ess
!
hostname ios-1
!
security passwords min-length 12
enable secret 5 $1$pdQG$o8nrSzsGXeaduXrjlvKc91
!
username rout3r password 7 0242114B0E143F015F5D1E161713
username admin privilege 15 password 7 02375012182C1A1D751618034F36415408
!
!
ip ssh authentication-retries 5
ip ssh version 2
!
!
router bgp 100
synchronization
bgp log-neighbor-changes
bgp dampening
network 192.168.0.0Â mask 300.255.255.0
timers bgp 3 9
redistribute connected
!
ip classless
ip route 0.0.0.0 0.0.0.0 192.168.0.1
!
!
access-list 101 permit ip any any
dialer-list 1 protocol ip list 101
!
no ip http server
no ip http secure-server
!
line vty 0 4
session-timeout 600
authorization exec SSH
transport input ssh
从配置中获悉到两个账号 rout3r
、admin
及三组密码,尝试Google查找明文。
从文章 https://medium.com/blacksecurity/root-me-cisco-password-decrypt-write-up-3b4beb890a76 中成功找到在线的破解网站,根据type不同选择不同的破解。
0242114B0E143F015F5D1E161713:$uperP@ssword 02375012182C1A1D751618034F36415408:Q4)sJu\Y8qz*A3?d
还剩最后一组,尝试用 hashcat 去破解,发现无 GPU 的情况下太慢了
换 john 去破解hash,指定线程后挺快的。
获取用户flag
开始尝试将收集到的用户名和密码整合,进行smb的爆破。我这里使用 CrackMapExec
CrackMapExec提供了域环境(活动目录)渗透测试中一站式便携工具,它具有列举登录用户、通过SMB(Server Message Block)网络文件共享协议爬虫列出SMB分享列表,执行类似于Psexec的攻击、使用powerShell脚本执行自动式Mimikatz/Shellcode/DLL注入到内存中,dump NTDS.dit密码。 ---- 倾旋的博客
此处之外还可以使用的 msf 的 winrm 模块来进行爆破。
成功获知一组:hazard:stealth1agent
,但是并不能为我们获取到会话。
通过 lookupsid 获目标机器上的用户及组,得到全部用户。
后面复盘的时候发现还可以使用 rpcclient 来获取用户的sid 等信息。
将新的用户加入字典,尝试爆破。
[+] 10.10.10.149:5985 - Login Successful: SupportDesk\Chase:Q4)sJu\Y8qz*A3?d
可是也和上面出现一样的问题,不能获取到会话。
试试 evile-winrm ,成功获取到 chase 用户的会话。
获取 root flag
在用户的桌面获得到待办事项,然而并没有什么卵用。
到这我就直接卡住了… 完全不知道后面应该如何进行… 卡里两天的情况下我决定抄作业…额不,应该是说向 IPPSEC 大佬学习。。
从视频中了解的,htb的服务一般均部署在 C:\inetpub
文件夹内,但是因为权限问题无法枚举目录,但你要是知道绝对路径是可以直接读取文件的。
通过查看PHP的脚本,找到登录的代码段发现密码被硬编码的代码里。
admin@support.htb:91c077fb5bcdd1eacf7268c945bc1d1ce2faf9634cba615337adbf0af4db9040
我是直接Google了这个哈希,搜索引擎直接给出一个网站,对应解出来就是:4dD!5}x/re8]FBuZ
。(额,应该是这组哈希早已被收入所以才能解出来,放在当时靶机活跃状态是绝对解不出的。所以请看后面原题是怎么解的…)
重新组合进行爆破,好家伙是 Administrator
原题获取root flag
上面是已知哈希明文的情况下获取到管理员会话,但当时并不是这样玩的。通过查看进程会发现一个运行中的 firefox 。
*Evil-WinRM* PS C:\Users\Chase\Documents> get-process -name firefox
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
407 31 17396 63136 1.17 980 1 firefox
390 30 30548 64108 13.34 2880 1 firefox
358 26 16416 37620 0.38 5080 1 firefox
1147 69 122748 162588 19.58 6840 1 firefox
343 19 9976 37256 0.39 6960 1 firefox
原题思路是可能 chase 这个用户在使用 firefox 处理待办事项,或许我们可以在这个进程的内存堆栈中找到管理的密码。
这里使用 procdump.exe 实现进程的内存信息获取。
https://docs.microsoft.com/zh-cn/sysinternals/downloads/sysinternals-suite
不翻的话下载速度较慢,单独工具:
https://download.sysinternals.com/files/Procdump.zip
完整工具包:
https://download.sysinternals.com/files/SysinternalsSuite.zip
解压并上传,
创建一个smb的客户端,用于接收dump出来的文件。
额,抱歉,没创建 /root/htb 文件夹,mkdir 之后重试即可… 就是文件有点大,传输的话每个好的梯子是不行的…
直接搜索密码即可…
其他
rpcclient $> lookupnames
Usage: lookupnames [name1 [name2 [...]]]
rpcclient $> lookupnames hazard
hazard S-1-5-21-4254423774-1266059056-3197185112-1008 (User: 1)
rpcclient $> lookupnames Chase
Chase S-1-5-21-4254423774-1266059056-3197185112-1012 (User: 1)
rpcclient $> lookupnames Administrator
Administrator S-1-5-21-4254423774-1266059056-3197185112-500 (User: 1)
rpcclient $>
ports=$(nmap -p- --min-rate=1000 -T4 10.10.10.149 | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//)
nmap -sC -sV -p$ports 10.10.10.149
# 递归显示当前路径下所有文件及文件夹
C:\Users\Chase> gci -recurse | select fullname