Skip to main content
Why BreachCraft
10 min read

The Exploit We Chose Not to Run

We found an EternalBlue-vulnerable host and a path to the plant floor, and stopped. Why restraint is the point when testing near production and OT systems.

The Exploit We Chose Not to Run

By the second day of a recent internal penetration test, we had a working path to a host we could have taken over with a single unauthenticated exploit, and a route to the jump servers that guard a medical-device manufacturer’s plant floor. We ran neither all the way.

That was not caution for its own sake, and it was not a limit on our skill. It was the job done correctly. The most useful thing we can say about that engagement is not how far we got. It is where we chose to stop, and why stopping proved the point better than pressing would have.

A vulnerability you do not need to detonate to prove

One of the hosts on the network was an old Windows server, years past the end of its support, still running a legacy file-sharing protocol. It tested vulnerable to MS17-010, better known as EternalBlue: a flaw that lets an attacker take full control of a machine with no credentials and no user interaction. It is the same flaw that powered the WannaCry and NotPetya outbreaks of 2017, which together did billions of dollars of damage and shut down hospitals mid-shift. (Microsoft’s bulletin MS17-010 and the public advisories on those outbreaks, including CISA’s on WannaCry, document it in detail.)

We did not fire the exploit. We did not need to, and firing it would have been reckless.

We did not need to because the vulnerability check is reliable on its own. Confirming that a host is exposed to EternalBlue does not require setting off EternalBlue. The check tells us, and it tells the client, everything the report needs to say: this machine is exploitable, here is the proof, fix it.

Firing it would have been reckless because EternalBlue is not a gentle exploit. It manipulates memory in the operating system’s core, and when it misses it does not fail quietly. It crashes the machine. This was likely production hardware inside a medical-device manufacturing environment. A blue-screened server there is not an inconvenience. It can be a stopped production line, a batch record broken in the middle, a safety and regulatory problem that lands on people who had nothing to do with the test. The risk was entirely ours to avoid, so we avoided it.

The line at the plant-floor door

The same judgment call came up in a larger form at the boundary of the operational-technology (OT) zone, the segmented network that runs the physical manufacturing systems.

The full story of how we reached it is in the flagship writeup of this engagement. The short version: we had gained Domain Admin-equivalent control of the corporate Active Directory forest, and the OT systems shared that same forest, so our rights already counted as OT administrator rights by design. On top of that, the OT jump hosts, the controlled gateways into the plant floor, answered network requests from the corporate side.

Neither half of that took an exploit. The foothold came from credentials sitting in a readable git repository, and the escalation came from privileged access nobody had counted. Two ordinary misconfigurations, and we were standing at the door of a manufacturing plant with valid credentials. That is precisely why the stop conditions matter: the further in you get without breaking anything, the more it costs to be careless at the end.

The path, and where we chose to stop

Credentials in a readable git repository
Public repos on an internal git server, no login required
not detected
Privileged access nobody had counted
Nested groups reaching the domain's built-in Administrators group
not detected
Domain Admin-equivalent control
Of the corporate Active Directory forest
not detected
EternalBlue-vulnerable host found
Confirmed by version and vulnerability check. We did not fire the exploit: it crashes machines, and this was production medical-device hardware.
we stopped here
OT bastions reachable and credentials valid
Reachability and credential validity proved. We did not log in to a single manufacturing control system.
we stopped here
Every step before the last two was a misconfiguration, not an exploit. The last two we could have finished, and did not.

We proved two things and then stopped. We proved the OT bastions were reachable from the ordinary IT network, which they should not have been. And we proved our credentials were valid against them. That is the entire exposure: the systems that run manufacturing were reachable from a compromised corporate network, and they fell within access we already held.

We did not log in to a plant-floor system. We did not interact with a single manufacturing control. That step was withheld for a separate, explicit authorization and a coordinated window with the client’s OT team, because the stakes on the other side of that door are patient safety and regulatory compliance, not data. Interactive access to a live control system is something you arrange carefully, with the people who run it in the room, or you do not do at all. The exposure was fully demonstrated without it.

Why restraint is the feature, not the limitation

There is a version of penetration testing that treats maximum damage as maximum proof. Pop the box, crash the service, screenshot the wreckage. It makes for a dramatic report and a bad partnership.

The purpose of a test is to show you your risk without becoming the incident. A finding that says “this host is exploitable, here is the confirmation, here is the fix” protects you. A finding that says “this host was exploitable, and we know because we knocked it over during business hours” has handed you an outage and called it a service. The first is the work. The second is a tester enjoying themselves at your expense.

Knowing where that line sits comes from having been responsible for the systems on the other side of it. Deciding not to fire EternalBlue at production medical hardware, and not to touch a live manufacturing control without the OT team’s explicit sign-off, is not a gap in the assessment. It is the assessment being run by people who understand what these systems do when the test is over and the plant is still making product.

What proof without impact looks like

“Prove it without breaking it” sounds like a slogan until you see what the evidence actually is. Strong findings do not depend on causing the damage. They depend on documenting the conditions that make the damage possible.

For the vulnerable server, the proof is the version, the exposed protocol, and the vulnerability check that confirms the flaw, captured and dated. That is enough for the client to act and enough for an auditor to accept. Firing the exploit would add a crashed production machine and no new information.

For the path to the plant floor, the proof is the network route and the credential validity: the OT gateways answered from the corporate network when they should not have, and the access we already held was valid against them. Documenting reachability and held privilege demonstrates the exposure in full. Logging in to a live control system would add real operational risk and, again, tell the client nothing they did not already know from the two facts we captured.

What we proved

proved
Host is exploitable
Version, exposed protocol, and a dated vulnerability check. Enough for the client to act and an auditor to accept.
proved
OT bastions reachable from corporate IT
The network route answered when it should not have.
proved
Held credentials valid against them
Access we already had was accepted on the other side of the boundary.

What we declined to do

declined
Fire EternalBlue
Adds a crashed production machine and no new information.
declined
Log in to a plant-floor system
Withheld for separate authorization and a coordinated window with the client's OT team.

This standard matters most in environments that are regulated and change-controlled, where an unplanned reboot or a modified system can break a validated process and create a compliance problem on top of the operational one. In those settings, a tester who defaults to demonstrating exposure rather than exploiting it is not being timid. They are working under the same constraints the client’s own engineers do every day, which is exactly why the client can trust the result.

What to ask of anyone testing near production

If your environment includes systems that cannot simply be rebooted, manufacturing lines, medical devices, OT and industrial control systems, clinical infrastructure, then how a tester handles restraint is not a soft question. It is a core competency. Before you hand anyone a foothold, get clear answers on a few things.

  • Rules of engagement in writing. What is in scope, what is explicitly out, and what the stop conditions are. It should be agreed before anyone starts, not negotiated after something breaks.
  • A non-destructive standard of proof. For safety-critical systems, the default should be to demonstrate exposure (reachability, valid credentials, confirmed vulnerability) without exploiting it. Ask how they prove a finding without causing the impact.
  • OT handled as its own boundary. Interactive testing of control systems should require separate authorization and a coordinated window with the people who operate them. A tester who treats the plant floor like just another subnet is telling you something.
  • Awareness of the blast radius. The right question before any action is not only “can I do this?” but “what happens to the business if this goes wrong, and is that risk mine to take?”
  • Evidence your own team can check. A good finding is reproducible. The tester should hand you proof you can verify and retest after you fix it, not a story you have to take on faith.

We got a long way into this environment. We reached the corporate directory, the second domain, systems in another country, and the doorstep of the plant floor. The client was genuinely surprised by how far a single foothold traveled. And the part they valued most, the part that made them trust the finding, was that we drew the exposure in full and did not break anything to do it.

That trust is not a soft benefit. It is what lets a client hand a tester real access to real systems, which is the only way a test reflects real risk. A team that has to wall off its most important systems from the testers to feel safe ends up testing everything except what matters most.

That is the standard. Prove the risk, protect the business, and know exactly where to stop. If that is the kind of penetration testing you want near your production and OT systems, whether you run a manufacturing plant or healthcare infrastructure, we should talk.

Frequently Asked Questions

Can penetration testing damage production systems?

It can if the tester is careless, and that is exactly what a good tester works to prevent. Some techniques are destructive by nature. Firing an exploit like EternalBlue at a live host can crash it, and on production or safety-critical hardware a crash can mean a stopped production line or a broken process. The right approach is to demonstrate exposure without causing the impact: confirm the vulnerability with a reliable check, prove reachability and valid credentials, and document the conditions that make an attack possible. Strong rules of engagement, written stop conditions, and a non-destructive standard of proof keep a test from becoming the incident.

Should a pentester exploit EternalBlue during an assessment?

Usually not, and rarely on production hardware. Confirming that a host is exposed to EternalBlue (MS17-010) does not require detonating it. The vulnerability check is reliable on its own and tells the client everything the report needs to say: this machine is exploitable, here is the proof, fix it. EternalBlue manipulates memory in the operating system's core, and when it misses it crashes the machine rather than failing quietly. Against a production server, especially in a medical-device or manufacturing environment, that risk is the tester's to avoid. Firing the exploit adds a crashed machine and no new information.

How should penetration testers handle OT and ICS systems?

Operational-technology and industrial-control systems should be treated as their own boundary, not just another subnet. Interactive testing of a live control system should require separate, explicit authorization and a coordinated window with the people who operate it, because the stakes are patient safety, physical process, and regulatory compliance rather than data. On a network test, demonstrating that OT gateways are reachable from the corporate side and that held credentials are valid against them proves the exposure in full without logging in to a control system. If a tester treats the plant floor like an ordinary target, that tells you something about the tester.

Ready to Strengthen Your Defenses?

Schedule a free consultation with our security experts to discuss your organization's needs.

Or call us directly at (445) 273-2873