Scheduling Jobs
Introduction
When penetration testing Linux systems you may come across a system that is running a job at a regular interval. Sometimes those can be hijacked or otherwise abused. Here I discuss the two main methods, cron jobs and systemd timers.
Cron
Systemd Timers
https://www.youtube.com/watch?v=Oup21KLlpD8
You need three elements
Script or program to run
Systemd service
Goes into
/etc/systemd/system
or/lib/systemd/system/
and ents in.service
Timer to start the service
Goes into
/etc/systemd/system/
and ends in.timer
Timers run the
.service
that shares the same name as it by defaultThis behavior can be changed by adding
Unit=<service name>
in the[Timer]
section
Example Script
#!/bin/bash
echo "The date is $(date)" >> /tmp/log.log
Example Service
[Unit]
Description=My custom script
[Service]
Type=simple
ExecStart=/opt/myscript.sh
User=arronp
Example Timers
[Unit]
Description=My Custom script
[Timer]
Unit=myscript.service
OnBootSec=5min
OnUnitActiveSec=15min
[Install]
Wantedby=graphical.timer
[Unit]
Description=My Custom script
[Timer]
Unit=myscript.service
OnCalendar=Thu *-*-* 17:00:00
[Install]
Wantedby=timers.target
To start the timer once all elements are in place:
sudo systemctl deamon-reload
sudo systemctl enable myscript.timer
sudo systemctl start myscript.timer
View Timers
You can view all of the timers with:
systemclt list-timers
Continuously look at timers every second with:
watch -n 1 'systemctl list-timers'
Last updated
Was this helpful?