Додаток до статті «Повний мануал по командному рядку». Минулого разу я майже не торкнувся можливості командного рядка працювати зі стандартними мережевими утилітами Windows, тільки дав їх короткий опис. Ну що ж, розглянемо їх детальніше…
Більшість мережевих команд це вказівка на запуск існуючих утиліт з папки system32, наприклад telnet.exe. Ці ж утиліти запущені з провідника працювати не будуть, так як для виконання функцій, закладених в них розробниками потрібно вказати до них потрібні параметри через командний рядок.
Що ми робимо, щоб перевірити підключення до інтернету? Запускаємо утиліту ping. За допомогою відправки повідомлень з ехо-запитом по протоколу ICMP Ping перевіряє з’єднання на рівні протоколу IP з іншим комп’ютером, що підтримує TCP/IP і фіксує всі отримані пакети. Самим головним параметром є або текстовий адресу сайту, або його ip адресу. Наприклад, щоб запинговать яндекс можна написати ping www.ya.ru і через кілька секунд з’явиться статистика переданих і прийнятих пакетів і приблизний час прийому-передачі і відсоток втрачених пакетів. Також виведеться ip сайту. До ping можна підставити багато додаткових параметрів, таких як кількість повідомлень, що відправляються з ехо-запитом (ping www.ya.ru -n число), за замовчуванням 4, можливість задати довжину в байтах поля даних у відправлених повідомленнях з ехо-запитом (ping www.ya.ru -i кількість байт, за замовчуванням — 32 байта, максимальний розмір — 65527 байт) і багато інших. Посилка пакетів перевищують за величиною допустимий межа, посилка зіпсованих пакетів, посилка великого числа пакетів за короткий проміжок часу (dos атака) — все це призводить до зависання сервера і неможливості обробки запитів на деякий час. Взагалі ping це відмінне діагностичне засіб. Чим менший час затримки відгуку сервера (в мілісекундах) тим працездатні і стійкіше сервер. Ping також здійснює оцінку якості зв’язку за допомогою параметра відсоток втрат. В ідеалі, втрат взагалі не повинно бути. Втрати можуть виникати при зв’язку через модем, коли відбуваються короткочасні «завмирання» каналу зв’язку. Також припустимі втрати в кілька відсотків при зв’язку з дуже віддаленими серверами. Втрати більше 10% призводять до істотного уповільнення роботи в Інтернет.
Щоб подивитися статистику протоколу Netbios набираємо nbtstat. Ось всі доступні параметри до цієї команди:
-a удаленное_имя
Відображення таблиці імен NetBIOS віддаленого комп’ютера, де удаленное_имя є назвою NetBIOS віддаленого комп’ютера. Таблиця імен NetBIOS є списком імен NetBIOS, відповідних програмам NetBIOS, що працюють на даному комп’ютері.
-A IP-адресу
Відображення таблиці імен NetBIOS віддаленого комп’ютера, заданого IP-адресою (десяткові числа, розділені крапками).
-c
Відображення вмісту кеша імен NetBIOS, таблиці імен NetBIOS і їх дозволених IP-адрес.
-n
Відображення таблиці імен NetBIOS локального комп’ютера. Стан Зареєстрований означає, що це ім’я зареєстровано на сервері WINS або в якості широкомовної адреси.
-r
Відображення статистики дозволу імен NetBIOS. На комп’ютері Windows XP, налаштованому для використання WINS, цей параметр повертає кількість імен, дозволених та зареєстрованих для широкомовної розсилки або WINS.
-R
Очищення вмісту кеша імен NetBIOS і перезавантаження записів #PRE з файлу Lmhosts.
-RR
Звільнення і оновлення імен NetBIOS для локального комп’ютера, зареєстрованого на серверах WINS.
-s
Відображення сеансів клієнта і сервера NetBIOS з спробою кінцевого перетворення IP-адреси в ім’я.
-S
Висновок відомостей про роботу сервера і клієнта NetBIOS; віддалені комп’ютери виводяться тільки за IP-адресами.

