Главная

Thursday, 7 March 2024

Работа с сетью в командной строке Windows, #5.

Всем привет.

Что стоит наша теория без практики? Потому у нас сегодня будет работа с сетью в командной строке Windows на примерах практического использования. Поехали!

Определение подмены адреса узла в файле hosts.

    Одним из последствий вирусного заражения довольно часто является блокировка доступа к сайтам антивирусных компаний, поисковым системам, популярным социальным сетям (Vkontakte, Odnoklassniki, Facebook, Twitter и т.п.). Подобный же прием используется для кражи учетных данных пользователей путем перенаправления на вредоносный сайт, адрес которого берется из зараженного файла hosts. 

Порядок преобразования доменных имен в IP-адреса следующий:

- проверяется наличие данных об имени в кэш службы разрешения имен (процедура определения IP по имени уже выполнялась, и в памяти есть актуальные результаты). Если запись есть, то будут использованы ее данные. 

- проверяется наличие записи об имени и адресе в файле hosts. Если запись есть, то будут использованы ее данные. 

- для разрешения доменного имени в IP-адрес выполняется запрос к серверу DNS, заданному в настройках сетевого подключения. 

Файл hosts при настройках по умолчанию, находится в каталоге \Windows\system32\drivers\etc\ и обычно содержит строки, начинающиеся с символа # , являющиеся комментариями, и одну запись для определения имени узла петлевого интерфейса:

127.0.0.1 localhost

127.0.0.1 - IP-адрес, localhost - имя. Если добавить запись 127.0.0.1 odnoklassniki.ru, то для имени odnoklassniki.ru будет использоваться адрес 127.0.0.1, который не предназначен для выполнения реальной передачи данных, и сервер с указанным именем станет недоступен. Если же вместо адреса 127.0.0.1 использовать адрес поддельного сервера, созданного злоумышленниками, то вместо реального сайта, соответствующего доменному имени, посетитель перейдет на поддельную страницу. 

Структура записей файла hosts предполагает, что между адресом и соответствующим ему именем должен быть хотя бы один символ табуляции (пробел). Каждой записи отводится одна строка в файле hosts. Иногда, вредоносная программа выполняет смещение записей относительно отображаемой на экране части файла, заполняя видимую часть пробелами, а в непомещающейся в области просмотра части, могут присутствовать записи, например

31.214.145.172 odnoklassniki.ru

31.214.145.172 www.facebook.com

31.214.145.172 www.vk.com 

31.214.145.172 www.vkontakte.ru


Данный адрес взят из реально зараженного файла hosts и принадлежит сети одного из провайдеров Германии. Сейчас он безопасен, и не занят обслуживанием вредоносного сервера. 

На зараженном компьютере, в файл hosts было добавлено множество пустых строк, и поддельные записи располагались с разным смещением относительно начала строки, что могло затруднить ручной поиск. Кроме того, вредоносные программы могут использовать и некоторые другие способы подмены содержимого hosts - изменение местоположения самого файла, использование атрибута "скрытый" и имени с подменой символа на похожий по написанию символ национального алфавита - "o" и т.п. Другими словами, достоверно определить сам факт подмены адреса с помощью файла hosts, путем прямого анализа содержимого реестра, системных каталогов и самого файла занимает довольно длительное время и не всегда позволяет исключить ошибку поиска вредоносных записей. А, тем временем, задача легко решается с использованием всего лишь 2-х команд из рассмотренных выше - ping и nslookup . 

ping odnoklassniki.ru - в ответе на пинг будет отображаться адрес, соответствующий имени odnoklassniki.ru при определении IP-адреса на данном компьютере 

nslookup odnoklassniki.ru - получить IP-адрес, соответствующий имени odnoklassniki.ru от сервера DNS.

Если адрес по результатам пинга отличается от адреса, полученного от DNS-сервера, то присутствует факт подмены содержимого файла hosts. Для некоторых крупных доменов утилита nslookup может выдавать список из нескольких IP. Тогда IP-адрес, полученный в результатах пинга, должен присутствовать в списке адресов от nslookup. 

Иногда, в качестве способа блокировки определенных сайтов, используется добавление несуществующих статических маршрутов для соответствующих IP-адресов или подсетей, что легко отследить с помощью утилиты tracert.


Как открыть порт в брандмауэре Windows.

Разрешить входящие соединения через брандмауэр Windows (открыть порт) можно с использованием контекста firewall утилиты netsh

netsh firewall set portopening protocol=TCP port=27015 name=MyServer mode=ENABLE scope=ALL

или

netsh firewall set portopening TCP 27015 MyServer ENABLE ALL 

protocol - Протокол порта. TCP (Transmission Control Protocol), UDP (User Datagram Protocol), ALL - Все протоколы.

port - Номер порта. 

name - Имя порта (необязательно)

mode - Режим порта. ENABLE - Пропускать через брандмауэр (по умолчанию). DISABLE - Не пропускать через брандмауэр.

