Skip to content Skip to footer

Simplifying SSH: Secure Remote Access and Digital Investigations

What is SSH? SSH, or Secure Shell, is like a special key that lets you securely access and control a computer from another location over the internet. Just as you would use a key to open a door, SSH allows you to open a secure pathway to another computer, ensuring that the information shared between the two computers is encrypted and protected from outsiders.

Using SSH for Digital Investigations

Imagine you’re a detective and you need to examine a computer that’s in another city without physically traveling there. SSH can be your tool to remotely connect to that computer, look through its files, and gather the evidence you need for your investigation—all while maintaining the security of the information you’re handling.

SSH for Remote Access and Imaging

Similarly, if you need to create an exact copy of the computer’s storage (a process called imaging) for further analysis, SSH can help. It lets you remotely access the computer, run the necessary commands to create an image of the drive, and even transfer that image back to you, all while keeping the data secure during the process.

The Technical Side

SSH is a protocol that provides a secure channel over an unsecured network in a client-server architecture, offering both authentication and encryption. This secure channel ensures that sensitive data, such as login credentials and the data being transferred, is encrypted end-to-end, protecting it from eavesdropping and interception.

Key Components of SSH

    • SSH Client and Server: The SSH client is the software that you use on your local computer to connect remotely. The SSH server is running on the computer you’re connecting to. Both parts work together to establish a secure connection.
    • Authentication: SSH supports various authentication methods, including password-based and key-based authentication. Key-based authentication is more secure and involves using a pair of cryptographic keys: a private key, which is kept secret by the user, and a public key, which is stored on the server.
    • Encryption: Once authenticated, all data transmitted over the SSH session is encrypted according to configurable encryption algorithms, ensuring that the information remains confidential and secure from unauthorized access.

How SSH Is Used in Digital Investigations In digital investigations, SSH can be used to securely access and commandeer a suspect or involved party’s computer remotely. Investigators can use SSH to execute commands that search for specific files, inspect running processes, or collect system logs without alerting the subject of the investigation.  For remote access and imaging, SSH allows investigators to run disk imaging tools on the remote system. The investigator can initiate the imaging process over SSH, which will read the disk’s content, create an exact byte-for-byte copy (image), and then securely transfer this image back to the investigator’s location for analysis.

Remote Evidence Collection

Here’s a deeper dive into how SSH is utilized in digital investigations, complete with syntax for common operations. Executing Commands to Investigate the System

Investigators can use SSH to execute a wide range of commands remotely. Here’s how to connect to the remote system:

ssh username@target-ip-address

To ensure that all investigative actions are conducted within the bounds of an SSH session without storing any data locally on the investigator’s drive, you can utilize SSH to connect to the remote system and execute commands that process and filter data directly on the remote system. Here’s how you can accomplish this for each of the given tasks, ensuring all data remains on the remote system to minimize evidence contamination.

Searching for Specific Files

After establishing an SSH connection, you can search for specific files matching a pattern directly on the remote system without transferring any data back to the local machine, except for the command output.

ssh username@remote-system "find / -type f -name 'suspicious_file_name*'"

This command executes the find command on the remote system, searching for files that match the given pattern suspicious_file_name*. The results are displayed in your SSH session.

Inspecting Running Processes

To list and filter running processes for a specific keyword or process name, you can use the ps and grep commands directly over SSH:

ssh username@remote-system "ps aux | grep 'suspicious_process'"

This executes the ps aux command to list all running processes on the remote system and uses grep to filter the output for suspicious_process. Only the filtered list is returned to your SSH session.

Collecting System Logs

To inspect system logs for specific entries, such as those related to SSH access attempts, you can cat the log file and filter it with grep, all within the confines of the SSH session:

ssh username@remote-system "cat /var/log/syslog | grep 'ssh'"

This command displays the contents of /var/log/syslog and filters for lines containing ‘ssh’, directly outputting the results to your SSH session.

General Considerations
    • Minimize Impact: When executing these commands, especially the find command which can be resource-intensive, consider the impact on the remote system to avoid disrupting its normal operations.
    • Elevated Privileges: Some commands may require elevated privileges to access all files or logs. Use sudo cautiously, as it may alter system logs or state.
    • Secure Data Handling: Even though data is not stored locally on your machine, always ensure that the methods used for investigation adhere to legal and ethical guidelines, especially regarding data privacy and system integrity.

By piping data directly through the SSH session and avoiding local storage, investigators can perform essential tasks while maintaining the integrity of the evidence and minimizing the risk of contamination.

