Thursday, September 28, 2017
Finding Felons with the Find Command
Finding Felons with the Find Command
Digital devices are common place. Digital device examiners are not. How does the digital dutch boy prevent the digital device dam from breaking? By sticking his preview thumb into the leak.
The point of a forensic preview is to determine if the device you are examining has evidentiary value. If it does, the device goes into your normal work flow. If it does not, it gets set aside. The dam remains intact by relieving it of the pressure of non-evidentiary devices.
The point of this post is not to enter a discussion of the benefits and short comings of forensic previewing. I’m merely going to record a method I recently used to differentiate between the files created by the owner of a laptop computer and those generated by the thief who stole the computer. Hopefully, you see something useful here to adapt to your investigation.
The Plot
Police officers recovered a laptop from a home that they believed was stolen. One roommate said the device had arrived in the home a few days earlier, but did not know how it got there. The remaining members of the household claimed to know nothing about the computer at all.
I booted the device with a Linux boot disc designed for forensic examination. The disc allows storage devices to be examined without making changes. I was lucky enough to find a user account that had been established a few years earlier, and files in that account that allowed me to identify and contact the computer’s owner. The owner reported the device had been stolen from him two weeks earlier. The owner had password protected his account, but there was a guest account available for use.
Catching the Thief
I could have stopped there, but the job would have been only half-done. I knew who owned the computer, but I didn’t know who’d stolen it. Fingerprints were not an option, so I decided to look for data in the computer that might identify who had used the computer since it had been stolen. A quick look in the guest account showed me I was not going to be as lucky identifying the suspect as I had the victim: there were no user created documents.
What I need to do was to find the files modified by the suspect and inspect those files for identifying information. The suspect may not have purposely created files, but browsing the Internet, etc, creates cache and history files that point out a person as surely than a witness in a suspect lineup (that is to say, not with 100 percent certainty, but often reliable none-the-less).
File systems are very helpful in examinations of this nature: they keep dates and times that files are created, accessed and modified, just to name a few date attributes. Modern operating systems are very helpful, too, because they usually auto-sync the computer’s clock with NTP (Network Time Protocol) servers. Simply stated, modern operating systems keep accurate time automatically.
With this knowledge in mind, I was looking for guest account files (and, ultimately, all files) that were modified in in the past two weeks. Files modified outside that range were changed by the owner and of no interest. Fortunately, the find command provides a solution:
# This command returns all files modified less than 14 days ago
$ find path/to/search -mtime -14 -daystart
Note | The -daystart option causes find to measure times from the start of the day rather than the last 24 hours. |
The -mtime n option takes integer argument n. This is where a little explanation is in order. Had I passed the integer "14", I would have only returned files modified 14 days ago. Passing "-14" returns all files modified less than 14 days ago. Passing "+14" would cause find to return all files modified more that 14 days ago. It is possible to pass two -mtime options to create a narrow range, such as:
# This command returns all files modified between 7 and 14 days ago
$ find path/to/search -mtime -14 -mtime +7
The command in the first example resulted in just over 1600 file names being returned. I saw that most of these were Google Chrome browser application data files. Both the "History" and "Login Data" SQLite databases contained data leading to the identity of the computer user since the date the laptop was stolen (a roommate) and the dates of the activity suggested the computer had been in that person’s possession since shortly after the theft.
Telling Time
The date command can really be your friend in figuring out dates and date ranges. It is easier to demonstrate than explain:
$ date
Mon Feb 23 12:41:41 PST 2015
$ date -d now
Mon Feb 23 12:41:50 PST 2015
Note | The two commands above do the same thing. |
$ date -d yesterday
Sun Feb 22 12:43:42 PST 2015
$ date -d tomorrow
Tue Feb 24 12:43:49 PST 2015
Note | The date command understands simple english. Used thusly, it calculates based on 24 hour periods, not from the start of the day. |
$ date -d 1 day ago
Sun Feb 22 12:48:57 PST 2015
$ date -d 1 year ago
Sun Feb 23 12:49:14 PST 2014
$ date -d next week
Mon Mar 2 12:49:53 PST 2015
Note: The info date command will show you many, many more useful invocations of the date command.
Determining Elapsed Days
You may recall that the find command takes an integer for its date range options, but none of the date commands I illustrated above yielded and integer show the number of days elapsed or until that date. If there is an option for date to yield such information, I have not discovered it. However, a simple shell script can be created to allow us to use the "plain language" of the date command to help us determine the integers required by find.
# This is a simple script that does not test user input for correctness
# usage: count_days.sh date1 date2
# collect dates from command line and covert to epoch
first_date=$(date -d "$1" +%s)
secnd_date=$(date -d "$2" +%s)
# calculate the difference between the dates, in seconds
difference=$((secnd_date - first_date))
# calculate and print the number of days (86400 seconds per day)
echo $((difference / 86400))
Note | This script can be made executable with chmod +x count_days.sh or simply executed by calling it with bash: bash count_days.sh |
Now, we can figure out the number of days elapsed using the same plain language conventions accepted by the date command. Be sure to enclose each date in parenthesis if the date string is more than one word.
# How many days have elapsed since January 10
$ bash count_days.sh "jan 10" "now"
44
# How many days elapsed between two dates
$ bash count_days.sh "nov 27 2013" "Aug 5 2014"
250
# How many days will elapse between yesterday and 3 weeks from now
$ bash count_days.sh "yesterday" "3 weeks"
22
You get the idea. And I hope I’ve given you some ideas on how to use the find and date commands to your advantage in a preview or other forensic examination.
download file now
Tuesday, September 26, 2017
Finding suitable problems with MySQL MariaDB to focus on
Finding suitable problems with MySQL MariaDB to focus on
My last blog post ended with me having just set up a rudimentary VM environment and hoping to turn it into a viable automatic system run with scripts. However, before I get ahead of myself I should first look into what the actual requirements of the problem subject are. Also in the last post I chose MySQL as the target service for my assignment. I should try to find actual reported problems to do with MySQL and note their causes, solutions and prerequisites if any.
MySQL is a software project with a somewhat unusual history. Started back in the 90s in Sweden, MySQL became a Free Software project under the GPL licence in 2000 and steadily gained popularity the following years. In 2008 it was acquired by Sun Microsystems, a large software corporation, and then again acquired in 2010 by Oracle, an even larger software corporation, which caused its userbase and its founder/maintainer some misgivings. Thus MariaDB was born, a fork of MySQL and intended to work as free software drop-in replacement for it. MariaDB has been gaining quite a following, often at the expense of MySQL, and is intentionally similar to MySQL. Because of this I will include it in my search alongside MySQL.
Seeing as this assignment is meant to be limited in scope only problems with the databases themselves will be considered. Covering problems with applications and services that interface or use the databases would introduce too many new variables and possibilities to research and test. Likewise, bugs in the database software itself shall also be filtered out - we want to collect problems that an average system administrator can fix by way of corrected configuration, not by recompiling source code. This may actually pose a problem for this assignment - it is logical to assume that most practical problems users come upon are tightly coupled with the specific domain and surrounding applications - not only the databases. This potential problem will be dealt with when/if it occurs.
The first place that came to mind when thinking of sites where users report problems and (hopefully) get help is the official forum. The MySQL forum was to be the first I visit:
- New Installation and root cannot login with or without password
- Using passwordless option file with mysql client
- Cant increase max_allowed_packet
The MySQL official documentation has a section dedicated to common problems. There is useful information on a number of relevant problems:
- Problems with File Permissions
- Out of memory
- Cant create/write to file
Having combed the official sources of information for common problems that fit my criteria I turned to one more potential source, one that had me feeling a bit more hopeful going in: Server Fault. Using its tagging system one can easily browse only questions tagged mysql and/or only questions that are voted as high quality.
- MySQL [Warning] IP address could not be resolved
- MySQL connection works with localhost but not with 127.0.0.1
- InnoDB: Error: log file ./ib_logfile0 is of different size
- `mysql_upgrade` is failing with no real reason given
- New Installation and root cannot login with or without password:
- Prereq. : Newly installed MySQL 5.7 on a Fedora 25 machine.
- Cause: Root password is not supplied to MySQL client but also not known by user
- Solution: Running "grep temporary password /var/log/mysqld.log" returns the temporary root password with which the user can log in.
- Using passwordless option file with mysql client
- Prereq. : Not mentioned. Presumably works with any reasonably recent MySQL version.
- Cause: User has tried to specify two passwords in a single config file. This is not supported and also not recommended for security reasons,but that is beside the point.
- Solution: Using "mysql_config_editor" to set up login_paths which will create an encrypted file with the credentials, then running "mysql --login-path=<login_path>"
- Cant increase max_allowed_packet
- Prereq. : MySQL 5.1.73
- Cause: User is using packets of size greater than 1024MebiBytes. After setting the max_allowed_packet option to 1500MebiBytes the problem persists.
- Solution: Within MySQL there is a hard upper limit for max_allowed_packet of 1024MebiBytes. A higher value is not possible and the program will not even acknowledge the setting. Informing the user of this limitation is the best resolution of this issue.
- Problems with File Permissions
- Prereq. : MySQL 5.7
- Cause: The UMASK or UMASK_DIR environment variable is set incorrectly.
- Solution: For MySQL the default UMASK and UMASK_DIR values are 0640 and 0750. Setting them to these values before starting the MySQL daemon should fix the problem.
- Out of memory
- Prereq. : MySQL 5.7
- Cause: There is not enough memory to store the entire query result.
- Solution: Not definitive. Providing the program with more memory should fix the problem.
- Cant create/write to file
- Prereq. : MySQL 5.7
- Cause: MySQL cannot create a temporary file for the result set in the temporary directory because it does not exist or i doesnt have enough free space or MySQL hasnt got the required permissions.
- Solution: Starting the MySQL daemon with the "--tmpdir" option and making sure the daemon has the needed permissions or that directory.
- MySQL [Warning] IP address could not be resolved
- Prereq. : MySQL5.6.3 on a CentOS 6.1
- Cause: MySQL daemon is using DNS to resolve IP address when it should not.
- Solution: Adding skip-host-cache and skip-name-resolve to the MySQL daemon config file.
- MySQL connection works with localhost but not with 127.0.0.1
- Prereq. : MySQL 5.5.37 on Debian Wheezy.
- Cause: "hosts.deny" and "hosts.allow" files by default have a file mode of 600. MySQL cannot access them to determine whether to allow connections.
- Solution: Change the modes of "hosts.deny" and "hosts.allow" to 644.
- InnoDB: Error: log file ./ib_logfile0 is of different size
- Prereq : MySQL converted to use the InnoDB engine (its default engine).
- Cause: InnoDB is very picky about its config and log files.
- Solution: Delete both "ib_logfile0" and "ib_logfile1" in /var/lib/mysql
- `mysql_upgrade` is failing with no real reason given
- Prereq. : Upgrading from MySQL 5.1 to 5.5
- Cause: Many, but one specific is "user didnt pass username and password"
- Solution: Pass username and password correctly "mysql_upgrade -u root -p"
download file now
Tuesday, September 19, 2017
Finding Ip Address Of A Website Using Command Prompt Or CMD
Finding Ip Address Of A Website Using Command Prompt Or CMD

How to find IP ?
1. Go to Start > Type CMD and press Enter.2. Now write Ping followed by website URL whose IP you want to find.

In my next post i will show you another easy way to find website IP Address and teach you to use this IP to find its location.
download file now
Monday, September 11, 2017
Finding Serial Numbers on Locked iPhones
Finding Serial Numbers on Locked iPhones
Apple iDevices have their serial number engraved on the back, right? So why the article? Because its not true of newer devices like the iPhone 5, 5s, and 5c. Also, original cases can be replaced and serial numbers obliterated through unprotected use or deliberate act. Now I have your attention again, I hope.
Getting the Message
Recovering the Serial Number
download file now
Tuesday, September 5, 2017
Finding Serial Key of Any Software using Google
Finding Serial Key of Any Software using Google

How To Find Serial Key Of Any Software ?
1. Go to Google
2. Then type Software Name 94FBR
- Replace Software Name with the name of software whose serial key you want to find
- Eg: To find serial key of Nero i will type Nero 94fbr

Get paid 2$ for a click. Its a great website Check It Out ?
??????
download file now