PDA

Показать полную графическую версию : [решено] Как отследить использование CMD


MegaZAC
12-07-2013, 17:07
Имеется сетевая папка, на которой регулярно много приложений, в том числе скриптовых, делают массу разных вещей. В результате неких действий CMD.EXE нужные файлы временами удаляются. Как узнать что за приложение, либо BAT-файл используют CMD для удаления этих файлов?

Iska
12-07-2013, 17:45
Сначала выясните под каким пользователем и откуда сие происходит. Затем используйте Process Monitor.

MegaZAC
12-07-2013, 17:58
Беда в том что надо выяснить это как-нибудь в бэкграунде. 24 часа в сутки там выполняется приложение на весь рабочий стол, которое нельзя ни свернуть, ни вообще что-то с ним делать. Хотя, я ведь могу запустить Process Monitor, и он будет писать лог...
Мне нужен именно лог, статистика за как минимум сутки. Мощность девайса может не потянуть Process Monitor с толстым логом, и одновременно выполнение основного приложения.

+ ещё одна фича - машин где такое происходит много, и есть необходимость контроля происходящего на всех них. Process Monitor, как я понимаю, надо будет руками запускать на каждой из них, настраивать на нужные файлы, и затем руками же смотреть что он там нашёл? И ведь Process Monitor тоже самое, покажет что работает CMD, а что за приложение или скрипт запустило CMD, не покажет? Подскажите как настроить Process Monitor чтобы показал, если такое возможно.

Iska
12-07-2013, 18:43
+ ещё одна фича - машин где такое происходит много »
Речь выше шла вроде как об одном-единственном сетевом ресурсе. Или Вы что-то опустили в своём рассказе?

Подскажите как настроить Process Monitor чтобы показал, если такое возможно. »
Process — Create/Start. В свойствах искомого «cmd.exe» смотрите «Parent PID», затем ищете в логе такой PID и определяете по нём имя/путь процесса, породившего искомый «cmd.exe».

MegaZAC
12-07-2013, 20:13
Ну это одна локалка, в которой стоят одинаковые машины, клоны друг друга, каждый выполняю одну и ту же, но свою одинаковую задачу. Файлы, папки, всё одинаковое. Т.е. имеем условно 10 путей \\192.168.х.х\х\то_что_надо\, где и нужно выяснить автора беспредела.

Можно ли это сделать без установки на каждую локальную машину дополнительного софта? Скажем, то что инструментом беспредела является CMD.EXE удалось выяснить через аудит локальных политик, теперь всё пишет в виндовый лог. Вот может есть какой-нибудь подобный способ? Или можно ли встроить в BAT файл какую-нить команду чтобы он писал в лог и свои действия, и действия всех дочерних и сторонних BATов и прочих скриптов и приложений?

MegaZAC
15-07-2013, 16:27
И да, если решать через Process Monitor, то надо как-то через автозагрузку, т.к. то что надо отловить происходит вместе с загрузкой. Есть идеи как?

Petya V4sechkin
15-07-2013, 16:38
надо как-то через автозагрузку
Process Monitor - мониторинг включения системы (http://xaegr.wordpress.com/2009/07/27/procmon-bootlogging/)
Дело об автозагрузке Windows (http://www.outsidethebox.ms/14645/)

MegaZAC
16-07-2013, 17:33
Не пашет! Вот что что пишут по этой проблеме, такое решение создаёт больше проблем. http://forum.sysinternals.com/cannot-run-procmon-on-xp-embedded_topic17489.html

Система - XP embedded.

Foreigner
16-07-2013, 18:55
MegaZAC,
Может решить часть проблемы, будет записывать в лог строку вызова cmd. Для этого необходимо прописать в автозагрузку cmd.exe в:

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun

и/или

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun
такую строку:

echo %date% %time% %username% %cmdcmdline% >> "C:\Somewhere\cmdlog.txt"
ЗЫ. Параметра Autorun в данных ключах по умолчанию нет (надо создать типа REG_SZ или REG_EXPAND_SZ).

ЗЫЫ. Ага, кроме того отображает внешние команды запускаемых батников.

MegaZAC
16-07-2013, 20:27
А можно поподробнее про создание требуемых REG_SZ или REG_EXPAND_SZ?

MegaZAC
17-07-2013, 00:23
Блин, ну вот извините за ламерство, но у меня указанные вещи не вызывают никаких ассоциаций.

Iska
17-07-2013, 00:45
MegaZAC, непонятно, что именно Вам непонятно.

Если ключ /D НЕ УКАЗАН в командной строке, то при запуске CMD.EXE выполняется проверка значений переменных REG_SZ или REG_EXPAND_SZ для следующих разделов системного реестра:
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun
и/или
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun
и если одна из них или обе они присутствуют, то сначала выполняются они.


Один из примеров использования параметра: AutoIt: смена языка ввода на Английский в новых окнах консоли cmd.exe. — Прочее (Реестр, 1С, текстовые редакторы и т.д.) — Серый форум (http://forum.script-coding.com/viewtopic.php?id=2724).

MegaZAC
17-07-2013, 10:28
Это то что нужно! Громадное спасибо всем кто поучаствовал, мы уже на финишной прямой.

Осталось где-то создать REG_SZ или REG_EXPAND_SZ , а то в лог так и пишутся %xxx% записи. Где что создавать?

Поправочка - в логе записи имеют неоднозначный вид. Т.е. где-то в дате указывается 2013 вместо года, а где-то просто 13. И с пользователем где-то реально пишется имя пользователя, а где-то по-прежнему %username%. Остальные все как один %cmdline%...

Всё, тему можно закрывать, я окончательно допёр с помощью хелпа к cmd и гугла :) Всем большое спасибо, особенно ветерану ;)

Iska
17-07-2013, 12:45
MegaZAC, когда какие-то вопросы решаются Вами/отпадают, и Вы правите свой пост — не поленитесь воспользоваться тэгом (http://forum.oszone.net/misc.php?do=bbcode#strike) — [STRIKE]вот так — и пометить им текст, на который уже не нужно обращать внимание.

MegaZAC
18-07-2013, 17:51
Iska,
ОК, учту.

Господа, не работает решение. Всё так, пишет лог того что делает CMD, даже с батниками, однако искомая информация туда не попала. Есть другой лог (через аудит event), там отражено что cmd.exe во время чч:мм:сс удалило такой-то файл. А в логе созданном с помощью данной темы ничего про это нет. Т.е. ни BATа который запустил CMD, ни самого удаления, ни вообще в указанное время в логе тишина.

Iska
18-07-2013, 17:55
там отражено что cmd.exe во время чч:мм:сс удалило такой-то файл. »
Хоть покажите это событие, что ли.

MegaZAC
19-07-2013, 16:32
Iska,
там два события подряд, доступ, и удаление.

http://i41.tinypic.com/10ooahe.jpg

http://i42.tinypic.com/2vbsmcm.jpg

MegaZAC
22-07-2013, 12:54
Идей нет? :search:

MegaZAC
22-07-2013, 16:19
Появилась идея. Папка расшарена, и в неё могут писать другие компы. Есть ли способ узнать какое приложение какого удалённого компа могло стереть файлы?




© OSzone.net 2001-2012