Геолокация

Противодействие хакерским угрозам

Модераторы: Olej, adminn, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Геолокация

Непрочитанное сообщение Olej » 16 мар 2023, 14:11

У нас уже есть родственные темы ... но это немного про другое:
Геолокация: GeoClue - это про то как за нашей геолокацией следят.
деанон - это как собрать информацию о ком-то в Интрнет ... но тут мне было некогда и, пока, не преуспел :-(

Где-то была (давно) тема: найти местоположение сервера/ресурса по IP... Но там, во первых, я а). пользовался онлайн сетевыми ресурсами (типа 2ip.ru и подобными - их множество), б). это долго и хлопотно (в сравнении с консольными командами, CLI), в). непонятно какими критериями они при этом пользуются, насколько это достоверно? г). это местоположение радикально меняется использованием любых VPN или сетевых proxy...

Но это всё не то, поэтому нова тема будет такая... : установить местоположение регистратора доменного имени сервера/ресурса по его URL.
В приницпе, интересует и установление местоположения, но уже по конкретному IP.
Всё что я могу извлечь из этого...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Геолокация

Непрочитанное сообщение Olej » 16 мар 2023, 14:32

Olej писал(а):
16 мар 2023, 14:11
Всё что я могу извлечь из этого...
Интерес возникал ранее много раз ... но как-то забывалось.
А здесь возник конкретный тестовый пример:
- набросали мне тут ссылок по одному новому предмету исследований: микробный топливный элемент...
- занимаются этими программами Университет ИТМО (Санкт-Петербург) и КубГУ (Краснодар)...
- а когда я позаглядывал на их ссылки ресурсов, то оказалось, что они регистрированы все по доменным именам сильно (даже диаметрально) отличающимся от местоположений университетов...

Вот и решил порепетировать на этом материале...
Ссылки:
- https://internetofbacteria.org/
- https://www.asiga.com/industry-microfluidics/
- https://www.elveflow.com/microfluidic-r ... finitions/
- ... ну и добавлю туда, для разнообразия, этот вот форум https://linux-ru.ru/index.php, который а). администрируется совсем не из той страны где зарегистрировано доменное имя, а б). хостинг совсем не в той стране, где регистрировался и откуда администрируется :lol:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Геолокация

Непрочитанное сообщение Olej » 16 мар 2023, 14:42

Olej писал(а):
16 мар 2023, 14:32
- https://internetofbacteria.org/

Код: Выделить всё

olej@R420:~$ host internetofbacteria.org
internetofbacteria.org has address 213.159.214.240
internetofbacteria.org mail is handled by 10 mail.internetofbacteria.org.
internetofbacteria.org mail is handled by 20 mail.internetofbacteria.org.

Код: Выделить всё

olej@R420:~$ whois 213.159.214.240 | grep address
address:        664035, Russia, Irkutsk, Surnova st. 22, office 302
address:        664035
address:        Irkutsk
address:        RUSSIAN FEDERATION
address:        664035, Russia, Irkutsk, Surnova st. 22, office 302
Иркутск ...
Olej писал(а):
16 мар 2023, 14:32
- https://www.asiga.com/industry-microfluidics/

Код: Выделить всё

olej@R420:~$ host www.asiga.com
www.asiga.com has address 103.152.248.133

Код: Выделить всё

olej@R420:~$ whois 103.152.248.133 | grep address
address:        GPO Box 988
address:        Melbourne VIC 3001
address:        Australia
address:        Level 1
address:        222 Beach Road
address:        GPO Box 988
address:        Melbourne VIC 3001
address:        Australia
address:        Level 2, 222 Beach Road
address:        Level 2, 222 Beach Road
Австралия...
Olej писал(а):
16 мар 2023, 14:32
- https://www.elveflow.com/microfluidic-r ... finitions/

Код: Выделить всё

olej@R420:~$ host www.elveflow.com
www.elveflow.com has address 51.91.18.222

Код: Выделить всё

olej@R420:~$ whois 51.91.18.222 | grep address
address:        2 rue Kellermann
address:        59100
address:        Roubaix
address:        FRANCE
address:        OVH SAS
address:        2 rue Kellermann
address:        59100 Roubaix
address:        France
Франция ...
Olej писал(а):
16 мар 2023, 14:32
- ... https://linux-ru.ru/index.php

Код: Выделить всё

