Linux Plugins

Support for Linux analysis.

address_resolver

View Source

A Linux specific address resolver plugin.

Plugin Arguments

symbol

List of symbols to lookup (type: ArrayString)

  • Default:

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

arp

View Source

print the ARP table.

Plugin Arguments

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

arp returns the list of IPv4 network neighbour entries in the kernel cache.

Rekall uses the neigh_tables kernel symbol and walks the neighbour tables to show the entries.

Sample output

Windows7_VMware(Win7x64+Ubuntu686,Ubuntu64)_VBox(XPSP3x86).ram 12:09:00> arp
-----------------------------------------------------------------------> arp()
                                   IP Address                  MAC          Device
--------------------------------------------- -------------------- ---------------
                            ff02::1:ff57:f719    33:33:ff:57:f7:19            eth0
                                     ff02::16    33:33:00:00:00:16            eth0
                                192.168.239.2    00:50:56:e5:38:b6            eth0
                              192.168.239.254    00:50:56:f7:25:d0            eth0

banner

View Source

Prints the Linux banner information.

Plugin Arguments

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

banner output provides the same information as running uname -a on the host.

Sample output

Windows7_VMware(Win7x64+Ubuntu686,Ubuntu64)_VBox(XPSP3x86).ram 12:17:38> banner
-----------------------------------------------------------------------> banner()
Banner
--------------------------------------------------------------------------------
Linux version 3.11.0-12-generic (buildd@allspice) (gcc version 4.8.1 (Ubuntu/Linaro 4.8.1-10ubuntu7) ) #19-Ubuntu SMP Wed Oct 9 16:20:46 UTC 2013 (Ubuntu 3.11.0-12.19-generic 3.11.3)

bash

View Source

Scan the bash process for history.

Based on original algorithm by Andrew Case.

Plugin Arguments

method

Method to list processes (Default uses all methods). (type: ChoiceArray)

  • Valid Choices:

    • InitTask
  • Default: InitTask

pids

One or more pids of processes to select. (type: ArrayIntParser)

proc_regex

The processes we should examine. (type: RegEx)

  • Default: ^bash$

scan_entire_address_space

Scan the entire process address space, not only the heap. (type: Boolean)

task

Kernel addresses of task structs. (type: ArrayIntParser)

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

The Bourne Again Shell maintains a history a history of all commands that have been executed in the current session in memory. bash is a plugin that provides a chronologically ordered list of commands executed by each bash process, grouped by pid.

Notes

  • Only commands executed in each bash session are stored in memory. So if you’re looking for commands for exitted bash sessions you may be more lucky by looking at the disk .bash_history file if logging wasn’t disabled.

Sample output

Windows7_VMware(Win7x64+Ubuntu686,Ubuntu64)_VBox(XPSP3x86).ram 12:27:35> bash
-----------------------------------------------------------------------> bash()
   Pid Name                 Timestamp                Command
------ -------------------- ------------------------ --------------------
  1335 bash                 2014-03-04 17:16:31+0000 uname -a

check_afinfo

View Source

Verifies the operation function pointers of network protocols.

Plugin Arguments

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

The plugin identifies the location of each function pointer of different network protocols. If located within the kernel or a loaded module, rekall will give such information as well as its kernel-space address.

If malware dynamically allocates memory and copies code there to handle these functions, the Module column will appear as Unknown.

Sample output

Windows7_VMware(Win7x64+Ubuntu686,Ubuntu64)_VBox(XPSP3x86).ram 13:51:35> check_afinfo
-----------------------------------------------------------------------> check_afinfo()
Constant Name                  Member                            Address     Module
------------------------------ ------------------------------ -------------- --------------------
tcp4_seq_afinfo                seq_fops.llseek                0xffff811c9250 Kernel
tcp4_seq_afinfo                seq_fops.read                  0xffff811c9460 Kernel
tcp4_seq_afinfo                seq_fops.release               0xffff812157d0 Kernel
udplite6_seq_afinfo            seq_ops.show                   0xffff816a1300 Kernel
udplite6_seq_afinfo            seq_fops.llseek                0xffff811c9250 Kernel
udplite6_seq_afinfo            seq_fops.read                  0xffff811c9460 Kernel
udplite6_seq_afinfo            seq_fops.release               0xffff812157d0 Kernel
udp6_seq_afinfo                seq_ops.show                   0xffff816a1300 Kernel
udp6_seq_afinfo                seq_fops.llseek                0xffff811c9250 Kernel
udp6_seq_afinfo                seq_fops.read                  0xffff811c9460 Kernel
udp6_seq_afinfo                seq_fops.release               0xffff812157d0 Kernel
udplite4_seq_afinfo            seq_ops.show                   0xffff8164f9e0 Kernel
udplite4_seq_afinfo            seq_fops.llseek                0xffff811c9250 Kernel
udplite4_seq_afinfo            seq_fops.read                  0xffff811c9460 Kernel
udplite4_seq_afinfo            seq_fops.release               0xffff812157d0 Kernel
udp4_seq_afinfo                seq_ops.show                   0xffff8164f9e0 Kernel
udp4_seq_afinfo                seq_fops.llseek                0xffff811c9250 Kernel
udp4_seq_afinfo                seq_fops.read                  0xffff811c9460 Kernel
udp4_seq_afinfo                seq_fops.release               0xffff812157d0 Kernel

check_creds

View Source

Checks if any processes are sharing credential structures

Plugin Arguments

method

Method to list processes (Default uses all methods). (type: ChoiceArray)

  • Valid Choices:

    • InitTask
  • Default: InitTask

pids

One or more pids of processes to select. (type: ArrayIntParser)

proc_regex

A regex to select a process by name. (type: RegEx)

task

Kernel addresses of task structs. (type: ArrayIntParser)

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

In order for rootkits to elevate the privileges of a given process, they need to alter the current effective identifier of a process. Before kernel 2.6, this was done by setting a couple of integers in the process task to the desired ID.

After 2.6, credentials are handled internally via the task_struct->cred member. Likely due to laziness or a poor attempt at remaining stealth, some rootkits simply reuse the cred member of tasks that have the desired credentials (most often ID 0: root).

This plugin reports the location of the cred member of each task. When this structure is being reused, you’ll see more than one line of output with the same cred address.

Sample output

Windows7_VMware(Win7x64+Ubuntu686,Ubuntu64)_VBox(XPSP3x86).ram 15:40:12> check_creds
-----------------------------------------------------------------------> check_creds()
     Cred      PID      Command             
-------------- -------- --------------------
0x88003b86c900 966      dbus-daemon         
0x88003c766480 1031     systemd-logind      
0x88003c1a7380 1056     getty               
0x88003c1d2180 1103     irqbalance          
0x88003c1d23c0 1290     kauditd             
0x88003c1a6c00 1058     getty               
0x880036b2e840 1132     atd                 
0x88003b96d080 1055     getty               
0x88003c767440 1335     bash                
0x88003c1a6cc0 1074     sshd                
0x88003c1d2c00 1131     cron                
0x88003cbc0900 1160     login               
0x88003c183140 1081     acpid               
0x88003b9ded80 1042     getty               
0x88003b9dee40 1049     getty               
0x88003c1a78c0 1176     whoopsie            
0x88003c69a480 1486     dnsmasq             
0x88003cbc1440 1199     libvirtd            

check_idt

View Source

Checks if the IDT has been altered

Plugin Arguments

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

This plugin tries to identify the symbol name or location of each entry in the Interrupt Descriptor Table.

The IDT holds a list of gate descriptors. These descriptor can be task, trap or interrupt descriptors.

  • Interrupt Gates are invoked via the int instruction. System calls, for example, can be invoked in Linux with an int 0x80 instruction.
  • Trap Gates are also invoked via the int instruction but don’t modify the IF flag in the EFLAGS register.
  • Task Gates were originally intended to facilitate task switching but are mostly not used nowadays.

The plugin provides 6 columns as output:

  • Index: The gate number.
  • Address: The kernel address of the gate handler.
  • Type: Whether this is an int/trap/task gate.
  • Present: If the gate descriptor is present.
  • DPL: Descriptor Privilege Level. The highest ring that is allowed to call this gate.
  • Symbol: The kernel symbol that the address points to. If it’s unknown but within the kernel image, it will be Kernel. Otherwise, Unknown.

Notes

  • A value of Kernel in the Symbol column means “as part of the kernel image”, not that it’s anywhere in the kernel address space.
  • Rekall currently only validates the IDT at the address pointed by the kernel symbol idt_table. Note that on a running system, the current IDT may be different as it can be changed via the x86 lidt instruction.
  • Entries 0x00 to 0x1F are reserved by Intel for processor exceptions.

Sample output

