brainfuck

一、攻击流程:

使用nmap进行探测开放端口和服务。

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的信息收集尝试

wpscan --url https://brainfuck.htb –enumerate u,p --disable-tls-checks

扫描完后我们可以看见,红框处的插件版本是过低了的,可以尝试去攻击一下,搜集一下漏洞尝试攻击。

利用searchsploit进行插件漏洞搜集,指令如下。

searchsploit wp-support-plus-responsive-ticket-system 7.1.3

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

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

利用以下指令用nc来监听pop3。

nc -nC [target] 110
user [username] --输入用户
pass [password] --输入密码
list --列表
retr [number] --输入用户名和密码之后给的数字,几就是看几的信息

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

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

利用下面这段代码就可以进行破解,得出密文,然后我们去重然后就可以得到可以组成的单词”fuck“"my""brain"。

enc="Pieagnm - Jkoijeg nbw zwx mle grwsnn"
pt="Orestis - Hacking for fun and profit"
assert len(enc)==len(pt)
list(zip(enc,pt))
[ord(e)-ord(p) for e,p in zip(enc, pt)]
[(ord(e)-ord(p))%26 for e,p in zip(enc, pt)]
[(ord(e)-ord(p))%26 + ord('a') for e,p in zip(enc, pt)]
[chr((ord(e)-ord(p))%26 + ord('a')) for e,p in zip(enc, pt)]

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

接着,我们进行curl我们得到的网址,就可以得到登录密钥。

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 是一个非常常见的密码字典文件,通常用于密码破解测试,因为它包含了大量常见的密码。

ssh2john id_rsa > id_rsa_hash
john id_rsa -w=/usr/share/wordlists/rockyou.txt

这里我们找到了密码之后,我们备份一个无加密的id_rsa文件。

openssl rsa -in [加密文件] -out [保存文件]

接下来,我们将无加密的ssh密钥进行登录,然后就直接可以利用下列命令进行登录。

sudo ssh -i [无加密文件] orestis@[target]

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

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

找来RSA解密文件,接下来我们顺序填入,进行解密。

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 = 7493025776465062819629921475535241674460826792785520881387158343265274170009282504884941039852933109163193651830303308312565580445669284847225535166520307
q = 7020854527787566735458858381555452648322845008266612906844847937070333480373963284146649074252278753696897245898433245929775591091774274652021374143174079
e = 30802007917952508422792869021689193927485016332713622527025219105154254472344627284947779726280995431947454292782426313255523137610532323813714483639434257536830062768286377920010841850346837238015571464755074669373110411870331706974573498912126641409821855678581804467608824177508976254759319210955977053997
ct = 44641914821074071930297814589851746700593470770417111804648920018396305246956127337150936081144106405284134845851392541080862652386840869768622438038690803472550278042463029816028777378141217023336710545449512973950591755053735796799773369044083673911035030605581144977552865771395578778515514288930832915182 # 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()

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

最后进行ASCII解密,就可以得到最终的root的答案。

>>> pt = 24604052029401386049980296953784287079059245867880966944246662849341507003750
>>> f"{pt:x}"
>>> bytes.fromhex(f"{pt:x}").decode()

