Difference between revisions of "Apache SSL"

From Ilianko
 
(25 intermediate revisions by the same user not shown)
Line 1: Line 1:
Конфигуриране на Apache с поддръжка на https (TLS/SSL)
+
Конфигуриране на Apache с поддръжка на https (TLS/SSL) и атака с SSLStrip
 +
Опитна постановка:
 +
Router, Web Server, Web Client.
  
Опитна постановка
+
==Мрежови настройки==
  
 
+
===Router (Attacker)===
===Attacker===
 
 
Играе ролята на рутер, токча за достъп към Интернет.
 
Играе ролята на рутер, токча за достъп към Интернет.
 
Linux Debian, с два активирани интерфейса. Първият е свързан в режим Bridge Adapter, а вторият във internal.
 
Linux Debian, с два активирани интерфейса. Първият е свързан в режим Bridge Adapter, а вторият във internal.
 +
 +
Настройка DNS
 +
*nano /etc/resolv.conf
 +
nameserver 8.8.4.4
 +
 +
  
 
Настройки на Интерфейси:
 
Настройки на Интерфейси:
*nano /etc/resolv.conf
+
nano /etc/network/interfaces
 
<code><pre>
 
<code><pre>
auto lo
+
auto lohttps://www.google.bg/search?q=innodb&gws_rd=cr,ssl&ei=JjAnVrkBwuhqoeSMmAs
 
iface lo inet loopback
 
iface lo inet loopback
  
Line 25: Line 32:
 
address 172.16.1.1
 
address 172.16.1.1
 
netmask 255.255.255.0
 
netmask 255.255.255.0
 +
</pre></code>
 +
 +
Активиране на 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
 +
 +
<code><pre>
 +
# 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></pre>
 
</code></pre>
  
===Web сървър===
+
Инсталация на web сървър
 +
Инсталиране на софтуерни пакети '''''telnet''''', '''''openssl''''', '''''apache2''''', '''''ssh'''''
 +
apt-get update
 +
аpt-get install apache2 openssl ssh
 +
 
  
===Victim===
+
Проверка дали работи web сървърът.
 +
telnet localhost 80
 +
  GET
 +
 
 +
=== Web client (Victim) ===
 
windows XP
 
windows XP
 
*IP: 10.3.45.1XX/16
 
*IP: 10.3.45.1XX/16
Line 38: Line 71:
  
  
== Web сървър ==
+
==Host машина==
 +
Добавяне на път от host машината към web сървъра
 +
route add -net 172.16.1.0/24 gw 10.3.45.100
  
 +
== Web форма ==
  
3. Инсталиране на софтуерни пакети '''''openssl''''', '''''apache2''''', '''''ssh'''''
+
Тестване на web сървъра през Web клиента
:~$ apt-get update
+
*В браузъра се отваря:
  :~$ apt-get install apache2 openssl ssh
+
  http://172.16.1.2/index.html
  
4. Проверка дали работи web сървърът.  
+
Качване на форма form.html
 +
*Подгответе web форма и я качете през ssh на веб сървъра
 +
<code><pre>
 +
<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>
 +
</pre></code>
  
От брaузър на хост машината се зарежда IP адреса на web сървъра.
 
  
5. Свързване от '''''Хост компютъра''''' към виртуалния Web сървър през ssh.
+
Свързване от '''''Хост компютъра''''' към виртуалния Web сървър през ssh.
  
 
Отваря се терминал на хост машината и се изпълнява
 
Отваря се терминал на хост машината и се изпълнява
  :-$ ssh student@10.3.45.10X
+
  :-$ ssh student@172.16.1.1
  
6. Генериране на ...
+
===Активиране на https===
  
Да се създаде директория ~/keys
+
*Активиране на ssl модул:
  :~$ mkdir ~/keyes
+
  a2enmod ssl
  :~$ cd ~/keys
+
 
   
+
*Настройка на web директория Apache. Ще се модифицира примерната конфигурация
Генериране на само-подписан сертификат и частен ключ
+
  cd /etc/apache2
  :~$ openssl req -new -x509 -days 365 -nodes -out apache.pem -keyout apache.key
+
  cp sites-available/default-ssl sites-enabled/
 +
  nano sites-enabled/default-ssl
 +
service apache2 restart
  
Common Name (e.g. server FQDN or YOUR name) []: '''''tugab.bg'''''
+
*добавете към index.html връзка към формата
 +
<a href=https://172.16.1.2/form.html >Forma</a>
  
Проверете генерираните файлове
+
=== Генериране на собствен самоподписан сертификат ===
  
7. Настройка на Apache2
+
*Да се създаде директория /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'''''
 +
...
  
Активиране на ssl модул
+
*Проверете генерираните файлове
:~$ a2enmod ssl
 
  
Настройка на web директория Apache. Ще се модифицира примерната конфигурация
 
:~$ cd /etc/apache2
 
:~$ cp sites-available/default-ssl sites-enabled/
 
:~$ nano sites-enabled/default-ssl
 
  
Редактирайте пътищата към сертификата и частния ключа
+
*Редактирайте пътищата към сертификата и частния ключа. Редактирайте файла /etc/apache2/sites-enabled/default-ssh
 
<code><pre>
 
<code><pre>
 +
...
 
  SSLEngine on
 
  SSLEngine on
  
Line 88: Line 156:
 
         SSLCertificateFile    /root/keys/apache.pem
 
         SSLCertificateFile    /root/keys/apache.pem
 
         SSLCertificateKeyFile /root/keys/apache.key
 
         SSLCertificateKeyFile /root/keys/apache.key
 +
...
 +
</pre></code>
  
</pre></code>
+
*Рестатирайте 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 връзките.
  
9. Рестатирайте apache и Тествайте връзката към '''''https://10.3.45.10X'''''
 
:~$ /etc/init.d/apache2 restart
 
  
 
   
 
   

Latest revision as of 10:04, 22 October 2015

Конфигуриране на 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