$ python rekall/rekal.py --de -f ~/projects/actaeon64/memory_images/Windows7_VMware\(Win7x64+Ubuntu686\,Ubuntu64\)_VBox\(XPSP3x86\).ram --profile_path ../rekall-profiles/ --profile_path ../my-profiles/  --ept 0x17725001E check_idt
Index    Address                   Type Present DPL Symbol                        
----- -------------- ------------------ ------- --- ------------------------------
  0x0 0xffff816f6970    32-bit Int Gate       1   0 divide_error                  
  0x1 0xffff816ecc80    32-bit Int Gate       1   0 Kernel                        
  0x2 0xffff816ed0b0    32-bit Int Gate       1   0 nmi                           
  0x3 0xffff816eccc0    32-bit Int Gate       1   3 int3                          
  0x4 0xffff816f69a0    32-bit Int Gate       1   3 overflow                      
  0x5 0xffff816f69d0    32-bit Int Gate       1   0 bounds                        
  0x6 0xffff816f6a00    32-bit Int Gate       1   0 invalid_op                    
  0x7 0xffff816f6a30    32-bit Int Gate       1   0 device_not_available          
  0x8 0xffff816f6a60    32-bit Int Gate       1   0 double_fault                  
  0x9 0xffff816f6a90    32-bit Int Gate       1   0 coprocessor_segment_overrun   
  0xa 0xffff816f6ac0    32-bit Int Gate       1   0 invalid_TSS                   
  0xb 0xffff816f6af0    32-bit Int Gate       1   0 segment_not_present           
  0xc 0xffff816ecd00    32-bit Int Gate       1   0 stack_segment                 
  0xd 0xffff816ecdc0    32-bit Int Gate       1   0 general_protection            
  0xe 0xffff816ecdf0    32-bit Int Gate       1   0 page_fault                    
  0xf 0xffff816f6b20    32-bit Int Gate       1   0 spurious_interrupt_bug        
 0x10 0xffff816f6b50    32-bit Int Gate       1   0 coprocessor_error             
 0x11 0xffff816f6b80    32-bit Int Gate       1   0 alignment_check               
 0x12 0xffff816ece50    32-bit Int Gate       1   0 machine_check                 
 0x13 0xffff816f6bb0    32-bit Int Gate       1   0 simd_coprocessor_error        
 0x14 0xffff81d260b4    32-bit Int Gate       1   0 Unknown                       
 0x15 0xffff81d260bd    32-bit Int Gate       1   0 Unknown                       
 0x16 0xffff81d260c6    32-bit Int Gate       1   0 Unknown                       
 0x17 0xffff81d260cf    32-bit Int Gate       1   0 Unknown                       
 0x18 0xffff81d260d8    32-bit Int Gate       1   0 Unknown                       
 0x19 0xffff81d260e1    32-bit Int Gate       1   0 Unknown                       
 0x1a 0xffff81d260ea    32-bit Int Gate       1   0 Unknown                       
 0x1b 0xffff81d260f3    32-bit Int Gate       1   0 Unknown                       
 0x1c 0xffff81d260fc    32-bit Int Gate       1   0 Unknown                       
 0x1d 0xffff81d26105    32-bit Int Gate       1   0 Unknown                       
 0x1e 0xffff81d2610e    32-bit Int Gate       1   0 Unknown                       
 0x1f 0xffff81d26117    32-bit Int Gate       1   0 Unknown                       
 0x20 0xffff816f5e00    32-bit Int Gate       1   0 irq_move_cleanup_interrupt    
 0x21 0xffff816f5a04    32-bit Int Gate       1   0 Kernel                        
 0x22 0xffff816f5a08    32-bit Int Gate       1   0 Kernel                        
 0x23 0xffff816f5a0c    32-bit Int Gate       1   0 Kernel                        
 0x24 0xffff816f5a10    32-bit Int Gate       1   0 Kernel                        
 0x25 0xffff816f5a14    32-bit Int Gate       1   0 Kernel                        
 0x26 0xffff816f5a18    32-bit Int Gate       1   0 Kernel                        
 0x27 0xffff816f5a20    32-bit Int Gate       1   0 Kernel                        
 0x28 0xffff816f5a24    32-bit Int Gate       1   0 Kernel                        
 0x29 0xffff816f5a28    32-bit Int Gate       1   0 Kernel                        
 0x2a 0xffff816f5a2c    32-bit Int Gate       1   0 Kernel                        
 0x2b 0xffff816f5a30    32-bit Int Gate       1   0 Kernel                        
 0x2c 0xffff816f5a34    32-bit Int Gate       1   0 Kernel                        
 0x2d 0xffff816f5a38    32-bit Int Gate       1   0 Kernel                        
 0x2e 0xffff816f5a40    32-bit Int Gate       1   0 Kernel                        
 0x2f 0xffff816f5a44    32-bit Int Gate       1   0 Kernel                        
 0x30 0xffff816f5a48    32-bit Int Gate       1   0 Kernel                        
 0x31 0xffff816f5a4c    32-bit Int Gate       1   0 Kernel                        
 0x32 0xffff816f5a50    32-bit Int Gate       1   0 Kernel                        
 0x33 0xffff816f5a54    32-bit Int Gate       1   0 Kernel                        
 0x34 0xffff816f5a58    32-bit Int Gate       1   0 Kernel                        
 0x35 0xffff816f5a60    32-bit Int Gate       1   0 Kernel                        
 0x36 0xffff816f5a64    32-bit Int Gate       1   0 Kernel                        
 0x37 0xffff816f5a68    32-bit Int Gate       1   0 Kernel                        
 0x38 0xffff816f5a6c    32-bit Int Gate       1   0 Kernel                        
 0x39 0xffff816f5a70    32-bit Int Gate       1   0 Kernel                        
 0x3a 0xffff816f5a74    32-bit Int Gate       1   0 Kernel                        
 0x3b 0xffff816f5a78    32-bit Int Gate       1   0 Kernel                        
 0x3c 0xffff816f5a80    32-bit Int Gate       1   0 Kernel                        
 0x3d 0xffff816f5a84    32-bit Int Gate       1   0 Kernel                        
 0x3e 0xffff816f5a88    32-bit Int Gate       1   0 Kernel                        
 0x3f 0xffff816f5a8c    32-bit Int Gate       1   0 Kernel                        
 0x40 0xffff816f5a90    32-bit Int Gate       1   0 Kernel                        
 0x41 0xffff816f5a94    32-bit Int Gate       1   0 Kernel                        
 0x42 0xffff816f5a98    32-bit Int Gate       1   0 Kernel                        
 0x43 0xffff816f5aa0    32-bit Int Gate       1   0 Kernel                        
 0x44 0xffff816f5aa4    32-bit Int Gate       1   0 Kernel                        
 0x45 0xffff816f5aa8    32-bit Int Gate       1   0 Kernel                        
 0x46 0xffff816f5aac    32-bit Int Gate       1   0 Kernel                        
 0x47 0xffff816f5ab0    32-bit Int Gate       1   0 Kernel                        
 0x48 0xffff816f5ab4    32-bit Int Gate       1   0 Kernel                        
 0x49 0xffff816f5ab8    32-bit Int Gate       1   0 Kernel                        
 0x4a 0xffff816f5ac0    32-bit Int Gate       1   0 Kernel                        
 0x4b 0xffff816f5ac4    32-bit Int Gate       1   0 Kernel                        
 0x4c 0xffff816f5ac8    32-bit Int Gate       1   0 Kernel                        
 0x4d 0xffff816f5acc    32-bit Int Gate       1   0 Kernel                        
 0x4e 0xffff816f5ad0    32-bit Int Gate       1   0 Kernel                        
 0x4f 0xffff816f5ad4    32-bit Int Gate       1   0 Kernel                        
 0x50 0xffff816f5ad8    32-bit Int Gate       1   0 Kernel                        
 0x51 0xffff816f5ae0    32-bit Int Gate       1   0 Kernel                        
 0x52 0xffff816f5ae4    32-bit Int Gate       1   0 Kernel                        
 0x53 0xffff816f5ae8    32-bit Int Gate       1   0 Kernel                        
 0x54 0xffff816f5aec    32-bit Int Gate       1   0 Kernel                        
 0x55 0xffff816f5af0    32-bit Int Gate       1   0 Kernel                        
 0x56 0xffff816f5af4    32-bit Int Gate       1   0 Kernel                        
 0x57 0xffff816f5af8    32-bit Int Gate       1   0 Kernel                        
 0x58 0xffff816f5b00    32-bit Int Gate       1   0 Kernel                        
 0x59 0xffff816f5b04    32-bit Int Gate       1   0 Kernel                        
 0x5a 0xffff816f5b08    32-bit Int Gate       1   0 Kernel                        
 0x5b 0xffff816f5b0c    32-bit Int Gate       1   0 Kernel                        
 0x5c 0xffff816f5b10    32-bit Int Gate       1   0 Kernel                        
 0x5d 0xffff816f5b14    32-bit Int Gate       1   0 Kernel                        
 0x5e 0xffff816f5b18    32-bit Int Gate       1   0 Kernel                        
 0x5f 0xffff816f5b20    32-bit Int Gate       1   0 Kernel                        
 0x60 0xffff816f5b24    32-bit Int Gate       1   0 Kernel                        
 0x61 0xffff816f5b28    32-bit Int Gate       1   0 Kernel                        
 0x62 0xffff816f5b2c    32-bit Int Gate       1   0 Kernel                        
 0x63 0xffff816f5b30    32-bit Int Gate       1   0 Kernel                        
 0x64 0xffff816f5b34    32-bit Int Gate       1   0 Kernel                        
 0x65 0xffff816f5b38    32-bit Int Gate       1   0 Kernel                        
 0x66 0xffff816f5b40    32-bit Int Gate       1   0 Kernel                        
 0x67 0xffff816f5b44    32-bit Int Gate       1   0 Kernel                        
 0x68 0xffff816f5b48    32-bit Int Gate       1   0 Kernel                        
 0x69 0xffff816f5b4c    32-bit Int Gate       1   0 Kernel                        
 0x6a 0xffff816f5b50    32-bit Int Gate       1   0 Kernel                        
 0x6b 0xffff816f5b54    32-bit Int Gate       1   0 Kernel                        
 0x6c 0xffff816f5b58    32-bit Int Gate       1   0 Kernel                        
 0x6d 0xffff816f5b60    32-bit Int Gate       1   0 Kernel                        
 0x6e 0xffff816f5b64    32-bit Int Gate       1   0 Kernel                        
 0x6f 0xffff816f5b68    32-bit Int Gate       1   0 Kernel                        
 0x70 0xffff816f5b6c    32-bit Int Gate       1   0 Kernel                        
 0x71 0xffff816f5b70    32-bit Int Gate       1   0 Kernel                        
 0x72 0xffff816f5b74    32-bit Int Gate       1   0 Kernel                        
 0x73 0xffff816f5b78    32-bit Int Gate       1   0 Kernel                        
 0x74 0xffff816f5b80    32-bit Int Gate       1   0 Kernel                        
 0x75 0xffff816f5b84    32-bit Int Gate       1   0 Kernel                        
 0x76 0xffff816f5b88    32-bit Int Gate       1   0 Kernel                        
 0x77 0xffff816f5b8c    32-bit Int Gate       1   0 Kernel                        
 0x78 0xffff816f5b90    32-bit Int Gate       1   0 Kernel                        
 0x79 0xffff816f5b94    32-bit Int Gate       1   0 Kernel                        
 0x7a 0xffff816f5b98    32-bit Int Gate       1   0 Kernel                        
 0x7b 0xffff816f5ba0    32-bit Int Gate       1   0 Kernel                        
 0x7c 0xffff816f5ba4    32-bit Int Gate       1   0 Kernel                        
 0x7d 0xffff816f5ba8    32-bit Int Gate       1   0 Kernel                        
 0x7e 0xffff816f5bac    32-bit Int Gate       1   0 Kernel                        
 0x7f 0xffff816f5bb0    32-bit Int Gate       1   0 Kernel                        
 0x80 0xffff816f72e0    32-bit Int Gate       1   3 ia32_syscall                  
 0x81 0xffff816f5bb8    32-bit Int Gate       1   0 Kernel                        
 0x82 0xffff816f5bc0    32-bit Int Gate       1   0 Kernel                        
 0x83 0xffff816f5bc4    32-bit Int Gate       1   0 Kernel                        
 0x84 0xffff816f5bc8    32-bit Int Gate       1   0 Kernel                        
 0x85 0xffff816f5bcc    32-bit Int Gate       1   0 Kernel                        
 0x86 0xffff816f5bd0    32-bit Int Gate       1   0 Kernel                        
 0x87 0xffff816f5bd4    32-bit Int Gate       1   0 Kernel                        
 0x88 0xffff816f5bd8    32-bit Int Gate       1   0 Kernel                        
 0x89 0xffff816f5be0    32-bit Int Gate       1   0 Kernel                        
 0x8a 0xffff816f5be4    32-bit Int Gate       1   0 Kernel                        
 0x8b 0xffff816f5be8    32-bit Int Gate       1   0 Kernel                        
 0x8c 0xffff816f5bec    32-bit Int Gate       1   0 Kernel                        
 0x8d 0xffff816f5bf0    32-bit Int Gate       1   0 Kernel                        
 0x8e 0xffff816f5bf4    32-bit Int Gate       1   0 Kernel                        
 0x8f 0xffff816f5bf8    32-bit Int Gate       1   0 Kernel                        
 0x90 0xffff816f5c00    32-bit Int Gate       1   0 Kernel                        
 0x91 0xffff816f5c04    32-bit Int Gate       1   0 Kernel                        
 0x92 0xffff816f5c08    32-bit Int Gate       1   0 Kernel                        
 0x93 0xffff816f5c0c    32-bit Int Gate       1   0 Kernel                        
 0x94 0xffff816f5c10    32-bit Int Gate       1   0 Kernel                        
 0x95 0xffff816f5c14    32-bit Int Gate       1   0 Kernel                        
 0x96 0xffff816f5c18    32-bit Int Gate       1   0 Kernel                        
 0x97 0xffff816f5c20    32-bit Int Gate       1   0 Kernel                        
 0x98 0xffff816f5c24    32-bit Int Gate       1   0 Kernel                        
 0x99 0xffff816f5c28    32-bit Int Gate       1   0 Kernel                        
 0x9a 0xffff816f5c2c    32-bit Int Gate       1   0 Kernel                        
 0x9b 0xffff816f5c30    32-bit Int Gate       1   0 Kernel                        
 0x9c 0xffff816f5c34    32-bit Int Gate       1   0 Kernel                        
 0x9d 0xffff816f5c38    32-bit Int Gate       1   0 Kernel                        
 0x9e 0xffff816f5c40    32-bit Int Gate       1   0 Kernel                        
 0x9f 0xffff816f5c44    32-bit Int Gate       1   0 Kernel                        
 0xa0 0xffff816f5c48    32-bit Int Gate       1   0 Kernel                        
 0xa1 0xffff816f5c4c    32-bit Int Gate       1   0 Kernel                        
 0xa2 0xffff816f5c50    32-bit Int Gate       1   0 Kernel                        
 0xa3 0xffff816f5c54    32-bit Int Gate       1   0 Kernel                        
 0xa4 0xffff816f5c58    32-bit Int Gate       1   0 Kernel                        
 0xa5 0xffff816f5c60    32-bit Int Gate       1   0 Kernel                        
 0xa6 0xffff816f5c64    32-bit Int Gate       1   0 Kernel                        
 0xa7 0xffff816f5c68    32-bit Int Gate       1   0 Kernel                        
 0xa8 0xffff816f5c6c    32-bit Int Gate       1   0 Kernel                        
 0xa9 0xffff816f5c70    32-bit Int Gate       1   0 Kernel                        
 0xaa 0xffff816f5c74    32-bit Int Gate       1   0 Kernel                        
 0xab 0xffff816f5c78    32-bit Int Gate       1   0 Kernel                        
 0xac 0xffff816f5c80    32-bit Int Gate       1   0 Kernel                        
 0xad 0xffff816f5c84    32-bit Int Gate       1   0 Kernel                        
 0xae 0xffff816f5c88    32-bit Int Gate       1   0 Kernel                        
 0xaf 0xffff816f5c8c    32-bit Int Gate       1   0 Kernel                        
 0xb0 0xffff816f5c90    32-bit Int Gate       1   0 Kernel                        
 0xb1 0xffff816f5c94    32-bit Int Gate       1   0 Kernel                        
 0xb2 0xffff816f5c98    32-bit Int Gate       1   0 Kernel                        
 0xb3 0xffff816f5ca0    32-bit Int Gate       1   0 Kernel                        
 0xb4 0xffff816f5ca4    32-bit Int Gate       1   0 Kernel                        
 0xb5 0xffff816f5ca8    32-bit Int Gate       1   0 Kernel                        
 0xb6 0xffff816f5cac    32-bit Int Gate       1   0 Kernel                        
 0xb7 0xffff816f5cb0    32-bit Int Gate       1   0 Kernel                        
 0xb8 0xffff816f5cb4    32-bit Int Gate       1   0 Kernel                        
 0xb9 0xffff816f5cb8    32-bit Int Gate       1   0 Kernel                        
 0xba 0xffff816f5cc0    32-bit Int Gate       1   0 Kernel                        
 0xbb 0xffff816f5cc4    32-bit Int Gate       1   0 Kernel                        
 0xbc 0xffff816f5cc8    32-bit Int Gate       1   0 Kernel                        
 0xbd 0xffff816f5ccc    32-bit Int Gate       1   0 Kernel                        
 0xbe 0xffff816f5cd0    32-bit Int Gate       1   0 Kernel                        
 0xbf 0xffff816f5cd4    32-bit Int Gate       1   0 Kernel                        
 0xc0 0xffff816f5cd8    32-bit Int Gate       1   0 Kernel                        
 0xc1 0xffff816f5ce0    32-bit Int Gate       1   0 Kernel                        
 0xc2 0xffff816f5ce4    32-bit Int Gate       1   0 Kernel                        
 0xc3 0xffff816f5ce8    32-bit Int Gate       1   0 Kernel                        
 0xc4 0xffff816f5cec    32-bit Int Gate       1   0 Kernel                        
 0xc5 0xffff816f5cf0    32-bit Int Gate       1   0 Kernel                        
 0xc6 0xffff816f5cf4    32-bit Int Gate       1   0 Kernel                        
 0xc7 0xffff816f5cf8    32-bit Int Gate       1   0 Kernel                        
 0xc8 0xffff816f5d00    32-bit Int Gate       1   0 Kernel                        
 0xc9 0xffff816f5d04    32-bit Int Gate       1   0 Kernel                        
 0xca 0xffff816f5d08    32-bit Int Gate       1   0 Kernel                        
 0xcb 0xffff816f5d0c    32-bit Int Gate       1   0 Kernel                        
 0xcc 0xffff816f5d10    32-bit Int Gate       1   0 Kernel                        
 0xcd 0xffff816f5d14    32-bit Int Gate       1   0 Kernel                        
 0xce 0xffff816f5d18    32-bit Int Gate       1   0 Kernel                        
 0xcf 0xffff816f5d20    32-bit Int Gate       1   0 Kernel                        
 0xd0 0xffff816f5d24    32-bit Int Gate       1   0 Kernel                        
 0xd1 0xffff816f5d28    32-bit Int Gate       1   0 Kernel                        
 0xd2 0xffff816f5d2c    32-bit Int Gate       1   0 Kernel                        
 0xd3 0xffff816f5d30    32-bit Int Gate       1   0 Kernel                        
 0xd4 0xffff816f5d34    32-bit Int Gate       1   0 Kernel                        
 0xd5 0xffff816f5d38    32-bit Int Gate       1   0 Kernel                        
 0xd6 0xffff816f5d40    32-bit Int Gate       1   0 Kernel                        
 0xd7 0xffff816f5d44    32-bit Int Gate       1   0 Kernel                        
 0xd8 0xffff816f5d48    32-bit Int Gate       1   0 Kernel                        
 0xd9 0xffff816f5d4c    32-bit Int Gate       1   0 Kernel                        
 0xda 0xffff816f5d50    32-bit Int Gate       1   0 Kernel                        
 0xdb 0xffff816f5d54    32-bit Int Gate       1   0 Kernel                        
 0xdc 0xffff816f5d58    32-bit Int Gate       1   0 Kernel                        
 0xdd 0xffff816f5d60    32-bit Int Gate       1   0 Kernel                        
 0xde 0xffff816f5d64    32-bit Int Gate       1   0 Kernel                        
 0xdf 0xffff816f5d68    32-bit Int Gate       1   0 Kernel                        
 0xe0 0xffff816f5d6c    32-bit Int Gate       1   0 Kernel                        
 0xe1 0xffff816f5d70    32-bit Int Gate       1   0 Kernel                        
 0xe2 0xffff816f5d74    32-bit Int Gate       1   0 Kernel                        
 0xe3 0xffff816f5d78    32-bit Int Gate       1   0 Kernel                        
 0xe4 0xffff816f5d80    32-bit Int Gate       1   0 Kernel                        
 0xe5 0xffff816f5d84    32-bit Int Gate       1   0 Kernel                        
 0xe6 0xffff816f5d88    32-bit Int Gate       1   0 Kernel                        
 0xe7 0xffff816f5d8c    32-bit Int Gate       1   0 Kernel                        
 0xe8 0xffff816f5d90    32-bit Int Gate       1   0 Kernel                        
 0xe9 0xffff816f5d94    32-bit Int Gate       1   0 Kernel                        
 0xea 0xffff816f5d98    32-bit Int Gate       1   0 Kernel                        
 0xeb 0xffff816f5da0    32-bit Int Gate       1   0 Kernel                        
 0xec 0xffff816f5da4    32-bit Int Gate       1   0 Kernel                        
 0xed 0xffff816f5da8    32-bit Int Gate       1   0 Kernel                        
 0xee 0xffff816f5dac    32-bit Int Gate       1   0 Kernel                        
 0xef 0xffff816f5ef0    32-bit Int Gate       1   0 apic_timer_interrupt          
 0xf0 0xffff816f5db4    32-bit Int Gate       1   0 Kernel                        
 0xf1 0xffff816f5db8    32-bit Int Gate       1   0 Kernel                  

