Transcript Slide 1
COEN 250 Computer Forensics Unix System Life Response
Creating a Response Toolkit Toolkits depend on the OS.
Often, need to compile tools from source.
Many Unix versions are not compatible.
Creating a Response Toolkit Tools on the system are often Trojaned.
Much more than on Windows machines.
Statically link tools.
http://www.incident-response.org
Store information On local hard drive.
On remote media (floppies, USB, tape) Record information by hand.
Use netcat or cryptcat to transfer to a forensic workstation over the net.
Collecting Data before a Forensic Duplication System date and time.
Currently logged-on users.
Time/date stamps for the entire file system.
List of currently open sockets.
Application listening on these sockets.
List of recent connections.
Collecting Data before a Forensic Duplication Create a trusted shell.
Exit X-windows or other GUI Log on with root privileges Mount floppy: mount /dev/fd0 /mnt/floppy Run shell from floppy (bash) Set path to . (dot)
Collecting Data before a Forensic Duplication Use “date” for the time.
Use “w” for current users.
Use ls recursively (R) to record access times, starting at /.
ls –alRu / > floppy/atime ls –alRc / > floppy/ctime ls –alR / > floppy/mtime
Collecting Data before a Forensic Duplication Alternative find / printf “%m;%Ax;%AT;%TX;%TT;%Cx;%CT;%U;% G%s;%p\n”
Collecting Data before a Forensic Duplication Find open TCP / UDP ports Goal: Find open backdoors Use “netstat –an” to view all open ports.
Use “netstat –anp” (on Linux) to list all applications associated with open ports.
Check normal use of open ports: www.portsdb.org
(currently down) http://logs.sofaware.com/resolveport/?portnumber=80& protocol=TCP Use “lsof” (list of open files) utility as in “lsof –i –D r”
Collecting Data before a Forensic Duplication Take a snapshot of all running processes ps –eaf on Solaris ps –aux on FreeBSD and Linux
Collecting Data before a Forensic Duplication Open Files lsof
Collecting Data before a Forensic Duplication Internal Routing Table netstat –rn Goal: Evidence of man in the middle attack
Collecting Data before a Forensic Duplication Loaded Kernel Module Used to be standard way to install a rootkit Use lsmod command Warning: Knark and other loadable kernel module rootkits will subvert this program
Collecting Data before a Forensic Duplication Mounted File Systems df command Example: Mounted NFS shares can be used by an intruder to transfer data
Collecting Data before a Forensic Duplication System version and patch level uname -a
Collecting Data before a Forensic Duplication Obtain all system logs /var/run/utmp log contains currently logged on users Warning: tools like “zap2” delete these entries http://www.packetstormsecurity.com/ /var/log/wtmp History of logins Syslog logs in syslog.conf
Collecting Data before a Forensic Duplication User accounts Look for evidence of backdoors in password files /etc/passwd For suspicious users, check user history files
Collecting Data before a Forensic Duplication Obtain important config files Dump System RAM Often in /proc/kmem or /proc/kcore Use it for keyword searches
Collecting Data before a Forensic Duplication Suspicious files Assume attacker runs a binary such as datapipe and then deletes it.
Binary is kept in /proc file system /proc does not exist on the hard drive To collect binary image of process pid 1234: Change into /proc/1234 Copy exe to forensics workstation using cat and netstat fd directory contains all open files for a particular process.
Collecting Data before a Forensic Duplication Take Date again Record all steps (script, history) Record MD5 sums to prevent challenges of changed data.
Rootkits Rootkits: tools to acquire and keep root access.
File Level Rootkits: Trojan login ps find who netstat
Rootkits Trojaned login Works as designed.
But lets one special username in.
Trojaned who Works as designed.
But does not display the user with the special username.
Provides access and protection
Rootkits Use Tripwire to detect system file alterations.
Use trusted forensics tool to find file level rootkits.
Rootkits Kernel-Level Rootkits Create their own kernel.
That is, let users live in a virtual reality that they created.
Loadable Kernel Modules (LKM) Supported by Linux, Solaris, etc.
Allow to add modules to the kernel.
Rootkits Rogue LKM can intercept system commands.
Tripwire will not help, system files are still there and unchanged.
Rootkits Knark To hide a process, send kill -31.
Knark LKM takes care of the rest.
Forensically sound tools are not circumvented, though.
Rootkits Detection Look for inconsistencies in the data Example: lsof output contains file /tmp/.kde
find does not list /tmp/.kde
Discrepancy is strong hint at existence of a rootkit set to hide /tmp/.kde
Sniffers Used to capture network traffic Payload are unencrypted login procedures Payload are email messages …
Sniffers Ethernet card needs to be in promiscuous mode for sniffing.
Use ifconfig –i eth0 Look for keyword PROMISC Use lsof to find large output files