Categories

Category cover

Automation
155 posts

Category cover

Learning paths
119 posts

Category cover

CISO
22 posts

Category cover

Security
20 posts

Category cover

Notes
19 posts

Category cover

Personal Security
18 posts

Category cover

Infrastructure
12 posts

Category cover

OT/ICS
5 posts

Category cover

Books
3 posts

Category cover

UNetLab
3 posts

Category cover

Write-up
3 posts

Category cover

OSInt
2 posts

Category cover

My life
1 posts

Attacking the Oil Refinery plant

Andrea Dainese
March 26, 2025
Post cover

We have already explored how to attack the Bottle Filling system. This article follows up on that analysis but in a significantly more compl

We have already explored how to attack the Bottle Filling system. This article follows up on that analysis but in a significantly more complex scenario.

Reconnaissance phase

The Bottle Filling system operated automatically. However, this system requires supervision by an operator who interacts with it via an HMI. Specifically, the operator determines when to transition from one processing phase to another.

We will analyze how the PLC registers change while interacting with the HMI.

For this purpose, I developed a small tool that continuously monitors Modbus registers to determine which ones are in use. The tool is available in my GitHub repository .

We acknowledge that a real attack would be much more complex, as the attacker does not have visual feedback from the HMI or the system itself.

To continuously monitor the PLC behavior, we execute:

./modbus_monitor.py -i 172.26.104.22 -p 502 -t holding

System Idle: when the system is idle, all registers report a value of 0.

Filling Tank: as soon as the feed pump is activated, register 1 is set to 1. When the crude oil level reaches the sensor, register 1 returns to 0, and register 2 is set to 1.

From this, we deduce:

  • Register 1:  Actuator, defines the state of the feed pump (open/closed)
  • Register 2: Sensor, detects if the tank is full (tank level sensor)

Continue reading the post on Patreon .