olej@R420:~$ host linux-ru.ru
linux-ru.ru has address 90.156.230.27
linux-ru.ru mail is handled by 10 mx2.timeweb.ru.
linux-ru.ru mail is handled by 10 mx1.timeweb.ru.

Код: Выделить всё

olej@R420:~$ whois 90.156.230.27 | grep address
address:        22/2 lit.A,Zastavskaya str.
address:        196006, Saint-Petersburg
address:        Russia
Петербург ...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Геолокация

Непрочитанное сообщение Olej » 16 мар 2023, 14:44

Olej писал(а):
16 мар 2023, 14:32
где зарегистрировано доменное имя
Конечно, в нынешнем мире место регистрации доменного имени слабо коррелирует с местоположением ресурса...
(Но, правда, страна регистрации доменного имени довольно сильно коррелирует с намерениями администраторов ресурса :lol: ).
И ...
Яблоко от яблони недалеко падает.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Геолокация

Непрочитанное сообщение Olej » 16 мар 2023, 14:48

Olej писал(а):
16 мар 2023, 14:32
набросали мне тут ссылок
Но ссылка, URL - это ещё не доменное имя для получения IP (host, nslookup, dig, ...) - там есть протоколы и они могут быть разными (http://, https://, ftp://, ssh://... ) + непотребные мне путевые имена и параметры...
И мне хотелось бы иметь готовый скрипт, который применяя к URL сразу бавал бы адрес регистрации доменного имени.
Скрипт на bash, Python ... Go - на чём угодно.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Геолокация

Непрочитанное сообщение Olej » 16 мар 2023, 16:49

Olej писал(а):
16 мар 2023, 14:48
Python
Вспоминаю...
urllib.parse — Parse URLs into components

Код: Выделить всё

olej@R420:~$ python
Python 3.10.6 (main, Nov 14 2022, 16:10:14) [GCC 11.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> url1='https://internetofbacteria.org/'
>>> url2='https://www.asiga.com/industry-microfluidics/'
>>> url3='https://www.elveflow.com/microfluidic-reviews/general-microfluidics/microfluidics-definitions/'
>>> url4='https://linux-ru.ru/viewtopic.php?f=38&t=7261&p=29030#p29030'
>>> import urllib
>>>
>>> from urllib.parse import urlparse
>>>
>>> url1
'https://internetofbacteria.org/'
>>> o1 = urlparse(url1)
>>> o1
ParseResult(scheme='https', netloc='internetofbacteria.org', path='/', params='', query='', fragment='')
>>> o1.netloc
'internetofbacteria.org'
>>>
...
>>> 
>>> o2 = urlparse(url2)
>>> o3 = urlparse(url3)
>>> o4 = urlparse(url4)
>>> 
...
Выделение доменного имени из любой URL, для этого не нужно и никакого регулярного выражения.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Геолокация

Непрочитанное сообщение Olej » 16 мар 2023, 16:52

Olej писал(а):
16 мар 2023, 16:49
Выделение доменного имени из любой URL
Функция gethostbyname_ex() модуля socket в Python.
Получение списка IP для доменного имени:

Код: Выделить всё

>>>
>>> import socket
>>> s1 = socket.gethostbyname_ex(o1.netloc)
>>> s1
('internetofbacteria.org', [], ['213.159.214.240'])
>>> s1[2]
['213.159.214.240']
>>> s1[2][0]
'213.159.214.240'
>>>
s[2] - кортеж, 3-м элементом которого есть список IP адресов.
Если у URL несколько адресов, то их тут будет несколько ... например, для 'http://stackoverflow.com/questions/5343288/get-url' там будет:

Код: Выделить всё

('stackoverflow.com', [], ['151.101.193.69', '151.101.65.69', '151.101.1.69', '151.101.129.69'])
Продолжаю для "своих" URL:

Код: Выделить всё

>>> s2 = socket.gethostbyname_ex(o2.netloc)
>>> s3 = socket.gethostbyname_ex(o3.netloc)
>>> s4 = socket.gethostbyname_ex(o4.netloc)
>>> s2[2]
['103.152.248.133']
>>> s3[2]
['51.91.18.222']
>>> s4[2]
['90.156.230.27']
>>> 

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Геолокация

Непрочитанное сообщение Olej » 16 мар 2023, 17:08

Относительно whois ...
Можно установить пакет DannyCork/python-whois :

Код: Выделить всё

olej@R420:~$ pip install whois
Defaulting to user installation because normal site-packages is not writeable
Collecting whois
  Downloading whois-0.9.27.tar.gz (30 kB)
  Preparing metadata (setup.py) ... done
Building wheels for collected packages: whois
  Building wheel for whois (setup.py) ... done
  Created wheel for whois: filename=whois-0.9.27-py3-none-any.whl size=30477 sha256=c2c82fc42c54163dcdfaf947b69f95f966d66a2e8361ac98df74d6c953b011f3
  Stored in directory: /home/olej/.cache/pip/wheels/71/17/36/d62eb5bcc416650499a7259d584c11e4a778de5ce0e72a8dbf
Successfully built whois
Installing collected packages: whois
Successfully installed whois-0.9.27

Код: Выделить всё

>>>
>>> import whois
>>>

Код: Выделить всё

>>> domain1 = whois.query(o1.netloc)
we have org
>>> domain2 = whois.query(o2.netloc)
we have com
>>> domain3 = whois.query(o3.netloc)
we have com
>>> domain4 = whois.query(o4.netloc)
we have ru
>>> 

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Геолокация

Непрочитанное сообщение Olej » 16 мар 2023, 17:20

Olej писал(а):
16 мар 2023, 17:08
Можно установить пакет

Код: Выделить всё

>>> domain1.__dict__
{'name': 'internetofbacteria.org', 'tld': 'org', 'registrar': 'Hosting Concepts B.V. d/b/a Registrar.eu', 'registrant_country': 'RU', 'creation_date': datetime.datetime(2020, 7, 16, 1, 13, 17), 'expiration_date': datetime.datetime(2023, 7, 16, 1, 13, 17), 'last_updated': None, 'status': 'clientTransferProhibited https://icann.org/epp#clientTransferProhibited', 'statuses': ['clientTransferProhibited https://icann.org/epp#clientTransferProhibited'], 'dnssec': False, 'name_servers': ['ns1.firstvds.ru', 'ns2.firstvds.ru'], 'registrant': '', 'emails': ['abuse@registrar.eu']}

Код: Выделить всё

>>> list(domain1.__dict__.keys())
['name', 'tld', 'registrar', 'registrant_country', 'creation_date', 'expiration_date', 'last_updated', 'status', 'statuses', 'dnssec', 'name_servers', 'registrant', 'emails']
И, естественно, так для всех остальных...
Здесь меньше ключевых полей, чем в выводе команды GNU whois ... но уже кое-что:

Код: Выделить всё

>>> 
>>> domain1.registrant_country
'RU'
>>> domain2.registrant_country
'AU'
>>> domain3.registrant_country
'FR'
>>> domain4.registrant_country
''
>>> 

Код: Выделить всё

>>> 
>>> domain1.registrar
'Hosting Concepts B.V. d/b/a Registrar.eu'
>>> domain2.registrar
'Webcentral Group Limited dba Melbourne IT'
>>> domain3.registrar
'OVH sas'
>>> domain4.registrar
'TIMEWEB-RU'
>>> 

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Геолокация

Непрочитанное сообщение Olej » 16 мар 2023, 17:49

Olej писал(а):
16 мар 2023, 17:08
Можно установить пакет
Но для меня открылись удивительные вещи в whois :-o
Вот для этого хоста (этот вот форум):

Код: Выделить всё

olej@R420:~/2023/own.BOOKs/NatioLang/natiolang.cod/regex.cod$ host linux-ru.ru
linux-ru.ru has address 90.156.230.27
linux-ru.ru mail is handled by 10 mx1.timeweb.ru.
linux-ru.ru mail is handled by 10 mx2.timeweb.ru.
Сравним информацию, выдаваемую по URL и по IP:

Код: Выделить всё

olej@R420:~/2023/own.BOOKs/NatioLang/natiolang.cod/regex.cod$ whois linux-ru.ru
% TCI Whois Service. Terms of use:
% https://tcinet.ru/documents/whois_ru_rf.pdf (in Russian)
% https://tcinet.ru/documents/whois_su.pdf (in Russian)

domain:        LINUX-RU.RU
nserver:       ns1.timeweb.ru.
nserver:       ns2.timeweb.ru.
nserver:       ns3.timeweb.org.
nserver:       ns4.timeweb.org.
state:         REGISTERED, DELEGATED, UNVERIFIED
person:        Private Person
registrar:     TIMEWEB-RU
admin-contact: http://timeweb.name/contact-admin
created:       2018-07-03T18:55:08Z
paid-till:     2023-07-03T18:55:08Z
free-date:     2023-08-03
source:        TCI

Last updated on 2023-03-16T14:36:31Z

Код: Выделить всё

olej@R420:~/2023/own.BOOKs/NatioLang/natiolang.cod/regex.cod$ whois 90.156.230.27
% This is the RIPE Database query service.
% The objects are in RPSL format.
%
% The RIPE Database is subject to Terms and Conditions.
% See http://www.ripe.net/db/support/db-terms-conditions.pdf

% Note: this output has been filtered.
%       To receive output for a database update, use the "-B" flag.

% Information related to '90.156.230.0 - 90.156.230.255'

% Abuse contact for '90.156.230.0 - 90.156.230.255' is 'abuse@timeweb.ru'

inetnum:        90.156.230.0 - 90.156.230.255
netname:        TW-VDS-KZ
geofeed:        https://geofeed.timeweb.net/geofeed.csv
country:        KZ
admin-c:        TMWB-RIPE
tech-c:         TMWB-RIPE
abuse-c:        TMWB-RIPE
status:         ASSIGNED PA
mnt-by:         TIMEWEB-MNT
created:        2022-12-14T06:39:43Z
last-modified:  2022-12-19T06:26:34Z
source:         RIPE

role:           TimeWeb Co. Ltd. Role Account
address:        22/2 lit.A,Zastavskaya str.
address:        196006, Saint-Petersburg
address:        Russia
phone:          +7 812 2481081
phone:          +7 495 0331081
abuse-mailbox:  abuse@timeweb.ru
admin-c:        AAB215-RIPE
admin-c:        KRON
tech-c:         AAB215-RIPE
tech-c:         AA39263-RIPE
tech-c:         AG26308-RIPE
tech-c:         KRON
nic-hdl:        TMWB-RIPE
mnt-by:         TIMEWEB-MNT
created:        2008-03-18T10:36:42Z
last-modified:  2022-03-05T06:49:37Z
source:         RIPE # Filtered

% Information related to '90.156.230.0/24AS48716'

route:          90.156.230.0/24
origin:         AS48716
mnt-by:         TIMEWEB-MNT
created:        2022-12-19T06:25:47Z
last-modified:  2022-12-19T06:25:47Z
source:         RIPE

% This query was served by the RIPE Database Query Service version 1.106 (SHETLAND)
Как видно - это существенно разная информация :!:
А пакет Python просто при запросе информации по IP - просто слетает по ошибке:

Код: Выделить всё

>>> domain = whois.query("90.156.230.27")
we DONT have 27
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/olej/.local/lib/python3.10/site-packages/whois/__init__.py", line 233, in query
    tld, dl = fromDomainStringToTld(domain, internationalized, verbose)
  File "/home/olej/.local/lib/python3.10/site-packages/whois/__init__.py", line 96, in fromDomainStringToTld
    tld = filterTldToSupportedPattern(domain, d, verbose)
  File "/home/olej/.local/lib/python3.10/site-packages/whois/_0_init_tld.py", line 47, in filterTldToSupportedPattern
    raise UnknownTld(msg)
whois.exceptions.UnknownTld: The TLD 27 is currently not supported by this package. Use validTlds() to see what toplevel domains are supported.
>>> 
И нормально отвечает при запросе по имени :!:

Код: Выделить всё

>>> domain = whois.query("linux-ru.ru")
we have ru
>>> domain2.__dict__
{'name': 'asiga.com', 'tld': 'com', 'registrar': 'Webcentral Group Limited dba Melbourne IT', 'registrant_country': 'AU', 'creation_date': datetime.datetime(2005, 8, 23, 18, 15, 38), 'expiration_date': datetime.datetime(2023, 8, 23, 18, 15, 38), 'last_updated': datetime.datetime(2022, 8, 15, 15, 59, 5), 'status': 'clientTransferProhibited https://icann.org/epp#clientTransferProhibited', 'statuses': ['clientTransferProhibited https://icann.org/epp#clientTransferProhibited', 'clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited'], 'dnssec': False, 'name_servers': ['ns1.linode.com', 'ns2.linode.com', 'ns3.linode.com', 'ns4.linode.com', 'ns5.linode.com'], 'registrant': '', 'emails': ['abuse@melbourneit.com.au']}
>>> 

Ответить

Вернуться в «Безопасность»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей