LetsDefend: Compromised ICS Device — a PLC, a water pump and Modbus

A water treatment plant with a compromised PLC. Learning Modbus from scratch, tracing the brute force, and the one-space filter mistake that cost me an hour.

A water treatment plant. The PLC running the pumps and filtration is behaving strangely, and we've been called in to work out why.

That is not a detour. That is the job.

Careful

#

Learn from me. Open every file you're given before you start.

The alternative route, in Wireshark:

#

Note that down — it comes back later.

#

There were several login attempts, so I went with the obvious:

#

Same response, same packet. The successful login has the username and password in it — the account is the PLC operator account, and the password is a Breaking Bad reference.

(I've never watched the show. Apparently it's good.)

#

I scrolled a long way to find it. I could have saved myself the time with:

#

I didn't know. So — Google.

When you don't know: google it. Always, always, always.

#

#

Two questions here: when was the pump first turned on, and what state was it left in.

Which meant what I actually wanted was the opposite:

Careful

Open that up and the timestamp is right there.

#

I did a lot of research on this one that wasn't strictly required to answer any question. I'd do it again — it's the difference between answering a question and understanding a system.

#

To solve any challenge you don't understand, do what a good researcher does and google it relentlessly. You don't have to be a developer. You have to be curious about how the thing works.

And when your brain really hurts — that's how you know you're getting better.

I'm quite proud of this one!

Contents

Skills covered

LetsDefend: Compromised ICS Device — a PLC, a water pump and Modbus — Digital Sentinel