Ревидирајте своју локалну мрежу помоћу Nmap-а и Wireshark-а корак по корак

  • Нмап вам омогућава да откријете хостове, портове и сервисе доступне на локалној мрежи, као и да идентификујете оперативне системе и верзије.
  • Различите врсте скенирања (TCP connect, SYN, NULL, Xmas…) остављају препознатљиве обрасце које је могуће открити помоћу Wireshark-а и логова.
  • Бетеркап у комбинацији са Вајерсхарком показује како протоколи отвореног текста попут Телнета и ХТТП-а откривају акредитиве у поређењу са шифрованим ССХ и ХТТПС-ом.
  • Редовна ревизија помоћу Nmap-а, Wireshark-а и сличних алата помаже у смањењу површине напада и јачању безбедности инфраструктуре.

НМАП

Ревизија локалне мреже помоћу Nmap-а и Wireshark-а То је један од најефикаснијих начина да разумете шта се заиста дешава у вашој инфраструктури, откријете прекомерно изложене сервисе и видите које информације би нападач могао да види ако се инфилтрира у ваш мрежни сегмент. Ово су два добро успостављена алата, која широко користе и администратори и тестери пенетрације. Када се ефикасно комбинују, омогућавају вам да пређете са једноставног снимка отворених портова на детаљну анализу сваког пакета у транзиту.

У овом чланку ћемо окупити Све што вам је потребно за подешавање комплетне ревизије Од локалне мреже: од концепата скенирања портова, TCP заставица и типова скенирања у Nmap-у, до напредног филтрирања помоћу Wireshark-а за детекцију ових скенирања и играња мачке и миша са техникама избегавања. Такође ћете видети примере наставних окружења са виртуелним машинама, типичне лабораторијске вежбе (ping sweep, SYN scan, NULL scan, MITM са Bettercap-ом) и неколико додатних алата који допуњују Nmap и Wireshark.

Шта је скенирање портова и зашто је важно у ревизији?

Скенирање портова То је аутоматизовани процес који шаље пакете на све или неке од 65.535 TCP/UDP портова на једном или више рачунара како би се видело који одговарају и како. Из ових одговора можемо закључити које су услуге активне, који оперативни систем би могао бити покренут, па чак и да ли постоје заштитни зидови (фајервол) који филтрирају податке.

За нападача, добро скенирање портова је начин да лоцирајте „улазне тачке“ и слабе тачкеОво укључује погрешно конфигурисане сервисе, застареле верзије са познатим рањивостима или отворене протоколе попут Телнета, ФТП-а или ХТТП-а. За администратора или ревизора, исто скенирање открива шта је изложено, шта треба искључити и шта захтева бољу заштиту.

Важно је бити јасан да Није добра идеја отварати више портова него што је потребноМноги рутери, сервери или апликације могу оставити портове отвореним „само зато“ или зато што их је неко отворио за тестирање и нико их више никада није затворио. Скенирање сопствене мреже помоћу Nmap-а вам помаже да добијете тачан попис онога што је доступно изнутра или споља.

Поред залиха, важно је Користите заштитне зидове и системе за детекцију упада који филтрирају нежељени приступ и евидентирају сумњиве покушаје повезивања. И, наравно, редовно ажурирајте системе, рутере и услуге како бисте смањили утицај било којих портова које, из пословних разлога, апсолутно морате држати отвореним.

Ревизија локалне мреже помоћу Nmap-а и Wireshark-а

Шта је Nmap и шта може да уради на локалној мрежи?

Нмап (Мап Маппер) То је бесплатан услужни програм отвореног кода дизајниран за откривање уређаја на мрежи, анализу отворених портова и сервиса који слушају у позадини. Покреће се преко командне линије на Linux-у, Windows-у и macOS-у, и има опциони графички интерфејс под називом Zenmap.

