ARP монитор.

Вы хотите поделится своими решениями для конкретных задач? У Вас есть советы и хитрости? Расскажите о них здесь.

ARP монитор.

Непрочитанное сообщение Raven2000 » 15 сен 2010, 09:59

Простой скрипт для выявления машин которые рассылают много arp пакетов, что может быть связанно с заражением их или неправильной настройкой.
На сбор данных может быть потрачено много времени тк сеть может быть без проблемной.
Код: Выделить всё
# cat arp_packets.sh
#!/bin/sh
tcpdump -l -n arp | grep "who-has" | head -5 | awk '{ print $NF }' | sort | uniq -c | sort -n

head - может быть увеличен до 10 например единиц.
Если хочешь разобраться... Так иди и разбирайся!
[ igNix.ru | Технология жизни - технологии будущего ] [ Forum.igNix.ru ]
Аватара пользователя
Raven2000
-=_UNIX_=-
-=_UNIX_=-
 
Сообщения: 680
Зарегистрирован: 14 сен 2010, 13:08
Откуда: Там, где нас нет.
Благодарил (а): 1 раз.
Поблагодарили: 37 раз.

Re: ARP монитор.

Непрочитанное сообщение server801 » 21 авг 2011, 14:52

Код: Выделить всё
sh arp_packets.sh
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on em0, link-type EN10MB (Ethernet), capture size 96 bytes
   2 28
   3 46
139 packets captured
5421 packets received by filter
0 packets dropped by kernel

Интересно - что означает?
Аватара пользователя
server801
Ученик
Ученик
 
Сообщения: 55
Зарегистрирован: 22 сен 2010, 21:57
Благодарил (а): 5 раз.
Поблагодарили: 0 раз.

Re: ARP монитор.

Непрочитанное сообщение Raven2000 » 21 авг 2011, 22:18

хм не выдал IP а только его последный октет 2 и 3
надо побаловаться с tcpdump -l -n arp | grep "who-has" | head -5 | awk '{ print $NF }' | sort | uniq -c | sort -n
попробуй запускать по частям и выяснить что режет (без head -5 попробуй)
Если хочешь разобраться... Так иди и разбирайся!
[ igNix.ru | Технология жизни - технологии будущего ] [ Forum.igNix.ru ]
Аватара пользователя
Raven2000
-=_UNIX_=-
-=_UNIX_=-
 
Сообщения: 680
Зарегистрирован: 14 сен 2010, 13:08
Откуда: Там, где нас нет.
Благодарил (а): 1 раз.
Поблагодарили: 37 раз.

Re: ARP монитор.

Непрочитанное сообщение ttys » 19 дек 2011, 17:59

Raven2000 писал(а):хм не выдал IP а только его последный октет 2 и 3
надо побаловаться с tcpdump -l -n arp | grep "who-has" | head -5 | awk '{ print $NF }' | sort | uniq -c | sort -n
попробуй запускать по частям и выяснить что режет (без head -5 попробуй)

что значит $NF ? xz
Аватара пользователя
ttys
*BSD
*BSD
 
Сообщения: 189
Зарегистрирован: 15 сен 2010, 08:42
Откуда: Ростов-на-Дону
Благодарил (а): 5 раз.
Поблагодарили: 3 раз.

Re: ARP монитор.

Непрочитанное сообщение ttys » 19 дек 2011, 18:26

Код: Выделить всё
Конструкцию, используемую для вывода строк соответствующих заданной маске:
   awk '{if ($0 ~ /pattern/) print $0}'

можно сократить до
   awk '/pattern/'

Условие в awk может быть задано вне скобок, т.е. получаем:
   awk '$0 ~ /pattern/ {print $0}'

По умолчанию, действия производятся со всей строкой, $0 можно не указывать:
   awk '/pattern/ {print}'

print - является действием по умолчанию, его тоже можно не указывать.
   awk '/pattern/'

Для вывода значения первого столбца строки, в которой присутствует маска LEGO:
   awk '/LEGO/ {print $1}'

Для вывода значения первого столбца строки, во втором столбце которой присутствует маска LEGO:
   awk '$2 ~ /LEGO/ {print $1}'

Для замены слова LIGO на LEGO и вывода только измененных строк можно использовать:
   awk '{if(sub(/LIGO/,"LEGO")){print}}'

Но есть нужно выводить все строки (как sed 's/LIGO/LEGO/'), конструкцию можно упростить
(1 - true для всех строк):
   awk '{sub(/LIGO/,"LEGO")}1'

Вывести все строки, за исключением каждой шестой:
   awk 'NR % 6'

Вывести строки, начиная с 6 (как tail -n +6 или sed '1,5d'):
   awk 'NR > 5'

Вывести строки, в которых значение второго столбца равно foo:
   awk '$2 == "foo"'

Вывести строки, в которых 6 и более столбцов:
   awk 'NF >= 6'

Вывести строки, в которых есть слова foo и bar:
   awk '/foo/ && /bar/'

Вывести строки, в которых есть слово foo, но нет bar:
   awk '/foo/ && !/bar/'

Вывести строки, в которых есть слова foo или bar (как grep -e 'foo' -e 'bar'):
   awk '/foo/ || /bar/'

Вывести все непустые строки:
   awk 'NF'

Вывести все строки, удалив содержимое последнего столбца:
   awk 'NF--'

Вывести номера строк перед содержимым:
   awk '$0 = NR" "$0'

Заменим команды (пропускаем 1 строку, фильтруем строки с foo и заменяем foo на bar,
затем переводим в верхний регистр и выводим значение второго столбца)
   cat test.txt | head -n +1 | grep foo | sed 's/foo/bar/' | tr '[a-z]' '[A-Z]' | cut -d ' ' -f 2

аналогичной конструкцией на awk:
   cat test.txt | awk 'NR>1 && /foo/{sub(/foo/,"bar"); print toupper($2)}'

http://www.opennet.ru/tips/info/1811.shtml
Аватара пользователя
ttys
*BSD
*BSD
 
Сообщения: 189
Зарегистрирован: 15 сен 2010, 08:42
Откуда: Ростов-на-Дону
Благодарил (а): 5 раз.
Поблагодарили: 3 раз.


Вернуться в Howtos и FAQs

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

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

cron