Форум программистов, компьютерный форум, киберфорум
Администрирование Windows
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/107: Рейтинг темы: голосов - 107, средняя оценка - 4.63
403 / 86 / 8
Регистрация: 16.02.2013
Сообщений: 356

Как узнать принадлежит ли компьютер к домену по IP?

09.06.2015, 17:32. Показов 20596. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Первая просьба к "экспертам" данного форума.
Дочитать этот текст до конца, а не сразу вываливать десяток бессмысленных ссылок, которые вы, уважаемые эксперты, с легкостью находите поиском по форуму. Я тоже умею умею искать. Особо меня доставляет, когда "эксперты" в качестве решения вопроса дают ссылку на тот топик, в котором задан текущий вопрос.


Пожалуйста, не надо предложений - проверка через UDP а-ля nbtstat. Там выдается имя рабочей группы, а сильно умные пользователи легко дают ей имя домена.

Пожалуйста, не надо предложений типа - давать юзерам права только "Пользователь". Это, увы, не в моей власти. К сожалению в моей организации существует множество программ, написанных криворукими программистами, которые работают только под локальным админом.

Пожалуйста, не надо предложений типа - "Подключится через RADMIN, VNC" и тому подобное. Не факт, что их сервера установлены на другой стороне.


Известные мне способы при условии, что у моей учетки потенциально должны быть права локального админа на тестируемом компьютере:

1. Попробовать подключится к административным шарам. Например, к ADMIN$.
Ограничение - на том ПК может быть закрыт 445 порт

2. Взять значение домена из реестра
Ограничение - на том ПК может быть запрещен удаленный доступ к реестру

3. Проверить через WMI
Ограничения - тут целый букет: закрыт 135 порт, запрещен вызов удаленных процедур (RPC), просто WMI разрушен

4. Проверить наличие учетной записи компьютера в домене
Ограничение - пользователь может вывести свою машину из домена и это никак не отразится на наличии этой учетной записи. Можно сделать автоматическое убийство учетки из-за бездействия. У нас такой период три месяца.


Да и просто потенциально права локального должны быть, а из-за каких-то причин их нет.

==================
Так вот, наконец сам вопрос.

Создатели NMAP как-то разрулили это через протокол SMB
То есть задача решаема.

Мне надо знать в какой порт стукнуться, что туда послать и как расшифровать ответ?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.06.2015, 17:32
Ответы с готовыми решениями:

Имя входа принадлежит не доверенному домену
Доброго времени суток, возникла не большая не поладка при подключении к БД возникает ошибка Необработанное исключение типа...

Имя пользователя принадлежит недоверенному домену Windows
Здравствуйте. Устанавливаю удаленное соединения с SQL сервером. SqlConnectionString выглядит так Server=Ip-адрес\\имя...

Как узнать, кому принадлежит счет?
Люди, здравствуйте. Тут наткнулся на счет для пожертвований. Хотел бы немного туда перевести... Но всякое бывает в интернете - хочу...

13
2619 / 549 / 109
Регистрация: 21.03.2012
Сообщений: 1,051
10.06.2015, 11:54
Попробуйте VB-сценарий, подобный этому:
Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
Dim objRoot, objComputer, strDomain, strComputer, strTemp
strComputer = "192.168.1.10"
Set objRoot = GetObject("LDAP://RootDSE")
strDomain = Replace(Replace(objRoot.Get("defaultNamingContext"), "dc=", "", 1, -1, vbTextCompare), ",", ".", 1, -1, vbTextCompare)
Set objRoot = Nothing
If Available(strComputer) Then
    On Error Resume Next
    Set objComputer = GetObject("WinNT://" & strComputer & ",computer")
    If Err.Number = 0 Then
        strTemp = objComputer.ADsPath
        If Err.Number = 0 Then
            If IsNull(strTemp) Then
                WScript.Echo strComputer & " -> идентификация членства в домене не выполнена"
            Else
                If InStr(1, strTemp, "/" & strDomain & "/", vbTextCompare) > 0 Then
                    WScript.Echo strComputer & " -> входит в домен"
                Else
                    WScript.Echo strComputer & " -> не входит в домен"
                End If
            End If
        Else
            WScript.Echo strComputer & " -> ошибка при чтении значения свойства " & Err.Number & vbNewLine & Err.Description
        End If
    Else
        WScript.Echo strComputer & " -> ошибка при попытке подключения " & Err.Number & vbNewLine & Err.Description
        Err.Clear
    End If
    Set objComputer = Nothing
