Перейти к содержимому


Фото
- - - - -

Украли ноутбук, помогите с запросом к БД об IP-адресах

украли IP адрес

  • Please log in to reply
61 ответов в этой теме

#1 d.a.panov

d.a.panov

    Member

  • Posters
  • 132 Сообщений:

Отправлено 22 Ноябрь 2018 - 13:29

У организации украли ноутбук, в консоли ESS светится последний IP адрес, с которого агент подключался к серверу. Однако с 14 числа (с момента кражи) видно, что было 4 включения агента.

Помогите получить IP адреса и по прошлым сессиям, потому что возможно они разные.

Заранее спасибо!



#2 Afalin

Afalin

    Guru

  • Dr.Web Staff
  • 5 835 Сообщений:

Отправлено 22 Ноябрь 2018 - 13:33

select * from station_logins where id='station-id', где station-id можно посмотреть в свойствах станции.


Семь раз отрежь – один раз проверь

#3 d.a.panov

d.a.panov

    Member

  • Posters
  • 132 Сообщений:

Отправлено 22 Ноябрь 2018 - 13:37

select * from station_logins where id='station-id', где station-id можно посмотреть в свойствах станции.

Спасибо за быстрый ответ.

 

Запрос выдает ошибку.

Statement compile error: no such table: station_logins

Выполняю из SQL-консоли.

 

версия сервера ESS 10


Сообщение было изменено d.a.panov: 22 Ноябрь 2018 - 13:37


#4 Kirill Polubelov

Kirill Polubelov

    Hr. Schreibikus

  • Dr.Web Staff
  • 4 351 Сообщений:

Отправлено 22 Ноябрь 2018 - 16:02

Да, такой таблицы в 10-й версии нет. Впрочем, насколько я вижу, там, где она есть, хранится, тоже, только последний адрес. Но это не точно.

 

Если есть надежда, что они будут подключаться ещё, можно попробовать писать адреса через включение хука в "Администрирование" -> "Пользовательские процедуры" -> 'Examples of the hooks' -> "Станция подключена"

дописав в конец процедуры:

if args.id == '1' then
  dwcore.log( 'info', "Stolen station: [" .. args.id .. "] from address " .. args.address )
end

где вместо 1 укажите UUID искомой станции.

Не забудьте включить (поставить галку "Разрешить выполнение процедуры") для 'Examples of the hooks' и "Станция подключена".

Тогда, в логе сервера (drwcsd.log), при входе станции, будет запись вида

20181122.160001.88 inf [02291 01117 05] wrk:22 [ScriptLog] Stolen station: [your UUID] from address tcp://10.4.0.93:54808/st

Ну или не будет, если станция не придёт, или IP станции будет отсутствовать.


Ну и кол-во хранимых файлов лога желательно увеличить, чтобы не отротировалось полезное ненароком.


Сообщение было изменено Kirill Polubelov: 22 Ноябрь 2018 - 16:03

(exit 0)

#5 Afalin

Afalin

    Guru

  • Dr.Web Staff
  • 5 835 Сообщений:

Отправлено 22 Ноябрь 2018 - 16:13

версия сервера ESS 10

Вот с этого и надо было начинать.

Тогда, в логе сервера (drwcsd.log), при входе станции, будет запись вида

Это плохо тем, что время хранения и объём данных нельзя предсказать одновременно. Для этого лучше, имхо, отправлять что-либо на электропочту, например. По крайней мере всё прогнозируется и не должно теряться.


Семь раз отрежь – один раз проверь

#6 d.a.panov

d.a.panov

    Member

  • Posters
  • 132 Сообщений:

Отправлено 22 Ноябрь 2018 - 17:40

if args.id == '1' then
  dwcore.log( 'info', "Stolen station: [" .. args.id .. "] from address " .. args.address )
end

 

Для этого лучше, имхо, отправлять что-либо на электропочту, например. По крайней мере всё прогнозируется и не должно теряться.

 

 

Добрый день!

А где можно почитать документацию по написанию данных процедур?

какие объекты и их методы использовать? может с примерами кода есть описание?



#7 Kirill Polubelov

Kirill Polubelov

    Hr. Schreibikus

  • Dr.Web Staff
  • 4 351 Сообщений:

Отправлено 22 Ноябрь 2018 - 18:25

К сожалению, используемый там Lua API недокументирован чуть менее, чем полностью.

С электропочтой чуть больше нюансов. Чтобы не терять время, закиньте пока что есть.

Сервер на винде?

Если да, то в через реестр можно поправить в -rotate дефолтные 10,10m на какие-нибудь 50,100m должно хватить, если станций немного.

(в HKLM\SYSTEM\CurrentControlSet\Services\DrWebES\ImagePath)

Потребуется рестартануть ес-сервер.


Сообщение было изменено Kirill Polubelov: 22 Ноябрь 2018 - 18:26

(exit 0)

#8 Afalin

Afalin

    Guru

  • Dr.Web Staff
  • 5 835 Сообщений:

Отправлено 22 Ноябрь 2018 - 18:34

А где можно почитать документацию по написанию данных процедур?

К сожалению, в паблике этой информации нет.

может с примерами кода есть описание?
local e, err = dwcore.net_emailer( { to              = 'root@localhost',   -- sender
                                     from            = 'drwcsd@localhost', -- recipient
                                     host            = '127.0.0.1',        -- SMTP host
                                     port            = 25,                 -- SMTP port
                                     user            = '',                 -- SMTP user
                                     password        = '',                 -- SMTP password
                                     auth-plain      = false,              -- use simple authentication
                                     auth-login      = false,              -- use login authentication
                                     auth-cram-md5   = false,              -- use CRAM-MD5 authentication
                                     auth-digest-md5 = false,              -- use DIGEST-MD5 authentication
                                     auth-ntlm       = false,              -- use NTLM authentication
                                     starttls        = true,               -- use STARTTLS encryption
                                     ssl-verifycert  = false,              -- verify server SSL certificate
                                     ssl             = false,              -- use SSL/TLS encryption
                                     debug           = false               -- debug mode
                                     ssl-ca-certs    = ''                  -- path to ssl CA certificates file
                                   } )

if not e then
  return
end

e.send( 'body', 'subject' )

Семь раз отрежь – один раз проверь

#9 Kirill Polubelov

Kirill Polubelov

    Hr. Schreibikus

  • Dr.Web Staff
  • 4 351 Сообщений:

Отправлено 22 Ноябрь 2018 - 19:54

Так-то да, в общем, если охота попробовать на e-mail (тогда с -rotate в реестре нет нужды заморачиваться), то тело скрипта в вышеозначенном хуке, полностью будет выглядеть так:

--[[
Called:
  when Agent connected successfully

Database:
  available

Parameters:
  id         station ID
  address    station address
  station    station name
  os         station os
  platform   station platform

Returned value:
  ignored

]]

local args = ... -- args.id, args.address, args.station, args.os, args.platform

local stolen_st_id = '1'
local mail_subj = ""
local mail_body = ""

if args.id == stolen_st_id then
    mail_subj = "WARNING! Stolen station detected!"
    if args.address then
        mail_body = string.format('На сервер заглянула станция с id %s с IP-адреса %s\r\n Удачи в поимке!\r\n', args.id, args.address)
    else
        mail_body = string.format('Ops! На сервер заглянула станция с id %s но, к сожалению, её IP-адреса у нас нет.\r\n Удачи в поимке!\r\n', args.id)
    end
else
    os.exit()
end

-- Mail settings
local mail_host         = 'mailserver'
local mail_port         = 25
local mail_from         = 'testmail@mailserver'
local mail_to           = 'testresp@mailserver'
local mail_user         = 'testmail'
local mail_pass         = 'testmail'

-- Дополнительные настройки для почты.
-- Так, сейчас включен STARTTLS, если он не поддерживается, следует выставить это значение в false
-- Метод аутентификации (plain, digest и т.д.), сейчас подбирается автоматически, если требуется, его можно включить/выключить, выбрав только поддерживаемые.
local mailset = {
    from            = mail_from,
    to              = mail_to,
    host            = mail_host,
    user            = mail_user, 
    pass            = mail_pass,
    port            = mail_port,
    ssl             = false,
    debug           = false,
    auth_plain      = false,
    auth_login      = false,
    auth_cram_md5   = false,
    auth_digest_md5 = false,
    auth_ntlm       = false,
    starttls        = true,
    ssl_verifycert  = false,
    ssl_ca_certs    = "",
    conn_timeout    = 180 }

-- Создаём "инстанс", для отсылки письма.
local e, err = dwcore.net_emailer(mailset)

if not e then
  return false, err
end

