powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Помогите со скриптом.
25 сообщений из 41, страница 1 из 2
Помогите со скриптом.
    #33702913
Фотография APM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть лог веб сервера.
формат такой
Код: plaintext
1.
2.
3.
 2006 - 04 - 25   23 : 34 : 19  HEAD /bin/scripts/winnt/system32/cmd.exe /c+dir+f:\  82 . 49 . 129 . 27  - -  200   223   5667 
 2006 - 04 - 25   23 : 34 : 19  GET /bin/scripts/winnt/system32/cmd.exe /c+dir+f:\  82 . 49 . 129 . 27  - -  200   5703   117 
 2006 - 04 - 25   23 : 34 : 20  HEAD /bin/scripts/winnt/system32/cmd.exe /c+dir+g:\  82 . 49 . 129 . 27  - -  200   223   5667 
Хочется следующего.

Выбрать из него записи, по критериям, например содержащим строки cmd.exe, thisdoesnoteesist.php, something и тд
Далее составить список уникальных ip с которых эти запросы приходили
ну и выполнит для этих ip что то вроде
Код: plaintext
ipfw add deny all from $ip to any

grep строк c критериями как я понимаю не проблема, вот как выбрать уникальные ip - не знаю.

Подскажите чего нить, или может другой путь отсекания недохакеров...
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33702933
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s/\(.*\)\(\d*\.\d*.\d*\.\d*\)\(.*\)/\2/

\(что угодно\) \(цифры точка цифры точка цифры точка цифры\) \(что угодно\)
заменить на второе выражение.

результат после грепа пропустить через сед с таким скриптом -
останутся только айпи адреса в строчке.
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33702934
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
* заменить на то, что распознано вторым выражением.
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33702936
Фотография APM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про регексп понял,
а как дублирование их исключить?
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33702937
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
о тока нашел.


sort --help

unique --help
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33702939
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
uniq
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33702940
Фотография APM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А кстати, что то с обратной ссылкой не так
Код: plaintext
1.
cat /var/log/my.log | grep cmd.exe | sed -E  s/\(.*\)\(\d*\.\d*\.\d*\.\d*\)\(.*\)/\ 2 /

результат
Код: plaintext
1.
2.
3.
4.
\ 2 
\ 2 
\ 2 
\ 2 
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33702941
Фотография APM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Простите в предыдущем посте в результатх слеша нет

Выполняем
Код: plaintext
1.
cat /var/log/my.log | grep cmd.exe | sed -E  s/\(.*\)\(\d*\.\d*\.\d*\.\d*\)\(.*\)/\ 2 / | uniq
Получаем
Код: plaintext
 2 

уже близко,
дальше наверно xargs какой нить с ipfw
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33702943
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гм.
у меня выдает айпи адресс
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33702947
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно вместо \d* \d+ поставить. в виндюках в седе плюса нет.
или \d* +> \d\d*
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33702949
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а так чтоли 1 будет выдаваться?
Код: plaintext
1.
cat /var/log/my.log | grep cmd.exe | sed -E  s/.*\(\d*\.\d*\.\d*\.\d*\).*/\1/
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33702952
Фотография APM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да - выдает 1.

читаю man regexp но не могу найти синтаксиса обратных ссылок.

Кстати совсем забыл выполняется это на машине freebsd 5.3
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33702954
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
замени соверменные регулярные выражения E на базик e
если \d будет не понимать, то [0-9]
sed -e command
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33702959
Фотография APM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обратные ссылки наверно не причем.

Поменял звездочки на плюс, теперь это выглядит так
Код: plaintext
1.
 cat /var/log/sipay.log | grep cmd.exe | sed   s/\(.+\)\(\d+\.\d+\.\d+\.\d+\)\(.*\)/\ 2 / | sort -u

Результат
Код: plaintext
1.
2.
3.
 2006 - 04 - 25   23 : 34 : 19  GET /bin/scripts/winnt/system32/cmd.exe /c+dir+f:\  82 . 49 . 129 . 27  - -  200   5703   117 
 2006 - 04 - 25   23 : 34 : 19  HEAD /bin/scripts/winnt/system32/cmd.exe /c+dir+f:\  82 . 49 . 129 . 27  - -  200   223   5667 
 2006 - 04 - 25   23 : 34 : 20  GET /bin/scripts/winnt/system32/cmd.exe /c+dir+g:\  82 . 49 . 129 . 27  - -  200   5703   117 