Йдемо далі. Для перегляду всіх активних в даний момент мережних підключень і прослуховує портів існує утиліта netstat. Запущена без параметрів через командний рядок відображає всі активні в даний момент підключення по протоколу Tcp. Параметри:
-a
Виводить всі активні з’єднання з протолу Tcp і список прослуховує портів Tcp і Udp.
-e
Висновок статистики Ethernet, наприклад, кількості відправлених і прийнятих байтів і пакетів. Цей параметр може комбінуватися з ключем -s.
-n
Висновок активних підключень TCP з відображенням адрес і номерів портів в числовому форматі без спроб визначення імен.
-p протокол
Висновок підключень для протоколу, зазначеного параметром протокол. В цьому випадку параметр протокол може приймати значення tcp, udp, tcpv6 або udpv6.
-s
Висновок статистики по протоколу. За замовчуванням виводиться статистика для протоколів TCP, UDP, ICMP і IP. Якщо встановлений протокол IPv6 для Windows XP, відображається статистика для протоколів TCP через IPv6, UDP через IPv6, ICMPv6 і IPv6. Параметр -p може використовуватися для вказівки набору протоколів.
Можливі стани для підключень.
CLOSE_WAIT Закривається
CLOSED Закрито
ESTABLISHED Підтримується
LISTEN Читається
TIMED_WAIT Перевищення часу відповіді
Якщо вас нещодавно намагалися атакувати, то можливо при перегляді статистики підключень будуть видні помилки.
Команда nslookup — надає відомості, призначені для діагностики інфраструктури DNS. У неї багато параметрів, але найбільш значимий це адреса вузла або ip. Наприклад, при введенні nslookup www.ya.ru виконується запит DNS і виводиться ip адреса сервера. Якщо ввести ip виводиться символьний адресу.
Команда hostname відображає ім’я вашого комп’ютера в мережі.
Ipconfig з параметром /all — висновок повній конфігурації Tcp/Ip для всіх мережевих адаптерів.
Ну і нарешті утиліта tracert — визначає шлях до точки призначення з допомогою посилки в точку призначення ехо-повідомлень по протоколу ICMP. (синтаксис: tracert адрес_узла).
Команди групи net.
У утиліти net.exe є кілька корисних параметрів. Розберемо деякі з них.
Net config (параметри: server або робочої станції) — виводить інформацію про служби сервер і робоча станція. Дані служби повинні бути запущені перед перевіркою. Майже аналогічно команді net statistics.
Net start (ім’я служби) — запускає зазначену службу.
Net pause (ім’я служби) — призупиняє зазначену службу, якщо в даний момент вона перебувала запущеною.
Net continue (ім’я служби) — відновлює роботу припиненою служби.
Net file — виводить список всіх відкритих файлів на сервері.
Net localgroup (параметри: ім’я групи /add /delete) — запущена без параметрів виводить всі локальні групи на комп’ютері, такі як Адміністратори, Гості, Користувачі, Досвідчені користувачі і так далі… Також дозволяє додати нову групу або видалити існуючу.
Net name (параметри: псевдонім /add /delete) — додавання або видалення мережевого псевдоніма для служби повідомлень. Запущена без параметрів виводить поточний.
Net send домен повідомлення — відправка повідомлень по мережі у вигляді стандартних повідомлень Windows на потрібний домен. Залежить від служби повідомлень (Windows Messanger), у більшості користувачів вона відключена за можливих проблем безпеки. Параметр /all надсилає повідомлення всім доступним комп’ютерів в мережі. Прибрана в Windows Vista.
Net share (параметри: ім’я ресурсу або диск: шлях) — расшаривает зазначений ресурс для спільного доступу до нього з мережі. Можна хоч всі диски цілком розшарити, але зі зрозумілих причин так не роблять 🙂 Ключ /delete використовується для видалення спільного ресурсу. Команда net share запущена без параметрів виводить список всіх розшарених ресурсів на комп’ютері.
Net view — виведення списку загальнодоступних ресурсів, схоже з net share.
Net use — служить для підключення загальних ресурсів, таких як наприклад мережевий файлообмінник, розташований на серваці й адміна. Загальний синтаксис — net use буква_нового_виртуального_диска сетевой_путь.
Net user — дозволяє управляти обліковими записами системи. Наприклад, net user ім’я_користувача пароль (/add /delete). Якщо запустити net user без параметрів, то перед нами з’явиться список всіх облікових записів. Ви можете зрозуміти, що ваш комп’ютер проникли якщо ви побачите якусь небудь невідому і невідомо як з’явилася учетку з ім’ям типу Hacker. Сміливо видаляйте ключем /delete.
Telnet.
Про цю утиліту і однойменної службі слід сказати окремо. Команди Telnet служать для керування віддаленим комп’ютером через командний рядок, працює тільки при запущеній служби telnet у себе на комп’ютері, до якого потрібно підключитися, за замовчуванням висить на 23 порту. Набираємо telnet і потрапляємо в інше вікно cmd.exe із запрошенням Microsoft Telnet.
Команди:
open адрес_узла порт(якщо не вказати, то за замовчуванням вибирається 23) — відкриваємо підключення.
close — закриваємо з’єднання.
quit — виходимо з telnet.
display — відобразити параметри (зчитуються з реєстру).
unset — повернути всі параметри за замовчуванням.
help — довідка.

Коли ми відкриваємо підключення до потрібного вузла нам виводиться вікно з пропозицією авторизуватися. Щоб керувати віддаленим комп’ютером через командний рядок потрібно знати ім’я і пароль користувача, який є адміністратором у віддаленій системі. Існують серйозні обмеження і параметри, які можна змінити у реєстрі {HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/TelnetServer/]. Наприклад, заборонено підключення з порожнім паролем. Як же покерувати командним рядком чужого компа? Жертва повинна запустити в себе троянця написаного на bat, створює нового користувача в групі Адміністратори, а потім вже успішно підключатися. Як це зробити докладно написано в довідці до команди net user. Все одно telnet є потенційно небезпечним засобом віддаленого адміністрування, тому якщо ви її не используюте краще вимкніть назовсім.
Як ми бачимо, командний рядок надає нам широкі можливості роботи з мережею. Успіхів!