среда, 28 ноября 2012 г.

Простой метод отправки TCP или UDP пакетов из bash

Чтобы из баша отправить UDP- или TCP-сообщение достаточно выполнить одну из команд:
 $ echo “hello” > /dev/tcp/192.168.2.101/58549
 $ echo “hello” > /dev/udp/192.168.2.101/58549

Где udp/tcp - тип протокола, 192.168.2.101 - ip-адрес получателя, 58549 - порт.

Если требуется что-то посерьёзней - можно воспользоваться утилитой sendip

Временное отключение логгирования bash

Через переменную окружения отправляем bash (и остальные оболочки) писать хистори в /dev/null:
$ export HISTFILE=/dev/null

понедельник, 19 ноября 2012 г.

pcap без привелегий root

 Чтобы для работы tcpdump (или wireshark, да и вообще любой утилиты, использующей libpcap) не требовалось привилегий рута нужно задать для утилиты соответствующие привилегии с помощью setcap:
$ sudo setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' <application>  
Пример для tcpdump:
$ sudo setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/sbin/tcpdump
Посмотреть разрешения для программы можно с помощью getcap, например:
 $ getcap /usr/sbin/tcpdump  
 /usr/sbin/tcpdump = cap_net_admin,cap_net_raw+eip  
В Debian утилита setcap предоставляется пакетом libcap2-bin

Sniffing USB с помощью tcpdump

Ололо, оказывается с помощью tcpdump можно ловить USB-пакеты. Для реверсинжиниринга драйверов нужно запустить виртуалку с виндой, пробросить туда usb-устройство, поставить виндовые драйвера для этого устройства и можно начинать анализировать. Как оказалось, для упрощения анализа можно использовать wireshark.




Пока немного ссылок по теме, попзжа (если не забуду...) постараюсь раскрыть тему:
http://omappedia.org/wiki/USB_Sniffing_with_tcpdump
http://www.opennet.ru/tips/2479_usb_pcap_tcpdump_monitoring_sniffer.shtml

вторник, 13 ноября 2012 г.

tcpdump с параметром -z и Permission denied в Ubuntu

Потребовалось мне тут запустить tcpdump с параметром "-z" для того чтобы передать очередную порцию накопленных данных в свой скриптик, да не тут-то было:
 compress_savefile:execlp(myscript.sh, dump-2012-11-13-1148): Permission denied  
Что с этим делать? И ни в какую не работает, даже из-под рута... Ответ нашёлся в рассылке wireshark: проблема специфична для Ubuntu из-за соответствующего правила (профиля) AppArmor.

Посмотрим что есть в AppArmor для tcpdump:
 sudo grep tcpdump /sys/kernel/security/apparmor/profiles  
 /usr/sbin/tcpdump (enforce)  

Ок, изменяем профиль на complain:
 sudo aa-complain /usr/sbin/tcpdump  
Вуаля! Усё работает!