SlideShare a Scribd company logo
Backoori
Tool Aided Persistence via
Windows URI Schemes
Abuse
I’m Giulio
Security Engineer
Passion for different IT security areas: web, mobile, thick clients, network, OS hardening, code reviews
https://twitter.com/giulio_comi
https://github.com/giuliocomi/
https://www.secjuice.com/author/giulio_comi/
https://www.linkedin.com/in/giuliocomi/
https://github.com/giuliocomi/backoori
whoami
https://github.com/giuliocomi/backoori
1. URI persistence technique
o Abstract of the research behind Backoori
o Comparison to other common userland techniques
o Raise of URI persistence: Manual Demo of novel Narrator Accessibility Feature Abuse
o Behind the scene: Mapping URI scheme to its Universal App handler
o Benefits and Constraints
2. Backoori
o Go & Powershell, an unexpected duo
o Tool Architecture
o Tool Output Sample
o Demo 1: Hijacking ‘tel:’ URI - User triggered persistence scenario
o Example of Analysis Before and After the Agent execution
o Demo 2: Hijacking Multiple URIs
o Demo 3: Going beyond User triggered persistence via web ‘attack surface’
o Live Demo: Hijacking ‘https’ URI to mess with Powerpoint itself
o Few words about Detection
3. Morale
Agenda
Backoori ("Backdoor the URIs") is a Proof of Concept tool aimed to
automate the fileless URI persistence technique in Windows 10 targets.
“The widespread adoption of custom URI protocols to launch specific
Windows Universal App can be diverted to a nefarious purpose. The URI
schemes in Windows 10 can be abused in such a way to maintain
persistence via the 'Living off the Land' approach. Backdooring a
compromised Windows account in userland context is a matter of
seconds. The operation is concealed to the unaware victim thanks to the
URI intents being transparently proxyed to the legitimate default
application. The subtle fileless payloads can be triggered in many
contexts, from the Narrator available in the Windows logon screen to the
classical ‘web attack surface’.”
‘feedback-hub://’ URI
https://github.com/giuliocomi/backoori
‘https://’ URI
‘ms-settings://’ URI
Abstract of the research behind Backoori
Partial list of common userland persistence techniques
Have a look at a more complete list curated by Mitre: https://attack.mitre.org/tactics/TA0003/
https://github.com/giuliocomi/backoori
Technique Low privileges Fileless Stealthy
“Run” Registry keys ✔ ✔ ✖
Scheduled Tasks ✔ ✔ ✖
Startup Folders ✔ ✖ ✖
Image File Execution Options ✖ ✔ ✔
COM Hijacking ✔ ✖ ✔
Create backdoor account ✖ ✖ ✖
WMI Event Subscription ✖ ✔ ✔
Install Service ✖ ✖ ✖
Accessibility Features ✖ ✖ ✖
URI persistence ✔ ✔ ✔
Comparison to other common userland techniques
Major advantages…
• Living of the Land mindset (payload is saved in a Windows Registry string)
• Does not require administrator privileges when targeting Standard User victim
• Stealthy: icon in the Settings “default apps by protocol” is not modified
• Stealthy: the request is transparently forwarded to the legitimate default handler
• Antivirus likely will not detect the technique
Demo videos playlist
...but along with advantages come constraints
• Fileless persistence techniques pops for few milliseconds a visible window
• Often requires User Interaction => User triggered persistence technique
Note: not easy to know in advance or generalize for non User triggered persistence scenario: it really depends if apps on the victim computer use
constantly some URI schemes in background
However, for example with a malicious website we overcome this problem, more on this at the end ;-)
https://github.com/giuliocomi/backoori
Benefits and Constraints
https://github.com/giuliocomi/backoori
Raise of URI persistence: manual demo of novel Narrator Accessibility Feature Abuse
Procmon to the rescue! …old but gold to tracking down the flows
Try out Procmon
Why? Also valuable for finding Local Privilege Escalations via ACL misconfigurations 
Luckily, all of this is implemented in Backoori
https://github.com/giuliocomi/backoori
Behind the scene: Mapping URI scheme to its Universal App handler
CLI menu to parse the available payloads and fill them with the user input parameters
• Fun to code
• Pointers
• Building cross-platform in one built-in command: $ env GOOS={OS} GOARCH=amd64 go build -o backoori main.go
• Statically typed
Agent to run in the post exploitation scenario to add a URI persistence backdoor
• ‘Living of the land’ ideal candidate (payload is saved in a Windows Registry value)
https://github.com/giuliocomi/backoori
Go & Powershell, an unexpected duo
Payloads
templates
URIs and payloads
parameters
URI list
agent
Fill agent template with
gadgets and parameters
BACKOORI
*Optionally* (“--online”) start a custom webserver to
deliver the gadgets that will be downloaded by the
agent
cli
Payloads
to drop 
crafter
ingestor
https://github.com/giuliocomi/backoori
resources
Tool Architecture
https://github.com/giuliocomi/backoori
CLI options
https://github.com/giuliocomi/backoori
Agent output
https://github.com/giuliocomi/backoori
Demo 1: Hijacking ‘tel’ URI - User triggered persistence scenario
https://github.com/giuliocomi/backoori
Default state for
‘feedback-hub’
URI
State after a hijack
Example of Analysis Before and After the Agent execution
https://github.com/giuliocomi/backoori
Demo 2: Hijacking Multiple URIs
https://github.com/giuliocomi/backoori
Demo 3: Going beyond user triggered persistence via web ‘attack surface’
https://github.com/giuliocomi/backoori
Live Demo: Hijacking ‘https’ URI to mess with Powerpoint itself
Being URI persistence undocumented, no security solutions as reason to monitor these registry keys
Dirty approach: monitor the “Default” string value under each Universal App:
https://github.com/giuliocomi/backoori
Few words about Detection
The idea is that if one of them is not empty or not calling a legitimate binary (false positive),
then it will be almost certainly the result of an hijacked Universal App
 The URI persistence has many benefits over other well-known techniques
 At the same time there are limitations to overcome
 Golang is powerful to design standalone tools
 Powershell is an easy-win choice when it comes to scripting in Windows