Else
    WScript.Echo strComputer & " -> не отвечает или не существует"
End If
WScript.Quit 0
 
'======
 
Function Available(strName)
Dim objExec, objOutStream, strTemp
 
Set objExec = CreateObject("WScript.Shell").Exec("ping -n 1 -w 130 " & strName)
Set objOutStream = objExec.StdOut
While Not objOutStream.AtEndOfStream
    strTemp = strTemp & Trim(objOutStream.ReadLine)
Wend
Set objOutStream = Nothing
Set objExec = Nothing
If InStr(1, strTemp, "TTL", vbTextCompare) > 0 Then
    Available = True
Else
    Available = False
End If
End Function
0
403 / 86 / 8
Регистрация: 16.02.2013
Сообщений: 356
12.06.2015, 08:49  [ТС]
Dmitrii. Увы - это пункт 4 из моего вопроса "Использование Active Directory"
0
2619 / 549 / 109
Регистрация: 21.03.2012
Сообщений: 1,051
12.06.2015, 22:06
Цитата Сообщение от Cat2 Посмотреть сообщение
... это пункт 4 из моего вопроса "Использование Active Directory"
Нет.
Из AD берётся только имя домена. После чего наличие этого имени проверяется в значении атрибута ADsPath, полученном у локального компьютера.
Если компьютер выведен из состава домена, то значение указанного атрибута не будет содержать имени домена.
0
403 / 86 / 8
Регистрация: 16.02.2013
Сообщений: 356
15.06.2015, 10:52  [ТС]
Dmitrii.
Вероятно я не совсем четко сформулировал вопрос.
Мне нужно узнать включен ли в домен другой компьютер у которого мне известен только IP.
=================
Кстати. Просто что бы другие на грабли не наступали.

PureBasic
1
Set objRoot = GetObject("LDAP://RootDSE")
дает неверный результат, если компьютеры в одном лесу, но в разных доменах. Выдает домен того компьютера, на котором запускается скрипт
0
2619 / 549 / 109
Регистрация: 21.03.2012
Сообщений: 1,051
15.06.2015, 11:14
Цитата Сообщение от Cat2 Посмотреть сообщение
... нужно узнать включен ли в домен другой компьютер у которого мне известен только IP...
Другой - это не тот, на котором запускается сценарий? Если так, то предложенный сценарий именно такую задачу и пытается решить.
Цитата Сообщение от Cat2 Посмотреть сообщение
дает неверный результат, если компьютеры в одном лесу, но в разных доменах. Выдает домен того компьютера, на котором запускается скрипт
Разумеется. Вот только кто бы ещё сказал, что речь идёт не об одном домене, а о лесе доменов, да ещё и определять требуется членство станции в другом домене текущего леса.

Общий подход в итоге представляется таким: составить список имён всех доменов леса и проверить наличие какого-либо из них в значении атрибута ADsPath интересующего компьютера.
0
403 / 86 / 8
Регистрация: 16.02.2013
Сообщений: 356
15.06.2015, 12:58  [ТС]
Цитата Сообщение от Dmitrii Посмотреть сообщение
Общий подход в итоге представляется таким: составить список имён всех доменов леса и проверить наличие какого-либо из них в значении атрибута ADsPath интересующего компьютера.
Не срабатывает.
Злоумышленник с правами локального админа выводит комп из домена без удаления его учетной записи. При этом он же называет рабочую группу так же, как свой домен третьего уровня.

Проверка учетки дает, что комп в домене, а он - в рабочей группе.

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

Остается только позвонить пользователю и спросить: "Когда Вы перезагружали компьютер?"
0
2619 / 549 / 109
Регистрация: 21.03.2012
Сообщений: 1,051
15.06.2015, 19:45
Cat2, покажите значение атрибута ADsPath для компьютера, являющегося членом домена, и для компьютера, выведенного из этого же домена в рабочую группу, которую "злоумышленник" назвал "как свой домен третьего уровня".
Реальные имена можете заменить на вымышленные, но сохраните структуру именования.
0
403 / 86 / 8
Регистрация: 16.02.2013
Сообщений: 356
16.06.2015, 18:34  [ТС]
Охо-хо. Вечно я тороплюсь. Обычно я на стороне отвечающих и тоже злюсь на вопрошающих, что они не четко формулируют мысли


