Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 1, 2020 19:14:40

usmesn
Зарегистрирован: 2020-04-28
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

API ver 10.1 Siem Qradar + python

Всем привет. Кто делал запросы API ver 10.1 in Qradar к reference map of set . Не могу разобраться. Прошу помощи. Я так понял что с помощью библиотеки request это не возможно сделать, может ошибаюсь.

Отредактировано usmesn (Сен. 1, 2020 19:33:11)

Офлайн

#2 Сен. 2, 2020 02:02:42

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9844
Репутация: +  853  -
Профиль   Отправить e-mail  

API ver 10.1 Siem Qradar + python

usmesn
Я так понял что с помощью библиотеки request это не возможно сделать
Если это возможно сделать по HTTP, то с помощью requests это возможно сделать.

Используй программу curl для предварительного анализа. Через неё можно любые запросы по HTTP посылать без скриптов, чтобы просто выяснить, как они должны посылаться.



Офлайн

#3 Сен. 2, 2020 12:03:03

usmesn
Зарегистрирован: 2020-04-28
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

API ver 10.1 Siem Qradar + python

система даже сама генирит этот curl
curl -s -X GET -u username:password -H ‘Range: items=0-49’ -H ‘Version: 10.1’ -H ‘Accept: application/json’ 'https://xxxxxxxxxxxxx.ru/api/reference_data/map_of_sets/ESET_hostname'
но он не работает из командной строки.
Действия происходят в домене, в котором есть прокси, указывал параметры авторизации все равно не работает. Я так полагаю что я должен сначала авторизоваться на прокси с помощью доменной учетной записи, потом также указать авторизационные данные необходимые для API данного сервера, чтобы обратиться к конечной точке ESET_hostname.

или может этот curl конвертировать в requests запрос, но пока не получается

Отредактировано usmesn (Сен. 3, 2020 07:48:20)

Офлайн

#4 Сен. 2, 2020 14:26:46

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9844
Репутация: +  853  -
Профиль   Отправить e-mail  

API ver 10.1 Siem Qradar + python

usmesn
но он не работает из командной строки
Так вот надо выяснить, что ты пишешь неправильно.

usmesn
или может этот curl конвертировать в requests запрос
Тебе это не поможет, потому что ты даже не понимаешь, что ты делаешь. Одного curl достаточно, чтобы получить данные. Когда получишь данные, тогда и requests можешь применять. Что curl, что requests посылают одно и то же, только это записывается для них по-разному. И вот это одно и то же ты и не можешь сформулировать.



Офлайн

#5 Сен. 2, 2020 20:46:27

usmesn
Зарегистрирован: 2020-04-28
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

API ver 10.1 Siem Qradar + python

при получении данных curl возвращает
curl: (56) Received HTTP code 502 from proxy after CONNECT, что можно посмореть

Офлайн

#6 Сен. 2, 2020 22:50:16

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9844
Репутация: +  853  -
Профиль   Отправить e-mail  

API ver 10.1 Siem Qradar + python

wiki. коды ответов HTTP

502 Bad Gateway — сервер, выступая в роли шлюза или прокси-сервера, получил недействительное ответное сообщение от вышестоящего сервера. Появился в HTTP/1.0.

usmesn
что можно посмореть
Найди систему рабочую, на ней всё отладь, можешь даже скрипт на Python написать. Когда ты убедишься, что ты всё правильно делаешь с рабочим сервером, тогда ты придёшь в этот банк и будешь выяснять, как к нему подключиться (может быть, письмо им напишешь туда). Я полазил у них до докам, они не пишут ничего практически. Это может свидетельствовать о том, что у них там не очень грамотные ребята сидят, которые могли допустить ошибку в настройках, из-за которой ты сейчас думаешь, что ты что-то сделать не можешь. Так что не зацикливайся на них, найди дублирующую систему, где точно всё работает, и проверяй всё на них обеих.



Офлайн

#7 Сен. 2, 2020 22:56:34

usmesn
Зарегистрирован: 2020-04-28
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

API ver 10.1 Siem Qradar + python

я работаю в этом банке, есть необходимость забрать инфу в формате json средствами api на питоне, изучаю данную тему, параметры прокси в браузере посмотрел.
Начал с самого простого:
вот такой скрипт например работает исправно(lданные прокси замаскированны)
import requests
url = 'https://yandex.ru'
proxies= {'https':'https://user:pass@xxxxx:xxxx'}
response = requests.get(url=url, proxies=proxies)
print(response.status_code)
response.close()