https://github.com/giuliocomi/backoori
Morale
 Adding logging and symmetric payload encryption to the web server that deploys the
gadgets
 Support gadget interactions
 Weaponizing the tool from standalone project to Metasploit persistence module
https://github.com/giuliocomi/backoori
Potential next steps
 on the URI persistence technique?
 on Backoori?
 on using Golang and Powershell in your next tool?
Please get in touch
https://github.com/giuliocomi/backoori
@giulio_comi
Feedbacks
https://github.com/giuliocomi/backoori
Special Thanks to...
 @BlackHatEvents
 @ToolsWatch team
 my colleagues @ ING Belgium
 Volkan, @alexs1us, Flavio for review
 And last but not least, to You for listening!
Enjoy Black Hat !
Source Code: https://github.com/giuliocomi/backoori
Demo playlist: https://www.youtube.com/playlist?list=PL3SG0KtxnwECfDk8RtOF4MFr57bVv4LED
https://github.com/giuliocomi/backoori
References

More Related Content

PPTX
ArcherySec 2.0 @ BlackHat Arsenal Europe 2020
PDF
Fiori for s4 hana troubleshooting tips and tricks
PPTX
SSO With APEX and ADFS the weblogic way
PDF
Single Sign-On for APEX applications based on Kerberos (Important: latest ver...
PDF
OAuth 2.0
PPT
The Gartner IAM Program Maturity Model
PDF
Phrasal verbs
PPTX
Design Patterns For Real Time Streaming Data Analytics
ArcherySec 2.0 @ BlackHat Arsenal Europe 2020
Fiori for s4 hana troubleshooting tips and tricks
SSO With APEX and ADFS the weblogic way
Single Sign-On for APEX applications based on Kerberos (Important: latest ver...
OAuth 2.0
The Gartner IAM Program Maturity Model
Phrasal verbs
Design Patterns For Real Time Streaming Data Analytics

What's hot (20)

PPTX
FreeIPA - Attacking the Active Directory of Linux
PPTX
Introduction Into SAP Fiori
PPTX
SAP Governance,Risk and Compliance
PDF
Spot Lets NetApp Get the Most Out of the Cloud
PDF
GraphQL Fundamentals
PPTX
SAP HANA SPS08 Security
PDF
Secure Spring Boot Microservices with Keycloak
PDF
SSI Introduction
PPTX
Benefits of integration with the Mulesoft Anypoint Platform
PDF
Single Sign-On for APEX apps (Important: latest version on edocr!)
PDF
Introduction to OpenID Connect
PDF
OpenID Connect Explained
PPTX
Draft: building secure applications with keycloak (oidc/jwt)
PPTX
Wake Up – It’s Time to Upgrade Your S/4HANA System!
PDF
Single Sign On - The Basics
PPTX
Solution Architecture US healthcare
PPTX
DNS: EdgeCast Route - Technical DNS Service Overview
PPTX
OpenID Connect: An Overview
PDF
Using Google Cloud Identity Secure LDAP with pfSense - Netgate Hangout Octobe...
FreeIPA - Attacking the Active Directory of Linux
Introduction Into SAP Fiori
SAP Governance,Risk and Compliance
Spot Lets NetApp Get the Most Out of the Cloud
GraphQL Fundamentals
SAP HANA SPS08 Security
Secure Spring Boot Microservices with Keycloak
SSI Introduction
Benefits of integration with the Mulesoft Anypoint Platform
Single Sign-On for APEX apps (Important: latest version on edocr!)
Introduction to OpenID Connect
OpenID Connect Explained
Draft: building secure applications with keycloak (oidc/jwt)
Wake Up – It’s Time to Upgrade Your S/4HANA System!
Single Sign On - The Basics
Solution Architecture US healthcare
DNS: EdgeCast Route - Technical DNS Service Overview
OpenID Connect: An Overview
Using Google Cloud Identity Secure LDAP with pfSense - Netgate Hangout Octobe...
Ad

Similar to Windows 10 URI persistence technique (20)

PDF
Browser Horror Stories
PPTX
Blaze Information Security: URI handlers - the forgotten attack surface by J...
PDF
Penetration Testing for Easy RM to MP3 Converter Application and Post Exploit
PDF
PDF
Effectiveness of AV in Detecting Web Application Backdoors
PDF
6.3. How to get out of an inprivacy jail
PPTX
On non existent 0-days, stable binary exploits and
PPT
Mobile code mining for discovery and exploits nullcongoa2013
PDF
Triangle InfoSecCon - Detecting Certified Pre-Owned Software and Devices
PDF
I Love APIs 2015: Crash Course Foundational Topics in Apigee Edge Workshop
PDF
Esage on non-existent 0-days, stable binary exploits and user interaction
PPTX
SecTor '09 - When Web 2.0 Attacks!
PPTX
An Introduction of SQL Injection, Buffer Overflow & Wireless Attack
PPTX
A Laugh RIAt -- OWASP 2009 Web 2.0 Talk
PPTX
Hacking WebApps for fun and profit : how to approach a target?
PPTX
Owasp web application security trends
PPTX
[2.1] Web application Security Trends - Omar Ganiev
PPTX
Vulnerability, exploit to metasploit
PDF
BugBounty Roadmap with Mohammed Adam
PDF
6 ways to hack your JavaScript application by Viktor Turskyi
Browser Horror Stories
Blaze Information Security: URI handlers - the forgotten attack surface by J...
Penetration Testing for Easy RM to MP3 Converter Application and Post Exploit
Effectiveness of AV in Detecting Web Application Backdoors
6.3. How to get out of an inprivacy jail
On non existent 0-days, stable binary exploits and
Mobile code mining for discovery and exploits nullcongoa2013
Triangle InfoSecCon - Detecting Certified Pre-Owned Software and Devices
I Love APIs 2015: Crash Course Foundational Topics in Apigee Edge Workshop
Esage on non-existent 0-days, stable binary exploits and user interaction
SecTor '09 - When Web 2.0 Attacks!
An Introduction of SQL Injection, Buffer Overflow & Wireless Attack
A Laugh RIAt -- OWASP 2009 Web 2.0 Talk
Hacking WebApps for fun and profit : how to approach a target?
Owasp web application security trends
[2.1] Web application Security Trends - Omar Ganiev
Vulnerability, exploit to metasploit
BugBounty Roadmap with Mohammed Adam
6 ways to hack your JavaScript application by Viktor Turskyi
Ad

Recently uploaded (20)

PDF
PPT on Performance Review to get promotions
PPTX
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
PDF
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
PPT
introduction to datamining and warehousing
PPTX
Internet of Things (IOT) - A guide to understanding
PPTX
Foundation to blockchain - A guide to Blockchain Tech
PDF
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
PDF
Model Code of Practice - Construction Work - 21102022 .pdf
PPTX
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
PPTX
bas. eng. economics group 4 presentation 1.pptx
DOCX
573137875-Attendance-Management-System-original
PDF
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
PPT
Introduction, IoT Design Methodology, Case Study on IoT System for Weather Mo...
PPTX
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
PPT
Project quality management in manufacturing
PPTX
Artificial Intelligence
PDF
Embodied AI: Ushering in the Next Era of Intelligent Systems
PDF
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
PPTX
CYBER-CRIMES AND SECURITY A guide to understanding
PDF
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
PPT on Performance Review to get promotions
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
introduction to datamining and warehousing
Internet of Things (IOT) - A guide to understanding
Foundation to blockchain - A guide to Blockchain Tech
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
Model Code of Practice - Construction Work - 21102022 .pdf
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
bas. eng. economics group 4 presentation 1.pptx
573137875-Attendance-Management-System-original
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
Introduction, IoT Design Methodology, Case Study on IoT System for Weather Mo...
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
Project quality management in manufacturing
Artificial Intelligence
Embodied AI: Ushering in the Next Era of Intelligent Systems
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
CYBER-CRIMES AND SECURITY A guide to understanding
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026

Windows 10 URI persistence technique

  • 1. Backoori Tool Aided Persistence via Windows URI Schemes Abuse
  • 2. I’m Giulio Security Engineer Passion for different IT security areas: web, mobile, thick clients, network, OS hardening, code reviews https://twitter.com/giulio_comi https://github.com/giuliocomi/ https://www.secjuice.com/author/giulio_comi/ https://www.linkedin.com/in/giuliocomi/ https://github.com/giuliocomi/backoori whoami
  • 3. https://github.com/giuliocomi/backoori 1. URI persistence technique o Abstract of the research behind Backoori o Comparison to other common userland techniques o Raise of URI persistence: Manual Demo of novel Narrator Accessibility Feature Abuse o Behind the scene: Mapping URI scheme to its Universal App handler o Benefits and Constraints 2. Backoori o Go & Powershell, an unexpected duo o Tool Architecture o Tool Output Sample o Demo 1: Hijacking ‘tel:’ URI - User triggered persistence scenario o Example of Analysis Before and After the Agent execution o Demo 2: Hijacking Multiple URIs o Demo 3: Going beyond User triggered persistence via web ‘attack surface’ o Live Demo: Hijacking ‘https’ URI to mess with Powerpoint itself o Few words about Detection 3. Morale Agenda
  • 4. Backoori ("Backdoor the URIs") is a Proof of Concept tool aimed to automate the fileless URI persistence technique in Windows 10 targets. “The widespread adoption of custom URI protocols to launch specific Windows Universal App can be diverted to a nefarious purpose. The URI schemes in Windows 10 can be abused in such a way to maintain persistence via the 'Living off the Land' approach. Backdooring a compromised Windows account in userland context is a matter of seconds. The operation is concealed to the unaware victim thanks to the URI intents being transparently proxyed to the legitimate default application. The subtle fileless payloads can be triggered in many contexts, from the Narrator available in the Windows logon screen to the classical ‘web attack surface’.” ‘feedback-hub://’ URI https://github.com/giuliocomi/backoori ‘https://’ URI ‘ms-settings://’ URI Abstract of the research behind Backoori
  • 5. Partial list of common userland persistence techniques Have a look at a more complete list curated by Mitre: https://attack.mitre.org/tactics/TA0003/ https://github.com/giuliocomi/backoori Technique Low privileges Fileless Stealthy “Run” Registry keys ✔ ✔ ✖ Scheduled Tasks ✔ ✔ ✖ Startup Folders ✔ ✖ ✖ Image File Execution Options ✖ ✔ ✔ COM Hijacking ✔ ✖ ✔ Create backdoor account ✖ ✖ ✖ WMI Event Subscription ✖ ✔ ✔ Install Service ✖ ✖ ✖ Accessibility Features ✖ ✖ ✖ URI persistence ✔ ✔ ✔ Comparison to other common userland techniques
  • 6. Major advantages… • Living of the Land mindset (payload is saved in a Windows Registry string) • Does not require administrator privileges when targeting Standard User victim • Stealthy: icon in the Settings “default apps by protocol” is not modified • Stealthy: the request is transparently forwarded to the legitimate default handler • Antivirus likely will not detect the technique Demo videos playlist ...but along with advantages come constraints • Fileless persistence techniques pops for few milliseconds a visible window • Often requires User Interaction => User triggered persistence technique Note: not easy to know in advance or generalize for non User triggered persistence scenario: it really depends if apps on the victim computer use constantly some URI schemes in background However, for example with a malicious website we overcome this problem, more on this at the end ;-) https://github.com/giuliocomi/backoori Benefits and Constraints
  • 7. https://github.com/giuliocomi/backoori Raise of URI persistence: manual demo of novel Narrator Accessibility Feature Abuse
  • 8. Procmon to the rescue! …old but gold to tracking down the flows Try out Procmon Why? Also valuable for finding Local Privilege Escalations via ACL misconfigurations  Luckily, all of this is implemented in Backoori https://github.com/giuliocomi/backoori Behind the scene: Mapping URI scheme to its Universal App handler
  • 9. CLI menu to parse the available payloads and fill them with the user input parameters • Fun to code • Pointers • Building cross-platform in one built-in command: $ env GOOS={OS} GOARCH=amd64 go build -o backoori main.go • Statically typed Agent to run in the post exploitation scenario to add a URI persistence backdoor • ‘Living of the land’ ideal candidate (payload is saved in a Windows Registry value) https://github.com/giuliocomi/backoori Go & Powershell, an unexpected duo
  • 10. Payloads templates URIs and payloads parameters URI list agent Fill agent template with gadgets and parameters BACKOORI *Optionally* (“--online”) start a custom webserver to deliver the gadgets that will be downloaded by the agent cli Payloads to drop  crafter ingestor https://github.com/giuliocomi/backoori resources Tool Architecture
  • 13. https://github.com/giuliocomi/backoori Demo 1: Hijacking ‘tel’ URI - User triggered persistence scenario
  • 14. https://github.com/giuliocomi/backoori Default state for ‘feedback-hub’ URI State after a hijack Example of Analysis Before and After the Agent execution
  • 16. https://github.com/giuliocomi/backoori Demo 3: Going beyond user triggered persistence via web ‘attack surface’
  • 17. https://github.com/giuliocomi/backoori Live Demo: Hijacking ‘https’ URI to mess with Powerpoint itself
  • 18. Being URI persistence undocumented, no security solutions as reason to monitor these registry keys Dirty approach: monitor the “Default” string value under each Universal App: https://github.com/giuliocomi/backoori Few words about Detection The idea is that if one of them is not empty or not calling a legitimate binary (false positive), then it will be almost certainly the result of an hijacked Universal App
  • 19.  The URI persistence has many benefits over other well-known techniques  At the same time there are limitations to overcome  Golang is powerful to design standalone tools  Powershell is an easy-win choice when it comes to scripting in Windows https://github.com/giuliocomi/backoori Morale
  • 20.  Adding logging and symmetric payload encryption to the web server that deploys the gadgets  Support gadget interactions  Weaponizing the tool from standalone project to Metasploit persistence module https://github.com/giuliocomi/backoori Potential next steps
  • 21.  on the URI persistence technique?  on Backoori?  on using Golang and Powershell in your next tool? Please get in touch https://github.com/giuliocomi/backoori @giulio_comi Feedbacks
  • 22. https://github.com/giuliocomi/backoori Special Thanks to...  @BlackHatEvents  @ToolsWatch team  my colleagues @ ING Belgium  Volkan, @alexs1us, Flavio for review  And last but not least, to You for listening! Enjoy Black Hat !
  • 23. Source Code: https://github.com/giuliocomi/backoori Demo playlist: https://www.youtube.com/playlist?list=PL3SG0KtxnwECfDk8RtOF4MFr57bVv4LED https://github.com/giuliocomi/backoori References