Difference between revisions of "Apache SSL"
(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. | ||
+ | ==Мрежови настройки== | ||
− | == | + | ===Router (Attacker)=== |
+ | Играе ролята на рутер, токча за достъп към Интернет. | ||
+ | Linux Debian, с два активирани интерфейса. Първият е свързан в режим Bridge Adapter, а вторият във internal. | ||
− | + | Настройка DNS | |
− | + | *nano /etc/resolv.conf | |
− | + | nameserver 8.8.4.4 | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Настройки на Интерфейси: | Настройки на Интерфейси: | ||
− | + | nano /etc/network/interfaces | |
<code><pre> | <code><pre> | ||
− | auto | + | 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.
Contents
Мрежови настройки
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