А такой нет
import requests
url = 'https://xxxxxxxx.ru/console/logon.jsp'
proxies= {'https':'https://user:pass@xxxxx:xxxx'}
response = requests.get(url=url, proxies=proxies)
print(response.status_code)
вот такая ошибка
Traceback (most recent call last):
File “C:\p\google.py”, line 4, in <module>
response = requests.get(url=url, proxies=proxies)
File “C:\Program Files\Python37\lib\site-packages\requests\api.py”, line 76, in get
return request('get', url, params=params, **kwargs)
File “C:\Program Files\Python37\lib\site-packages\requests\api.py”, line 61, in request
return session.request(method=method, url=url, **kwargs)
File “C:\Program Files\Python37\lib\site-packages\requests\sessions.py”, line 530, in request
resp = self.send(prep, **send_kwargs)
File “C:\Program Files\Python37\lib\site-packages\requests\sessions.py”, line 643, in send
r = adapter.send(request, **kwargs)
File “C:\Program Files\Python37\lib\site-packages\requests\adapters.py”, line 510, in send
raise ProxyError(e, request=request)
requests.exceptions.ProxyError: HTTPSConnectionPool(host='consiem.is01.zenit.ru', port=443): Max retries exceeded with url: /console/logon.jsp (Caused by ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 502 cannotconnect')))

Отредактировано usmesn (Сен. 3, 2020 07:49:30)

Офлайн

#8 Сен. 3, 2020 01:08:52

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9844
Репутация: +  853  -
Профиль   Отправить e-mail  

API ver 10.1 Siem Qradar + python

usmesn
вот такой скрипт например работает исправно
На заморачивайся на этой фигне пока что. У тебя вопрос “API ver 10.1 Siem Qradar”. Ты хочешь узнать, как правильно получать данные. Найди такую систему на стороне, в которой стопроцентно всё работает и получи от неё данные. Когда ты с этим справишься и узнаешь точно, как их получать, тогда ты и будешь выяснять, что там происходит в этом твоём банке и почему соединение не строится. Потому что к API построение соединения никакого отношения не имеет.

Ошибка 502 говорит о том, что там внутри происходит какая-то фигня. А какая фигня происходит из тысячи возможных фигнь, надо выяснять отдельно. Что там может быть сломано, да дофига чего может быть там сломано. И это запросто может не иметь к тебе вообще никакого отношения. Админ там какую-нибудь херню понастроил, в итоге оно на Яндекс ходит, а внутри не ходит. Это один из тысячи вариантов, на которые жалко время тратить. А ты думаешь “у меня там что-то с кодом неправильно! какой же я тупой!”.

У меня твой узел вообще не пингуется
[guest@localhost ~]$ .ping consiem.is01.zenit.ru
ping: consiem.is01.zenit.ru: Name or service not known
[guest@localhost ~]$
Значит, он закрыт. А при закрытии может куча настроек быть неправильно сделана. И админ тебе не скажет “знаешь, я такой дурачок, я пропёрся немного, когда настраивал”, он будет сидеть до талого и изображать, что всё правильно сделал, пока ему не посыпятся письма на почту “открой эту фигню, мы не можем подключиться”.



Отредактировано py.user.next (Сен. 3, 2020 01:13:13)

Офлайн

#9 Сен. 3, 2020 18:23:41

usmesn
Зарегистрирован: 2020-04-28
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

API ver 10.1 Siem Qradar + python

Удалось обойти прокси
import requests
один из вариантов
import os
os.environ = ‘*’


url = 'https://consiem.is01.zenit.ru/console/logon.jsp'
user_agent = {'User-Agent': ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36’}
response = requests.get(url=url, headers=user_agent, verify=False)
print(response.text)
получил 200 статус, пока нет времени получить то что нужно а также обработать результат с помощью API, а также не получилось curl забрать данные, хотя есть ключ –noproxy

Отредактировано usmesn (Сен. 3, 2020 18:25:50)

Офлайн

#10 Сен. 3, 2020 23:08:28

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9844
Репутация: +  853  -
Профиль   Отправить e-mail  

API ver 10.1 Siem Qradar + python

usmesn
import os
os.environ = ‘*’
А это здесь при чём? Ты точно уверен, что это хотя бы какую-то роль играет в соединении?

Попробуй именно User-Agent подавать, который через curl прекрасно подаётся.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version