check_modules

View Source

Compares module list to sysfs info, if available.

Sysfs contains a kset objects for a number of kernel objects (kobjects). One of the ksets is the “module_kset” which holds references to all loaded kernel modules.

Each struct module object holds within it a kobj struct for reference counting. This object is referenced both from the struct module and the sysfs kset.

This plugin traverses the kset and resolves the kobj back to its containing object (which is the struct module itself). We then compare the struct module with the list of known modules (which is obtained by traversing the module’s list member). So if a module were to simply unlink itself from the list, it would still be found by its reference from sysfs.

Plugin Arguments

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

check_proc_fops

View Source

Checks the proc filesystem for hooked f_ops.

Plugin Arguments

all

Specify to see all the fops, even if they are known. (type: Boolean)

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

check_proc_fops checks the file operations pointers of each open file in the proc filesystem. Some rootkits hook these operations in order to implement process hiding.

In order to determine if an operation pointer is hooked, rekall checks that the pointer resides within a known module or the kernel image.

If a pointer is found outside of these bounds, it will be reported.

Notes

  • To obtain a list of all checked function pointers, use the --all parameter.

Sample output

Expect blank output on clean systems.

pmem 15:44:30> check_proc_fops
-------------> check_proc_fops()
   DirEntry    Path                                               Member                  Address     Module              
