Heist-Writeup

前言

Author: 0x584A

52690222.png

  • nmap
  • cisco password cracker
  • john && hashcat
  • CrackMapExec
  • winrm_login
  • psexec
  • procdump

信息收集

在 Beginner Track 中还剩下一些CTF的题,不太想做先放着,这里在做 Intro to Dante 里的题目,发现有几个已经做过了。

62841442.png

老规矩,nmap开局

81595741.png

开放的端口有 80、135、445、5985、49669,综合之前的经验,可能存在SMB、远程管理端口拿shell的可能性。

首先查看下运行的HTTP服务,一个PHP的站。

81208816.png

当点击页面上的 “Login as guest” 时,会跳转至一个类似QA的页面。

81225713.png

嗨,我的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

从配置中获悉到两个账号 rout3radmin 及三组密码,尝试Google查找明文。

82057938.png

从文章 https://medium.com/blacksecurity/root-me-cisco-password-decrypt-write-up-3b4beb890a76 中成功找到在线的破解网站,根据type不同选择不同的破解。

82353294.png

0242114B0E143F015F5D1E161713:$uperP@ssword

02375012182C1A1D751618034F36415408:Q4)sJu\Y8qz*A3?d

还剩最后一组,尝试用 hashcat 去破解,发现无 GPU 的情况下太慢了

85807943.png
83744639.png

换 john 去破解hash,指定线程后挺快的。

83763957.png

获取用户flag

开始尝试将收集到的用户名和密码整合,进行smb的爆破。我这里使用 CrackMapExec

CrackMapExec提供了域环境(活动目录)渗透测试中一站式便携工具,它具有列举登录用户、通过SMB(Server Message Block)网络文件共享协议爬虫列出SMB分享列表,执行类似于Psexec的攻击、使用powerShell脚本执行自动式Mimikatz/Shellcode/DLL注入到内存中,dump NTDS.dit密码。 —— 倾旋的博客

80667692.png

此处之外还可以使用的 msf 的 winrm 模块来进行爆破。

84489651.png

成功获知一组:hazard:stealth1agent,但是并不能为我们获取到会话。

84524843.png

通过 lookupsid 获目标机器上的用户及组,得到全部用户。

84584062.png

后面复盘的时候发现还可以使用 rpcclient 来获取用户的sid 等信息。

85143080.png

将新的用户加入字典,尝试爆破。

84827942.png

[+] 10.10.10.149:5985 - Login Successful: SupportDesk\Chase:Q4)sJu\Y8qz*A3?d

可是也和上面出现一样的问题,不能获取到会话。

56277186.png

试试 evile-winrm ,成功获取到 chase 用户的会话。

85819066.png

获取 root flag

在用户的桌面获得到待办事项,然而并没有什么卵用。

85915031.png

到这我就直接卡住了… 完全不知道后面应该如何进行… 卡里两天的情况下我决定抄作业…额不,应该是说向 IPPSEC 大佬学习。。

从视频中了解的,htb的服务一般均部署在 C:\inetpub 文件夹内,但是因为权限问题无法枚举目录,但你要是知道绝对路径是可以直接读取文件的。

599361.png

618230.png

634219.png

通过查看PHP的脚本,找到登录的代码段发现密码被硬编码的代码里。

admin@support.htb:91c077fb5bcdd1eacf7268c945bc1d1ce2faf9634cba615337adbf0af4db9040

1784164.png

我是直接Google了这个哈希,搜索引擎直接给出一个网站,对应解出来就是:4dD!5}x/re8]FBuZ。(额,应该是这组哈希早已被收入所以才能解出来,放在当时靶机活跃状态是绝对解不出的。所以请看后面原题是怎么解的…)

重新组合进行爆破,好家伙是 Administrator

2075862.png

2138182.png

原题获取root flag

上面是已知哈希明文的情况下获取到管理员会话,但当时并不是这样玩的。通过查看进程会发现一个运行中的 firefox 。

58068831.png

*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

58852051.png

解压并上传,

61616872.png

创建一个smb的客户端,用于接收dump出来的文件。

61914449.png

额,抱歉,没创建 /root/htb 文件夹,mkdir 之后重试即可.. 就是文件有点大,传输的话每个好的梯子是不行的…

62262349.png

直接搜索密码即可…

62363885.png

其他

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 $>

85556554.png

86120800.png

86209243.png

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