что то я в замешательстве...
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33702961
Фотография APM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не пойму что то.

Такое ощущение что сед вобще поиск замену не делает.

Тупо вписал три раза \d
Код: plaintext
1.
cat /var/log/my.log | grep cmd.exe | sed -e  s/\(.+\)\(\d\d\d\.\d\d\d\.\d\d\d\.\d\d\d\)\(.*\)/\ 6 /
изменил на [0-9]
Код: plaintext
1.
 cat /var/log/my.log | grep cmd.exe | sed -e  s/\(.+\)\([ 0 - 9 ]+\.[ 0 - 9 ]+\.[ 0 - 9 ]+\.[ 0 - 9 ]+\)\(.*\)/\ 2 / | sort -u

результат один

Код: plaintext
1.
2.
3.
 2006 - 04 - 25   23 : 34 : 20  HEAD /bin/scripts/winnt/system32/cmd.exe /c+dir+g:\  82 . 49 . 129 . 27  - -  200   223   5667 
 2006 - 04 - 25   23 : 34 : 21  HEAD /bin/scripts/winnt/system32/cmd.exe /c+dir+c:\  82 . 49 . 129 . 27  - -  200   223   5645 
 2006 - 04 - 25   23 : 35 : 15  GET /bin/scripts/winnt/system32/cmd.exe /c+dir+c:\  82 . 49 . 129 . 27  - -  200   0   95 
 2006 - 04 - 28   01 : 19 : 37  GET /scripts/..%5c%5c../winnt/system32/cmd.exe /c+dir  60 . 12 . 81 . 52  - -  200   0   59 
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33702962
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мда. второе подвыражение явно не выбралось.
похоже что с в выражении с плюсами поток после седа не изменился вообще.
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33702966
Фотография APM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
 echo alskdfjsdaf sadoifj asd  123 . 123 . 123 . 123  > test.log
 cat test.log |sed -e s/\(.*\) 123 \(.*\)/\ 2 /
cat test.log |sed -e s/\(.*\) 123 \. 123 \. 123 \. 123 \(.*\)/\ 2 /
результат оба раза
Код: plaintext
1.
alskdfjsdaf sadoifj asd  123 . 123 . 123 . 123 
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33702970
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
sed -e  "s/\(.*\)\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)\(.*\)/\2/"

это на бсд попробовал.
работает
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33702973
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
\2 это номер выражения в скобках \( \)
поэтому числа точка - надо взять в скобки обязательно
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33702974
Фотография APM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мда, кавычки помогли

Код: plaintext
1.
2.
3.
4.
5.
6.
 cat /var/log/my.log | grep cmd.exe | sed -e  "s/\(.*\)\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)\(.*\)/\2/" | sort -u
 0 . 12 . 81 . 52 
 2 . 23 . 146 . 125 
 2 . 38 . 188 . 30 
 2 . 49 . 129 . 27 
{...}

Обратите внимание что первый октент или как он там называется, всегда из последней цифры состоит. Т.е. надо заставить регексп быть жадным - чтоб максимум цифр брал...
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33702975
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и двойные кавычки зачемто надо на bsd
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33702976
Фотография APM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и еще маленькая проблема с регекспом.

Посмотрим на строку лога типа

Код: plaintext
1.
 2006 - 05 - 02   23 : 57 : 21  GET /scripts/..%5c%5c../winnt/system32/cmd.exe /c+ping+-n+ 50 +-l+ 30000 + 220 . 189 . 231 . 58   60 . 12 . 81 . 52  - -  200   0   90 

Как видно в ней два ип адреса, нам нужен самый правый. как интересно это указать...
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33702978
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1
он и так жадный
пробел вставить перед цифрой
Код: plaintext
1.
2.
"s/\(.*\)\( [0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)\(.*\)/\2/"


2
втотое подвыражение в скобках распознает первый айпи
третье - второй
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33702981
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
"s/\(.*\)\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)\( [0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)\(.*\)/\3/"
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33702982
Фотография APM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про пробел понял - проверил работает.

Про третье выражение извините не допонял, если недохакер пришлет get запрос c 10 айпишниками в тексте то мне из лога нужен будет 11-эй.
...
Рейтинг: 0 / 0
25 сообщений из 41, страница 1 из 2
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Помогите со скриптом.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]