scope - Область порта (необязательно). ALL - Пропускать через брандмауэр весь трафик (по умолчанию). SUBNET - Пропускать через брандмауэр только трафик локальной сети (подсети). CUSTOM - Пропускать через брандмауэр только указанный трафик. 

С учетом значений по умолчанию и необязательных параметров открыть TCP порт 27015 в брандмауэре Windows можно командой

netsh firewall set portopening TCP 27015 

В Windows пока поддерживается синтаксис приведенный в примере выше, однако в последующих версиях операционных систем он будет полностью заменен на контекст netsh advfirewall - управление улучшенным брандмауэром. Подсказку по использованию можно получить при вводе команды с параметром ? (знак вопроса) :

netsh advfirewall ? 

В контексте правил для брандмауэра:

netsh advfirewall firewall ? 

Для открытия порта 27015 в Windows 7 с учетом нового синтаксиса правильнее использовать команду:

netsh advfirewall firewall add rule name="Open Port 27015" dir=in action=allow protocol=TCP localport=27015

add rule - добавить правило 

name - название правила. Название может быть произвольным, и если текст содержит пробелы - заключаться в двойные кавычки. Имя правила не должно принимать значение all

dir - направление обмена данными (in-входящий трафик, out- исходящий) 

action - действие по отношению к попадающему под правило соединению (allow - разрешить, block - запретить)

protocol - разновидность протокола. (TCP - протокол TCP, UDP - протокол UDP, ANY - любой протокол). Если параметр protocol не указан, то используется значение по умолчанию - ANY ) 

localport - номер порта на локальном компьютере. Можно указывать диапазон портов 0 -65535 или any - любой порт или номера через запятую - 67,69 . 


Примеры правил брандмауэра Windows.

По сравнению с предыдущими версиями Windows синтаксис правил стал немного сложнее, но и возможности брандмауэра значительно расширились. 

Краткий список возможных параметров правил :

add rule name=<строка>

dir=in|out

action=allow|block|bypass

[program=<путь к программе>]

[service=<краткое имя службы>|any]

[description=<строка>]

[enable=yes|no (по умолчанию - yes)]

[profile=public|private|domain|any[,...]]

[localip=any|||<подсеть>|<диапазон>|<список>]

[remoteip=any|localsubnet|dns|dhcp|wins|defaultgateway| ||<подсеть>|<диапазон>|<список>]

[localport=0-65535||<диапазон портов>[,...]|RPC|RPC-EPMap|IPHTTPS|any (по умолчанию - any)]

[remoteport=0-65535|<диапазон портов>[,...]|any (по умолчанию - any)] 

[protocol=0-255|icmpv4|icmpv6|icmpv4:тип,код|icmpv6:тип,код| tcp|udp|any (по умолчанию - any)]

[interfacetype=wireless|lan|ras|any] 

[rmtcomputergrp=<строка SDDL>]

[rmtusrgrp=<строка SDDL>]

[edge=yes|deferapp|deferuser|no (по умолчанию - no)]

[security=authenticate|authenc|authdynenc|authnoencap|notrequired (по умолчанию - notrequired)]


Некоторые правила применения параметров:

Параметры могут следовать в произвольном порядке - dir=in action=allow и action=allow dir=in являются допустимыми значениями.

Если указана удаленная группа пользователей или компьютеров, для параметра security необходимо установить значение authenticate, authenc, authdynenc или authnoencap.

Установка authdynenc в качестве значения параметра security позволяет системам динамически согласовывать использование шифрования трафика, соответствующего данному правилу брандмауэра Windows. Шифрование согласуется в соответствии со свойствами существующего правила безопасности соединения. Этот параметр позволяет компьютеру принять первый пакет TCP или UDP входящего соединения IPsec, при условии, что он защищен, но не зашифрован, с помощью IPsec. Как только первый пакет будет обработан, сервер повторно согласует соединение и обновит его, чтобы все последующие соединения были полностью зашифрованы.

Если action=bypass, должна быть указана группа удаленных компьютеров, если dir=in.

Короткое имя службы можно посмотреть в ее свойствах, в поле Имя службы. Так, для службы "DNS-клиент" короткое имя - Dnscache . Если service=any, правило действует только для служб. 

Значением кода или типа ICMP может быть any - любой ICMP трафик.

Параметр edge можно указывать только для правил входящего трафика (dir=in) .

AuthEnc и authnoencap нельзя использовать вместе. Если задан параметр authnoencap, то параметр security=authenticate задавать необязательно. 

Параметр Authdynenc допустим только в том случае, если значение dir равно in.

Примеры:

Добавление правила для входящего трафика для программы qip.exe:

netsh advfirewall firewall add rule name="allow QIP" dir=in program="c:\programfiles\qip\qip.exe" action=allow

Добавление правила, запрещающего исходящий трафик для TCP порта 80:

netsh advfirewall firewall add rule name="allow80" protocol=TCP dir=out localport=80 action=block

Добавление правила входящего трафика с требованием безопасности и шифрования для трафика через TCP-порт 80:

netsh advfirewall firewall add rule name="Require Encryption for Inbound TCP/80" protocol=TCP dir=in localport=80 security=authdynenc action=allow


