Showing posts with label finding. Show all posts
Showing posts with label finding. Show all posts

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:

GNU Find command, example 1
# 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:

GNU Find command, example 2
# 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:

GNU Date command, example 1
$ 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.
GNU Date command, example 1
$ 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.
GNU Date command, example 1
$ 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.

count_days.sh
# 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.

count_days.sh
# 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

Read more »

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
These are a few reported issues that fit my criteria to some degree. My impression of the MySQL forum as a source is not very favourable. Searching and browsing is not very intuitive and helpful answers seem to be relatively rare. Snarky and condescending comments on the other hand seem rife.

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
The next place I looked was the MariaDB offical forum. Or it would be if it existed. Try as I might I could not find an official forum, or a definitive site for MariaDB discussion.

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
With this set of links in hand I wrote out a summary of prerequisites, causes and solutions of each problem:
  1. 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.
  2. 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>"
  3. 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. 
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. 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
  10. `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"
The last problem in the list, numbered 10, is an example of a problem that seems to have many different causes that all lead to the same set of symptoms.

Using these examples I can try to come up with ways of causing and detecting these kinds of symptoms in virtual environments.


download file now

Read more »

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


In this tutorial i will teach you to find Ip Address of any website using Command Prompt or in short CMD. Using IP Address you can find location of the website server and do more stuff. I will demostrate this tutorial with Google but you can use this method to find IP Address of any website like twitter, facebook etc. So lets get started.

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.
finding ip adddress of website 


3. It will take less then a second and come up with the results as shown below.

finding ip adddress of website

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

Read more »

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

Ive written in the past about the libimobiledevice library and its utilities.  One, which is quite handy for gathering device information is ideviceinfo.  It provides information such as the device description (color), device class (iPhone, iPod, iPad), device name, etc.  When the device is unlocked, you can retrieve the serial number, as well.  Basically, you retrieve the contents of the Info.plist.

But ideviceinfo is not so informative with a locked device.  In fact, it wont show you any output unless you use the -s simple option.  While you can obtain some information, such as the description, class, name, UDID (unique identifier), and Mac address, you cant display the serial number.  But never fear, there is a way...

Linux has a system log that tracks systems events, included the plugging and unplugging of devices. The system log can be dumped the the terminal with the dmesg command.  Run by itself, you dump the entire log and its quite a lot of information to sift through, though in truth what you want will be found at or near the end of the log.  You can shorten the output to the content you need with

$ dmesg syslog

But an even niftier trick is to set up your system to display the log as it is created and watch the output:

$ tail -f /var/log/syslog

This will display the last 10 lines of the system log and the "follow" it until you cancel with ctrl-c. Now you can hotplug your iDevice and watch the data that the system log records about the device. Unfortunately, you will see that it displays the device UDID and not the serial number in the "SerialNumber" field for a locked iDevice.

Recovering the Serial Number

The serial number is recoverable in Recovery Mode, however.  Pressing and holding the hardware power button brings up the software power off slide button.  Power off the device, and then replug it into your Linux box while holding the hardware home button.  The device will boot into recovery mode.  Now check your syslog with either of the two methods discussed above.  Two serial numbers are displayed in the syslog after the product (iPhone, etc) and manufacturer (Apple) are listed.  The first is the UDID, but the second includes several key:value pairs, one of which is the device serial number (key SRNM).  

When you are done collecting the device data revealed in the syslog, reboot it, if required, by pressing and holding the power button approximately 10 seconds until the recovery screen goes blank.  The device will then reboot into the operating system, probably feeling very ashamed of itself for revealing its secrets so readily.


download file now

Read more »

Tuesday, September 5, 2017

Finding Serial Key of Any Software using Google

Finding Serial Key of Any Software using Google



google tricks
Most of you download and use pirated software from torrents or any such other sites, but sometime it gets very difficult to find serial key of those softwares. I will make it easy for you by showing you simple yet very intersting google trick which will allow you to find serial key of any software very easily.


How To Find Serial Key Of Any Software ?

The key 94FBR is a part of  Office 2000 Pro CD activation key that is widely distributed as it bypasses the activation requirements of Office 2000 Pro. By searching for 94fbr and the product name, you are guarantee that the pages that are returned are pages dealing specifically with the product youre wanting a serial for. Follow simple steps given below to learn this trick

    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
    3. Now press Enter and you will find serial key of software you are looking for as shown below.
google trick to find serial key






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


download file now

Read more »