Hacker Geek OS пръстови отпечатъци с TTL и TCP Window Sizes
Знаете ли, че можете да разберете коя операционна система работи в мрежа, само като погледнете начина, по който комуникира в мрежата? Нека разгледаме как можем да открием каква операционна система работят нашите устройства.
Защо бихте направили това??
Определянето на това каква операционна система може да се използва от много причини. Първо ви позволява да разгледате всекидневната перспектива, да си представите, че искате да преминете към нов доставчик на интернет услуги, който предлага неограничен интернет за 50 долара на месец, така че да се опитате да им направите услугата. С използването на пръстови отпечатъци на операционната система скоро ще откриете, че те имат рутери за боклук и предлагат PPPoE услуга, предлагана на куп машини Windows Server 2003. Вече не звучи толкова добра сделка, а?
Друго използване, макар и не толкова етично, е фактът, че дупките в сигурността са специфични за операционната система. Например, правите сканиране на портове и откриете, че порт 53 е отворен и машината работи с остаряла и уязвима версия на Bind, имате SINGLE шанс да използвате дупката за сигурност, тъй като неуспешен опит ще катастрофира демона.
Как функционира OS Fingerprinting?
Когато правите пасивен анализ на текущия трафик или дори гледате стари пакети, един от най-лесните, ефективни начини за правене на Fingerprinting е просто да погледнете размера на прозореца на TCP и Time To Live (TTL) в IP заглавието на първия пакет в TCP сесия.
Ето стойностите за по-популярните операционни системи:
Операционна система | Време за живеене | Размер на прозореца на TCP |
Linux (ядро 2.4 и 2.6) | 64 | 5840 |
Google Линукс | 64 | 5720 |
FreeBSD | 64 | 65535 |
Уиндоус експи | 128 | 65535 |
Windows Vista и 7 (Server 2008) | 128 | 8192 |
iOS 12.4 (маршрутизатори на Cisco) | 255 | 4128 |
Основната причина, че операционните системи имат различни стойности, се дължи на факта, че RFC за TCP / IP не определят стойности по подразбиране. Друго важно нещо, което трябва да запомните е, че стойността на TTL не винаги ще съвпадне с една в таблицата, дори ако устройството ви изпълнява една от изброените операционни системи, виждате, когато изпращате IP пакет през мрежата, операционната система на изпращащото устройство задава TTL на TTL по подразбиране за тази операционна система, но тъй като пакетът пресича маршрутизаторите, TTL се понижава с 1. Следователно, ако видите TTL от 117 това може да се очаква да бъде пакет, изпратен с TTL от 128 и е преминал 11 маршрутизатора, преди да бъде заловен.
Използването на tshark.exe е най-лесният начин да видите стойностите, така че след като сте получили пакет, се уверете, че сте инсталирали Wireshark, след което преминете към:
C: Програмни файлове
Сега задръжте бутона за смяна и щракнете с десния бутон върху папката wireshark и отворете командния прозорец тук от контекстното меню
Сега напишете:
tshark -r "C: Потребители Тейлър Gibb Desktop lll.pcap" tcp.flags.syn eq 1 "-T поле -e ip.src -e ip.ttl -e tcp.window_size
Уверете се, че сте заменили “C: Потребители на Айлор Gibb Desktop blah.pcap” с абсолютния път до улавянето на пакета. След като натиснете Enter, ще бъдат показани всички SYN пакети от вашия плен, по-лесен за четене формат на таблицата
Сега това е случайно заснемане на пакети, което направих от мен, свързвайки се с How-To Geek уебсайта, наред с всички останали разговори на Windows, мога да ви кажа две неща със сигурност:
- Моята локална мрежа е 192.168.0.0/24
- Аз съм на Windows 7 кутия
Ако погледнете първия ред на таблицата, ще видите, че не лъжа, IP адресът ми е 192.168.0.84, а TTL е 128, а TCP прозореца - 8192, който съответства на стойностите за Windows 7.
Следващото нещо, което виждам, е адрес 74.125.233.24 с TTL от 44 и TCP Window Size от 5720, ако погледна в таблицата си, няма OS с TTL от 44, но казва, че Linux, който сървърите на Google да имат TCP прозорец с размер 5720. След като направите бързо търсене в интернет на IP адреса, ще видите, че това е.
За какво друго използвате tshark.exe, кажете ни в коментарите.