Добавление правила входящего трафика для messenger.exe с требованием безопасности:

netsh advfirewall firewall add rule name="allow messenger" dir=in program="c:\program files\messenger\msmsgs.exe" security=authenticate action=allow

Добавление правила обхода брандмауэра с проверкой подлинности для группы acmedomain\scanners, определяемой строкой SDDL:

netsh advfirewall firewall add rule name="allow scanners" dir=in rmtcomputergrp=<строка SDDL> action=bypass security=authenticate

Добавление правила разрешения исходящего трафика для локальных портов 5000-5010 для udp:

netsh advfirewall firewall add rule name="Allow port range" dir=out protocol=udp localport=5000-5010 action=allow

Для просмотра всех правил брандмауэра используется команда:

netsh advfirewall firewall show rule name=all

netsh advfirewall firewall show rule name=all | more - с выдачей результатов на экран в постраничном режиме

netsh advfirewall firewall show rule name=all > C:\firewallrues.txt - с выдачей результатов в файл 


Для просмотра конкретного правила указывается его имя. Для удаления правила используется параметр delete:

netsh advfirewall firewall show rule name=TEST просмотр правила с именем TEST 

netsh advfirewall firewall delete rule name=test - удаление правила с именем TEST 


Для изменения значений в существующих правилах используется параметр set и new перед изменяемым значением:

netsh advfirewall firewall set rule name="Allow port range" new localport=5000-6000 изменить диапазон портов для правила "Allow port range"

    Настройками по умолчанию, в режиме повышенной безопасности брандмауэр Windows блокирует все входящие подключения, не соответствующие ни одному правилу и разрешает исходящие. 


Wi-Fi точка доступа стандартными средствами Windows.

    В операционной системе Windows 7 реализована технология Virtual WiFi, позволяющая легко создавать программную точку доступа (Software Access Point - SoftAP) . В отличие от полноценных беспроводных точек доступа, реализуемая таким образом SoftAP, позволяет создать только один виртуальный адаптер, который будет работать только в режиме точки доступа, и может быть использовано шифрование только по WPA2-PSK/AES. Тем не менее, этого вполне достаточно для создания функциональной беспроводной сети без реально существующей точки доступа. Такая сеть, обозначается как Wireless Hosted Network, или просто Hosted Network ( Размещенная Сеть ). 

Для создания размещенной сети используется команды сетевой оболочки netsh.exe в контексте wlan:

netsh wlan set hostednetwork [mode=]allow|disallow - разрешить или запретить использование размещенной сети.

netsh wlan set hostednetwork [ssid=]<идентификатор_SSID> [key=]<парольная_фраза> [keyUsage=]persistent|temporary - задать параметры размещённой сети.

ssid - идентификатор SSID сети, другими словами - имя беспроводной сети;

key - ключ безопасности, используемый в данной сети, т.е. парольная фраза, используемая при подключении клиентов к виртуальной точке доступа. Ключ должен быть строкой символов ASCII длиной от 8 до 63 знаков. 

keyUsage - указывает, является ключ безопасности постоянным или временным. По умолчанию, ключ является постоянным ( persistent ) и используется при каждом включении размещенной сети.

Примеры:

    set hostednetwork mode=allow

    set hostednetwork ssid=ssid1

    set hostednetwork key=passphrase keyUsage=persistent

    set hostednetwork mode=allow ssid=MyWiFi key=MyPassWord 

Или - одной командной строкой:

netsh wlan set hostednetwork mode=allow ssid=MyWiFi key=MyPassWord - создать виртуальную точку доступа Wi-Fi с именем MyWiFi и паролем MyPassWord

Созданная программная точка доступа не будет запущена автоматически. Для запуска потребуется выполнить команду :

netsh wlan start hostednetwork 

Для остановки - netsh wlan stop hostednetwork 

При использовании команд управления размещенной сетью требуются права администратора. 

Для организации доступа в Интернет с использованием размещенной сети можно воспользоваться совместным подключением через, созданный после выполнения команды создания размещенной сети , виртуальный сетевой адаптер - Адаптер мини-порта виртуального WiFi Microsoft (Microsoft Virtual WiFi miniport adapter) . Если же данный адаптер не обнаруживается в диспетчере учтройств и отсутствует в списке сетевых адаптеров, то наиболее вероятно, что драйвер реального Wi-Fi устройства не сертифицирован для использования в операционной системе Windows 7 и не поддерживает технологию Virtual WiFi. .

Как получить список беспроводных сетей стандартными средствами Windows.

    Ниже приведено содержимое командного файла, который позволяет собрать список беспроводных сетей, включая имя, уровень сигнала, BSSID. Информация записывается в файл wlans.txt каталога временных файлов и открывается для просмотра с помощью редактора wordpad

chcp 1251

netsh wlan show networks mode=bssid > %TEMP%\wlans.txt

start "LIST" "%ProgramFiles%\Windows NT\Accessories\wordpad.exe" %TEMP%\wlans.txt

Продолжение следует.

No comments:

Post a Comment

А что вы думаете по этому поводу?