Difference between revisions of "SslStrip"

From Ilianko
Line 64: Line 64:
 
#[[Конфигуриране на SSL|Да се конфигурира уеб предоставящ http и https връзка.]]  
 
#[[Конфигуриране на SSL|Да се конфигурира уеб предоставящ http и https връзка.]]  
 
#[[Apache Redirection|Да се конфигурира автоматично пренасочване на http заявките към https.]] [[Apache Password Protected Directory|Сървърът да съдържа защитена директория достъпна с парола.]]
 
#[[Apache Redirection|Да се конфигурира автоматично пренасочване на http заявките към https.]] [[Apache Password Protected Directory|Сървърът да съдържа защитена директория достъпна с парола.]]
#[[Да се конфигурират рутер съгласно опитната постановка.]]
+
#[[VirtualBox, Връзка между два компютъра|Да се конфигурират рутер съгласно опитната постановка.]]
 
#Да се пренасочи трафика на жертвата през атакуващata машина чрез arpspoofing
 
#Да се пренасочи трафика на жертвата през атакуващata машина чрез arpspoofing
 
#Да се актвира sslStrip
 
#Да се актвира sslStrip

Revision as of 19:59, 13 October 2013

TLS (SSL)

TLS (Transport Layer Security) и неговият предшественик SSL (на английски: Secure Sockets Layer) са криптографски протоколи, които осигуряват сигурност на комуникацията по Интернет. TLS и SSL криптиране са сегменти на мрежови връзки над Transport Layer, използвайки асиметрична криптография.

Няколко версии на протоколите се използват широко при уеб, електрон поща, гласова комуникация (VoIP) и др.

TLS се описва в5246 и се основава на по-ранните SSL спецификации, разработен от Netscape Communications.

TLS позволява на клиентски / сървърски приложения да комуникират в мрежата по начин, предназначен за предотвратяване на подслушване и подправяне.

TLS клиентът и сървърът договарят динамична връзка чрез процедура на ръкостискане (handshaking) процедура. Процедурата започва, когато клиентът се свързва с TLS-сървър, изисква защитена връзка и представя на сървъра списък на поддържаните криптирания и хаш функции (ciphers and hash functions). От този списък сървърът избира най-силния шифър и хеш функция и уведомява клиента за решението.

TSL (SSL) Свързване

Сървърът изпраща обратно идентификацията си под формата на цифров сертификат. Сертификатът обикновено съдържа името на сървъра, неговият издател (certificate authority (CA) и публичен ключ за криптиране на сървъра. Клиентът може да се свърже със сървъра, който е издал сертификата и да потвърди валидността на сертификата, преди да продължи нататък.

За да се генерират сесийните ключове, използвани за сигурна връзка, клиентът криптира случайно число с публичния ключ на сървъра и му изпраща резултата. Само сървърът може да го дешифрира с неговия личен ключ. Така завършва процесът ръкостискане и започва защитена шифрована връзка.

Ако някой от по-горните стъпки, се провали, TLS ръкостискането не успява и връзката не се създава.

МIТМ

Man-in-the-middle(човек по средата) е набор от атаки, при които има атакуващ, който провежда „активно“ подслушване. Атакуващият комуникира с всички машини имащи осъществена връзка. Целта е да накара пакетите, чрез които си комуникират дадени машини да преминават през него, като същевременно машините си мислят, че говорят без посредник между тях, а всъщност цялата комуникация се управлявана от атакуващия.

Mitm.jpg

SSLStrip

SSLStrip е инструмент представен през 2009 година на конференцията BlackHat DC от Moxie Marlinspike. Целта на този инструмент е да направи видими потребителските имена и пароли пренасяни през SSL.

SSLStrip е MITM (Man in the middle) атака. Идеята на SSLStrip е да прекъсне заявката за превключване към сигурна връзка идваща от жертвата и да го я да комуникира по нормалния http протокол. По такъв начин данните от жертвата до атакуващия биват предавани в текстов вид.

Например: Когато сe проверява пощата в Gmail, потребителят написва в уеб клиента "mail.google.com" и не се интересува дали страницата се доставя през http:// или https://. Това е така, защото уеб клиента инициира криптирана връзка от сървъра автоматично. Превключването към сигурна връзка се осъществява посредством нормалния http протокол, който не е криптиран и превключването може да бъде прекъснато.




Опитна постановка

Опитната постановка ще бъде реализирана с три работни станции, маршрутизатор и комутатор със следните означения и роли:

  • WebServer - ще предоставя уеб услуги по http или https;
  • Router - Ще свързва външната мрежа с тази на жертвата;
  • Switch - ще предоставя възможност за включване на абонати към вътрешната мрежа;
  • Attacker - Ще прихваща и модифицира връзката между уеб сървъра и жертвата;
  • Victim - Ще достъпва уеб сървъра


Опитна постановка за SSL атака

Адресна схема

Устройсвто интерфейс 1 интерфейс 2
WebServer 10.0.0.2/8 ---
Router 10.0.0.1/8 192.168.0.1/24
Attacker 192.168.0.99/24 --
Victim 192.168.0.2 --

Задачи

  1. Да се създадат 4 виртуални машини, три с Linux (Web Server, Attacker, Router) и една с Windows (Victim)
  2. Да се конфигурира уеб предоставящ http и https връзка.
  3. Да се конфигурира автоматично пренасочване на http заявките към https. Сървърът да съдържа защитена директория достъпна с парола.
  4. Да се конфигурират рутер съгласно опитната постановка.
  5. Да се пренасочи трафика на жертвата през атакуващata машина чрез arpspoofing
  6. Да се актвира sslStrip
  7. Да се прихване паролата на защитената директория
  8. Рутера да се конфигурира да предоставя връзка към Интернет.
  9. Да се прихвани парола от gmail

Упътване

1.Задача виж упр. Конфигуриране на SSL

2.задача

<VirtualHost *:80>
        ServerAdmin contact@yourwebsite.com
 
        DocumentRoot /var/www/public
 
        <Directory />
… to something resembling the following:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<VirtualHost *:80>
        RewriteEngine on
        ReWriteCond %{SERVER_PORT} !^443$
        RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
</VirtualHost>
 
<VirtualHost *:443>
        ServerAdmin contact@yourwebsite.com
 
        DocumentRoot /var/www/public
 
        SSLEngine On
        SSLCertificateFile    /etc/apache2/ssl/mycert.pem
        SSLCertificateKeyFile /etc/apache2/ssl/mycert.key
 
        <Directory />