Са Нмапом можете детектовање хостова и на локалној мрежи и преко интернета: рачунари, рутери, прекидачи, IoT уређаји, сервери итд. Поред навођења који су портови отворени или филтрирани, може покушати да идентификује оперативни систем, верзију сервиса и покрене безбедносне скрипте (NSE) које аутоматизују тестирање пенетрације.

Међу његовим најрелевантнијим карактеристикама је подршка за различите врсте скенирањаПодржава TCP (SYN, connect, FIN, NULL, Xmas…), UDP, ICMP и неке напредније методе које покушавају да заобиђу одређене заштитне зидове. Такође омогућава рад са IPv4 и IPv6 и скенирање појединачних хостова, IP опсега или целих подмрежа.

Једна од предности Нмапа је то што Омогућава скенирање великих количина циљева. прилично ефикасно. Може да контролише ниво агресивности, брзину преноса пакета и степен паралелизма. Ово је корисно и за планиране ревизије корпоративних мрежа и за симулације у наставним лабораторијама.

Стања портова и типови скенирања у Nmap-у

Када Nmap заврши скенирањеКласификује сваки порт у једно од неколико стања која је важно разумети, јер је њихово тумачење фундаментално за ревизију:

  • часови Постоји апликација која прихвата везе на том порту (TCP или UDP). Ово је очигледна површина за напад.
  • наставуПорт реагује, али ниједна услуга не слуша. Хост је активан, али тај одређени порт не пружа никакав саобраћај. Идеално би било да га блокира заштитни зид (фајервол).
  • филтриранЗаштитни зид или филтер спречава Nmap да утврди да ли је отворен или затворен (нема јасног одговора).
  • отворено|филтрираноНије могуће знати да ли је отворен или филтриран, што је типично код одређених посебних UDP или TCP скенирања (FIN, NULL, Xmas).
  • затворено|филтрирано: двосмислено стање које се користи у веома специфичним техникама као што је скенирање IP адреса у неактивном стању.

У правој ревизији, обично почињемо са брзо скенирање најчешћих портова да бисте добили прву фотографију:

nmap 192.168.1.2

Ако желимо да дамо све од себе, могуће је присилно скенирање свих 65.535 портова од домаћина:

nmap -p 1-65535 192.168.1.2

Такође је веома уобичајено ограничити опсег на одређене портове или блокове који нас занимају. На пример, од 20 до 200:

nmap -p 20-200 192.168.1.2

Поред статуса порта, Nmap вам омогућава да урадите и детекција верзије оперативног система и сервиса једном командом, по цену да буде нешто бучнији:

nmap -A -v 192.168.1.2

Ова детекција оперативног система није савршена, али је обично прилично прецизна у целини. У свету Линукса, прецизно одређивање тачног модела и одређене верзије је сасвим друга прича.

TCP заставице, типови скенирања и како их открити

Нмап користи различите ТЦП заставице (SYN, ACK, FIN, RST, PSH, URG…) за извођење мање или више прикривених скенирања. У изазовима типа CTF, на пример, уобичајено је користити „прикривено“ SYN скенирање. У одбрамбеним окружењима, корисно је препознати ове обрасце у логовима или Wireshark-у.

Да бисте разумели скенирање, морате бити јасни у вези са Класично TCP руковањеSYN → SYN/ACK → ACK. Одатле се могу свирати варијације које шаљу или не одређене заставице и прекидају везу помоћу RESET-а уместо нормалног завршетка циклуса.

Многа објашњења додељују нумеричке вредности TCP заставицама како би се могле сумирати и филтрирати. На пример:

Узглавље храброст
СИН 1
SYN/ACK 2
АЦК 4
ПОДАЦИ 8
Фин 16
РЕСЕТ 32

Са овом методом кодирања, могуће је, на пример, користити поље у Wireshark-у tcp.completeness и филтрирајте према збиру заставица које се појављују у одређеном току да бисте пронашли обрасце скенирања.

Потпуно TCP руковање (скенирање везе)

