|
ы
Регистрация: 11.02.2007
Сообщений: 750
Провел на форуме: 1347723
Репутация:
1477
|
|
[Nepenthes]
Nepenthes, как уже было сказано, это honeypot низкого уровня имитации, работающий под управлением *NIX-серверов и обеспечивающий достаточную функциональность для того, чтобы одурачить вредоносную начинку червя или бота, эмулируя стандартные Windows-сервисы. Nepenthes пытается загрузить вредоносный код заразы в свое хранилище, затем отправляет его на анализ в специальную песочницу коммерческого продукта Norman Sandbox, который эмулирует более 3000 WinAPI, инжектирование в процесс, многопоточность, множество сетевых протоколов (POP3, DNS, IRC, HTTP, ICQ, P2P) и т.д.. В ответ системный администратор по истечение короткого промежутка времени получает готовый отчет об действиях малвари на свой электронный адрес. После заражения, атакующий зловред может попросить nepenthes соединиться с некоторым адресом на некоторый порт, забиндить порт в системе, выполнить какую-либо команду в командной оболочке, скачать что-либо вкусное по заданному url или загрузить что-либо, используя некоторый механизм передачи файлов (link, blink, mydoom и тому подобные), а также с использованием ftp или tftp. Если зараза просит забиндить порт или запустить connectback, эмулятор выполняет все затребованные действия. В любом случае конечной целью сенсора будет загрузка чего-либо «вкусненького» в свое чрево для последующего анализа, причем это может быть не обязательно тело червя или self-spereading бота. Самым вкусным здесь будут шеллкоды. Hey, Guys, do you want 0-day stuff?! ;) Но это еще не все, ведь можно и ботнет угнать, руководствуясь отчетом Norman Sandbox... Nepenthes получил свое имя достаточно метко – он назван в честь хищного растения-мухолова Nepenthes. Вдаваться в ботанику я не буду, если тебе действительно интересно, отправляйся на http://en.wikipedia.com за более подробной информацией. Конечно, тебе уже не терпится потрогать этот пакет своими руками. Пребилды или преконфигурированные пакеты есть для следующих систем:
- Gentoo
- Debian
- FreeBSD
- OpenBSD
Для пользователей Debian требуется всего-навсего выполнить apt-get install nepenthes. Для Gentoo Linux это будет выглядеть как emerge nepenthes. Вот что требуется для установки:
shados # emerge -pv --deep nepenthes
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild N ] net-libs/adns-1.3 0 kB
[ebuild N ] net-analyzer/nepenthes-0.2.0 USE="(-selinux)" 0 kB
Total: 2 packages (2 new), Size of downloads: 0 kB
Основными зависимостями для Linux являются библиотеки
-libcurl (библиотека утилиты curl для передачи файлов по URL-соглашению)
-libmagic (для определения типа файла)
-libpcre (использование Perl-совместимых регулярных выражения)
-libadns (для асинхронного резолвинга DNS)
-libcap (предназначена для использования возможностей ядра)
-libpcap (библиотека для дампа сетевых пакетов)
Помио прочего для модуля honeytrap в Linux понадобится iptables, соответственно для FreeBSD – ipfw. Подробнее об установке зависимостей, да и вообще об установке, в т.ч для MacOS X и cygwin под Windows можно прочитать в Readme по nepenthes на официальном сайте.
Теперь перейдем к настройке. Первым делом необходимо изменить некоторые параметры в файле /etc/nepenthes/nepenthes.conf, разкомментировав строку "submitnorman.so", "submit-norman.conf", "".
Это позволит нам воспользоваться Norman Sandbox для получения копий результатов run-time анализа загруженных бинарников на твою электронную почту. Содержимое submit-norman.conf должно выглядеть примерно как на листинге 2.
Листинг 1
submit-norman
{
// this is the address where norman sandbox reports will be sent
email "shados@real.xakep.ru";
};
Естественно, что вместо моего адреса сдесь должен быть твой.
Далее добавим nepenthes в автозагрузку на уровень default (для Gentoo):
shados # rc-update add nepenthes default
* nepenthes added to runlevel default [OK]
shados # /etc/init.d/nepenthes start
* Starting nepenthes ... [OK]
Теперь сервис nepenthes будет автоматически стартовать при каждом перезапуске системы. Сразу после запуска в конфигурации по умолчанию nepenthes должен слушать большое количество TCP/IP портов, вроде тех, что указанны на листинге 3.
Листинг 3
shados # netstat -pa | grep nepenthes
tcp 0 0 *:imaps *:* LISTEN 7596/nepenthes
tcp 0 0 *:pop3s *:* LISTEN 7596/nepenthes
tcp 0 0 *:3140 *:* LISTEN 7596/nepenthes
tcp 0 0 *:epmap *:* LISTEN 7596/nepenthes
tcp 0 0 *:5000 *:* LISTEN 7596/nepenthes
tcp 0 0 *:nameserver *:* LISTEN 7596/nepenthes
...
Вывод урезан для удобства, но среди всех открытых портов ты обязательно обнаружишь твои любимые 445, 135, 3140, если, конечно, они не заняты чем-нибудь (например 135 – samba). Посему для целей ханейпота желательно использовать выделенную машину, а все явно светящиеся порты, не относящиеся к эмуляции Windows, необходимо извне прикрыть (-j DROP) с помощью iptables, т.к они могут выдать honeypot с ушами при обычном сканировании nmap'ом. Но об этом позже.
Будем считать, что теперь все готово для использования, так как с остальными мелкими нюансами ты сам вполне сможешь разобраться, обажившись документацией и дотошно вкуривая man nepenthes и man nepenthes.conf (в часном случае аналогично info). Если, конечно, все свои изыскания ты проводишь в Интернете, а не в маленькой локалке, то через несколько минут (я после установки получил первый же образец malware уже через 1,5 минуты) сенсор nepenthes запишет в /var/log/nepenthes/logged_downloads и /var/log/nepenthes/nepenthes.log первую информацию (в зависимости от настройки ведения логов). Например, в logged_downloads можно будет увидеть записи наподобие листинга 4.
Листинг 4
shados # tail -n 3 ./logged_downloads
[2007-01-09T10:06:52] xxx.xxx.78.158 -> yyy.yyy.136.243 tftp://xxx.xxx.78.158/config.exe
[2007-01-09T11:47:19] xxx.xxx.137.89 -> yyy.yyy.136.243 tftp://xxx.xxx.137.89/ctfmom.exe
[2007-01-09T12:39:07] xxx.xxx.144.212 -> yyy.yyy.136.243 ftp://1:1@xxx.xxx.144.212:29154/eraseme_35862.exe
Надеюсь, смысл записей здесь вполне понятен. Далее админу самому решать, блокировать ли эти адреса, или собирать коллекцию заразы, которая приходит с них. Все загруженные файлы хранятся в папке /var/lib/nepenthes/binaries с именами в виде их md5-сумм:
shados # ls -lah
-rw-r--r-- 1 nepenthes nepenthes 1.3M Dec 25 05:07 fa96d82f8a00d32ed140641153714715
-rw-r--r-- 1 nepenthes nepenthes 94K Jan 4 01:42 fdb99325e908b93da353cd2661823b7e
-rw-r--r-- 1 nepenthes nepenthes 57K Dec 25 02:52 ff211ee0d9313bdaa1cdd9540955bd19
...
Каждый такой файл прямиком отправляется в песочницу к Норману ;), а в качестве отчета приходит письмо следующего содержания (например, для Backdoor.Win32.Rbot.gen IRC-бот):
Листинг 5
nepenthes-eac5fd7b9d8172ecd1fc1a5d950e441e-MSSDEV.EXE : W32/Spybot.gen4 (Signature: W32/Spybot.BDAU)
[ General information ]
* File length: 141824 bytes.
* MD5 hash: eac5fd7b9d8172ecd1fc1a5d950e441e.
[ Changes to filesystem ]
* Creates file C:\WINDOWS\SYSTEM32\MSSDEV.EXE.
* Deletes file 1.
[ Changes to registry ]
* Creates value "iexplorers"="C:\WINDOWS\SYSTEM32\MSSDEV.EXE" in key "HKLM\Software\Microsoft\Windows\CurrentVersion\Ru n".
* Creates value "iexplorers"="C:\WINDOWS\SYSTEM32\MSSDEV.EXE" in key "HKLM\Software\Microsoft\Windows\CurrentVersion\Ru nServices".
* Creates key "HKCU\Software\Microsoft\OLE".
* Sets value "iexplorers"="C:\WINDOWS\SYSTEM32\MSSDEV.EXE" in key "HKCU\Software\Microsoft\OLE".
[ Network services ]
* Looks for an Internet connection.
* Connects to "irc.someserver.com" on port 1982 (TCP).
* Connects to IRC Server.
* IRC: Uses nickname ezkie.
* IRC: Uses username ezkie.
* IRC: Joins channel #<ИМЯ КАНАЛА> with password <ПАРОЛЬ>.
* IRC: Sets the usermode for user ezkie to +i-x.
* IRC: Uses nickname htpse.
* IRC: Sets the usermode for user htpse to +i-x.
* IRC: Uses nickname rvclf.
* IRC: Sets the usermode for user rvclf to +i-x.
* IRC: Uses nickname cpi.
* IRC: Sets the usermode for user cpi to +i-x.
* IRC: Uses nickname ern.
* IRC: Sets the usermode for user ern to +i-x.
[ Process/window information ]
* Creates a mutex 1337bot.
* Will automatically restart after boot (I'll be back...).
[ Signature Scanning ]
* C:\WINDOWS\SYSTEM32\MSSDEV.EXE (141824 bytes) : W32/Spybot.BDAU.
Как видишь, для того, чтобы проанализировать бота не требуется никаких специальных знаний ассемблера и кропотливой работы с отладчиком, но она определенно более продуктивна, тем более что некоторые боты, наподобие Agobot применяют антиотладочные приемы для защиты или упакованы хитрым протектором. Хотя и здесь можно сделать финт ушами (или ход конем, смотря кому что нравится), просто отправив полученный бинарник на изучение к www.virustotal.com – бесплатному сервису сканирования бинарником множеством различных антивирусных продуктов. Однако столь подробный и полный отчет получить уже не удастся. Теперь пару слов в цифрах. В течение ровно одного месяца я непрерывно коллекционировал заразу, так что набрал аж 83 бинарника и ~30-40 различных шеллкодов. Около 40% из бинарников Norman Sandbox распознать не смог – сказались те самые защиты/антиотладка и/или фазы луны в четвертую пятницу месяца. Пришлось проверять весь букет Кашперовским. На скриншоте ты можешь видеть, что и в каком количестве блуждает по сети.
__________________
..когда же кто-нибудь выпустит MD5(Unix) брутер на GPU.... жду....
|