Hello All,
I was poking around the reddits the other day and to my shock and utter dismay, I found no memory forensics subreddit. Soooooooo, I took it upon myself to create one. Volatility all the thingz!
http://www.reddit.com/r/memoryforensics/
Ryan Gibson
GCFA, GCIH, Security +
Office: 858-651-1689
Mobile: 619-804-8736
Senior IT Security Engineer
I'm dealing with what appears to be a new Zeus variant and on a whim I
tried to run zeusscan2 under a copy of Volatility 2.0 I still hang onto.
Perhaps not surprisingly, it ends unhappily
Volatile Systems Volatility Framework 2.0
Traceback (most recent call last):
File "vol.py", line 135, in <module>
main()
File "vol.py", line 126, in main
command.execute()
File "/home/a05p8zz/VolInstall/volatility-2.0/volatility/commands.py",
line 101, in execute
func(outfd, data)
File
"/home/a05p8zz/VolInstall/volatility-2.0/volatility/plugins/zeusscan2.py",
line 330, in render_text
for p, start, url, config_key, creds_key, decoded_config,
decoded_magic in data:
File
"/home/a05p8zz/VolInstall/volatility-2.0/volatility/plugins/zeusscan2.py",
line 221, in calculate
data = malware.get_vad_data(ps_ad, start, end)
File
"/home/a05p8zz/VolInstall/volatility-2.0/volatility/plugins/malware.py",
line 856, in get_vad_data
return ''.join(pages_one)
OverflowError: join() result is too long for a Python string
Now I strongly suspect that the new variant is just enough different that
it messes with the parsing and results in a runaway, but I just wanted to
make sure I'm not leaving something on the table here...
Should this work?
-=[ Steve ]=-
Stefan;
Soon as I get my hands on the disk image I will gladly do so.
-=[ Steve ]=-
>> Are you willing/able to share the md5 of that Zeus variant, please?
>> Cheers,
>> Stefan.
I have a memory dump of a Windows XP box with a piece of malware running in
it. In the course of running malfind on the image, there are eight
responses, two of which are below (A and B).
After the malfind command, I run the impscan command to look at the imports:
python vol.py impscan -p 820 -b 0x1f00000
python vol.py impscan -p 820 -b 0x01f50010
The response to the first impscan command is what I expected (see C
below). The response to the second impscan command (see D below) is not
what I expected at all - no imports?
I also ran impscan on the address 0x01f50012 based on the results from the
malfind command (see D below) as I figured that I wanted to dump the dll
starting on the beginning of the MZ header. But neither address produced
any imports - I'm not sure where to go from here.
I'm very new at this; any help would be greatly appreciated. My end goal
is to take this piece of malware, which looks to have injected several
dll's into a process, dump out each dll, then have them reverse engineered.
Thanks-
A.
Process: xxxxxx.exe Pid: 820 Address: 0x1f00000
Vad Tag: VadS Protection: PAGE_EXECUTE_READWRITE
Flags: CommitCharge: 9, PrivateMemory: 1, Protection: 6
0x01f00000 4d 5a 90 00 03 00 00 00 04 00 00 00 ff ff 00 00
MZ..............
0x01f00010 b8 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00
........@.......
0x01f00020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
................
0x01f00030 00 00 00 00 00 00 00 00 00 00 00 00 c8 00 00 00
................
0x1f00000 4d DEC EBP
0x1f00001 5a POP EDX
0x1f00002 90 NOP
0x1f00003 0003 ADD [EBX], AL
0x1f00005 0000 ADD [EAX], AL
0x1f00007 000400 ADD [EAX+EAX], AL
0x1f0000a 0000 ADD [EAX], AL
0x1f0000c ff DB 0xff
0x1f0000d ff00 INC DWORD [EAX]
0x1f0000f 00b800000000 ADD [EAX+0x0], BH
0x1f00015 0000 ADD [EAX], AL
0x1f00017 004000 ADD [EAX+0x0], AL
0x1f0001a 0000 ADD [EAX], AL
0x1f0001c 0000 ADD [EAX], AL
0x1f0001e 0000 ADD [EAX], AL
0x1f00020 0000 ADD [EAX], AL
0x1f00022 0000 ADD [EAX], AL
0x1f00024 0000 ADD [EAX], AL
0x1f00026 0000 ADD [EAX], AL
0x1f00028 0000 ADD [EAX], AL
0x1f0002a 0000 ADD [EAX], AL
0x1f0002c 0000 ADD [EAX], AL
0x1f0002e 0000 ADD [EAX], AL
0x1f00030 0000 ADD [EAX], AL
0x1f00032 0000 ADD [EAX], AL
0x1f00034 0000 ADD [EAX], AL
0x1f00036 0000 ADD [EAX], AL
0x1f00038 0000 ADD [EAX], AL
0x1f0003a 0000 ADD [EAX], AL
0x1f0003c c8000000 ENTER 0x0, 0x0
B.
Process: XXXXXX.exe Pid: 820 Address: 0x1f50000
Vad Tag: VadS Protection: PAGE_EXECUTE_READWRITE
Flags: CommitCharge: 59, MemCommit: 1, PrivateMemory: 1, Protection: 6
0x01f50000 4c 1b cd 25 00 00 09 e8 16 4f 9e 7e cd 25 00 00
L..%.....O.~.%..
0x01f50010 00 00 4d 5a 90 00 03 00 00 00 04 00 00 00 ff ff
..MZ............
0x01f50020 00 00 b8 00 00 00 00 00 00 00 40 00 00 00 00 00
..........@.....
0x01f50030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
................
0x1f50000 4c DEC ESP
0x1f50001 1bcd SBB ECX, EBP
0x1f50003 25000009e8 AND EAX, 0xe8090000
0x1f50008 16 PUSH SS
0x1f50009 4f DEC EDI
0x1f5000a 9e SAHF
0x1f5000b 7ecd JLE 0x1f4ffda
0x1f5000d 2500000000 AND EAX, 0x0
*0x1f50012 4d DEC EBP0x1f50013 5a POP EDX*
0x1f50014 90 NOP
0x1f50015 0003 ADD [EBX], AL
0x1f50017 0000 ADD [EAX], AL
0x1f50019 000400 ADD [EAX+EAX], AL
0x1f5001c 0000 ADD [EAX], AL
0x1f5001e ff DB 0xff
0x1f5001f ff00 INC DWORD [EAX]
0x1f50021 00b800000000 ADD [EAX+0x0], BH
0x1f50027 0000 ADD [EAX], AL
0x1f50029 004000 ADD [EAX+0x0], AL
0x1f5002c 0000 ADD [EAX], AL
.................
................
C.
python vol.py impscan -p 9820 -b 0x01f00000
Volatility Foundation Volatility Framework 2.3.1
IAT Call Module Function
------------------ ------------------ -------------------- --------
0x0000000001f07d10 0x0000000076cf2c70 kernel32.dll HeapFree
0x0000000001f07d18 0x0000000076cf2d60 kernel32.dll GetProcessHeap
0x0000000001f07d20 0x0000000076e41b70 kernel32.dll HeapAlloc
D.
python vol.py impscan -p 820 -b 0x01f50010
Volatility Foundation Volatility Framework 2.3.1
IAT Call Module Function
------------------ ------------------ -------------------- --------
E.
python vol.py impscan -p 820 -b 0x01f50012
Volatility Foundation Volatility Framework 2.3.1
IAT Call Module Function
------------------ ------------------ -------------------- --------
Hi,
Happy New Year! :)
I tried to explore the contest plugin ethscan (latest release) on a few
different memory samples containing Mac OSX and Linux OS without success. Each
time I got an error message like:
ERROR : volatility.commands : This command does not support the profile
MacMountainLion_10_8_3_AMDx64
I'm using the correct OS profile, downloaded from the Volatility site
(MacProfilesAll.zip) and https://github.com/KDPryor/LinuxVolProfiles.
Other Volatility commands like mac_dmesg or linux_netstat does work correctly,
so the Profile should really match.
Volatility: current SVN revision 3573.
Memory samples from:
Mac OSX 10.8.3 x64 from Volatility download page
OSX 10.7.5 (not 10.7.3) from osxreverser, found on Twitter:
https://twitter.com/osxreverser/status/344521006288891905
Ubuntu 10.04
http://files.sempersecurus.org/dumps/memory/pexit.zip
found on this interesting blog:
http://sempersecurus.blogspot.de/2013/12/a-forensic-overview-of-linux-
perlbot.html
ethscan does work correctly when using different Windows dumps.
How can I fix this problem and get ethscan work also on OSX and Linux dumps?
Thanks!
Thomas
Hey all,
Here's what I have:
Offset(P) Name PID pslist psscan thrdproc pspcid
csrss session deskthrd
---------- -------------------- ------ ------ ------ -------- ------
----- ------- --------
0x26004da0 UPS_Label_23052 396 False True False False
False False False
0x260f7da0 UPS_Label_23052 396 False True False False
False False False
Offset(P) Name PID PPID PDB Time created
Time exited
---------- ---------------- ------ ------ ----------
------------------------------ ------------------------------
0x27808020 explorer.exe 1480 1412 0x0a440200 2013-05-23
17:44:24 UTC+0000
0x26004da0 UPS_Label_23052 396 1480 0x0a4403c0 2013-05-23
17:46:09 UTC+0000
0x260f7da0 UPS_Label_23052 396 1480 0x0a4403c0 2013-05-23
17:46:09 UTC+0000
I'm attempting to find and extract the running UPS_Label_23052, but
having difficulty extracting the exe from it. Procmemdump and
procexedump fail to find the pid, so I'm kind of lost. Any info would
help...thank you.
James
So here's what I got...regsvr32.exe was run as soon below:
Offset(V) Name PID PPID Thds Hnds Sess
Wow64 Start Exit
---------- -------------------- ------ ------ ------ -------- ------
------ ------------------------------ ------------------------------
0x893614e0 regsvr32.exe 3100 2564 5 97 0
0 2013-12-06 18:28:51 UTC+0000
Offset(P) Name PID pslist psscan thrdproc pspcid
csrss session deskthrd
---------- -------------------- ------ ------ ------ -------- ------
----- ------- --------
0x093614e0 regsvr32.exe 3100 True True False True
True True False
regsvr32.exe pid: 3100
Command line : regsvr32.exe "C:\Documents and Settings\user\Local
Settings\Application Data\YrqdPack\normalPaddlg.dll"
Service Pack 3
Base Size LoadCount Path
---------- ---------- ---------- ----
0x10000000 0x9000 0x1 C:\Documents and Settings\user\Local
Settings\Application Data\YrqdPack\normalPaddlg.dll
I'm dumped pid 3100 to a dmp file with procmemdump. I strings 3100.dmp
and I see what I'm looking for (domain names that match a packet
capture). I'm trying to extract that running dll from the 3100.dmp
file, which is around 200 megs. Any help would be awesome..thank you.
James
Oh, also if you copied the ethscan plugin to your volatility/plugins directory, don't use the --plugins option
-----Original Message-----
From: David <eterno.comandante(a)gmail.com>
Date: Thu, 14 Nov 2013 13:53:05
To: Jamie Levy<jamie.levy(a)gmail.com>
Cc: Volatility List<vol-users(a)volatilesystems.com>
Subject: Re: [Vol-users] Help to add new plugin
Hi Jamie
Thanks again...
I executed "sudo python vol.py --plugins=../jamaal-re-tools-f427978461d4/volplugins -f /mnt/hgfs/E/ENSE/F/M/Audits/7523/200309/memory.img --profile=Win7SP1x64 ethscan”
And i have new errors, (i use vol.py 2.3.1 non instalable version volatility 2.3.1)
Do you know if has anybody a similar problem with ethscan plugin?
Traceback (most recent call last):
File "/usr/local/bin/vol.py", line 186, in <module>
main()
File "/usr/local/bin/vol.py", line 143, in main
registry.register_global_options(config, commands.Command)
File "/usr/local/lib/python2.7/dist-packages/volatility/registry.py", line 157, in register_global_options
for m in get_plugin_classes(cls, True).values():
File "/usr/local/lib/python2.7/dist-packages/volatility/registry.py", line 152, in get_plugin_classes
raise Exception("Object {0} has already been defined by {1}".format(name, plugin))
Exception: Object EthScan has already been defined by <class 'volatility.plugins.ethscan_rc1.EthScan'>
Best regards
El 14/11/2013, a las 12:45, Jamie Levy <jamie.levy(a)gmail.com> escribió:
> Try:
>
> sudo python vol.py --plugins=../jamaal-re-tools-f427978461d4/volplugins -f /mnt/hgfs/E/ENSE/F/M/Audits/7523/200309/memory.img --profile=Win7SP1x64 ethscan
>
> First: --plugins takes in either a directory or a zipfile, not a plugin
>
> Second: You didn't specify which plugin to run (ethscan)
> From: David <eterno.comandante(a)gmail.com>
> Date: Thu, 14 Nov 2013 10:41:47 +0100
> To: Jamie Levy<jamie.levy(a)gmail.com>
> Cc: Volatility List<vol-users(a)volatilesystems.com>
> Subject: Re: [Vol-users] Help to add new plugin
>
>
> Sorry I had a typo i didn´t write --profile=Win7SP1x64
>
>
>> sudo python vol.py --plugins=../jamaal-re-tools-f427978461d4/volplugins/ethscan.py -f /mnt/hgfs/E/ENSE/F/M/Audits/7523/200309/memory.img --profile=Win7SP1x64
>
>
>
> I have the same error of ever :(
>
>> Volatility Foundation Volatility Framework 2.3.1
>> ERROR : __main__ : You must specify something to do (try -h)
>
>
> Thanks!!
>
> El 14/11/2013, a las 09:36, David <eterno.comandante(a)gmail.com> escribió:
>
>> Hi @Jamie and list
>>
>> Thanks very much for your support ;)
>>
>> I’ve same errors when i’m executing: :(
>>
>> sudo python vol.py --plugins=../jamaal-re-tools-f427978461d4/volplugins/ethscan.py -f /mnt/hgfs/E/ENSE/F/M/Audits/7523/200309/memory.img
>>
>> The error:
>>
>> Volatility Foundation Volatility Framework 2.3.1
>> ERROR : __main__ : You must specify something to do (try -h)
>>
>> Maybe the cause of this error can be that the new plugin “ethscan" isn't compatible with non instalable version of volatility 2.3.1, what do you think about?
>>
>> On the other hand, i found a brief tutorial about ethscan:
>>
>> https://code.google.com/p/jamaal-re-tools/source/browse/volplugins/README.t…
>>
>> vol.py ethscan -f be2.vmem -R --dump-dir outputfiles -C out.pcap -P -S
>>
>> The execution of the vol.py command is different……. :(
>>
>> He does not the flag —-plugin=
>>
>> Thanks for all!!
>>
>> Ps: My apologies for my level of english
>>
>>
>> El 13/11/2013, a las 16:43, Jamie Levy <jamie.levy(a)gmail.com> escribió:
>>
>>> Hi David,
>>>
>>> I think you might have also asked this on the channel. So yes, you should use the `--plugins=/path/to/folder/with/ethscan` option, obviously changing the path to a folder that has that plugin. If you were the person on the channel, the issue that you were having is because you must specify `--plugins` first, BEFORE any other options to vol.py:
>>>
>>> http://code.google.com/p/volatility/wiki/VolatilityUsage23#Specifying_Addit…
>>>
>>> Let me know if you have any other questions.
>>>
>>> All the best,
>>>
>>> -gleeda
>>>
>>>
>>>
>>>
>>> On Tue, Nov 12, 2013 at 6:42 AM, David Martin <eterno.comandante(a)gmail.com> wrote:
>>> Hello list,
>>>
>>> Please, I need some help about for add/use new plugins in volatility 2.3.1.
>>>
>>> Can I use the flag "--plugins=contrib/plugins"? o is there any method?
>>>
>>> The plugin that I want for add/use is:
>>>
>>> https://code.google.com/p/jamaal-re-tools/source/checkout
>>>
>>> Thanks for your support!!
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Vol-users mailing list
>>> Vol-users(a)volatilesystems.com
>>> http://lists.volatilesystems.com/mailman/listinfo/vol-users
>>>
>>>
>>>
>>>
>>> --
>>> PGP Fingerprint: 2E87 17A1 EC10 1E3E 11D3 64C2 196B 2AB5 27A4 AC92
>>
>