Privileged scans
Some scan types require root privileges for full functionality.Why privileges matter
SYN scans (-sS)- Faster and stealthier than connect scans
- Requires raw socket access (root)
- Default scan type in QtRecon
- Fingerprints operating systems
- Needs raw packet crafting
- More accurate with root
- Works without root but limited on some ports
Configuring graphical sudo
QtRecon usespkexec by default to elevate privileges:
gksu- Older GTK-based systemskdesudo- KDE environments- Empty string
""- If running QtRecon as root
Umask and file permissions
From the README:The final XML file created by root must be readable by your user, meaning that a restrictive umask won’t let you parse nmap run as root (needed for OS detection and syn scan mode).Solutions:
-
Run QtRecon as root (not recommended for security)
Set
graphical_su.binaryto empty string: -
Adjust umask before scanning
-
Change nmap output directory permissions
Nmap options for privileged scans
Configure scan behavior inconf.json:576-586:
Custom enumeration scripts
QtRecon includes ready-made scripts for common services in thescripts/ directory.
SMB enumeration script
The SMB script atscripts/smb.sh demonstrates complex enumeration:
Anonymous enumeration
- CrackMapExec for SMB version and shares
smbclientfor anonymous listingenum4linux-ngfor comprehensive enumeration- Nmap SMB vulnerability scripts
scripts/smb.sh:69-77:
Redis enumeration script
Minimal script for Redis atscripts/redis.sh:13-15:
Web service script
The web scriptscripts/web.sh:13-15 shows how to pass port arguments:
Creating your own scripts
Credential integration
Store and use credentials for authenticated enumeration.Adding credentials
Add new credential
Right-click in the credentials table and select Add Credential.Fill in:
- Host - Target IP or select from hosts
- Type - Password, hash, or SSH key
- Domain - Windows domain or workgroup
- Username - Account name
- Password/Hash - Authentication secret
Example: Authenticated RDP
Fromconf.json.example:179-186:
- User right-clicks RDP port (3389)
- Selects “Launch xfreerdp”
- QtRecon asks to use stored credentials
- xfreerdp launches with populated authentication
Credential types
Stored incore/database.py:19:
password- Plaintext passwordshash- NTLM or other hashesssh_key- Path to SSH private key
Screenshot module
Automatically capture screenshots during your engagement for evidence and review.Configuration
Screenshot settings inconf.json:559-575:
Setup steps
Choose engine
qt (recommended)
- Built-in Qt screenshot capability
- Cross-platform compatible
- No external dependencies
- Uses
screenshot_cmdcommand - Requires spectacle, scrot, or similar
Configure intervals
Set
interval in seconds between captures:15- Every 15 seconds (default)30- Less frequent captures5- Very frequent (large storage)
Set output paths
work_folder
- Temporary storage during session
- Screenshots accumulate here
- Final archive destination
- Compressed into single file at session end
Configure smart capture
pixel_threshold_different_images
- Minimum pixels changed to capture
- Prevents duplicate screenshots
500= skip if < 500 pixels changed
- Don’t capture when QtRecon is focused
- Reduces unnecessary screenshots of the tool itself
- Skip captures when screen locked
- Privacy protection
Process tracking
Wheninclude_processes: true, QtRecon creates a SQLite database alongside screenshots containing:
- Process names running during each capture
- Process IDs and parent PIDs
- Timestamp correlation with screenshots
processes_blacklist to exclude system processes.
Screenshot storage
Screenshots are:- Captured to
work_folder - Converted to JPG if
convert_png_to_jpg: true - Archived at session end to
dst_folder - Timestamped filenames for chronological review
Snippet organization
Quick access to frequently used commands and payloads.Structure
Snippets are organized hierarchically inconf.json:332-558:
Example: Reverse shells
Using snippets
- Click Snippets tab
- Navigate hierarchy
- Click command to copy to clipboard
- Variables like
%%%LHOST%%%and%%%LPORT%%%auto-replace based onuser_prefs
