Thursday, July 20, 2006

LiSt Process Image upload

I've uploaded lspi 0.4 to my SourceForge site, and if you use lsproc or want to be able to automatically extract process image files from RAM dumps (of Windows 2000 systems, at this point), cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n you definitely want to check this out! This is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 "automatic binary extractor" that Andreas mentioned a while back.

This code (cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 archive contains cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Perl script and a Windows EXE "compiled" using Perl2Exe...be sure to keep cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 included DLL with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 EXE at all times) makes use of some of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 RAM dump file parsing code from tools like lsproc and lspd, as well as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 code from my File::ReadPE module. Like cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r tools, this one relies on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 output of lsproc for it's input...specifically, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 offset to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 process in question. It uses pretty much cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same method as Andreas mentioned in his first blog entry on reassembling binaries, for no ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r reason than it just makes sense. After all, why not use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 "map" provided to you in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 PE headers to reassemble cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 executable image file.

Let's take a look at an example, focusing on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same process that Andreas looked at...dd.exe with a PID of 284, from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first memory dump from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 DFRWS 2005 Memory Challenge. The output of lsproc gives us:

Proc 1112 284 dd.exe 0x0414dd60 Sun Jun 5 14:53:42 2005

Very cool. So, using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 offset to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 process within cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 dump file, we can cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n launch lspi with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following command line:

C:\Perl>lspi.pl d:\hacking\dfrws-mem1.dmp 0x0414dd60

What we get as output is:

lspi - list Windows 2000 process image (v.0.4 - 20060721)
Ex: lspi

Process Name : dd.exe
PID : 284
DTB : 0x01d9e000
PEB : 0x7ffdf000 (0x02c2d000)
ImgBaseAddr : 0x00400000 (0x00fee000)

e_lfanew = 0xe8
NT Header = 0x4550

Reading cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Image File Header
Sections = 4
Opt Header Size = 0x000000e0 (224 bytes)
Characteristics:
IMAGE_FILE_EXECUTABLE_IMAGE
IMAGE_FILE_LOCAL_SYMS_STRIPPED
IMAGE_FILE_RELOCS_STRIPPED
IMAGE_FILE_LINE_NUMS_STRIPPED
IMAGE_FILE_32BIT_MACHINE

Machine = IMAGE_FILE_MACHINE_I860

Reading cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Image Optional Header

Opt Header Magic = 0x10b
Subsystem : IMAGE_SUBSYSTEM_WINDOWS_CUI
Entry Pt Addr : 0x00006bda
Image Base : 0x00400000
File Align : 0x00001000

Reading cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Image Data Directory information

Data Directory RVA Size
-------------- --- ----
ResourceTable 0x0000d000 0x00000430
DebugTable 0x00000000 0x00000000
BaseRelocTable 0x00000000 0x00000000
DelayImportDesc 0x0000af7c 0x000000a0
TLSTable 0x00000000 0x00000000
GlobalPtrReg 0x00000000 0x00000000
ArchSpecific 0x00000000 0x00000000
CLIHeader 0x00000000 0x00000000
LoadConfigTable 0x00000000 0x00000000
ExceptionTable 0x00000000 0x00000000
ImportTable 0x0000b25c 0x000000a0
unused 0x00000000 0x00000000
BoundImportTable 0x00000000 0x00000000
ExportTable 0x00000000 0x00000000
CertificateTable 0x00000000 0x00000000
IAT 0x00007000 0x00000210

Reading Image Section Header information

Name Virt Sz Virt Addr rData Ofs rData Sz Char
---- ------- --------- --------- -------- ----
.text 0x00005ee0 0x00001000 0x00001000 0x00006000 0x60000020
.data 0x000002fc 0x0000c000 0x0000c000 0x00001000 0xc0000040
.rsrc 0x00000430 0x0000d000 0x0000d000 0x00001000 0x40000040
.rdata 0x00004cfa 0x00007000 0x00007000 0x00005000 0x40000040

Reassembling image file into dd.exe.img
Bytes written = 57344
New file size = 57344

Most of this is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 PE header being parsed and displayed.

Now, a couple of caveats...first, this code ONLY works for RAM dumps from Windows 2000 systems (yes, I have been getting a lot of questions about that). Second, this does not take PAE into account. Nor does it take special cases into account, such as UPX compressed executables.

However, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 code does check for things like pages that are paged out to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 pagefile. Sounds kind of circular, I know, but basically, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 pages in RAM that aren't being used can be paged out to pagefile.sys...since we're just dealing with a memory dump, we're assuming at this point that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 pages in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 pagefile aren't available.

Also, you will notice that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 resulting executable image, once renamed to an .exe, does not run cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 way cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 original does. This is due to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fact that once cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 various sections are loaded into memory, some of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 values in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 different sections will change as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 code is being run.

So, how is something like this useful? Well, if you're into malware analysis, or if you're performing incident response against an as-yet-unknown bit of code, this would be helpful.

Of course, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are things that need to be added to this code, as it performs only parsing. For example, some actual analysis would be in order...like analyzing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 code at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 entry point address, performing some analysis of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 sections, extracting cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 import address (or name) tables, etc.

As always, comments are welcome...

2 comments:

Anonymous said...

By cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 way, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r tool import reconstructor, not sure if u have heard of it before.

How does your current tool differs from that tool?

It is also able to dump process to file images, and also correct cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 import/export information so as to allow cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file to be executable.

H. Carvey said...

> How does your current tool differs from that tool?

No idea...I'd need a link to it, or some information about it.