PRIMARY CATEGORY β†’ FILE MANIPULATION

MDB β†’ File extension used by Microsoft Access in versions prior to 2007

.MDB File Manipulation

Mdb-Tools

To interact with a .MDB file in Linux β†’

apt install -y -- mdbtools
List MDB Shema
mdb-schema <MDB_FILE>
List MDB Tables
mdb-tables -1 <MDB_FILE>
Get MDB Table Content
mdb-export <MDB_FILE> <TABLE_NAME>

MDB to SQL

Mdb-Tools
Schema Structure
mdb-schema <MDB_FILE> mysql > <SQL_FILE>
Values to Insert
while IFS= read -r _table ; do mdb-export --insert=mysql --quote=\' --bin=octal --date-format=%F backup.mdb "$_table" ; done < <(mdb-tables -1 backup.mdb )

MDB to Json

Mdb-Tools
mdb-json
{ while IFS= read -r _table; do mdb-json backup.mdb "$_table"; done < <( mdb-tables -1 backup.mdb ) ; } > backup.json
Extract Data from JSON
  • Username and Password β†’ USERNAME:PASSWORD

e.g. john:password123

{ jq --raw-output '"\(.username):\(.password)" | select( . != "null:null")' < <(< backup.json) | cat --language json - } > credentials.txt
{ jq --raw-output '"\(.name):\(.PASSWORD)" | select( . != "null:null")' < <(< backup.json) | cat --language json - } >> credentials.txt
  • User’s Name and Lastname

e.g. JCarter, MSmith

{ jq --raw-output '"\(.name | split("")[0])\(.lastname)"' < <(< backup.json) 2> /dev/null } > users.txt
JCarter

e.g. john.carter, mark.smith

{ jq --raw-output '"\((.name | ascii_downcase)).\((.lastname | ascii_downcase))" | select( . != "null.null")' < <(< backup.json) 2> /dev/null } > users.txt