-------------- -------------------------------------------------- -------------------- -------------- --------------------
pmem 15:44:35> 

check_syscall

View Source

Checks if the system call table has been altered.

Plugin Arguments

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

check_syscall checks if every syscall handler points to a known symbol in the profile. All the default syscall handlers for a given kernel should be exported along with the profile and if this handler is changed, Rekall will detect it.

Notes

  1. Unknown symbols are reported as Unknown.
  2. Only the handler pointers are checked. If the original handler is still being used but it has been patched in memory, no hook detection will be done.

Sample output


check_task_fops

View Source

Check open files in tasks for f_ops modifications.

Plugin Arguments

all

Specify to see all the fops, even if they are known. (type: Boolean)

method

Method to list processes (Default uses all methods). (type: ChoiceArray)

  • Valid Choices:

    • InitTask
  • Default: InitTask

pids

One or more pids of processes to select. (type: ArrayIntParser)

proc_regex

A regex to select a process by name. (type: RegEx)

task

Kernel addresses of task structs. (type: ArrayIntParser)

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

check_task_fops checks the file operations pointers of each running process’ open files. Rootkits may hook these function pointers in order to control operation of specific tasks.

In order to determine if an operation pointer is hooked, rekall checks that the pointer resides within a known module or the kernel image.

If a pointer is found outside of these bounds, it will be reported.

Notes

  • To obtain a list of all checked function pointers, use the --all parameter.

Sample output

Expect blank output on clean systems.

pmem 15:44:30> check_task_fops
-------------> check_proc_fops()
   DirEntry    Path                                               Member                  Address     Module              
-------------- -------------------------------------------------- -------------------- -------------- --------------------
pmem 15:44:35> 

check_ttys

View Source

Checks tty devices for hooks.

Some malware insert a hook into the ops struct of the tty driver. This plugin enumerates all tty_struct objects and checks if their ops handlers have been subverted.

Plugin Arguments

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

cpuinfo

View Source

Prints information about each active processor.

Plugin Arguments

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

Sample output

[1] Windows7_VMware(Win7x64+Ubuntu686,Ubuntu64)_VBox(XPSP3x86).ram 16:07:43> cpuinfo
---------------------------------------------------------------------------> cpuinfo()
CPU         Vendor                                             Model                                      
---- -------------------- --------------------------------------------------------------------------------
0    GenuineIntel         Intel(R) Core(TM) i7 CPU         930  @ 2.80GHz                                 
1    GenuineIntel         Intel(R) Core(TM) i7 CPU         930  @ 2.80GHz                                 
2    GenuineIntel         Intel(R) Core(TM) i7 CPU         930  @ 2.80GHz                                 
3    GenuineIntel         Intel(R) Core(TM) i7 CPU         930  @ 2.80GHz

dmesg

View Source

Gathers dmesg buffer.

Plugin Arguments

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

Sample output

