Difference between revisions of "Apache SSL"
(25 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)=== | |
− | ===Attacker=== | ||
Играе ролята на рутер, токча за достъп към Интернет. | Играе ролята на рутер, токча за достъп към Интернет. | ||
Linux Debian, с два активирани интерфейса. Първият е свързан в режим Bridge Adapter, а вторият във internal. | 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 25: | Line 32: | ||
address 172.16.1.1 | address 172.16.1.1 | ||
netmask 255.255.255.0 | 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> | </code></pre> | ||
− | + | Инсталация на web сървър | |
+ | Инсталиране на софтуерни пакети '''''telnet''''', '''''openssl''''', '''''apache2''''', '''''ssh''''' | ||
+ | apt-get update | ||
+ | аpt-get install apache2 openssl ssh | ||
+ | |||
− | ===Victim=== | + | Проверка дали работи web сървърът. |
+ | telnet localhost 80 | ||
+ | GET | ||
+ | |||
+ | === Web client (Victim) === | ||
windows XP | windows XP | ||
*IP: 10.3.45.1XX/16 | *IP: 10.3.45.1XX/16 | ||
Line 38: | Line 71: | ||
− | == | + | ==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> | ||
+ | <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@ | + | :-$ 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> | <code><pre> | ||
+ | ... | ||
SSLEngine on | SSLEngine on | ||
Line 88: | Line 156: | ||
SSLCertificateFile /root/keys/apache.pem | SSLCertificateFile /root/keys/apache.pem | ||
SSLCertificateKeyFile /root/keys/apache.key | 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