Je crée un environnement de test pour la vulnérabilité Heartbleed. Je fais donc les choses suivantes:
Avant de commencer, j'ai configuré Apache2 pour qu'il fonctionne avec SSL ( https://www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificate-on-Apache-for-ubuntu-14 -04 ). J'ai exécuté cette commande:
openssl s_client -connect [server IP] -tlsextdebug 2>&1 | grep 'server extension "heartbeat" (id=15)' || echo safe
Il renvoie cette TLS server extension "heartbeat" (id=15), len=1
==> extension de pulsation est utilisée.
Je choisis le serveur Ubuntu 12.04 comme OS
apt-get remove --purge
Et apt-get autoremove
Je le construis avec les commandes suivantes:
./config --prefix=/usr/openssl --openssldir=/usr/openssl
make
make install
apt-get install Apache2
safe
, ce qui signifie que le rythme cardiaque ne fonctionne pas.Comment puis-je le faire fonctionner maintenant?
Informations supplémentaires: après avoir créé OpenSSL à partir des sources, je vérifie en exécutant ces commandes:
openssl genrsa -out server.pem 1024
openssl req -new -x509 -key server.pem -subj /CN=localhost >> server.pem
openssl s_server -www
et tester avec Metasploit, cela montre que cette version d'OpenSL a la vulnérabilité.
En utilisant la commande openssl version
Show 1.0.1e ==> La version que j'ai construite
Voici mon script pour préparer un environnement pour démontrer CVE-2014-0160.
Ici, je ne peux pas poster de lien de téléchargement car je n'ai pas assez de réputation. Vous devez télécharger openssl-1.0.1e.tar.gz, httpd-2.4.25.tar.gz, apr-1.5.2.tar.gz, apr-util-1.5.4.tar.gz, pcre-8.40. tar.gz dans votre répertoire personnel.
#!/bin/sh
#Download installation files
cd ~
#Here I cannot post download link because I do not have enough reputation.
#You need to download openssl-1.0.1e.tar.gz, httpd-2.4.25.tar.gz, apr-1.5.2.tar.gz,
#apr-util-1.5.4.tar.gz, pcre-8.40.tar.gz into your home directory.
#Install compilers
yum -y groupinstall "Development Tools"
#Install pcre
cd ~
tar -zxvf pcre-8.40.tar.gz
cd pcre-8.40
./configure --prefix=/usr/local/pcre
make
make install
#Install openssl
cd ~
tar -zxvf openssl-1.0.1e.tar.gz
cd openssl-1.0.1e
./config --prefix=/opt/openssl-1.0.1e --openssldir=/opt/openssl-1.0.1e -fPIC -DOPENSSL_PIC
make
make install_sw
#Install openssl
cd ~
tar -zxvf openssl-1.0.1e.tar.gz
cd openssl-1.0.1e
./config --prefix=/opt/openssl-1.0.1e --openssldir=/opt/openssl-1.0.1e -fPIC -DOPENSSL_PIC
make
make install_sw
#Install httpd (using just installed opensll)
cd ~
tar -zxvf httpd-2.4.25.tar.gz
cd httpd-2.4.25/srclib/
tar zxvf ../../apr-1.5.2.tar.gz
ln -s apr-1.5.2/ apr
tar zxvf ../../apr-util-1.5.4.tar.gz
ln -s apr-util-1.5.4/ apr-util
cd ~
cd httpd-2.4.25
./configure --prefix=/opt/httpd --with-included-apr --enable-ssl --with-ssl=/opt/openssl-1.0.1e --enable-ssl-staticlib-deps --enable-mods-static=ssl --with-pcre=/usr/local/pcre
make
make install
#Add configuration to use HTTPS (port 443)
cd ~
sed -i '/^#.*Include conf\/extra\/httpd-ssl.conf/s/^#//' /opt/httpd/conf/httpd.conf
sed -i '/^#.*LoadModule socache_shmcb_module modules\/mod_socache_shmcb.so/s/^#//' /opt/httpd/conf/httpd.conf
cd ~
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /opt/httpd/conf/server.key -out /opt/httpd/conf/server.crt -subj "/C=JP/ST=/L=/O=/OU=/CN=192.168.122.137"
/opt/httpd/bin/apachectl start
iptables -F
#Start httpd on booting
chmod +x /etc/rc.d/rc.local
echo '/opt/httpd/bin/apachectl start' >> /etc/rc.local
#Remove downloaded files
cd ~
rm -rf ~/openssl-1.0.1*
rm -rf ~/httpd*
rm -rf ~/pcre*