-- Отсылаем e-mail..
local result, err = e.send(mail_body, mail_subj)
return result, err

Понадобится задать mail settings свои, для отправки.

Ну и проверьте вначале на какой-нибудь своей станции, неукраденной, а что под рукой, как на ее вход будет ли реакция, всё ли правильно задали.


Сообщение было изменено Kirill Polubelov: 22 Ноябрь 2018 - 19:57

(exit 0)

#10 d.a.panov

d.a.panov

    Member

  • Posters
  • 132 Сообщений:

Отправлено 23 Ноябрь 2018 - 12:11

Так-то да, в общем, если охота попробовать на e-mail (тогда с -rotate в реестре нет нужды заморачиваться), то тело скрипта в вышеозначенном хуке, полностью будет выглядеть так:

--[[
Called:
  when Agent connected successfully

Database:
  available

Parameters:
  id         station ID
  address    station address
  station    station name
  os         station os
  platform   station platform

Returned value:
  ignored

]]

local args = ... -- args.id, args.address, args.station, args.os, args.platform

local stolen_st_id = '1'
local mail_subj = ""
local mail_body = ""

if args.id == stolen_st_id then
    mail_subj = "WARNING! Stolen station detected!"
    if args.address then
        mail_body = string.format('На сервер заглянула станция с id %s с IP-адреса %s\r\n Удачи в поимке!\r\n', args.id, args.address)
    else
        mail_body = string.format('Ops! На сервер заглянула станция с id %s но, к сожалению, её IP-адреса у нас нет.\r\n Удачи в поимке!\r\n', args.id)
    end
else
    os.exit()
end

-- Mail settings
local mail_host         = 'mailserver'
local mail_port         = 25
local mail_from         = 'testmail@mailserver'
local mail_to           = 'testresp@mailserver'
local mail_user         = 'testmail'
local mail_pass         = 'testmail'

-- Дополнительные настройки для почты.
-- Так, сейчас включен STARTTLS, если он не поддерживается, следует выставить это значение в false
-- Метод аутентификации (plain, digest и т.д.), сейчас подбирается автоматически, если требуется, его можно включить/выключить, выбрав только поддерживаемые.
local mailset = {
    from            = mail_from,
    to              = mail_to,
    host            = mail_host,
    user            = mail_user, 
    pass            = mail_pass,
    port            = mail_port,
    ssl             = false,
    debug           = false,
    auth_plain      = false,
    auth_login      = false,
    auth_cram_md5   = false,
    auth_digest_md5 = false,
    auth_ntlm       = false,
    starttls        = true,
    ssl_verifycert  = false,
    ssl_ca_certs    = "",
    conn_timeout    = 180 }

-- Создаём "инстанс", для отсылки письма.
local e, err = dwcore.net_emailer(mailset)

if not e then
  return false, err
end

-- Отсылаем e-mail..
local result, err = e.send(mail_body, mail_subj)
return result, err

Понадобится задать mail settings свои, для отправки.

Ну и проверьте вначале на какой-нибудь своей станции, неукраденной, а что под рукой, как на ее вход будет ли реакция, всё ли правильно задали.

Коллеги, спасибо большое за информацию.

Удалось через лог сервера установить и другие IP адреса. Сопоставлял данные из консоли по подключению украденного клиента и данные лога сервера.

В момент подключения пишется такое событие

20181122.201436.30 inf [01612 07bc] wrk:3  tcp://XXX.XXX.XXX.XXX:56061/pc: Further protocol version 2.33

Однако уведомление на почту настрою.



#11 Afalin

Afalin

    Guru

  • Dr.Web Staff
  • 5 835 Сообщений:

Отправлено 23 Ноябрь 2018 - 12:26

В момент подключения пишется такое событие

20181122.201436.30 inf [01612 07bc] wrk:3  tcp://XXX.XXX.XXX.XXX:56061/pc: Further protocol version 2.33

Это слишком неточно, это ж никак не идентифицирует конкретную станцию.

Из коробки, только из штатных логов, на уровне trace3 и выше можно по команде LOGIN мониторить искомый id станции.


Семь раз отрежь – один раз проверь

#12 d.a.panov

d.a.panov

    Member

  • Posters
  • 132 Сообщений:

Отправлено 23 Ноябрь 2018 - 12:41

Все работает. Так по аналогии включил процедуру "Соединение с клиентом разорвано".

Еще раз спасибо.



#13 d.a.panov