При этом он же называет рабочую группу так же, как свой домен третьего уровня. - означает, что он называет рабочую группу так, как называется домен третьего уровня, в котором он должен был находится.
Например, домен XXX.YYY.ZZZ, рабочая группа - XXX.

Не думаю, что знание ADsPath сильно поможет в решении проблемы, но мне не трудно.

LDAP://cn=one_computer,cn=Computers,dc=xxx,dc=y yy,dc=zzz
========
Это сеть РЖД
Если какая-то пакость теоретически может произойти, то она обязательно произойдет
0
2619 / 549 / 109
Регистрация: 21.03.2012
Сообщений: 1,051
17.06.2015, 05:46
Цитата Сообщение от Cat2 Посмотреть сообщение
... называет рабочую группу так, как называется домен третьего уровня...
Я это понял.
Цитата Сообщение от Cat2 Посмотреть сообщение
... Не думаю, что знание ADsPath сильно поможет...
Может быть, и не поможет. Однако есть надежда, что поможет.
Цитата Сообщение от Cat2 Посмотреть сообщение
LDAP://cn=one_computer,cn=Computers,dc=xxx,dc=y yy,dc=zzz
Нужно не то значение, которое возвращает провайдер LDAP при обращении к AD, а то, которое возвращает провайдер WinNT, при обращении к локальному компьютеру (причём речь идёт и о компьютере, входящем в домен, и о компьютере, выведенном хитрым пользователем в хитро названную рабочую группу).
0
403 / 86 / 8
Регистрация: 16.02.2013
Сообщений: 356
17.06.2015, 22:35  [ТС]
Цитата Сообщение от Dmitrii Посмотреть сообщение
Нужно не то значение, которое возвращает провайдер LDAP при обращении к AD, а то, которое возвращает провайдер WinNT, при обращении к локальному компьютеру
Прежде чем пытаться получить какие-то данные данные от WinNt мне надо убедится, что компьютер в домене и такие данные в принципе можно получить.
0
2619 / 549 / 109
Регистрация: 21.03.2012
Сообщений: 1,051
17.06.2015, 23:17
Cat2, ну найдите какой-либо способ получить нужные данные. В конце концов, смоделируйте ситуацию на собственном компьютере.
Кстати, эти запросы не требуют полномочий администратора.
0
403 / 86 / 8
Регистрация: 16.02.2013
Сообщений: 356
24.06.2015, 15:41  [ТС]
Dmitrii, зато требуют, что бы запуск производился локально.
Эх, если бы нашел такой способ, что бы на любом компе запускать любую свою программу, то завоевал бы Мир!
0
2619 / 549 / 109
Регистрация: 21.03.2012
Сообщений: 1,051
26.06.2015, 06:08
Цитата Сообщение от Cat2 Посмотреть сообщение
... требуют, что бы запуск производился локально...
Непонятно.
На всякий случай замечу, что сценарий с запросом вида
Visual Basic
1
Set objComputer = GetObject("WinNT://" & strComputer & ",computer")
где значением переменной strComputer является NetBIOS-имя или IP-адрес некоторого узла сети, запускаясь на локальном компьютере, обращается к провайдеру того узла, адрес (или имя) которого указан в запросе.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.06.2015, 06:08
Помогаю со студенческими работами здесь

Компьютер не подключается к домену
Вчера перенастраивал керио. Также изменял настройки ДНС (незначительно) - включил перенаправление запросов. Сегодня утром 2...

Как узнать принадлежит ли точка (x,y) закрашеной области?
Как узнать принадлежит ли точка (x,y) закрашеной области?

Как узнать принадлежит ли точка заданной фигуре?
У нас есть фигура, это первый плот, вротой плот это некая точка. Как узнать принадлежит ли точка фигуре или нет, не графическим путём! ...

Как узнать, что подключается к IP и чему этот IP принадлежит?
Время от времени появляется подключение к IP 10.х.х.х от процесса System. Как узнать, что конкретно инициализирует это подключения и чем...

Возможно ли подключить удалееный компьютер к домену?
Такая ситуация, на головном офисе есть сервер с AD, DNS, VPN. На некоторых офисах где много персонала установлен сервер с RODC. Но есть у...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru