27
PRESENTED BY: © Mandiant Corporation. All rights reserved. Don’t Drop that Table: A Case Study in MySQL Forensics Jeff Hamm 8 JUNE 2014 1

Don’t Drop that Table - Digital Forensics Trainingt_Drop... · Don’t Drop that Table: A Case Study in MySQL Forensics Author: Jennifer Santiago Created Date: 6/10/2014 3:07:18

Embed Size (px)

Citation preview

PRESENTED BY:

© Mandiant Corporation. All rights reserved.

Don’t Drop that Table:

A Case Study in MySQL

Forensics

Jeff Hamm 8 JUNE 2014

1

© Mandiant Corporation. All rights reserved.

Introduction

Rebuilding a Database

Case Scenario

Identification of Artifacts

Rebuilding the Tables

Conclusions

What’s Next

MSSQL Forensics

MySQL Forensics

Review & Questions

Objectives

2

Introduction

3

© Mandiant Corporation. All rights reserved.

Case Background

Seized MySQL database

Messaging Board

No file system artifacts

No logs

Needed to identify one individual

All activities and posts

Profile information

Contacts

Introduction

4

© Mandiant Corporation. All rights reserved.

Approach

Forensic Linux VM

MySQL Server

Import database tables into “pristine” server

BASH scripts to reference relevant data

Introduction

5

Rebuilding a Database

6

© Mandiant Corporation. All rights reserved.

PII data was targeted

Criminals use “carder” forums to communicate

Sell PII

Purchase PII

Third party database tables

No file system artifacts

No log data

Case Scenario

7

© Mandiant Corporation. All rights reserved.

484 files

FRM

MYD

MYI

MyISAM

.frm table format

.MYD table data

.MYI table indices

“db.opt”

default-character-set=utf8

default-collation=utf8_general_ci

Identification of Artifacts

8

© Mandiant Corporation. All rights reserved.

Strings of FRM files

PRIMARY

MyISAM

)

userid

forumid

accessmask

userid

forumid

accessmask

Identification of Artifacts

9

© Mandiant Corporation. All rights reserved.

Imported to

Clean Ubuntu VM

MySQL Server package

/var/lib/mysql/evidence_database/

Permissions:

mysql/mysql

Identification of Artifacts

10

© Mandiant Corporation. All rights reserved.

Table “evidence_user” columns:

username

email

lastvisit

posts

ipaddress

Identification of Artifacts

11

© Mandiant Corporation. All rights reserved.

mysql-server

create empty database

evidence_database

Copy database files and “db.opt”

/var/lib/mysql/evidence_database

Log into database

mysql -uroot -p{password}

Rebuilding the Tables

12

© Mandiant Corporation. All rights reserved.

mysql> SHOW DATABASES;

+----------------------+

|Database +

+----------------------+

|information_schema +

|evidence_database +

|mysql +

|performance_schmea +

|test +

+----------------------+

Rebuilding the Tables

13

© Mandiant Corporation. All rights reserved.

mysql> USE evidence_database;

mysql> SHOW TABLES;

+----------------------------+

|Tables in evidence database +

+----------------------------+

|evidence_user +

|messages +

|private_message +

+----------------------------+

Rebuilding the Tables

14

© Mandiant Corporation. All rights reserved.

mysql> SHOW COLUMNS IN evidence_user;

+------------------+----------------------+------+-----+------------+----------------+

| Field | Type | Null | Key | Default | Extra |

+------------------+----------------------+------+-----+------------+----------------+

| userid | int(10) unsigned | NO | PRI | NULL | auto_increment |

| usergroupid | smallint(5) unsigned | NO | MUL | 0 | |

| membergroupids | varchar(250) | NO | | | |

| displaygroupid | smallint(5) unsigned | NO | | 0 | |

| username | varchar(100) | NO | MUL | | |

| password | varchar(32) | NO | | | |

| passworddate | date | NO | | 0000-00-00 | |

| email | varchar(100) | NO | | | |

| ipaddress | varchar(15) | NO | | | |

+------------------+----------------------+------+-----+------------+----------------+

Rebuilding the Tables

15

© Mandiant Corporation. All rights reserved.

mysql> SELECT userid FROM evidence_user

WHERE username = ‘evil_badguy’;

+--------+

| userid |

+--------+

| 12345 |

+--------+

Rebuilding the Tables

16

© Mandiant Corporation. All rights reserved.

mysql> SELECT * FROM messages

WHERE userid = '12345'

INTO OUTFILE '/tmp/evidence.txt'

FIELDS TERMINATED by '|'

ENCLOSED by '"'

LINES TERMINATED by '\n';

Rebuilding the Tables

17

© Mandiant Corporation. All rights reserved.

#!/bin/bash

N=0

cat threadid.list | while read LINE ; do

N=$((N+1))

echo "Adding $LINE..."

mysql -uroot ñp{password} evidence_database -e

"SELECT postid,threadid,dateline,username,pagetext FROM

evidence_post

WHERE threadid = '$LINE'

INTO OUTFILE '/tmp/junk/$LINE.txt'

FIELDS TERMINATED by \"|\"

ENCLOSED BY '\"' LINES TERMINATED BY

'\\n'"

cat junk/$LINE.txt >> threads

done

Rebuilding the Tables

18

© Mandiant Corporation. All rights reserved.

#!/bin/bash

N=0

cat pmtextid.list | while read LINE ; do

N=$((N+1))

echo "Line $N = $LINE"

mysql -uroot -p{password} evidence_database -e

"SELECT * FROM evidence_pmtext

WHERE pmtextid = '$LINE'

INTO OUTFILE '/tmp/$LINE.txt'

FIELDS TERMINATED by \"|\"

ENCLOSED BY '\"' LINES TERMINATED BY

'\\n'"

cat $LINE.txt >> private_messages

done

Rebuilding the Tables

19

Conclusions

20

© Mandiant Corporation. All rights reserved.

Sufficient for a third party system

If target of attack many other aspects that need to be

explored:

Deleted items

SQL logs

System logs

Unallocated space

Application

Logs

File System

Artifacts

Conclusions

21

What’s Next

22

© Mandiant Corporation. All rights reserved.

Database Configuration o Two tier o Three tier

Application Framework Overview o ColdFusion o ASP.NET

File System Artifacts o Intelligence Gathering Tools o Webshells o Binaries

Settings and Configuration Files o Windows Registry o DBMS Settings

System and Database Application Logs o Windows Event Logs o SQL Server Setup Log o SQL Server Profiler Log o SQL Server Agent Log o SQL Server Error Log o Transaction Logs

Web Access and Error Logs o IIS Logs

Viewing a Database Externally

MSSQL Forensics

23

© Mandiant Corporation. All rights reserved.

Database Configuration o Two tier o Three tier

Application Framework Overview o TomCat o ColdFusion o Drupal

File System Artifacts o Intelligence Gathering Tools o Webshells o Binaries

Settings and Configuration Files o init.d o rc.d o DBMS Settings

System and Database Application Logs o messages/system o auth/secure o Transaction Logs

Web Access and Error Logs o httpd/apache access o httpd/apache error

Viewing a Database Externally

MySQL Forensics

24

Review and Questions

25

© Mandiant Corporation. All rights reserved.

Introduction

Rebuilding a Database

Case Scenario

Identification of Artifacts

Rebuilding the Tables

Conclusions

What’s Next

MSSQL Forensics

MySQL Forensics

Review & Questions

Review

26

© Mandiant Corporation. All rights reserved.

Questions