Názov: Automatizace MitM útoku pro dešifrování SSL/TLS Abstrakt: Protokoly SSL/TLS sú používané pre šifráciu sieťovéhej prevádzky. Poskytujú bezpečnú komunikáciu medzi klientmi a servermi. Komunikácia môže byť odpočúvaná pomocou MitM útoku. Tento software je zameraný na atuomatizovanie MitM útoku. Automatizáciou sa zjednoduší spustenie útoku bez nutnosti študovania rôznych manuálových stránok a aby sa používatelia vyhli pracnej konfigurácii MitM zariadenia a mohli jednoducho zachytiť a analyzovať SSL/TLS komunikáciu. Automatizácia je vykonaná pomocou MitM sondy a python skriptu, ktorý nakonfiguruje sondu a spustí útok automaticky. Skript má jednoduché ovládanie, bez nutnosti špeciálnych znalostí. Skript zabezpečí konfiguráciu sondy, spustí nástroje pre záchyt sieťovej prevádzky do pcap formátu a na koniec spustí MitM nástroje potrebné pre MitM útok. Počas útoku sú obete varované klientskými aplikáciami o nebezpečnom pripojení. Kľúčové slová: SSL, TLS, dešifrácia, MitM, Man-in-the-Middle, útok URL: https://wis.fit.vutbr.cz/FIT/st/rp.php/rp/2015/BP/18593.pdf Návod na inštaláciu: Pre správne fungovanie MitM Automatizéru je nutné použiť hardvér s dostupnými 2 Ethernetovými vstupmi. Odporúčaný je OS Archlinux pri, ktorom je overené že postup funguje a sú na ňom dostupné všetky potrebné balíčky. Archlinux je možné nainštalovať pomocou krokov uvedených v oficiálnom sprievodcovi inštaláciou (https://wiki.archlinux.org/index.php/Beginners'_guide#Preparation) Inštalácia: Z priložených dát je treba nakopírovať všetky súbory zo zložky "src/". Závislosti: Pred spustením je nutné nainštalovať balíčky, ktoré sú nutné pre správny chod aplikácie a inštalácie: "pacman -S libevent openssl check bridge-utils dsniff tcpdump python2-colorlog python2-pyqt4" SSLsplit: V zložke "src/sslsplit/" je nutné spustiť príkaz "make", ktorý skompiluje tento nástroj aby ho bolo možné používať. Návod na obsluhu: Pred prvým spustením je nutné v súbore run.py nutné doplniť správne názvy používaných sieťových kariet. Pri použití s MitM Sondou sú už správne názvy "eno1" a "enp2s0" pred pripravené. Navyše je nutné doplniť správnu cestu do premenných "outDir" kam sa budú zachytené dáta ukladať. Po správnom doplnení je možné útok spustiť ako root užívateľ v zložke "src/" príkazom (pre podrobnejšie informácie o stave je možné použiť --dbg parameter): "./run.py" Vo väčšine prípadov bude postačujúce spúšťať aplikáciu pomocou predošlého príkazu (pri použití zapojenia pre odpočúvanú LAN). Pre nápovedu je možné použiť parameter --help alebo -h, kde sú popísané ďalšie možnosti spustenia: "./run.py --help" Pre spuspenie grafického uživateľského rozhrania je možné použiť: "./run.py --gui" Ďalšie rgumenty: -h, --help Vypíše nápovedu. --arp Použitie arpspoof. Použiteľné pre zapojenie v LAN. --bridge Použit bridge, pri zapojení do upstream pripojenia pred LAN. --nobridge Nepoužívat bridge (užívateľ vytvoril vlastný bridge, ktorý nechce aby bol zmazaný). --dbg Výpis ladiacích informácií --nopcap NEzachytávať do pcap súboru. Použiteľné pri spustení vlastného zachytávacieho nástroja napr. Wireshark. --gui Spustiť aplikáciu s GUI. --ipv6 Pouzit ipv6. --output OUTPUT Priečinok pre uloženie zachytených dát. Možnosti konfigurácie skriptu: V skripte je sekcia s premennými, ktoré je možné meniť a konfigurovať aby fungoval na rôznych zariadeniach. Ku každej premennej je v skripte popísane k čomu slúži. ========================================================================================================================================================================= ========================================================================================================================================================================= ========================================================================================================================================================================= ENGLISH VERSION OF README: Title: Automatization of MitM Attack for SSL/TLS Decryption Abstrakt EN: SSL/TLS are protocols used to encrypt network traffic. They provide secure communication between clients and servers. The communication can be intercepted with MitM attack. This work is aimed to automatize MitM attack and demonstrate its results. The automatization is done by MitM probe and a python script, which configures the probe and starts the attack. The script is easy to use, without great effort. It takes care of configuration of the probe, then it starts the tools used for network traffic capture and at last it starts MitM tools to perform the attack. During the MitM attack, users are warned by client applications about insecure connection. The client applications either provide an option to establish a connection anyway or it forbids clients to establish the connection with insecure parameters. Keywords: SSL, TLS, dešifrácia, MitM, Man-in-the-Middle, útok URL: https://wis.fit.vutbr.cz/FIT/st/rp.php/rp/2015/BP/18593.pdf Installation: For correct functionality of the MitM probe, it is recommended to use hardware with at least 2 Ethernet ports available. It is recommended to use Archlinux as the OS, where the functionality is verified and the used libraries are easy to install. Archlinux can be installed with a help of the Beginners' guide on Archlinux wiki pages (https://wiki.archlinux.org/index.php/Beginners'_guide#Preparation). 1. Copy a directory "src/" to desired installation path. 2. Install dependencies with the following command: "pacman -S libevent openssl check bridge-utils dsniff tcpdump python2-colorlog python2-pyqt4" 3. Change the current directory to "src/sslsplit" and compile a source code with a command "make". How to run the application: Before we can run the application we have to add necessary names of the used Ethernet cards. The names are already filled in and prepared for usage with MitM probe ("enp2s0" and "eno1"). Moreover, it is necessary to fill in the path where we would like to store the captured data into variable "outDir". The path is preset into "/mnt/sda1/MitM/" on the MitM probe. After the configuration is complete we can run the attack with follownig command: "./run.py" For debugging we can use the argument "--dbg". The application can output a help and usage when "--help" is used. The start of a GUI can be triggered with "--gui" argument. optional arguments: -h, --help Print this help. --arp Use arpspoof (connection in LAN). --bridge Use bridge (upstream connection before LAN). --nobridge Do not setup bridge (Useful when the bridge is already created). --dbg Print debug info --nopcap Do not capture to pcap. --gui Run with GUI. --ipv6 Use ipv6. --output OUTPUT Directory where to save captured data. Optional configuration: In the source code of the script, there are prepared variables which can be changed. There are comments to the variables what do they do and how to use them.