HackTheBox-Linux-Brainfuck的更多相关文章

  1. Linux 驱动开发

    linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...

  2. pwnable.kr brainfuck之write up

    I made a simple brain-fuck language emulation program written in C. The [ ] commands are not impleme ...

  3. Linux Restricted Shell Bypass

    Author: @n4ckhcker & @h4d3sw0rm Introduction Hello, so first of all let’s explain what is a rest ...

  4. 渗透技巧——如何逃逸Linux的受限制shell执行任意命令

    导语:本文介绍了如何在受限制的shell中执行任意命令,实现交互.其相应的利用场景是说当我们通过一些手段拿到当前Linux机器的shell时,由于当前shell的限制,很多命令不能执行,导致后续的渗透 ...

  5. Linux 内核概述 - Linux Kernel

    Linux 内核学习笔记整理. Unix unix 已有40历史,但计算机科学家仍认为其是现存操作系统中最大和最优秀的系统,它已成为一种传奇的存在,历经时间的考验却依然声名不坠. 1973 年,在用 ...

  6. 死磕内存篇 --- JAVA进程和linux内存间的大小关系

    运行个JAVA 用sleep去hold住 package org.hjb.test; public class TestOnly { public static void main(String[] ...

  7. NodeJs在Linux下使用的各种问题

    环境:ubuntu16.04 ubuntu中安装NodeJs 通过apt-get命令安装后发现只能使用nodejs,而没有node命令 如果想避免这种情况请看下面连接的这种安装方式: 拓展见:Linu ...

  8. [linux]阿里云主机的免登陆安全SSH配置与思考

    公司服务器使用的第三方云端服务,即阿里云,而本地需要经常去登录到服务器做相应的配置工作,鉴于此,每次登录都要使用密码是比较烦躁的,本着极速思想,我们需要配置我们的免登陆. 一 理论概述 SSH介绍 S ...

  9. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...

  10. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 1.实施前准备工作 1.1 服务器安装操 ...

随机推荐

  1. .NET8.0多线程编码结合异步编码示例

    1.创建一个.NET8.0控制台项目来演示多线程的应用 2.快速创建一个线程 3.多次运行程序,可以得到输出结果 这就是多线程的特点 - 当多个线程并行执行时,它们的具体执行顺序是不确定的,除非我们使 ...

  2. 节点和IP节点和IP

    先说一下我们的IP分配和服务的规划信息 节点和IP 节点 IP ha01 11.53.103.50 ha02 11.53.103.49 ha03 11.53.103.48 ha04 11.53.103 ...

  3. Linux系统用户登录命令行或执行命令显示日志文件异常-bash: /var/log/ 解决办法

    经常会遇到Linux系统用户登录命令行或执行命令显示日志文件异常,比如:-bash: /var/log/xxx_audit/xxx_audit.log: Permission denied 其实是说开 ...

  4. SSH 跳板机原理与配置:实现无缝跳板连接,一步直达目标主机

    前言 在日常运维或开发工作中,我们常常需要访问部署在内网的服务器.然而出于安全策略或网络拓扑的限制,内网服务器并不会直接向外部暴露端口,导致我们无法"直连"它们.此时,跳板机(Ju ...

  5. 《Linux shell 脚本攻略》第1章——读书笔记

    目录 文件描述符及重定向 函数和参数 迭代器 算术比较 文件系统相关测试 字符串进行比较 文件描述符及重定向 echo "This is a sample text 1" > ...

  6. 足球预测:将六场预测法引入AI能增加预测准确率么?

    前言 足球预测的历史可以追溯到200多年前,对足球比赛的结果预测一直是人们所津津乐道的话题.你有了解过这期间涌现过多少足球预测的方法么?过去的人们迫于工具和数据的限制,始终不能高概率的预测足球赛事,但 ...

  7. Pinely Round 4 (Div. 1 + Div. 2)

    题目链接:Pinely Round 4 (Div. 1 + Div. 2) 总结:被B卡了一年. A. Maximize the Last Element tag:模拟 Description:给定一 ...

  8. ESP32 idf常用脚本命令及git命令

    一.Linux环境 1.下载并安装相关的工具 ./install.sh 2.添加ESP-IDF工具到PATH中 . ./export.sh 3.打开配置界面 idf.py menuconfig 4.设 ...

  9. Flink-cdc同步mysql到iceberg丢失数据排查

    一.获取任务信息 任务id:i01f51582-d8be-4262-aefa-000000 任务名称:ods_test1234 丢失的数据时间:2024-09-16 09:28:47 二.数据同步查看 ...

  10. 本地部署 DeepSeek:小白也能轻松搞定!

    大家好,我是晓凡. 写在前面 最近DeepSeek太火了,以至于每个小伙伴都想试试.DeepSeek 的到来可谓是开启了全民AI热潮. 本以为DeepSeek本地化部署有多难,实际上验证后很简单,操作 ...