Offset Name Pid Uid Gid DTB Start Time
———- ——————– ————— ————— —— ———- ———-
………
0xece30cd0 bash 3945 1000 1000 0x2a8f6000 2014-09-26 11:28:43 UTC+0000
0xec024010 scsi_eh_4 4068 0 0 ———- 2014-09-26 11:34:17 UTC+0000
0xec020000 usb-storage 4069 0 0 ———- 2014-09-26 11:34:17 UTC+0000
0xec0219a0 udevd 4072 0 0 0x2c6ce000 2014-09-26 11:34:18 UTC+0000
0xe290a670 kworker/0:0 4133 0 0 ———- 2014-09-26 11:38:42 UTC+0000
0xedf4a670 73b0d95541c8496 4145 1000 1000 0x23ce8000 2014-09-26 11:38:54 UTC+0000
0xec1d8cd0 kworker/0:1 4449 0 0 ———- 2014-09-26 11:53:45 UTC+0000
0xec1d8000 mount.ntfs 4523 0 0 0x0263e000 2014-09-26 11:57:08 UTC+0000
0xec36b340 flush-8:32 4541 0 0 ———- 2014-09-26 11:57:29 UTC+0000
0xec36a670 sudo 4550 0 1000 0x146df000 2014-09-26 11:57:51 UTC+0000
0xec36c010 lmg 4551 0 0 0x15d26000 2014-09-26 11:57:51 UTC+0000
0xe29fc010 insmod 4570 0 0 0x2dcb6000 2014-09-26 11:57:51 UTC+0000
0xe29f8cd0 kworker/0:2 4571 0 0 ———- 2014-09-26 11:58:47 UTC+0000
Şüpheli sürecin Uid ve Gid değerlerinin 1000 olduğu çıktıdan görülebilir. Sürecin hangi kullanıcı ve grubun yetkileriyle çalıştırıldığı “grep 1000 /etc/{passwd,group}” komutuyla görüntülenir.
remnux@remnux:/media/usb/volatility$ grep 1000 /etc/{passwd,group}
/etc/passwd:remnux:x:1000:1000:REMnux User,,,:/home/remnux:/bin/bash
/etc/group:remnux:x:1000:
Çıktıdan 1000 değerinin remnux kullanıcısına ve remnux grubuna karşılık geldiği anlaşılıyor. Süreçler arasındaki ilişkiyi de gösteren bir listeye ihtiyaç duyulursa “./vol.py linux_pstree” komutu kullanılır.
Name Pid Uid
………
..[lxterminal] 1104 1000
..bash 1105 1000
..bash 2469 1000
..bash 3619 1000
…sudo 4550 0
….lmg 4551 0
…..insmod 4570 0
..bash 3945 1000
.vmtoolsd 1084 1000
.gvfsd 1089 1000
.gvfs-fuse-daemo 1097 1000
.menu-cached 1103 1000
.udisks-daemon 1168 0
..udisks-daemon 1169 0
.gvfs-gdu-volume 1166 1000
.gvfs-gphoto2-vo 1222 1000
.gvfs-afc-volume 1229 1000
.gconfd-2 1279 1000
.vmware-vmblock- 1333 0
.vmtoolsd 1373 0
.gvfsd-trash 1465 1000
.mount.ntfs 1652 0
.gvfsd-metadata 3943 1000
.73b0d95541c8496 4145 1000
.mount.ntfs 4523 0
[kthreadd] 2 0
.[ksoftirqd/0] 3 0
.[kworker/u:0] 5 0
.[migration/0] 6 0
.[cpuset] 7 0
Çıktıda şüpheli sürecin dışında, isimleri köşeli parantezlerin içinde gözüken süreçler normalde sistem süreçleridir. Ancak bazı zararlılar gizlilik adına bu kendilerine bu şekilde isim verebilirler. Bunun yanı sıra “bash->sudo->lmg->insmod” olarak gözüken süreç ağacı da bellek dökümü almak için kullanılan lmg aracının (bkz …) bellekte değişikliğe sebep olduğunu hatırlatır niteliktedir.
Sürecin kullandığı harici kütüphaneler, diskte bulunduğu tam yol, bellekteki başlangıç ve bitiş adresleri, bellekteki bu bölümlerin izinleri gibi detaylar “./vol.py linux_proc_maps -p 4145” komutu ile görüntülenir. Bu çalışan bir sistemde “cat /proc/4145/maps” komutuna karşılık gelir.
Pid Start End Flags Pgoff Major Minor Inode File Path
——– —————— —————— —— ———- —— —— ———- ———
4145 0x0000000000295000 0x0000000000296000 r-x 0x0 0 0 0 [vdso]
4145 0x0000000008048000 0x00000000080cb000 r-x 0x0 8 1 676442 /home/remnux/Desktop/73b0d95541c84965fa42c3e257bb349957b3be626dec9d55efcc6ebcba6fa489
4145 0x00000000080cb000 0x00000000080cd000 rw- 0x82000 8 1 676442 /home/remnux/Desktop/73b0d95541c84965fa42c3e257bb349957b3be626dec9d55efcc6ebcba6fa489
4145 0x00000000080cd000 0x00000000080d2000 rw- 0x0 0 0 0
4145 0x0000000008e24000 0x0000000008e46000 rw- 0x0 0 0 0 [heap]
4145 0x00000000b779e000 0x00000000b779f000 rw- 0x0 0 0 0
4145 0x00000000bfbab000 0x00000000bfbcd000 rw- 0x0 0 0 0 [stack]
Elde edilen bilgilerle süreç bellekten diske “./vol.py linux_dump_map -p 4145 -s 0x0000000008048000 -D ../output” komutuyla kaydedilir.
-p 4145 (sürecin PID değeri)
-s 0x0000000008048000 (sürecin bellekteki başlangıç adresi)
-D ../output (kaydedilecek dizin)
Volatility Foundation Volatility Framework 2.4
Task VM Start VM End Length Path
———- ———- ———- ———- —-
4145 0x08048000 0x080cb000 0x83000 ../output/task.4145.0×8048000.vma
“file ../output/task.4145.0×8048000.vma” komutuyla dosyanın türü doğrulanabilir.
output/task.4145.0×8048000.vma: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, stripped
Bu aşamada elde edilen şüpheli dosya Virustotal’e yüklenebilir ve static/dinamik diğer analiz yöntemleriyle incelenebilir.
“./vol.py linux_psaux” komutu çalışan bir sistemdeki “ps aux” komutuna karşılık gelir. Komut “linux_pslist” komutundan farklı olarak süreçlerin komut satırı argümanlarını da görüntüler. Çıktı incelenirken bazı zararlıların çalışma anında bellekteki komut satırı argümanlarının üzerine başka değerler yazarak gizleyebildiklerini de unutmamak gerekir.
Pid Uid Gid Arguments
……
3945 1000 1000 /bin/bash
4068 0 0 [scsi_eh_4]
4069 0 0 [usb-storage]
4072 0 0 udevd –daemon
4133 0 0 [kworker/0:0]
4145 1000 1000 ./73b0d95541c84965fa42c3e257bb349957b3be626dec9d55efcc6ebcba6fa489
4449 0 0 [kworker/0:1]
4523 0 0 /sbin/mount.ntfs /dev/sdc1 /media/usb/ -o rw
4541 0 0 [flush-8:32]
4550 0 1000 sudo ./lmg
4551 0 0 /bin/bash ./lmg
4570 0 0 insmod lime-3.0.0-32-generic-i686.ko format=lime path=/media/usb/capture/remnux-2014-09-26_07.57.52/remnux-2014-09-26_07.57.52-memory.lime
Benzer şekilde “./vol.py linux_psenv -p 4145” komutuyla sürecin çevre değişkenleri listelenir.
Volatility Foundation Volatility Framework 2.4
Name Pid Environment
73b0d95541c8496 4145 SSH_AGENT_PID=1048
………
XAUTHORITY=/home/remnux/.Xauthority _=./73b0d95541c84965fa42c3e257bb349957b3be626dec9d55efcc6ebcba6fa489 ./73b0d955
“./vol.py linux_lsof -p 4145” komutu ile sürecin sahip olduğu dosya handleları görüntülenir. Linux’de cihaz, socket vb. IO yapılarına da uygulama bazında dosya gibi davranıldığı için çıktısından faydalı birçok bilgi edinilebilir. Örneğin FD (file descriptor) alanındaki 0 stdin, 1 stdout, 2 stderr ve 3 kernel modulü anlamlarını taşımaktadır.
Volatility Foundation Volatility Framework 2.4
Pid FD Path
——– ——– —-
4145 0 /dev/pts/3
4145 1 /dev/pts/3
4145 2 /dev/pts/3
4145 3 socket:[24583]
Son olarak “./vol.py linux_bash” komutuyla bash kabuğu geçmişi ve “./vol.py linux_bash_env” ile bash çevre değişkenleri görüntülenebilir. Bash geçmişinden kabuk erişimi aracılığıyla çalıştırılmış komutlar dolayısıyla sistemde yapılan değişiklikler tespit edilebilir.
Pid Name Command Time Command
3945 bash 2014-09-26 11:31:23 UTC+0000 unzip linux_73b0d95541c84965fa42c3e257bb349957b3be626dec9d55efcc6ebcba6fa489.zip
3945 bash 2014-09-26 11:31:24 UTC+0000 ls
3945 bash 2014-09-26 11:31:40 UTC+0000 file 73b0d95541c84965fa42c3e257bb349957b3be626dec9d55efcc6ebcba6fa489
3945 bash 2014-09-26 11:37:50 UTC+0000 chmod +x 73b0d95541c84965fa42c3e257bb349957b3be626dec9d55efcc6ebcba6fa489
3945 bash 2014-09-26 11:38:55 UTC+0000 ./73b0d95541c84965fa42c3e257bb349957b3be626dec9d55efcc6ebcba6fa489
3945 bash 2014-09-26 11:41:08 UTC+0000 netstat -nta