Difference between revisions of "Apache SSL"

From Ilianko
 
(4 intermediate revisions by the same user not shown)
Line 12: Line 12:
 
*nano /etc/resolv.conf
 
*nano /etc/resolv.conf
 
  nameserver 8.8.4.4
 
  nameserver 8.8.4.4
 +
 +
  
 
Настройки на Интерфейси:
 
Настройки на Интерфейси:
 +
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 107: Line 110:
  
  
5. Свързване от '''''Хост компютъра''''' към виртуалния Web сървър през ssh.
+
Свързване от '''''Хост компютъра''''' към виртуалния Web сървър през ssh.
  
 
Отваря се терминал на хост машината и се изпълнява
 
Отваря се терминал на хост машината и се изпълнява
 
  :-$ ssh student@172.16.1.1
 
  :-$ ssh student@172.16.1.1
  
6. Активиране на https
+
===Активиране на https===
  
Активиране на ssl модул  
+
*Активиране на ssl модул:
 
  a2enmod ssl
 
  a2enmod ssl
  
Настройка на web директория Apache. Ще се модифицира примерната конфигурация
+
*Настройка на web директория Apache. Ще се модифицира примерната конфигурация
 
  cd /etc/apache2
 
  cd /etc/apache2
 
  cp sites-available/default-ssl sites-enabled/
 
  cp sites-available/default-ssl sites-enabled/
Line 123: Line 126:
 
  service apache2 restart
 
  service apache2 restart
  
добавете към index.html връзка към формата
+
*добавете към index.html връзка към формата
  <a href=https://172.16.1.1/form.html >Forma</a>
+
  <a href=https://172.16.1.2/form.html >Forma</a>
 
 
 
 
  
 +
=== Генериране на собствен самоподписан сертификат ===
  
 
+
*Да се създаде директория /root/keys
=== Генериране на собствен сертификат ===
+
  mkdir /root/keyes
Да се създаде директория ~/keys
+
  cd /root/keys  
  mkdir ~/keyes
 
  cd ~/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'''''
+
*Проверете генерираните файлове
 
 
Проверете генерираните файлове
 
  
  
 
+
*Редактирайте пътищата към сертификата и частния ключа. Редактирайте файла /etc/apache2/sites-enabled/default-ssh
Редактирайте пътищата към сертификата и частния ключа
 
 
<code><pre>
 
<code><pre>
 +
...
 
  SSLEngine on
 
  SSLEngine on
  
Line 155: 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.1XX'''''
+
*Рестатирайте apache и Тествайте връзката към '''''https://10.3.45.1XX'''''
  :~$ /etc/init.d/apache2 restart
+
  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