Bine ați revenit, dragii mei green horn hackers!
Într-un ghid foarte recent, am învățat cum să scanăm serverele vulnerabile. Într-un astfel de caz, este posibil să dorim efectuarea unor sarcini ce consumă foarte mult timp; poate în mijlocul nopții sau în timp ce suntem la serviciu sau la școală. Astfel, când ne trezim dimineața, suntem întâmpinați de o listă lungă de servere vulnerabile ce pot fi țintele eforturilor noastre mai târziu.
Cum funcționează Cron în Linux
În mod obișnuit, pentru a programa astfel de sarcini banale, dar necesare, cum ar fi efectuarea de salvări periodice, programate la un moment dat în fiecare săptămână, îl mai putem folosi pentru a programa scanările noastre sau alte treburi mai puțin ortodoxe.
Demonul cron pornește când sistemul pornește și continuă să funcționeze atâta timp cât sistemul este pornit. Citește un fișier de configurare sau fișiere, ce constau în sarcinile care trebuie executate și programul ce urmează să fie rulat. Aproape orice facem de la linia de comandă poate fi programat cu cron.
Să aruncăm o privire cum funcționează și cum putem folosi cron ca hacker.
Pasul 1: Localizăm Crontab
Cron este una dintre acele funcții care este aproape identică între distribuțiile Linux, deci ceea ce învățați aici poate fi folosit în Ubuntu, Red Hat, Suse, Mint, Slackware, CentOS etc. Acesta a făcut parte din familia Linux / UNIX încă 1970, deci este încercat și cu siguranță și-a dovedit utilitatea.
La fel ca multe lucruri în Linux, funcționalitatea cron este controlată de un fișier de configurare, mai exact un fișier text simplu. Într-un mediu cu mai mulți utilizatori, fiecare utilizator poate avea propriul fișier de configurare cron. Totuși, aici, ne vom concentra pe utilizatorul root din Kali.
Pentru cron, fișierul de configurare este fișierul crontab sau ,,tabelul cron”. Pentru a găsi fișierul crontab, tastăm:
locate crontab

După cum putem vedea, acesta este localizat în directorul /etc ca aproape orice alt fișier de configurare din Linux (există, desigur, excepții).
Pasul 2: Deschidem Crontab
Să-l deschidem și să ne uităm prin el. Putem să-l deschidem cu orice editor de text, dar aici o să folosim editorul de text grafic construit în Kali, Leafpad. Tastăm:
leafpad /etc/crontab

Versiunea Debian pe care Kali este construit, are o versiune mai nouă a crontabului, cu care este mai ușor să lucrăm decât în versiunile anterioare. Spre deosebire de versiunile anterioare, au etichetat câmpurile și au adăugat un câmp nou pentru a denumi utilizatorul care va executa sarcina.
Pasul 3: Anatomia unui Crontab
Haideți să studiem puțin fișierul. După cum puteți vedea în captura de ecran de mai sus, crontab începe cu 5 linii care sunt comentate (#). Aceste linii sunt pur și simplu o explicație sau note, ele nefiind văzute sau executate de sistem.
După liniile comentate, vedem câteva linii împreună.

Primul dintre acestea stabilește shell-ul pentru a executa sarcinile. În cazul nostru, am desemnat shell-ul BASH cu următoarea comandă. Dacă dorim să folosim un shell diferit, îl putem desemna aici.
SHELL=/bin/sh
A doua linie stabilește variabila PATH. Variabila PATH este o variabilă de mediu (există și una în Windows), care îi spune sistemului unde să caute comenzi care sunt utilizate în sarcina cron. În mod tipic, acestea sunt bin și sbindirectories (binare), ce conțin comenzile de sistem pe care le folosim în Linux (ls, echo, ps, cd etc.).
Aici sunt setările implicite:
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
Acest lucru înseamnă pur și simplu că demonul cron va căuta în acele directoare comenzile pe care le utilizăm în sarcinile programate. Dacă utilizăm o comandă sau un fișier care nu se află în acele directoare, pur și simplu edităm acea linie și adăugăm acel director la sfârșitul liniei după introducerea a două puncte (:), cum ar fi:
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/newdir
Pasul 4: Programarea sarcinilor
Acum vine partea importantă din fișierul crontab. În a treia secțiune, programăm sarcinile pe care dorim să le executăm.

Dupa cum vedem, fiecare linie reprezintă o sarcină programată care se va executa automat la orice zi, dată sau oră.
Câmpurile fișierului crontab sunt următoarele:
- Minute — minutul exact când comanda va rula (0-59)
- Hour — ora exactă când comanda sau sarcina va rula (0-23)
- Day of the Month — ziua exactă a lunii când comanda sau sarcina va rula (1-31)
- Month — luna exactă când comanda sau sarcina va rula (1-12)
- Day of the week –ziua exactă când comanda sau sarcina va rula (0-6, Duminică=0)
- User — permisiunile utilizatorului care va rula comanda sau sarcina
- Command — comanda sau sarcina care se va rula
Asteriscul (*) sau steaua reprezintă orice, deci poate fi orice zi, orice oră sau orice minut.
Pasul 5: Programarea unui scanner
Putem programa scanerul să ruleze în fiecare noapte în timp ce dormim și, sperăm, ca atunci când ne trezim dimineața, găsim o nouă potențială victimă!
Să deschidem din nou fișierul cron cu orice editor de text.
Acum vom adăuga o linie pentru a rula scanerul nostru nmap în fiecare săptămână de la ora 2:05 am. Pur și simplu adăugați această linie în fișierul nostru crontab:
05 2 * * 1,2,3,4,5 root nmap -sV –script=ssl-heartbleed 68.76.0.0/16

Salvăm și închidem acest fișier.
Acest lucru ne programează scanerul nmap Heartbleed pentru a rula în fiecare zi de luni, marți, miercuri, joi și vineri, începând cu ora 2:05 am.
Continuați să reveniți pe Blackweb, dragii mei greenhorn hackers, pentru mai multe tutoriale despre hacking și despre elementele de bază ale Linux-ului, ce ar fi bine să le cunoașteți, în drumul vostru de a deveni niște hackeri talentați.
Până data viitoare, să ne citim cu bine! 🙂