[1] Windows7_VMware(Win7x64+Ubuntu686,Ubuntu64)_VBox(XPSP3x86).ram 16:07:44> dmesg
---------------------------------------------------------------------------> dmesg()
Timestamp Facility Level                                     Message                                     
--------- -------- ----- --------------------------------------------------------------------------------
     0.00 0        LOG_INFO Initializing cgroup subsys cpuset                                               
     0.00 0        LOG_INFO Initializing cgroup subsys cpu                                                  
     0.00 0        LOG_INFO Initializing cgroup subsys cpuacct                                              
     0.00 0        LOG_INFO Linux version 3.11.0-12-generic (buildd@allspice) (gcc version 4.8.1 (Ubuntu/Linaro 4.8.1-10ubuntu7) ) #19-Ubuntu SMP Wed Oct 9 16:20:46 UTC 2013 (Ubuntu 3.11.0-12.19-generic 3.11.3)
     0.00 0        LOG_INFO Command line: BOOT_IMAGE=/vmlinuz-3.11.0-12-generic root=/dev/mapper/ubuntu--vmware--vg-root ro
     0.00 0        LOG_INFO KERNEL supported cpus:                                                          
     0.00 0        LOG_INFO   Intel GenuineIntel                                                            
     0.00 0        LOG_INFO   AMD AuthenticAMD                                                              
     0.00 0        LOG_INFO   Centaur CentaurHauls                                                          
     0.00 0        LOG_INFO Disabled fast string operations                                                 
     0.00 0        LOG_INFO e820: BIOS-provided physical RAM map:                                           
     0.00 0        LOG_CRIT BIOS-e820: [mem 0x0000000000000000-0x000000000009ebff] usable                   
     0.00 0        LOG_CRIT BIOS-e820: [mem 0x000000000009ec00-0x000000000009ffff] reserved                 
     0.00 0        LOG_CRIT BIOS-e820: [mem 0x00000000000ca000-0x00000000000cbfff] reserved                 
     0.00 0        LOG_CRIT BIOS-e820: [mem 0x00000000000dc000-0x00000000000fffff] reserved                 
     0.00 0        LOG_CRIT BIOS-e820: [mem 0x0000000000100000-0x000000003fedffff] usable                   
     0.00 0        LOG_CRIT BIOS-e820: [mem 0x000000003fee0000-0x000000003fefefff] ACPI data                
     0.00 0        LOG_CRIT BIOS-e820: [mem 0x000000003feff000-0x000000003fefffff] ACPI NVS                 
     0.00 0        LOG_CRIT BIOS-e820: [mem 0x000000003ff00000-0x000000003fffffff] usable                   
     0.00 0        LOG_CRIT BIOS-e820: [mem 0x00000000f0000000-0x00000000f7ffffff] reserved                 
     0.00 0        LOG_CRIT BIOS-e820: [mem 0x00000000fec00000-0x00000000fec0ffff] reserved                 
     0.00 0        LOG_CRIT BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] reserved                 
     0.00 0        LOG_CRIT BIOS-e820: [mem 0x00000000fffe0000-0x00000000ffffffff] reserved                 
     0.00 0        LOG_INFO NX (Execute Disable) protection: active                                         
     0.00 0        LOG_INFO SMBIOS 2.4 present.                                                             
     0.00 0        LOG_INFO DMI: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 07/31/2013
     0.00 0        LOG_INFO Hypervisor detected: VMware                                                     
     0.00 0        LOG_CRIT e820: update [mem 0x00000000-0x00000fff] usable ==> reserved                    
     0.00 0        LOG_CRIT e820: remove [mem 0x000a0000-0x000fffff] usable                                 
     0.00 0        LOG_INFO                                                                                 

find_dtb

View Source

A scanner for DTB values. Handles both 32 and 64 bits.

The plugin also autodetects when the guest is running as a XEN ParaVirtualized guest and returns a compatible address space.

Plugin Arguments

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

hostname

View Source

A mixin for those plugins requiring a physical address space.

Args: physical_address_space: The physical address space to use. If not specified we use the following options:

1) session.physical_address_space,

2) Guess using the load_as() plugin,

3) Use session.kernel_address_space.base.

Plugin Arguments

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

ifconfig

View Source

Gathers active interfaces.

Plugin Arguments

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

Sample output

[1] Windows7_VMware(Win7x64+Ubuntu686,Ubuntu64)_VBox(XPSP3x86).ram 16:12:17> ifconfig
---------------------------------------------------------------------------> ifconfig()
   Interface         Ipv4Address             MAC                Flags        
---------------- -------------------- ------------------ --------------------
lo               127.0.0.1            00:00:00:00:00:00  IFF_LOOPBACK, IFF_UP
eth0             192.168.239.129      00:0C:29:57:F7:19  IFF_BROADCAST, IFF_MULTICAST, IFF_UP

iomem

View Source

mimics /proc/iomem.

Plugin Arguments

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

Sample output

[1] Windows7_VMware(Win7x64+Ubuntu686,Ubuntu64)_VBox(XPSP3x86).ram 16:22:13> iomem
---------------------------------------------------------------------------> iomem()
   Resource         Start           End       Name
--------------  -------------- -------------- ----
0xffff81c3abc0  0x000000000000 0x00ffffffffff 
0x88003fff9b00 . 0x000000000000 0x000000000fff reserved
0x88003fff9b38 . 0x000000001000 0x00000009ebff System RAM
0x88003fff9b70 . 0x00000009ec00 0x00000009ffff reserved
0x88003d112200 . 0x0000000a0000 0x0000000bffff PCI Bus 0000:00
0xffff81c1aac0 . 0x0000000c0000 0x0000000c7fff Video ROM
0x88003fff9ba8 . 0x0000000ca000 0x0000000cbfff reserved
0xffff81c1ab00 .. 0x0000000ca000 0x0000000cafff Adapter ROM
0x88003d112238 . 0x0000000d0000 0x0000000d3fff PCI Bus 0000:00
0x88003d112270 . 0x0000000d4000 0x0000000d7fff PCI Bus 0000:00
0x88003d1122a8 . 0x0000000d8000 0x0000000dbfff PCI Bus 0000:00
0x88003fff9be0 . 0x0000000dc000 0x0000000fffff reserved
0xffff81c1aca0 .. 0x0000000f0000 0x0000000fffff System ROM
0x88003fff9c18 . 0x000000100000 0x00003fedffff System RAM
0xffff81c1a6a0 .. 0x000001000000 0x0000016f9945 Kernel code
0xffff81c1a6e0 .. 0x0000016f9946 0x000001d0e7ff Kernel data
0xffff81c1a660 .. 0x000001e6d000 0x000001fcffff Kernel bss
0x88003fff9c50 . 0x00003fee0000 0x00003fefefff ACPI Tables
0x88003fff9c88 . 0x00003feff000 0x00003fefffff ACPI Non-volatile Storage
0x88003fff9cc0 . 0x00003ff00000 0x00003fffffff System RAM
0x88003d1122e0 . 0x0000c0000000 0x0000febfffff PCI Bus 0000:00
0x88003d1a0488 .. 0x0000c0000000 0x0000c0007fff 0000:00:0f.0
0x88003d1a1488 .. 0x0000c0008000 0x0000c000bfff 0000:00:10.0
0x88003d202680 .. 0x0000e5b00000 0x0000e5bfffff 
0x88003d1da680 .. 0x0000e5c00000 0x0000e5cfffff PCI Bus 0000:1a
0x88003d1d2680 .. 0x0000e5d00000 0x0000e5dfffff PCI Bus 0000:12
0x88003d1ca680 .. 0x0000e5e00000 0x0000e5efffff 
0x88003d201680 .. 0x000000000000 0x000000000000 -   
0x88003fff9d30 . 0x0000fec00000 0x0000fec0ffff reserved
0x88003fff9e00 .. 0x0000fec00000 0x0000fec003ff IOAPIC 0
0x88003fff9e80 . 0x0000fed00000 0x0000fed003ff HPET 0
0x88003d2ca500 .. 0x0000fed00000 0x0000fed003ff pnp 00:07
0xffff81c25cc0 . 0x0000fee00000 0x0000fee00fff Local APIC
0x88003fff9d68 .. 0x0000fee00000 0x0000fee00fff reserved
0x88003fff9da0 . 0x0000fffe0000 0x0000ffffffff reserved

lsmod

View Source

Gathers loaded kernel modules.

Plugin Arguments

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

Rekall walks the list at kernel symbol modules to provide the list of modules.

Sample output

[1] Windows7_VMware(Win7x64+Ubuntu686,Ubuntu64)_VBox(XPSP3x86).ram 16:22:54> lsmod
---------------------------------------------------------------------------> lsmod()

******************** Overview ********************
   Virtual       Core Start   Total Size         Name
-------------- -------------- ---------- --------------------
0xffffa038d120 0xffffa038b000      12880 ipt_MASQUERADE
0xffffa0383180 0xffffa0381000      13011 iptable_nat

lsof

View Source

Lists open files.

Plugin Arguments

method

Method to list processes (Default uses all methods). (type: ChoiceArray)

  • Valid Choices:

    • InitTask
  • Default: InitTask

pids

One or more pids of processes to select. (type: ArrayIntParser)

proc_regex

A regex to select a process by name. (type: RegEx)

task

Kernel addresses of task structs. (type: ArrayIntParser)

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

Rekall walks the process table and dereferences each of the task.files.fds for each kernel task.

Sample output

$ python rekall/rekal.py -f ~/memory_images/Windows7_VMware\(Win7x64+Ubuntu686,Ubuntu64\)_VBox\(XPSP3x86\).ram  --ept 0x00017725001e - lsof 
[...]
libvirtd             1199            0       13 -                       0 -        -   
libvirtd             1199            0       14            0            0        0 socket:/NETLINK[0]
libvirtd             1199            0       15            0            0    12987 socket:/UNIX[12987]
libvirtd             1199            0       16 -                       0 -        proc
libvirtd             1199            0       17            0            0        0 socket:/NETLINK[0]
libvirtd             1199            0       18            0            0     8902 /run/libvirt/network/nwfilter.leases
libvirtd             1199            0       19            0            0     7861 -   
bash                 1335            0        0 -                       0 -        -   
bash                 1335            0        1 -                       0 -        -   
bash                 1335            0        2 -                       0 -        -   
bash                 1335            0      255 -                       0 -        -   

maps

View Source

Gathers process maps for linux.

Plugin Arguments

method

Method to list processes (Default uses all methods). (type: ChoiceArray)

  • Valid Choices:

    • InitTask
  • Default: InitTask

pids

One or more pids of processes to select. (type: ArrayIntParser)

proc_regex

A regex to select a process by name. (type: RegEx)

task

Kernel addresses of task structs. (type: ArrayIntParser)

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

Sample output

[1] Windows7_VMware(Win7x64+Ubuntu686,Ubuntu64)_VBox(XPSP3x86).ram 17:18:41> maps
---------------------------------------------------------------------------> maps()
  Pid        Start           End       Flags      Pgoff      Major  Minor      Inode                                        File Path
-------- -------------- -------------- ------ -------------- ------ ------ ------------- --------------------------------------------------------------------------------
966      0x000000000000 0x000000000000 ---    0x000000000000 0      0      0                                                                                             
1031     0x000000400000 0x00000043a000 r-x    0x000000000000 -      -      -             -                                                                               
1031     0x000000639000 0x00000063a000 r--    0x000000039000 -      -      -             -                                                                               
1031     0x00000063a000 0x00000063b000 rw-    0x00000003a000 -      -      -             -                                                                               
1031     0x0000012be000 0x0000012df000 rw-    0x000000000000 0      0      0             [heap]                                                                          
1031     0x000000000000 0x000000000000 ---    0x000000000000 0      0      0                                                                                             
1042     0x000000000000 0x000000000000 ---    0x000000000000 0      0      0                                                                                             
1056     0x000000400000 0x000000407000 r-x    0x000000000000 -      -      0             /sbin/getty                                                                     
1056     0x000000606000 0x000000607000 r--    0x000000006000 -      -      0             /sbin/getty                                                                     
1056     0x000000607000 0x000000608000 rw-    0x000000007000 -      -      0             /sbin/getty                                                                     
1056     0x000000608000 0x00000060a000 rw-    0x000000000000 0      0      0                                                                                             
1056     0x000000000000 0x000000000000 ---    0x000000000000 0      0      0                                                                                             
1058     0x000000400000 0x000000407000 r-x    0x000000000000 -      -      0             /sbin/getty                                                                     
1058     0x000000606000 0x000000607000 r--    0x000000006000 -      -      0             /sbin/getty                                                                     
1058     0x000000607000 0x000000608000 rw-    0x000000007000 -      -      0             /sbin/getty                                                                     
1058     0x000000608000 0x00000060a000 rw-    0x000000000000 0      0      0                                                                                             
1058     0x00000194c000 0x00000196d000 rw-    0x000000000000 0      0      0             [heap]                                                                          
1058     0x7f44e0f56000 0x7f44e1493000 r--    0x000000000000 252    0      660935        /usr/lib/locale/locale-archive                                                  
1058     0x000000000000 0x000000000000 ---    0x000000000000 0      0      0                                                                                             
1074     0x7f8f09279000 0x7f8f09285000 r-x    0x000000000000 -      -      0             /lib/x86_64-linux-gnu/libnss_files-2.17.so                                      
1074     0x7f8f09285000 0x7f8f09484000 ---    0x00000000c000 -      -      0             /lib/x86_64-linux-gnu/libnss_files-2.17.so                                      
1074     0x7f8f09484000 0x7f8f09485000 r--    0x00000000b000 -      -      0             /lib/x86_64-linux-gnu/libnss_files-2.17.so                                      
1074     0x7f8f09485000 0x7f8f09486000 rw-    0x00000000c000 -      -      0             /lib/x86_64-linux-gnu/libnss_files-2.17.so                                      
1074     0x7f8f09486000 0x7f8f09491000 r-x    0x000000000000 -      -      -             -                                                                               
1074     0x7f8f09491000 0x7f8f09690000 ---    0x00000000b000 -      -      -             -                                                                               
1074     0x7f8f09690000 0x7f8f09691000 r--    0x00000000a000 -      -      -             -                                                                               
1074     0x7f8f09691000 0x7f8f09692000 rw-    0x00000000b000 -      -      -             -                                                                               
[...]

mcat

View Source

Returns the contents available in memory for a given file.

Ranges of the file that are not present in memory are returned blank.

Plugin Arguments

device

Name of the device to match. (type: String)

dump_dir

Path suitable for dumping files. (type: String)

path

Path to the file. (type: String)

  • Default: /

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

You can find the list of files in memory by using the mls plugin.

memdump

View Source

Dump the addressable memory for a process.

Plugin Arguments

all

Use the entire range of address space. (type: Boolean)

  • Default: False

coalesce

Merge contiguous pages into larger ranges. (type: Boolean)

  • Default: False

dump_dir

Path suitable for dumping files. (type: String)

method

Method to list processes (Default uses all methods). (type: ChoiceArray)

  • Valid Choices:

    • InitTask
  • Default: InitTask

pids

One or more pids of processes to select. (type: ArrayIntParser)

proc_regex

A regex to select a process by name. (type: RegEx)

task

Kernel addresses of task structs. (type: ArrayIntParser)

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

memmap

View Source

Dumps the memory map for linux tasks.

Plugin Arguments

all

Use the entire range of address space. (type: Boolean)

  • Default: False

coalesce

Merge contiguous pages into larger ranges. (type: Boolean)

  • Default: False

method

Method to list processes (Default uses all methods). (type: ChoiceArray)

  • Valid Choices:

    • InitTask
  • Default: InitTask

pids

One or more pids of processes to select. (type: ArrayIntParser)

proc_regex

A regex to select a process by name. (type: RegEx)

task

Kernel addresses of task structs. (type: ArrayIntParser)

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

mfind

View Source

Finds a file by name in memory.

Plugin Arguments

device

Name of the device to match. (type: String)

path

Path to the file. (type: String)

  • Default: /

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

mfind can and will find multiple files if more than one file potentially matches the path. You can use the --device parameter to filter out by device name if you want to target a specific mountpoint.

Sample output

[1] Linux-3.2.0-4-686-pae.E01 12:56:58> mfind "/etc/passd"
--------------------------------------> mfind("/etc/passd")
[1] Linux-3.2.0-4-686-pae.E01 12:58:00> mfind "/etc/passwd"
--------------------------------------> mfind("/etc/passwd")
Files on device /dev/disk/by-uuid/55bda481-150f-442e-b781-231a904cebd1 mounted at /.
   Perms       uid        gid          size               mtime                    atime                    ctime             inode                                path
----------- ---------- ---------- -------------- ------------------------ ------------------------ ------------------------ ---------- ------------------------------------------------------------
-rw-r--r--           0          0            942 2013-12-03 12:21:50+0000 2014-11-28 10:59:14+0000 2013-12-03 12:21:50+0000        128 /etc/passwd
[1] Linux-3.2.0-4-686-pae.E01 12:58:05> mfind "/dev/pts/0"
--------------------------------------> mfind("/dev/pts/0")
[1] Linux-3.2.0-4-686-pae.E01 12:58:12> mfind "/dev/pts"
--------------------------------------> mfind("/dev/pts")
Files on device devpts mounted at /dev/pts.
   Perms       uid        gid          size               mtime                    atime                    ctime             inode                                path
----------- ---------- ---------- -------------- ------------------------ ------------------------ ------------------------ ---------- ------------------------------------------------------------
drwxr-xr-x           0          0              0 2014-11-28 11:40:08+0000 2014-11-28 11:40:08+0000 2014-11-28 11:40:08+0000          1 /dev/pts
Files on device udev mounted at /dev.
   Perms       uid        gid          size               mtime                    atime                    ctime             inode                                path
----------- ---------- ---------- -------------- ------------------------ ------------------------ ------------------------ ---------- ------------------------------------------------------------
drwxr-xr-x           0          0             40 2014-11-28 11:40:08+0000 2014-11-28 11:40:08+0000 2014-11-28 11:40:08+0000       1137 /dev/pts

mls

View Source

Lists the files in a mounted filesystem.

Plugin Arguments

device

Name of the device to match. (type: String)

path

Path to the file. (type: String)

  • Default: /

recursive

Recursive listing (type: Boolean)

unallocated

Show files that have no inode information. (type: Boolean)

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

Sample output

$ PYTHONPATH=. python rekall/rekal.py -f Linux-3.2.0-4-686-pae.E01 --profile_path ../my-profiles/ https://raw.githubusercontent.com/google/rekall-profiles/master/ - mls "/"
Files on device /dev/disk/by-uuid/55bda481-150f-442e-b781-231a904cebd1 mounted at /.
   Perms       uid        gid          size               mtime                    atime                    ctime             inode                                path
----------- ---------- ---------- -------------- ------------------------ ------------------------ ------------------------ ---------- ------------------------------------------------------------
---------            0          0              0 -                        -                        -                                 0 /
drwxr-xr-x           0          0           4096 2013-12-03 12:18:39+0000 2012-06-01 01:12:42+0000 2013-12-03 12:18:39+0000        576 /bin
drwxr-xr-x           0          0           4096 2013-12-03 12:14:16+0000 2013-12-03 12:19:41+0000 2013-12-03 12:14:16+0000        574 /dev
drwxr-xr-x           0          0           4096 2014-11-28 11:40:10+0000 2014-11-28 11:41:27+0000 2014-11-28 11:40:10+0000         15 /etc
drwxr-xr-x           0          0           4096 2013-12-03 13:25:13+0000 2014-01-28 11:40:22+0000 2013-12-03 13:25:13+0000        247 /lib
drwxr-xr-x           0          0           4096 2013-12-03 12:12:06+0000 2013-12-03 12:15:21+0000 2013-12-03 12:12:06+0000         17 /media
drwxr-xr-x           0          0           4096 2013-10-07 15:25:28+0000 2013-10-07 15:25:28+0000 2013-12-03 12:12:10+0000        571 /proc
drwx------           0          0           4096 2014-02-24 13:05:51+0000 2014-11-28 11:02:32+0000 2014-02-24 13:05:51+0000        570 /root
drwxr-xr-x           0          0           4096 2013-12-03 12:20:20+0000 2013-12-03 12:20:20+0000 2013-12-03 12:20:20+0000        569 /run
drwxr-xr-x           0          0           4096 2013-12-03 12:20:20+0000 2013-07-18 03:10:56+0000 2013-12-03 12:20:20+0000        230 /sbin
drwxr-xr-x           0          0           4096 2012-06-10 07:11:32+0000 2012-06-10 07:11:32+0000 2013-12-03 12:12:10+0000        734 /selinux
drwxr-xr-x           0          0           4096 2013-07-18 03:10:52+0000 2013-07-18 03:10:52+0000 2013-12-03 12:12:11+0000        568 /sys
drwxrwxrwxt          0          0           4096 2014-11-28 11:40:10+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:10+0000        567 /tmp
drwxr-xr-x           0          0           4096 2013-12-03 12:12:13+0000 2014-01-28 12:14:39+0000 2013-12-03 12:12:13+0000        168 /usr
drwxr-xr-x           0          0           4096 2013-12-03 12:12:13+0000 2013-12-03 12:19:03+0000 2013-12-03 12:12:13+0000         12 /var
**************************************************
Files on device devtmpfs mounted at /.
   Perms       uid        gid          size               mtime                    atime                    ctime             inode                                path
----------- ---------- ---------- -------------- ------------------------ ------------------------ ------------------------ ---------- ------------------------------------------------------------
lrwxrwxrwx           0          0              9 2014-11-28 11:40:09+0000 2014-11-28 11:40:10+0000 2014-11-28 11:40:09+0000       3464 /MAKEDEV
---------            0          0              0 -                        -                        -                                 0 /autofs
---------            0          0              0 -                        -                        -                                 0 /block
crw-------T          0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       3041 /btrfs-control
---------            0          0              0 -                        -                        -                                 0 /bus
drwxr-xr-x           0          0           2440 2014-11-28 11:40:09+0000 2014-11-28 11:40:08+0000 2014-11-28 11:40:09+0000       1184 /char
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1037 /console
lrwxrwxrwx           0          0             11 2014-11-28 11:40:09+0000 2014-11-28 11:40:10+0000 2014-11-28 11:40:09+0000       3030 /core
---------            0          0              0 -                        -                        -                                 0 /cpu
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1129 /cpu_dma_latency
---------            0          0              0 -                        -                        -                                 0 /disk
lrwxrwxrwx           0          0             13 2014-11-28 11:40:09+0000 2014-11-28 11:40:10+0000 2014-11-28 11:40:09+0000       3034 /fd
crw-rw-rw-           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1031 /full
---------            0          0              0 -                        -                        -                                 0 /fuse
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       3721 /hidraw0
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1113 /hpet
drwxr-xr-x           0          0            260 2014-11-28 11:40:09+0000 2014-11-28 11:40:10+0000 2014-11-28 11:40:09+0000       1114 /input
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1034 /kmsg
srw-rw-rw-           0          0              0 2014-11-28 11:40:10+0000 2014-11-28 11:40:10+0000 2014-11-28 11:40:10+0000       4761 /log
crw-------T          0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       3042 /loop-control
---------            0          0              0 -                        -                        -                                 0 /loop0
brw-rw----T          0          6              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       4253 /loop1
brw-rw----T          0          6              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       4256 /loop2
brw-rw----T          0          6              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       4259 /loop3
brw-rw----T          0          6              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       4264 /loop4
brw-rw----T          0          6              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       4267 /loop5
brw-rw----T          0          6              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       4271 /loop6
brw-rw----T          0          6              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       4274 /loop7
---------            0          0              0 -                        -                        -                                 0 /mapper
crw-r-----T          0         15              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1027 /mem
---------            0          0              0 -                        -                        -                                 0 /net
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1130 /network_latency
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1131 /network_throughput
crw-rw-rw-           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1028 /null
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1035 /oldmem
crw-r-----T          0         15              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1029 /port
---------            0          0              0 -                        -                        -                                 0 /ppp
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1116 /psaux
crw-rw-rw-           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1107 /ptmx
drwxr-xr-x           0          0             40 2014-11-28 11:40:08+0000 2014-11-28 11:40:08+0000 2014-11-28 11:40:08+0000       1137 /pts
crw-rw-rw-           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1032 /random
lrwxrwxrwx           0          0              4 2014-11-28 11:40:09+0000 2014-11-28 11:40:10+0000 2014-11-28 11:40:09+0000       3731 /root
---------            0          0              0 -                        -                        -                                 0 /rtc
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1117 /rtc0
lrwxrwxrwx           0          0              8 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       3947 /shm
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1106 /snapshot
---------            0          0              0 -                        -                        -                                 0 /snd
---------            0          0              0 -                        -                        -                                 0 /sndstat
lrwxrwxrwx           0          0             15 2014-11-28 11:40:09+0000 2014-11-28 11:40:10+0000 2014-11-28 11:40:09+0000       3040 /stderr
lrwxrwxrwx           0          0             15 2014-11-28 11:40:09+0000 2014-11-28 11:40:10+0000 2014-11-28 11:40:09+0000       3036 /stdin
lrwxrwxrwx           0          0             15 2014-11-28 11:40:09+0000 2014-11-28 11:40:10+0000 2014-11-28 11:40:09+0000       3038 /stdout
crw-rw-rw-           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1036 /tty
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1038 /tty0
crw-------           0          5              0 2014-11-28 11:41:20+0000 2014-11-28 11:41:20+0000 2014-11-28 11:40:16+0000       1043 /tty1
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1052 /tty10
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1053 /tty11
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1054 /tty12
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1055 /tty13
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1056 /tty14
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1057 /tty15
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1058 /tty16
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1059 /tty17
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1060 /tty18
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1061 /tty19
crw-rw----           0          5              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:10+0000       1044 /tty2
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1062 /tty20
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1063 /tty21
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1064 /tty22
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1065 /tty23
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1066 /tty24
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1067 /tty25
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1068 /tty26
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1069 /tty27
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1070 /tty28
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1071 /tty29
crw-rw----           0          5              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:10+0000       1045 /tty3
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1072 /tty30
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1073 /tty31
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1074 /tty32
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1075 /tty33
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1076 /tty34
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1077 /tty35
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1078 /tty36
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1079 /tty37
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1080 /tty38
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1081 /tty39
crw-rw----           0          5              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:10+0000       1046 /tty4
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1082 /tty40
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1083 /tty41
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1084 /tty42
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1085 /tty43
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1086 /tty44
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1087 /tty45
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1088 /tty46
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1089 /tty47
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1090 /tty48
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1091 /tty49
crw-rw----           0          5              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:10+0000       1047 /tty5
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1092 /tty50
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1093 /tty51
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1094 /tty52
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1095 /tty53
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1096 /tty54
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1097 /tty55
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1098 /tty56
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1099 /tty57
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1100 /tty58
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1101 /tty59
crw-rw----           0          5              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:10+0000       1048 /tty6
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1102 /tty60
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1103 /tty61
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1104 /tty62
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1105 /tty63
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1049 /tty7
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1050 /tty8
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1051 /tty9
crw-rw----T          0         20              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1112 /ttyS0
crw-rw----T          0         20              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1109 /ttyS1
crw-rw----T          0         20              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1110 /ttyS2
crw-rw----T          0         20              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1111 /ttyS3
---------            0          0              0 -                        -                        -                                 0 /uinput
crw-rw-rw-           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1033 /urandom
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1039 /vcs
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1041 /vcs1
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       3897 /vcs2
---------            0          0              0 -                        -                        -                                 0 /vcs3
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       3907 /vcs4
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       3912 /vcs5
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       3917 /vcs6
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1040 /vcsa
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1042 /vcsa1
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       3898 /vcsa2
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       3903 /vcsa3
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       3908 /vcsa4
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       3913 /vcsa5
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       3918 /vcsa6
---------            0          0              0 -                        -                        -                                 0 /vda
---------            0          0              0 -                        -                        -                                 0 /vda1
---------            0          0              0 -                        -                        -                                 0 /vda2
---------            0          0              0 -                        -                        -                                 0 /vda5
crw-------           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1026 /vga_arbiter
frw-r-----           0          4              0 2014-11-28 11:40:20+0000 2014-11-28 11:40:10+0000 2014-11-28 11:40:20+0000       4753 /xconsole
crw-rw-rw-           0          0              0 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000 2014-11-28 11:40:09+0000       1030 /zero
**************************************************