d.a.panov

    Member

  • Posters
  • 132 Сообщений:

Отправлено 23 Ноябрь 2018 - 12:45

 

В момент подключения пишется такое событие

20181122.201436.30 inf [01612 07bc] wrk:3  tcp://XXX.XXX.XXX.XXX:56061/pc: Further protocol version 2.33

Это слишком неточно, это ж никак не идентифицирует конкретную станцию.

Из коробки, только из штатных логов, на уровне trace3 и выше можно по команде LOGIN мониторить искомый id станции.

 

Украденный ноут в нерабочее время подсоединятся.

Я взял данные из веб-интерфейса по запуску/завершению работы этой станции.

Далее смотрю в логе это время.

И в это время вижу всего одну запись.

Таким образом, установил 4 IP адреса. Все они из динамического диапазона одного из крупных провайдеров.

Уже сегодня следователь направил им запрос об установлении адреса точки подключения и абонента.

 

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


Сообщение было изменено d.a.panov: 23 Ноябрь 2018 - 12:45


#14 Afalin

Afalin

    Guru

  • Dr.Web Staff
  • 5 835 Сообщений:

Отправлено 23 Ноябрь 2018 - 13:39

А станция бывает подолгу онлайн? Если да – можно поупражняться, благо запускалка процессов в агенте есть.


Семь раз отрежь – один раз проверь

#15 OdaN

OdaN

    tough guy

  • Posters
  • 921 Сообщений:

Отправлено 23 Ноябрь 2018 - 14:17

А станция бывает подолгу онлайн? Если да – можно поупражняться, благо запускалка процессов в агенте есть.

Я себе представил, как сидит кто-то на диване, а ему открывается  блокнот с надписью "мы идем к вам" или что-то в этом духе :)


Best regards


#16 Eugeny Gladkih

Eugeny Gladkih

    the Spirit of the Enlightenment

  • Dr.Web Staff
  • 5 295 Сообщений:

Отправлено 23 Ноябрь 2018 - 22:04

 

А станция бывает подолгу онлайн? Если да – можно поупражняться, благо запускалка процессов в агенте есть.

Я себе представил, как сидит кто-то на диване, а ему открывается  блокнот с надписью "мы идем к вам" или что-то в этом духе :)

 

 

А какие проблемы? Послать сообщение где написать все, что вы думаете о воре. Он его ж при подключении увидит.



#17 Aleksandra

Aleksandra

    VIP

  • Helpers
  • 3 575 Сообщений:

Отправлено 23 Ноябрь 2018 - 23:15

 

 

А станция бывает подолгу онлайн? Если да – можно поупражняться, благо запускалка процессов в агенте есть.

Я себе представил, как сидит кто-то на диване, а ему открывается  блокнот с надписью "мы идем к вам" или что-то в этом духе :)

 

 

А какие проблемы? Послать сообщение где написать все, что вы думаете о воре. Он его ж при подключении увидит.

 

Только спугнете преступника, пока его не отследили никаких сообщений посылать не надо.


 


Мужчины мне ничего не должны, именно поэтому я легко их отпускаю.

#18 SergSG

SergSG

    The Master

  • Posters
  • 14 425 Сообщений:

Отправлено 24 Ноябрь 2018 - 10:59

 

 

 

А станция бывает подолгу онлайн? Если да – можно поупражняться, благо запускалка процессов в агенте есть.

Я себе представил, как сидит кто-то на диване, а ему открывается  блокнот с надписью "мы идем к вам" или что-то в этом духе :)

 

А какие проблемы? Послать сообщение где написать все, что вы думаете о воре. Он его ж при подключении увидит.

 

Только спугнете преступника, пока его не отследили никаких сообщений посылать не надо.

Это, если его ищут. Что вряд ли. А так, обделается испугом и может задумается на будущее. :)



#19 IlyaS

IlyaS

    Massive Poster

  • Posters
  • 2 911 Сообщений:

Отправлено 24 Ноябрь 2018 - 16:20

Если б была функция антивор для ЕС агента...

#20 maxic

maxic

    Keep yourself alive

  • Moderators
  • 12 814 Сообщений:

Отправлено 24 Ноябрь 2018 - 17:07

IlyaS, как вы себе представляете этот функционал?





Also tagged with one or more of these keywords: украли, IP адрес

Читают тему: 0

0 пользователей, 0 гостей, 0 скрытых