Remote Disk Imaging

For remote disk imaging, investigators can use tools like dd over SSH to create a byte-for-byte copy of the disk and securely transfer it back for analysis. The following command exemplifies how to image a disk and transfer the image:

ssh username@target-ip-address "sudo dd if=/dev/sdx | gzip -9 -" | dd of=image_of_suspect_drive.img.gz

In this command:

        • sudo dd if=/dev/sda initiates the imaging process on the remote system, targeting the disk /dev/sda.
        • gzip -1 - compresses the disk image to reduce bandwidth and speed up the transfer.
        • The output is piped (|) back to the investigator’s machine and written to a file image_of_suspect_drive.img.gz using dd of=image_of_suspect_drive.img.gz.
Using pigz for Parallel Compression

pigz, a parallel implementation of gzip, can significantly speed up compression by utilizing multiple CPU cores.

ssh username@target-ip-address "sudo dd if=/dev/sdx | pigz -c" | dd of=image_of_suspect_drive.img.gz

This command replaces gzip with pigz for faster compression. Be mindful of the increased CPU usage on the target system.

Automating Evidence Capture with ewfacquire

ewfacquire is part of the libewf toolset and is specifically designed for capturing evidence in the EWF (Expert Witness Compression Format), which is widely used in digital forensics.

ssh username@target-ip-address "sudo ewfacquire -u -c best -t evidence -S 2GiB -d sha1 /dev/sdx"

This command initiates a disk capture into an EWF file with the best compression, a 2GiB segment size, and SHA-1 hashing. Note that transferring EWF files over SSH may require additional steps or adjustments based on your setup.

Securely Transferring Files

To securely transfer files or images back to the investigator’s location, scp (secure copy) can be used:

scp username@target-ip-address:/path/to/remote/file /local/destination

This command copies a file from the remote system to the local machine securely over SSH.

SSH serves as a critical tool in both remote computer management and digital forensic investigations, offering a secure method to access and analyze data without needing physical presence. Its ability to encrypt data and authenticate users makes it invaluable for maintaining the integrity and confidentiality of sensitive information during these processes.

Remote Imaging without creating a remote file

you can use SSH to remotely image a drive to your local system without creating a new file on the remote computer. This method is particularly useful for digital forensics and data recovery scenarios, where it’s essential to create a byte-for-byte copy of a disk for analysis without modifying the source system or leaving forensic artifacts.

The examples you’ve provided illustrate how to accomplish this using different tools and techniques:

Using dd and gzip for Compression
ssh username@target-ip-address "sudo dd if=/dev/sdx | gzip -9 -" | dd of=image_of_suspect_drive.img.gz
      • This initiates a dd operation on the remote system to create a byte-for-byte copy of the disk (/dev/sdx), where x is the target drive letter.
      • The gzip -9 - command compresses the data stream to minimize bandwidth usage and speed up the transfer.
      • The output is then transferred over SSH to the local system, where it’s written to a file (image_of_suspect_drive.img.gz) using dd.
Using pigz for Parallel Compression

To speed up the compression process, you can use pigz, which is a parallel implementation of gzip:

ssh username@target-ip-address "sudo dd if=/dev/sdx | pigz -c" | dd of=image_of_suspect_drive.img.gz
      • This command works similarly to the first example but replaces gzip with pigz for faster compression, utilizing multiple CPU cores on the remote system.
Using ewfacquire for EWF Imaging

For a more forensic-focused approach, ewfacquire from the libewf toolset can be used:

ssh username@target-ip-address "sudo ewfacquire -u -c best -t evidence -S 2GiB -d sha1 /dev/sdx"
      • This command captures the disk into the Expert Witness Compression Format (EWF), offering features like error recovery, compression, and metadata preservation.
      • Note that while the command initiates the capture process, transferring the resulting EWF files back to the investigator’s machine over SSH as described would require piping the output directly or using secure copy (SCP) in a separate step, as ewfacquire generates files rather than streaming the data.

When using these methods, especially over a public network, ensure the connection is secure and authorized by the target system’s owner. Additionally, the usage of sudo implies that the remote user needs appropriate permissions to read the disk directly, which typically requires root access. Always verify legal requirements and obtain necessary permissions or warrants before conducting any form of remote imaging for investigative purposes.



CSI Linux Certified Covert Comms Specialist (CSIL-C3S) | CSI Linux Academy
CSI Linux Certified Computer Forensic Investigator | CSI Linux Academy