Note that sometimes you may have to specify the right device in order to only get the data you want. Like in this example. Use the –device parameter in that case.

$ PYTHONPATH=. python rekall/rekal.py -f Linux-3.2.0-4-686-pae.E01 --profile_path ../my-profiles/ https://raw.githubusercontent.com/google/rekall-profiles/master/ - mls "/" --device="/dev/disk/by-uuid/55bda481-150f-442e-b781-231a904cebd1"

moddump

View Source

Dumps loaded kernel modules.

Plugin Arguments

dump_dir

Dump directory. (type: String)

regexp

Regexp on the module name. (type: RegEx)

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

The list of loaded modules is obtained by running the lsmod plugin.

Sample output

$ PYTHONPATH=. python rekall/rekal.py -f Linux-3.2.0-4-686-pae.E01 --profile_path ../my-profiles/ https://raw.githubusercontent.com/google/rekall-profiles/master/ - moddump --regex ext4 --dump_dir .
Wrote 306996 bytes to ext4.0xf836a000.lkm

mount

View Source

Lists the mount points.

Plugin Arguments

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

Sample output

[1] Linux-3.2.0-4-686-pae.E01 12:56:57> mount
--------------------------------------> mount()
                      Device                                              Path                             Type             flags
-------------------------------------------------- -------------------------------------------------- -------------- --------------------
proc                                               /proc                                              proc           rw, nodev, noexec, nosuid, relatime
devpts                                             /dev/pts                                           devpts         rw, noexec, nosuid, relatime
tmpfs                                              /run/lock                                          tmpfs          rw, nodev, noexec, nosuid, relatime
tmpfs                                              /run/shm                                           tmpfs          rw, nodev, noexec, nosuid, relatime
udev                                               /dev                                               devtmpfs       rw, relatime
tmpfs                                              /run                                               tmpfs          rw, noexec, nosuid, relatime
rpc_pipefs                                         /var/lib/nfs/rpc_pipefs                            rpc_pipefs     rw, relatime
/dev/disk/by-uuid/55bda481-150f-442e-b781-231a904cebd1 /                                                  ext4           rw, relatime
devtmpfs                                           /                                                  devtmpfs       rw, relatime
sysfs                                              /sys                                               sysfs          rw, nodev, noexec, nosuid, relatime

notifier_chains

View Source

Outputs and verifies kernel notifier chains.

Plugin Arguments

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

The Linux kernel can notify modules on certain events. This is done by subscribing to a notifier chain. A notifier chain is an ordered list of functions the kernel will call when an event is triggered.

Rekall analyzes the following notifier chains and shows whether there’s any callback function registered: - The keyboard_notifier_list, which is used to notify on keyboard events and some keyloggers use. - vt_notifier_list, which is used to notify when there’s events on a virtual terminal and could be used to assist in monitoring ttys.

Normally, no callbacks will be registered in any of these notifier chains and Rekall will produce no output.

Sample output

$ PYTHONPATH=. python rekall/rekal.py -f Linux-3.2.0-4-686-pae.E01 --profile_path ../my-profiles/ https://raw.githubusercontent.com/google/rekall-profiles/master/ - notifier_chains
      Chain symbol        Index Priority  Address          Module                         Symbol                 
------------------------- ----- -------- ---------- -------------------- ----------------------------------------

pas2vas

View Source

Resolves a physical address to a virtual addrress in a process.

Plugin Arguments

method

Method to list processes (Default uses all methods). (type: ChoiceArray)

  • Valid Choices:

    • InitTask
  • Default: InitTask

offsets

A list of physical offsets to resolve. (type: ArrayIntParser)

pids

One or more pids of processes to select. (type: ArrayIntParser)

proc_regex

A regex to select a process by name. (type: RegEx)

task

Kernel addresses of task structs. (type: ArrayIntParser)

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

pidhashtable

View Source

List processes by enumerating the pid hash tables.

Plugin Arguments

method

Method to list processes (Default uses all methods). (type: ChoiceArray)

  • Valid Choices:

    • InitTask
  • Default: InitTask

pids

One or more pids of processes to select. (type: ArrayIntParser)

proc_regex

A regex to select a process by name. (type: RegEx)

task

Kernel addresses of task structs. (type: ArrayIntParser)

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

pkt_queues

View Source

Dumps the current packet queues for all known open sockets.

Plugin Arguments

dump_dir

Output directory

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

psaux

View Source

Gathers processes along with full command line and start time.

Plugin Arguments

method

Method to list processes (Default uses all methods). (type: ChoiceArray)

  • Valid Choices:

    • InitTask
  • Default: InitTask

pids

One or more pids of processes to select. (type: ArrayIntParser)

proc_regex

A regex to select a process by name. (type: RegEx)

task

Kernel addresses of task structs. (type: ArrayIntParser)

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

pslist

View Source

Gathers active tasks by walking the task_struct->task list.

It does not display the swapper process. If the DTB column is blank, the item is likely a kernel thread.

Plugin Arguments

method

Method to list processes (Default uses all methods). (type: ChoiceArray)

  • Valid Choices:

    • InitTask
  • Default: InitTask

pids

One or more pids of processes to select. (type: ArrayIntParser)

proc_regex

A regex to select a process by name. (type: RegEx)

task

Kernel addresses of task structs. (type: ArrayIntParser)

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

pstree

View Source

Shows the parent/child relationship between processes.

This plugin prints a parent/child relationship tree by walking the task_struct.children and task_struct.sibling members.

Plugin Arguments

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

psxview

View Source

Find hidden processes comparing various process listings.

Plugin Arguments

method

Method to list processes. (type: ChoiceArray)

  • Valid Choices:

    • InitTask
    • PidHashTable
  • Default: InitTask, PidHashTable

pids

One or more pids of processes to select. (type: ArrayIntParser)

proc_regex

A regex to select a process by name. (type: RegEx)

task

Kernel addresses of task structs. (type: ArrayIntParser)

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

vaddump

View Source

Dump the VMA memory for a process.

Plugin Arguments

dump_dir

Path suitable for dumping files. (type: String)

method

Method to list processes (Default uses all methods). (type: ChoiceArray)

  • Valid Choices:

    • InitTask
  • Default: InitTask

pids

One or more pids of processes to select. (type: ArrayIntParser)

proc_regex

A regex to select a process by name. (type: RegEx)

task

Kernel addresses of task structs. (type: ArrayIntParser)

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

yarascan

View Source

Scan using yara signatures.

Plugin Arguments

binary_string

A binary string (encoded as hex) to search for. e.g. 000102[1-200]0506 (type: String)

context

Context to print after the hit. (type: IntParser)

  • Default: 64

hits

Quit after finding this many hits. (type: IntParser)

  • Default: 10

method

Method to list processes (Default uses all methods). (type: ChoiceArray)

  • Valid Choices:

    • InitTask
  • Default: InitTask

pids

One or more pids of processes to select. (type: ArrayIntParser)

pre_context

Context to print before the hit. (type: IntParser)

  • Default: 0

proc_regex

A regex to select a process by name. (type: RegEx)

scan_kernel

Scan the entire kernel address space. (type: Boolean)

  • Default: False

scan_physical

Scan the physical address space only. (type: Boolean)

  • Default: False

scan_process_memory

Scan all of process memory. Uses process selectors to narrow down selections. (type: Boolean)

  • Default: False

string

A verbatim string to search for. (type: String)

task

Kernel addresses of task structs. (type: ArrayIntParser)

verbosity

An integer reflecting the amount of desired output: 0 = quiet, 10 = noisy. (type: IntParser)

  • Default: 1

yara_expression

If provided we scan for this yara expression. (type: String)

yara_file

The yara signature file to read. (type: String)