Сегодня мы разберем базовый анализ оперативной памяти, содержащей вредоносную программу. Этот пост предназначен для начинающих криминалистов или людей, желающих изучить форензику.
В этом кратком руководстве мы будем использовать один из самых популярных программных анализаторов энергозависимой памяти: Volatility. Этот инструмент поможет нам проверить дамп памяти потенциально зараженного компьютера. Volatility поможет получить полезную информацию (о запущенных процессах, последних измененные файлах или даже истории браузера пользователя), хранящуюся в памяти компьютера.
Мы воспользуемся несколькими командами, разыграя простой сценарий с поиском Cridex. Готовы? Давайте начнем!
Моделируя ситуацию со злоумышленником, если компьютер был выключен по приезду "Маски-Шоу", поможет файл гибернации, находящийся в %SystemDrive%/hiberfil.sys. Обычными методами удалить его проблематично, да и не осведомленные пользователи нечасто заботятся об этом.
Богатый арсенал виртуалок также подлежит анализу:
Флаг -f указывает на файл дампа, а imageinfo - название плагина, который мы будем использовать. После выполнения команды, будет выведен следующий результат:
Теперь у нас есть имя операционной системы, из которой был произведен дамп оперативной памяти - WinXPSP2x86 - можно начинать расследование. Мы должны указать используемый профиль (--profile=WinXPSP2x86) и попытаться выяснить, что же произошло на компьютере жертвы.
Давайте с помощью плагина pslist посмотрим, какие процессы выполнялись.
В качестве альтернативы pslist можно использовать pstree, который отобразит список процессов в виде дерева:
В глаза сразу же бросается странный процесс с именем «reader_sl.exe», родителем которого выступает «explorer.exe». Это один из последних процессов, запущенных на машине, он находится в самом конце списка.
Можно также использовать плагин psxview, чтобы получить список процессов, пытающихся скрыться во время работы системы. Иногда его использование может оказаться действительно очень полезным.
Ну, за исключением нашего случая
кажется, что никакие процессы не пытаются скрыться, об этом говорит «False» в первых двух столбцах (pslist и psscan).
После того, как посмотрели запущенные процессы, неплохо было бы проверить открытые соединения на компьютере. Для этого мы будем использовать плагины connscan, netscan и sockets.
Connscan - плагин, представляющий собой сканер TCP-соединений, sockets - умеет выводить список открытых сокетов и, наконец, NetScan (которые не может быть использоваы в нашем примере в связи с используемым профилем) сканирует Windows Vista на наличие активных соединений.
В нашем сценарии есть два TCP-соединения, использующиеся процессом с PID 1484 (просматривая выходные данные истории команд, можно легко соотнести PID 1484 с процессом explorer.exe). Мы видим, что одно из этих TCP-соединений все еще открыто, то есть то, что использует 1038 порт и обменивается данными с целевым IP-адресом 41.168.5.140.
Давайте теперь посмотрим на последние выполненные команды с помощью модулей cmdscan, consoles и cmdline.
Первые два плагина: consoles (извлекает историю команд путем сканирования _CONSOLE_INFORMATION) и cmdscan (извлекает историю команд путем сканирования _COMMAND_HISTORY) не выдали никакой информации.
Однако cmdline, плагин отображающий аргументы командной строки процесса, действительно дал нам немного интересной информации. Теперь у нас есть полный путь к процессам, запущенным с PID 1484 и 1640. «Reader_sl.exe» становится все более и более подозрительным…
Мы знали, что процесс, который должен был быть классическим приложением Adobe Reader, был запущен из проводника, однако мы наблюдали работающее соединение с внешним IP-адресом, используемое тем же самым процессом ...
Давайте же воспользуемся плагином procdump, для того чтобы получить исполнительный файл, и memdump для получения памяти процесса этого файла. Необходимо указать два дополнительных ключа: -p 1640 (интересующий PID) и --dump-dir (каталог, в котором мы хотим извлечь дамп).
Теперь можно выполнить простой анализ этих двух файлов с помощью утилиты «strings». Это может занять какое-то время, поскольку обычно дампы содержат много информации. Сейчас мы пытаемся отскать связь между частью информации, уже полученной из дампа (открытым TCP-соединением с IP-адресом 41.168.5.140) и процессом с PID 1640.
Я использовал команду grep в сочетании с -C #NUMBER, чтобы получить 5 строк до и после искомой, такой подход позволяет построить более полную картину. Здесь мы ясно видим, что исполняемый файл «Reader_sl.exe» обменивается данными с IP-адресом назначения 41.168.5.140 с помощью POST-запросов, потенциально извлекая информацию с компьютера жертвы.
Набравшись терпения и проанализировав некоторые части дампа при помощи strings, мы можем найти следующие интересные домены:
Список доменных сайтов банка. Теперь, глядя на память процесса, у нас появляется больше причин для подозрений в отношении «Reader_sl.exe».
Давайте посмотрим, является ли исполняемый файл вредоносным.
На данный момент у нас есть два возможных способа сделать это:
Очевидно, что исполняемый файл распознается этими двумя веб-сайтами-как вредоносный с высокими показателями обнаружения!
Пришло время подвести итоги различных исследований, которые мы провели, и наших выводов с проанализированным дампом:
Однако этот исполняемый файл мог быть отправлен в ходе фишинговой кампании всем сотрудникам, поэтому теперь необходимо извлечь IOC (индикаторы взлома), чтобы максимально квалифицировать Cridex и, таким образом, помочь команде SOC обнаружить другие потенциально зараженные компьютеры.
Первым IOC, найденным в дампе, был IP-адрес C&C: 41.168.5.140. Чтобы увидеть, используются ли другие IP-адреса, мы можем, например, осуществить поиск по следующиму шаблону «/zb/v_01_a/in/» - это путь, запрошенный вредоносной программой («41.168.5.140:8080/zb/v_01_a/in/»).
Мы нашли еще один IOC: 188.40.0.138! Посмотрим, сможем ли мы связать уже найденные IP-адреса с возможными именами хостов при помощи Passive DNS. В таком случае мы будем использовать сервис под названием Mnemonic:
Мы должны продолжить и проанализировать каждое возможное имя хоста, чтобы увидеть, могут ли они быть связаны с нашим трояном (время записи DNS соответствует времени заражения?, веб-сайт - легитимный?…). Затем мы передадим эти IOC команде SOC для надлежащего обнаружения троянской инфекции в инфраструктуре компании с использованием настраиваемых правил обнаружения SIEM.
Действительно, большинство зловредов стараются автоматизировать свое выполнение при каждом запуске системы, что затрудняет их удаление. Чтобы узнать, является ли Cridex постоянным, мы можем взглянуть на записи реестра.
Ветки реестра, которые нас интересуют:
Мы можем использовать Volatility, чтобы перемещаться по реестру и выводить его содержимое.
Плагин Hivelist позволяет вывести список разделов. Printkey поможет нам увидеть содержимое разделов реестра, его подразделы и значения. Теперь давайте воспользуемся параметром -K, чтобы перейти к интересующей нас ветке.
Как видите, единственное значение, который было недавно изменено, - «\Device\HarddiskVolume1\Documents and Settings\Robert\NTUSER.DAT». Убедимся, что исполняемый файл с именем «KB00207877.exe» действительно связан с нашим трояном:
Поскольку эта строка действительно присутствует в искомом файле, теперь мы можем смело утверждать, что Cridex изменил стартовый ключ реестра компьютера жертвы, чтобы он стал постоянным. Удаление «KB00207877.exe» необходимо для "обеззараживания" машины.
Автор Moody
Переведено и адаптировано специально для @cybred
В этом кратком руководстве мы будем использовать один из самых популярных программных анализаторов энергозависимой памяти: Volatility. Этот инструмент поможет нам проверить дамп памяти потенциально зараженного компьютера. Volatility поможет получить полезную информацию (о запущенных процессах, последних измененные файлах или даже истории браузера пользователя), хранящуюся в памяти компьютера.
Мы воспользуемся несколькими командами, разыграя простой сценарий с поиском Cridex. Готовы? Давайте начнем!
Подготовка
- Я предполагаю, что вы уже скачали и установили Volatility на свой компьютер.
- Дамп, который мы будем анализировать, можно скачать на странице со всеми базовыми сэмплами от Volatility.
Создание дампа
В случае, если вы захотите произвести анализ собственного дампа оперативной памяти, то для того, чтобы его создать, можно воспользоваться следующими программами:- FTK Imager
- Redline (требует регистрации)
- DumpIt.exe
- win32dd.exe / win64dd.exe - имеет фантастическую поддержку psexec
Моделируя ситуацию со злоумышленником, если компьютер был выключен по приезду "Маски-Шоу", поможет файл гибернации, находящийся в %SystemDrive%/hiberfil.sys. Обычными методами удалить его проблематично, да и не осведомленные пользователи нечасто заботятся об этом.
Богатый арсенал виртуалок также подлежит анализу:
- VMware - .vmem-файл
- Hyper-V - .bin-файл
- Parallels - .mem-файл
- VirtualBox - .sav-файл (частичный файл памяти)
Анализ дампа
Самая первая команда, которую нужно запустить, начиная анализ энергозависимой памяти: imageinfo, она поможет получить первичную информации о дампе памяти.
Код:
$ volatility -f cridex.vmem imageinfo
Код:
Volatility Foundation Volatility Framework 2.6
INFO : volatility.debug : Determining profile based on KDBG search...
Suggested Profile(s) : WinXPSP2x86, WinXPSP3x86 (Instantiated with WinXPSP2x86)
AS Layer1 : IA32PagedMemoryPae (Kernel AS)
AS Layer2 : FileAddressSpace (/home/panardin/Challs/cridex.vmem)
PAE type : PAE
DTB : 0x2fe000L
KDBG : 0x80545ae0L
Number of Processors : 1
Image Type (Service Pack) : 3
KPCR for CPU 0 : 0xffdff000L
KUSER_SHARED_DATA : 0xffdf0000L
Image date and time : 2012-07-22 02:45:08 UTC+0000
Image local date and time : 2012-07-21 22:45:08 -0400
Давайте с помощью плагина pslist посмотрим, какие процессы выполнялись.
Код:
$ volatility -f cridex.vmem --profile=WinXPSP2x86 pslistVolatility
Foundation Volatility Framework 2.6
Offset(V) Name PID PPID Thds Hnds Sess
---------- -------------------- ------ ------ ------ -------- ------
0x823c89c8 System 4 0 53 240 ------
0x822f1020 smss.exe 368 4 3 19 ------
0x822a0598 csrss.exe 584 368 9 326 0
0x82298700 winlogon.exe 608 368 23 519 0
0x81e2ab28 services.exe 652 608 16 243 0
0x81e2a3b8 lsass.exe 664 608 24 330 0
0x82311360 svchost.exe 824 652 20 194 0
0x81e29ab8 svchost.exe 908 652 9 226 0
0x823001d0 svchost.exe 1004 652 64 1118 0
0x821dfda0 svchost.exe 1056 652 5 60 0
0x82295650 svchost.exe 1220 652 15 197 0
0x821dea70 explorer.exe 1484 1464 17 415 0
0x81eb17b8 spoolsv.exe 1512 652 14 113 0
0x81e7bda0 reader_sl.exe 1640 1484 5 39 0
0x820e8da0 alg.exe 788 652 7 104 0
0x821fcda0 wuauclt.exe 1136 1004 8 173 0
0x8205bda0 wuauclt.exe 1588 1004 5 132 0
Код:
$ volatility -f cridex.vmem --profile=WinXPSP2x86 pstree
Volatility Foundation Volatility Framework 2.6
Name Pid PPid
-------------------------------------------------- ------ ------
0x823c89c8:System 4 0
. 0x822f1020:smss.exe 368 4
.. 0x82298700:winlogon.exe 608 368
... 0x81e2ab28:services.exe 652 608
.... 0x821dfda0:svchost.exe 1056 652
.... 0x81eb17b8:spoolsv.exe 1512 652
.... 0x81e29ab8:svchost.exe 908 652
.... 0x823001d0:svchost.exe 1004 652
..... 0x8205bda0:wuauclt.exe 1588 1004
..... 0x821fcda0:wuauclt.exe 1136 1004
.... 0x82311360:svchost.exe 824 652
.... 0x820e8da0:alg.exe 788 652
.... 0x82295650:svchost.exe 1220 652
... 0x81e2a3b8:lsass.exe 664 608
.. 0x822a0598:csrss.exe 584 368
0x821dea70:explorer.exe 1484 1464
. 0x81e7bda0:reader_sl.exe 1640 1484
Можно также использовать плагин psxview, чтобы получить список процессов, пытающихся скрыться во время работы системы. Иногда его использование может оказаться действительно очень полезным.
Код:
$ volatility -f cridex.vmem --profile=WinXPSP2x86 psxview
Volatility Foundation Volatility Framework 2.6
Offset(P) Name PID pslist psscan thrdproc pspcid csrss session deskthrd ExitTime
---------- -------------------- ------ ------ ------ -------- ------
0x02498700 winlogon.exe 608 True True True True..
0x02511360 svchost.exe 824 True True True True..
0x022e8da0 alg.exe 788 True True True True..
0x020b17b8 spoolsv.exe 1512 True True True True..
0x0202ab28 services.exe 652 True True True True..
0x02495650 svchost.exe 1220 True True True True..
0x0207bda0 reader_sl.exe 1640 True True True True..
0x025001d0 svchost.exe 1004 True True True True..
0x02029ab8 svchost.exe 908 True True True True..
0x023fcda0 wuauclt.exe 1136 True True True True..
0x0225bda0 wuauclt.exe 1588 True True True True..
0x0202a3b8 lsass.exe 664 True True True True..
0x023dea70 explorer.exe 1484 True True True True..
0x023dfda0 svchost.exe 1056 True True True True..
0x024f1020 smss.exe 368 True True True True..
0x025c89c8 System 4 True True True True..
0x024a0598 csrss.exe 584 True True True True..
После того, как посмотрели запущенные процессы, неплохо было бы проверить открытые соединения на компьютере. Для этого мы будем использовать плагины connscan, netscan и sockets.
Код:
$ volatility -f cridex.vmem --profile=WinXPSP2x86 connscan
Volatility Foundation Volatility Framework 2.6
Offset(P) Local Address Remote Address Pid
---------- ------------------------- ------------------------- ---
0x02087620 172.16.112.128:1038 41.168.5.140:8080 1484
0x023a8008 172.16.112.128:1037 125.19.103.198:8080 1484$ volatility -f cridex.vmem --profile=WinXPSP2x86 socketsVolatility Foundation Volatility Framework 2.6
Offset(V) PID Port Proto Protocol Address
---------- -------- ------ ------ --------------- ---------------
0x81ddb780 664 500 17 UDP 0.0.0.0
0x82240d08 1484 1038 6 TCP 0.0.0.0
0x81dd7618 1220 1900 17 UDP 172.16.112.128
0x82125610 788 1028 6 TCP 127.0.0.1
0x8219cc08 4 445 6 TCP 0.0.0.0
0x81ec23b0 908 135 6 TCP 0.0.0.0
0x82276878 4 139 6 TCP 172.16.112.128
0x82277460 4 137 17 UDP 172.16.112.128
0x81e76620 1004 123 17 UDP 127.0.0.1
0x82172808 664 0 255 Reserved 0.0.0.0
0x81e3f460 4 138 17 UDP 172.16.112.128
0x821f0630 1004 123 17 UDP 172.16.112.128
0x822cd2b0 1220 1900 17 UDP 127.0.0.1
0x82172c50 664 4500 17 UDP 0.0.0.0
0x821f0d00 4 445 17 UDP 0.0.0.0
В нашем сценарии есть два TCP-соединения, использующиеся процессом с PID 1484 (просматривая выходные данные истории команд, можно легко соотнести PID 1484 с процессом explorer.exe). Мы видим, что одно из этих TCP-соединений все еще открыто, то есть то, что использует 1038 порт и обменивается данными с целевым IP-адресом 41.168.5.140.
Давайте теперь посмотрим на последние выполненные команды с помощью модулей cmdscan, consoles и cmdline.
Код:
$ volatility -f cridex.vmem --profile=WinXPSP2x86 cmdline
Volatility Foundation Volatility Framework 2.6
********************************************************************
System pid: 4
********************************************************************
smss.exe pid: 368
Command line : \SystemRoot\System32\smss.exe
********************************************************************
csrss.exe pid: 584
Command line : C:\WINDOWS\system32\csrss.exe ObjectDirectory=\Windows SharedSection=1024,3072,512 Windows=On SubSystemType=Windows ServerDll=basesrv,1 ServerDll=winsrv:UserServerDllInitialization,3 ServerDll=winsrv:ConServerDllInitialization,2 ProfileControl=Off MaxRequestThreads=16
********************************************************************
winlogon.exe pid: 608
Command line : winlogon.exe
********************************************************************
services.exe pid: 652
Command line : C:\WINDOWS\system32\services.exe
********************************************************************
lsass.exe pid: 664
Command line : C:\WINDOWS\system32\lsass.exe
********************************************************************
svchost.exe pid: 824
Command line : C:\WINDOWS\system32\svchost -k DcomLaunch
********************************************************************
svchost.exe pid: 908
Command line : C:\WINDOWS\system32\svchost -k rpcss
********************************************************************
svchost.exe pid: 1004
Command line : C:\WINDOWS\System32\svchost.exe -k netsvcs
********************************************************************
svchost.exe pid: 1056
Command line : C:\WINDOWS\system32\svchost.exe -k NetworkService
********************************************************************
svchost.exe pid: 1220
Command line : C:\WINDOWS\system32\svchost.exe -k LocalService
********************************************************************
explorer.exe pid: 1484
Command line : C:\WINDOWS\Explorer.EXE
********************************************************************
spoolsv.exe pid: 1512
Command line : C:\WINDOWS\system32\spoolsv.exe
********************************************************************
reader_sl.exe pid: 1640
Command line : "C:\Program Files\Adobe\Reader 9.0\Reader\Reader_sl.exe"
********************************************************************
alg.exe pid: 788
Command line : C:\WINDOWS\System32\alg.exe
********************************************************************
wuauclt.exe pid: 1136
Command line : "C:\WINDOWS\system32\wuauclt.exe" /RunStoreAsComServer Local\[3ec]SUSDSb81eb56fa3105543beb3109274ef8ec1
********************************************************************
wuauclt.exe pid: 1588
Command line : "C:\WINDOWS\system32\wuauclt.exe"
Однако cmdline, плагин отображающий аргументы командной строки процесса, действительно дал нам немного интересной информации. Теперь у нас есть полный путь к процессам, запущенным с PID 1484 и 1640. «Reader_sl.exe» становится все более и более подозрительным…
Мы знали, что процесс, который должен был быть классическим приложением Adobe Reader, был запущен из проводника, однако мы наблюдали работающее соединение с внешним IP-адресом, используемое тем же самым процессом ...
Давайте же воспользуемся плагином procdump, для того чтобы получить исполнительный файл, и memdump для получения памяти процесса этого файла. Необходимо указать два дополнительных ключа: -p 1640 (интересующий PID) и --dump-dir (каталог, в котором мы хотим извлечь дамп).
Код:
$ volatility -f cridex.vmem --profile=WinXPSP2x86 procdump -p 1640 --dump-dir .
Volatility Foundation Volatility Framework 2.6
Process(V) ImageBase Name Result
---------- ---------- -------------------- ------
0x81e7bda0 0x00400000 reader_sl.exe OK: executable.1640.exe$
volatility -f cridex.vmem --profile=WinXPSP2x86 memdump -p 1640 --dump-dir .
Volatility Foundation Volatility Framework 2.6
************************************************************************
Writing reader_sl.exe [1640] to 1640.dmp
Код:
$ strings 1640.dmp | grep -Fi "41.168.5.140" -C 5
ABACFPFPENFDECFCEPFHFDEFFPFPACAB
DpI8
POST /zb/v_01_a/in/ HTTP/1.1
Accept: */*
User-Agent: Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US)
Host: 41.168.5.140:8080
Content-Length: 229
Connection: Keep-Alive
Cache-Control: no-cache
>mtvR
`06!
Набравшись терпения и проанализировав некоторые части дампа при помощи strings, мы можем найти следующие интересные домены:
Код:
$ strings 1640.dmp | less...
*hsbc.co.uk*
*ablv.com*
*accessbankplc.com*
*alphabank.com.cy*
*baltikums.com*
*baltikums.eu*
*banesco.com.pa*
*bankaustria.at*
*banknet.lv*
*bankofcyprus.com*
*bobibanking.com*
*butterfieldonline.ky*
*cimbanque.net*
*cs.directnet.com*
*directnet.com*
*danskebanka.lv*
*ebank.laiki.com*
*ebank.rcbcy.com*
*ebemo.bemobank.com*
*e-norvik.lv*
*eurobankefg.com*
*eurobankefg.com.cy*
*ekp.lv*
*fbmedirect.com*
*hblibank.com*
*hellenicnetbanking.com*
*hiponet.lv*
*hkbea*
*ibanka.seb.lv*
*ib.baltikums.com*
*geonline.lv*
*ib.dnb.lv*
*bib.lv*
*ib.snoras.com*
*i-linija.lt*
*loyalbank.com*
*marfinbank.com.cy*
*multinetbank.eu*
*nordea.com*
*secure.ltbbank.com*
*secure.ltblv.com*
*swedbank.lv*
*norvik.lv*
*online.alphabank.com.cy*
*online.citadele.lv*
*online.lkb.lv*
...
Давайте посмотрим, является ли исполняемый файл вредоносным.
На данный момент у нас есть два возможных способа сделать это:
- путем статического анализа и реверса исполняемого файла, чтобы наглядно увидеть, какие команды выполняеются исполняемым файлом
- или - поскольку в настоящее время я не очень хорошо разбираюсь в реверс-инжиниринге - попробовать динамический анализ с помощью песочницы или онлайн-инструментов, которые анализируют потенциально вредоносные исполняемые файлы.
Очевидно, что исполняемый файл распознается этими двумя веб-сайтами-как вредоносный с высокими показателями обнаружения!
Пришло время подвести итоги различных исследований, которые мы провели, и наших выводов с проанализированным дампом:
- Странный процесс Reader_sl.exe PID 1640 с проводником в качестве родительского (PID 1484)
- Открытое соединение с 41.168.5.140:8080, используемое PID 1484
- Банковские домены и 41.168.5.140 найдены в дампе процесса 1640
- 1640 исполняемый файл определен веб-сайтами песочницы как вредоносный троян
Профилактика
Предположим, что этот дамп памяти был обнаружен на компьютере сотрудника работающего в большой компании. Как судебному следователю, вам удалось проанализировать дамп изменчивой памяти и найти вредоносный exe-файл.Однако этот исполняемый файл мог быть отправлен в ходе фишинговой кампании всем сотрудникам, поэтому теперь необходимо извлечь IOC (индикаторы взлома), чтобы максимально квалифицировать Cridex и, таким образом, помочь команде SOC обнаружить другие потенциально зараженные компьютеры.
Первым IOC, найденным в дампе, был IP-адрес C&C: 41.168.5.140. Чтобы увидеть, используются ли другие IP-адреса, мы можем, например, осуществить поиск по следующиму шаблону «/zb/v_01_a/in/» - это путь, запрошенный вредоносной программой («41.168.5.140:8080/zb/v_01_a/in/»).
Код:
$ strings 1640.dmp | grep -Fi "/zb/v_01_a/in/"http://188.40.0.138:8080/zb/v_01_a/in/cp.php
POST /zb/v_01_a/in/ HTTP/1.1
http://188.40.0.138:8080/zb/v_01_a/in/cp.php
http://188.40.0.138:8080/zb/v_01_a/in/cp.php
Код:
results for 188.40.0.138
------------------------
Record Type Query Answer First seen Last seen # times TTL
a paypalconfirmaccount.com 188.40.0.138 2014-04-01 15:32...
a dedi53.flk1.host-h.net 188.40.0.138 2012-08-06 15:42 ...
a www.sandtonslippers.co.za 188.40.0.138 2012-12-27 04:21 ...
a www.horizoncottages.co.za 188.40.0.138 2012-12-24 03:11 ...
a blog.anafricanvilla.co.za 188.40.0.138 2012-12-14 05:11 ...
a www.capetowncity.co.za 188.40.0.138 2012-10-16 17:37 ...
a derwenthouse.co.za 188.40.0.138 2012-10-23 02:36 ...
a www.derwenthouse.co.za 188.40.0.138 2012-10-16 18:27 ...
a www.villastjames.com 188.40.0.138 2012-11-07 20:00 ...
a www.capescape.co.za 188.40.0.138 2012-10-31 15:33 ...
a www.wind-rose.co.za 188.40.0.138 2012-10-23 02:39 ...
a wind-rose.co.za 188.40.0.138 2012-10-23 02:38 ...
a static.138.0.40.188.... 188.40.0.138 2012-08-06 16:43 ...
a blog.leeuwenvoet.co.za 188.40.0.138 2012-08-06 15:41 ...
a www.therocks.co.za 188.40.0.138 2012-08-06 15:41 ...
a www.leeuwenvoet.co.za 188.40.0.138 2012-08-02 20:17 ...results for 188.40.0.138
------------------------
Record Type Query Answer First seen Last seen # times TTL
a paypalconfirmaccount.com 188.40.0.138 2014-04-01 15:32 ...
a dedi53.flk1.host-h.net 188.40.0.138 2012-08-06 15:42 ...
a www.sandtonslippers.co.za 188.40.0.138 2012-12-27 04:21 ...
a www.horizoncottages.co.za 188.40.0.138 2012-12-24 03:11 ...
a blog.anafricanvilla.co.za 188.40.0.138 2012-12-14 05:11 ...
a www.capetowncity.co.za 188.40.0.138 2012-10-16 17:37 ...
a derwenthouse.co.za 188.40.0.138 2012-10-23 02:36 ...
a www.derwenthouse.co.za 188.40.0.138 2012-10-16 18:27 ...
a www.villastjames.com 188.40.0.138 2012-11-07 20:00 ...
a www.capescape.co.za 188.40.0.138 2012-10-31 15:33 ...
a www.wind-rose.co.za 188.40.0.138 2012-10-23 02:39 ...
a wind-rose.co.za 188.40.0.138 2012-10-23 02:38 ...
a static.138.0.40.188.... 188.40.0.138 2012-08-06 16:43 ...
a blog.leeuwenvoet.co.za 188.40.0.138 2012-08-06 15:41 ...
a www.therocks.co.za 188.40.0.138 2012-08-06 15:41 ...
a www.leeuwenvoet.co.za 188.40.0.138 2012-08-02 20:17 ...
results for 41.168.5.140
------------------------
Record Type Query Answer First seen Last seen # times TTL
a ns8.dfudont.ru 41.168.5.140 2013-01-24 09:46 ...
a support.tray-international.com 41.168.5.140 2012-09-11 ...
a seledkindoms.ru 41.168.5.140 2012-06-21 17:03 ...
Удаление
Если Cridex успел заразить и другие машины в компании, то вам следует использовать антивирус, который умеет обнаруживать и устранять угрозы, а также следует проверить, является ли вредоносный троян постоянным.Действительно, большинство зловредов стараются автоматизировать свое выполнение при каждом запуске системы, что затрудняет их удаление. Чтобы узнать, является ли Cridex постоянным, мы можем взглянуть на записи реестра.
Ветки реестра, которые нас интересуют:
«HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run, RunOnce, RunOnceEx»Мы можем использовать Volatility, чтобы перемещаться по реестру и выводить его содержимое.
Код:
$ volatility -f cridex.vmem --profile=WinXPSP2x86 hivelist
Volatility Foundation Volatility Framework 2.6
Virtual Physical Name
---------- ---------- ----
0xe18e5b60 0x093f8b60 \Device\HarddiskVolume1\Documents and Settings\Robert\Local Settings\Application Data\Microsoft\Windows\UsrClass.dat
0xe1a19b60 0x0a5a9b60 \Device\HarddiskVolume1\Documents and Settings\Robert\NTUSER.DAT
0xe18398d0 0x08a838d0 \Device\HarddiskVolume1\Documents and Settings\LocalService\Local Settings\Application Data\Microsoft\Windows\UsrClass.dat
0xe18614d0 0x08e624d0 \Device\HarddiskVolume1\Documents and Settings\LocalService\NTUSER.DAT
0xe183bb60 0x08e2db60 \Device\HarddiskVolume1\Documents and Settings\NetworkService\Local Settings\Application Data\Microsoft\Windows\UsrClass.dat
0xe17f2b60 0x08519b60 \Device\HarddiskVolume1\Documents and Settings\NetworkService\NTUSER.DAT
0xe1570510 0x07669510 \Device\HarddiskVolume1\WINDOWS\system32\config\software
0xe1571008 0x0777f008 \Device\HarddiskVolume1\WINDOWS\system32\config\default
0xe15709b8 0x076699b8 \Device\HarddiskVolume1\WINDOWS\system32\config\SECURITY
0xe15719e8 0x0777f9e8 \Device\HarddiskVolume1\WINDOWS\system32\config\SAM
0xe13ba008 0x02e4b008 [no name]
0xe1035b60 0x02ac3b60 \Device\HarddiskVolume1\WINDOWS\system32\config\system
0xe102e008 0x02a7d008 [no name]
Код:
$ volatility -f cridex.vmem --profile=WinXPSP2x86 printkey -K "Software\Microsoft\Windows\CurrentVersion\Run"
Volatility Foundation Volatility Framework 2.6
Legend: (S) = Stable (V) = Volatile
----------------------------
Registry: \Device\HarddiskVolume1\Documents and Settings\Robert\Local Settings\Application Data\Microsoft\Windows\UsrClass.dat
Key name: Run (S)
Last updated: 2011-04-13 00:55:13 UTC+0000
Subkeys:
Values:
----------------------------
Registry: \Device\HarddiskVolume1\Documents and Settings\Robert\NTUSER.DAT
Key name: Run (S)
Last updated: 2012-07-22 02:31:51 UTC+0000
Subkeys:
Values:
REG_SZ KB00207877.exe : (S) "C:\Documents and Settings\Robert\Application Data\KB00207877.exe"
----------------------------
Registry: \Device\HarddiskVolume1\WINDOWS\system32\config\default
Key name: Run (S)
Last updated: 2011-04-12 20:31:49 UTC+0000
Subkeys:
Values:
----------------------------
Registry: \Device\HarddiskVolume1\Documents and Settings\LocalService\Local Settings\Application Data\Microsoft\Windows\UsrClass.dat
Key name: Run (S)
Last updated: 2011-04-13 00:55:13 UTC+0000
Subkeys:
Values:
----------------------------
Registry: \Device\HarddiskVolume1\Documents and Settings\NetworkService\NTUSER.DAT
Key name: Run (S)
Last updated: 2011-04-13 00:49:16 UTC+0000
Subkeys:
Values:
----------------------------
Registry: \Device\HarddiskVolume1\Documents and Settings\LocalService\NTUSER.DAT
Key name: Run (S)
Last updated: 2011-04-13 00:49:28 UTC+0000
Subkeys:
Values:
----------------------------
Registry: \Device\HarddiskVolume1\Documents and Settings\NetworkService\Local Settings\Application Data\Microsoft\Windows\UsrClass.dat
Key name: Run (S)
Last updated: 2011-04-13 00:55:13 UTC+0000
Subkeys:
Values:
Код:
$ strings 1640.dmp | grep -Fi "KB00207877.exe"
KB00207877.exe
C:\Documents and Settings\Robert\Application Data\KB00207877.exe(,
KB00207877.EXEn
KB00207877.exe
KB00207877.exe
C:\Documents and Settings\Robert\Application Data\KB00207877.exe(,
Резюме
На этом базовый анализ вредоноса Cridex подошел к концу. Надеюсь, вам понравился моя статья! Ниже приводится краткое изложение различных команд Volatility, используемых для анализа сегодняшнего дампа:
Код:
# Какой тип дампа я собираюсь анализировать
$ volatility -f MyDump.dmp imageinfo
# Какие процессы были запущены
$ volatility -f MyDump.dmp --profile=MyProfile pslist
$ volatility -f MyDump.dmp --profile=MyProfile pstree
$ volatility -f MyDump.dmp --profile=MyProfile psxview
# Список открытых TCP/UDP соединений
$ volatility -f MyDump.dmp --profile=MyProfile connscan
$ volatility -f MyDump.dmp --profile=MyProfile sockets
$ volatility -f MyDump.dmp --profile=MyProfile netscan
# Какие команды выполнялись на компьютере
$ volatility -f MyDump.dmp --profile=MyProfile cmdline
$ volatility -f MyDump.dmp --profile=MyProfile consoles
$ volatility -f MyDump.dmp --profile=MyProfile cmdscan
# Дамп .exe процесса и его памяти
$ volatility -f MyDump.dmp --profile=MyProfile procdump -p MyPid --dump-dir .
$ volatility -f MyDump.dmp --profile=MyProfile memdump -p MyPid --dump-dir .
# Ветки и значения ключей регистра
$ volatility -f MyDump.dmp --profile=MyProfile hivelist
$ volatility -f MyDump.dmp --profile=MyProfile printkey -K "MyPath"
Автор Moody
Переведено и адаптировано специально для @cybred