У „потпуном“ скенирању помоћу Nmap-а (оно што је познато као Скенирање TCP конекције, опција -sT), клијент успоставља целу везу са сервером: SYN → SYN/ACK → ACK и, након размене дела саобраћаја, затвара је помоћу RESET-а или нормалног FIN-а.

Ако снимите овај низ у Wireshark-у и саберете вредности заставица према горњој табели (на пример SYN + SYN/ACK + ACK + RESET), можете филтрирати са tcp.completeness = 39 да лоцира везе које су успостављене и потпуно прекинуте.

Ова врста скенирања је најлакша за откривање, јер Оставља траг у евиденцији сервиса. (веб, FTP, Telnet, IMAP, итд.) и у системским лог датотекама. У типичној лабораторији, ако имате покренут rsyslog, видећете поруке у /var/log/syslog, /var/log/auth.log, /var/log/daemon.log и сличне сервисе када Nmap заврши руковање са сервисима као што су in.fingerd, inetd, telnetd, ftpd, dovecot o postfix/smtpd.

SYN „прикривено“ скенирање

El SYN скенирање или „прикривено“ скенирање (опција -sSОво је једна од најчешће коришћених метода јер је брза и, у принципу, мање упадљива. Овде Nmap шаље SYN сигнал. Ако је порт отворен, сервер одговара са SYN/ACK, и уместо да одговори са ACK да би завршио везу, скенер се прекида са RESET.

Са становишта Вајершарка, типичан редослед отвореног порта ће бити SYN → SYN/ACK → RST, чији би збир заставица према претходној шеми био (1 + 2 + 32) = 35. Филтрирање по тој вредности од tcp.completeness Могуће је лоцирати везе које изгледају као SYN скенирања без потпуног рукостискања.

На нивоу дневника апликације, ова метода је дискретнија јер Већина сервиса не успева да региструје сесијуМеђутим, ако систем има правила заштитног зида која евидентирају SYN пакете за иницијацију повезивања, појавиће се уноси покушаја повезивања.

НУЛЛ скенирање и друга „чудна“ скенирања

Још једна класична техника је НУЛТ скенирање (опција -sN), у којем Nmap шаље TCP пакете без икаквих активних заставица. Иако може звучати чудно, неки TCP стекови реагују различито на отворене или затворене портове, што омогућава Nmap-у да закључи стање порта.

У NULL скенирању, Ако је порт затворен, обично враћа RST.Иако ако је отворен или филтриран, можда неће реаговати. Да бисте ово открили помоћу Вајершарка, можете користити филтере на... tcp.flags и оставите само оне сегменте са свим заставицама постављеним на нулу.

У истом духу, имамо скенирања попут Божићно скенирање (FIN + PSH + URG), FIN скенирање или сличне комбинације, које покушавају да искористе нијансе TCP стандарда или специфичне имплементације да би откриле портове без праћења типичних образаца руковања.

Контролисање величине прозора као Nmap назнака

Још једна карактеристика која се може користити за детекцију скенирања је Величина прозора TCPВеличина прозора је количина података коју хост оглашава да може да прими. Одређене верзије Nmap-а користе фиксне вредности за неке типове скенирања.

На пример, уобичајено је да се у стандардном Nmap SYN скенирању пронађе SYN пакети имају величину прозора од 1024 бајта, док се у „нормалним“ везама одређеног система користе различите вредности (као што су 64240 или 65535, у зависности од ОС-а и конфигурације).

У Вајершарку можете применити филтер као што је tcp.window_size == 1024 у комбинацији са одређеним заставицама за лоцирање сумњивих образаца. Као нападач или тестер пенетрације, Nmap вам омогућава да измените ово понашање параметрима као што су --win да би се избегло остављање тако очигледног потписа.

Виресхарк

Детекција и анализа Wireshark скенирања и „неуобичајених“ портова

Виресхарк То је анализатор протокола par excellence У свету мрежне безбедности, он хвата пакете, декодира их слој по слој (Етернет, ИП, ТЦП/УДП, ХТТП, ТЛС, итд.) и омогућава вам да примените веома фине филтере како бисте задржали само саобраћај који вас занима.

Веома практичан начин за откривање скенирања је филтрирање по активности у необичним лукамаАко имате легитиман веб сервер, нормално је да видите саобраћај ка портовима 80 или 443. Оно што није тако нормално јесте велики број покушаја насумичног бирања портова попут 1234, 31337 или 4444.

У корпоративној мрежи можете да направите листу „Сумњиви“ портови повезани са злонамерним фрејмворцима или често коришћене алате за нападе и филтрирајте у Вајерсхарку по тим портовима да бисте видели да ли постоје пробе или неочекиване везе. Ово може бити подржано јавним табелама које компилирају портове повезане са злонамерним софтвером и оквирима за експлоатацију.

Са одбрамбене тачке гледишта, Вајершарк такође омогућава Погледајте како се понашају различите врсте Nmap скенирања које сами лансирате у своју лабораторију, да бисте научили да их препознајете: број пакета по порту, заставице, време између пакета, системски одговори итд.

Комбиновање филтера као што су tcp.completeness, tcp.flagsБрој различитих портова додирнутих у кратком времену и величине прозора вам омогућавају да креирате ручна правила или добијете инспирацију за IDS/IPS правила.

Типична лабораторија: скенирање помоћу Nmap-а и снимање помоћу Wireshark-а

У многим образовним установама, а виртуелизовано мрежно окружење са VirtualBox-ом да се практикује скенирање и анализа саобраћаја без ризика. Типичан пример укључује три ГНУ/Линукс машине на интерној мрежи: interno1 (КСНУМКС), interno2 (КСНУМКС) и observador (192.168.100.33), сваки са фиксном MAC адресом.

Сервиси који су подразумевано остављени да раде на овим машинама су обично бројни: Апачи 2, Телнет, ССХ, ФТП, Фингер, МиСКЛ, СМТП (Постфикс), ПОП3 и ИМАП (Довецот), ДНС (БИНД)... идеално за скенер попут Nmap-а да има добар број портова за проналажење.

Први корак у тој лабораторији је обично Омогући rsyslog на internal1 да снима све што се дешава: активира се са systemctl enable rsyslog y systemctl start rsyslogТако се лог датотеке почињу пунити /var/log као syslog, auth.log, daemon.log o kernel.log.

Из машине за посматрање, а пинг замах Користите Nmap да бисте открили који су уређаји активни на мрежи 192.168.100.0/24:

nmap -sP 192.168.100.0/24

Када се активни домаћини идентификују (искључујући самог посматрача), скенирање типа ТЦП повезивање против сваког од њих да бисте видели који су портови отворени и које услуге раде:

nmap -sT -v -T4 192.168.100.11
nmap -sT -v -T4 192.168.100.22

Затим се понавља са додавањем internal1 детекција оперативног система и верзије од услуга:

nmap -sT -O -sV -T4 192.168.100.11

Затим се консултују логови interno1, на пример са tail -200 /var/log/syslog | lessпроверити Како су ти скенирања снимљени? у разним демонима и сервисима и цените траг који оставља скенирање TCP везе.

Поређење бучних и „прикривених“ скенирања са заштитним зидовима и логовима

Да би се видела разлика у траговима између различитих Nmap техника, у истој лабораторији iptables правило на internal1 који бележи сваки покушај покретања TCP везе (SYN пакети са статусом NEW) са лако препознатљивим префиксом:

iptables -A INPUT -i enp0s3 -p tcp \
--tcp-flags SYN SYN -m state --state NEW \
-j LOG --log-prefix "INICIO CONEXION:"

Док се датотека прати /var/log/syslog са tail -fОд посматрача, три различита скенирања се тестирају у односу на интернал1:

  • Скенирање TCP конекције (-sT). Генерише уносе „ПОЧНИ КОНЕКТОН:“ и, поред тога, евидентира сервисе који завршавају руковање.
  • SYN скенирање (-sS). Производи уносе „START CONNECTION:“, али већина сервиса не евидентира сесију јер веза није завршена.
  • NULL скенирање (-sNНе подиже SYN заставицу, стога се не подудара са правилом заштитног зида и Префикс се не појављује у евиденцијама, што га чини дискретнијим у очима те специфичне политике.

Ово поређење нам помаже да схватимо да Не откривају се све врсте скенирања коришћењем истих правила. И да, као браниоци, морамо ићи даље од „само SYN“ ако желимо да видимо више камуфлираних покушаја.

Од скенирања до MITM-а: Bettercap, Wireshark и шифроване услуге

У другом делу вежбе, машина посматрача се користи за Извршите нападе тровања ARP и MITM помоћу Bettercap-а, а затим анализирати забележени саобраћај помоћу Wireshark-а или самог модула net.sniff са сајта Bettercap. Циљ је упоредити изложеност јасних протокола (Telnet, HTTP) у односу на шифроване алтернативе (SSH, HTTPS).

Пре овога, SSL подршка је омогућена у Apache-у на interno2, генеришући самопотписани сертификат са make-ssl-cert на /etc/apache2/ssl/apache.pem, конфигурисање default-ssl.conf Да бисте користили ту датотеку као сертификат и кључ, активирајте SSL модул са a2enmod ssl и подразумевани SSL сајт са a2ensite default-sslи поновно покретање Apache-а.

Прва провера се врши ајкула у посматрачу Ослушкује се интерни мрежни интерфејс, а у међувремену се отварају Telnet и HTTP сесије од internal1 ка internal2. Пошто нема напада „посредник“, саобраћај тече директно између internal1 и internal2, а tshark готово ништа не види од овог тока. Ово показује да без додатних трикова, трећи хост на истој мрежи не види увек екстерни саобраћај.

Ако прегледате ARP табеле за internal1 и internal2 (arp -n), примећује се како свако повезује IP адресу другог са својом стварном MAC адресом, већ само посматрач са својом IP адресом и MAC адресом, без сметњи.

Тровање ARP-ом и хватање саобраћаја

Следећи корак је покретање Беттерцапа у режиму посматрача и активирање модула net.recon y net.probe Да бисте открили уређаје на мрежи и проверили да ли се 192.168.100.11, 192.168.100.22 и 192.168.100.33 појављују са својим одговарајућим MAC адресама. Опционо, може се омогућити веб интерфејс Bettercap-а, иако то није неопходно из практичних разлога.

Паралелно, поново се покреће ајкула у посматрачу да бисте видели који се ARP оквири појављују. Циљеви модула се конфигуришу из конзоле Bettercap-а. arp.spoof (унутрашње1 и унутрашње2) и напад се активира са:

set arp.spoof.internal true
set arp.spoof.targets 192.168.100.11,192.168.100.22
arp.spoof on

У том тренутку, Бетеркап почиње да шаље лажни ARP одговори осигуравајући свакој машини да IP адреса другог хоста (internal1 или internal2) одговара MAC адреси посматрача. Узимајући у обзир Питање 1Послате ARP поруке су у суштини „бесплатни“ (нежељени) одговори који ажурирају ARP кеш меморију жртава. Као резултат тога, у ARP табелама internal1 и internal2, IP адреса другог рачунара почиње да указује на MAC адресу 08:00:27:33:33:33 (посматрача), што га ефикасно чини посредником.

Поређење Telnet-а, SSH-а, HTTP-а и HTTPS-а под MITM-ом

Са активним MITM-ом, модул се користи net.sniff из Бетеркепа Да бисте пребацили саобраћај између internal1 и internal2 у различите .pcap датотеке у зависности од сервиса који се тестира, искључујући ARP помоћу филтера:

set net.sniff.filter "not arp"
set net.sniff.output /tmp/telnet.pcap
net.sniff on

У међувремену, из internal1 се отвара Telnet сесија ка internal2 са корисничким именом „корисничко име“ и лозинком „корисничко име“, датотеке се наводе и сесија се завршава. Датотека /tmp/telnet.pcap Затим се анализира помоћу Вајерсхарка и лако је видети акредитиви и команде у обичном тексту пратећи одговарајући TCP ток.

Експеримент се понавља коришћењем SSH-а, чувајући у /tmp/ssh.pcapИ овог пута, иако се може посматрати успостављање SSH везе и размена кључева, Подаци о корисничком имену и лозинки су шифровани.Није могуће видети акредитиве у Вајерсхарку, само шифроване оквире.

Исто важи и за HTTP наспрам HTTPS-а: са net.sniff дампингом у /tmp/http.pcap, навигација помоћу Lynx-а или графички прегледач према http://interno2.ssi.net Оставља HTTP захтеве и одговоре потпуно читљивим (заглавља, колачиће, параметре итд.). Међутим, када се понови са https://interno2.ssi.net и анализирање /tmp/https.pcap, примећује се да TLS руковање (ClientHello, ServerHello, сертификати итд.) а затим само шифровани саобраћај означен као TLS 1.3.

Са филтером у руци, можете фокусирати поглед на tls Унутар Wireshark-а, пратите одговарајући TCP ток и проверите да, иако сав саобраћај пролази кроз нападача, нема приступ садржају у отвореном тексту осим ако не успе да некако пробије или злоупотреби енкрипцију.

Прилагођавање, Nmap NSE и интеграција са другим решењима

Један од разлога зашто је Nmap и данас тако моћан је његов висок степен прилагођавање и аутоматизацијуНа нивоу командне линије, скоро све је подесиво: одређени портови, временска ограничења, број поновних покушаја, степен паралелизма, ниво прикривености (профили Т0 до Т5), фрагментација пакета, лажна изворна IP и MAC адреса итд.

Поред тога постоји и Nmap скриптни механизам (NSE)Овај екосистем скрипти вам омогућава да идете далеко даље од пуке провере „порт отворен/затворен“. Постоје скрипте за грубу присилу на SSH или FTP, откривање небезбедних конфигурација, проверу познатих рањивости, добијање детаљних банера, тестирање на веб серверима, Samba, DNS и још много тога.

На пример, да бисте покушали напад грубом силом на SSH порт 22 одређеног хоста користећи два речника, можете користити:

nmap -p 22 --script ssh-brute --script-args userdb=usuarios.txt,passdb=claves.txt,ssh-brute.timeout=4s 99.99.99.99

Слично томе, да би се проверило да ли ФТП сервер дозвољава анонимни приступ или да се користе груба присилна акредитива, постоје скрипте као што су ftp-anon o ftp-brute. Ови су лансирани везани за -sV -sC или појединачно према потреби.

Још једна предност је та Нмап се веома добро интегрише са другим алатима. Резултати се могу сачувати у више формата (обичан текст, XML, grep-прилагођен, комбинован са -oA) а затим уносе податке у накнадну обраду, контролне табле или чак алате попут Метасплоита, система за инвентар или система за корелацију догађаја.

На нивоу предузећа, имплементација Nmap-а као дела безбедносног програма подразумева дефинисање политике коришћења, планирање скенирања, анализа резултата и континуирана ажурирањаЈедно скенирање и стављање у фиоку није баш корисно; морате понављати, упоређивати и деловати на основу налаза.

Узето заједно, коришћење Nmap-а и Wireshark-а за ревизију локалне мреже, допуњено другим алатима, пружа веома комплетну слику о томе како се сервиси понашају, шта је заправо изложено и које информације нападач може видети или манипулисати, што јасно ставља до знања зашто се исплати улагати у енкрипцију (SSH, HTTPS), затварање непотребних портова, добру конфигурацију заштитног зида (firewall) и стално праћење логова и мрежног саобраћаја.