Ce trebuie să știu? Studiați secțiunea de Cunoștințe evaluate și suportul agregat necesar temei. Nu contactaţi responsabilii de temă pe mail privat decât dacă aceştia vă cer explicit (e.g. pentru debugging local, vizualizarea unor comenzi din rezolvare) Pentru orice fel de întrebare vă rugăm folositi forumul!
Thread nou? Nu. Pentru o ușoară parcurgere a mesajelor, folosiți thread-urile de discuții existente în cadrul forumului, fără a crea altele. În consecință, thread-urile (subiectele de discuții) nou create vor fi șterse.
Căutare. Căutați pe forum informația pe care doriți să o obțineți, înainte să puneți o întrebare. De cele mai multe ori, cineva a mai întrebat același lucru. În fiecare thread al forumului aveți informații despre cum puteți căuta în forum.
Printscreen/poză? Nu. În cazul în care doriți să publicați un printscreen pe forum, recomandăm folosirea site-urilor pentru partajarea gratuită a imaginilor, precum imgur sau alternativele sale, publicând pe forum doar link către printscreen. Pozele inserate în răspunsuri, vor fi șterse. NU SE ACCEPTA POZE FACUTE CU TELEFONUL (se poate recurge la depunctări, sunt imposibil de urmărit).
Actualizări. Urmăriți în special forumul, în topic-urile dedicate taskurilor respective. Urmăriţi şi modificările aduse enunțului/checker-ului, modificări ce sunt publicate și explicate în paragrafele de mai jos.
Regulament. Înainte și în timpul realizării temei, vă rugăm să parcurgeți indicațiile legate de realizarea temelor, încluzând ce înseamnă o temă copiată și cum penalizăm temele copiate. Folosiți cu încredere forumurile de pe cs.curs.pub.ro pentru întrebări și neclarități legate de teme.
Întrebări frecvente. În timpul realizării temei, când vă loviți de probleme și aveți nevoie de suportul echipei de USO, parcurgeți și lista de întrebări frecvente întâlnite în cadrul temelor. Să țineți cont, va rugăm, și de recomandările de comunicare electronică.
Ajutor reciproc. Vă încurajăm ca atunci când găsiți soluția la o problemă pe care ați postat-o anterior pe forum să postați și soluția găsită. De asemenea dacă știți răspunsul la întrebările colegilor sunteți încurajați să le răspundeți. Studenţii cu o atitudine pozitivă, activă şi care îşi ajută colegii pot fi răsplătiţi cu puncte karma sau un PIN USO.
În timpul realizării temei, când vă loviți de probleme și aveți nevoie de suportul echipei de USO, parcurgeți și lista de întrebări frecvente întâlnite în cadrul temelor. Să țineți cont, va rugăm, și de recomandările de comunicare electronică.
Aveţi voie, însă, să sugerați diferite abordări pe care mergeţi sau să dați idei generale (dar nu comenzi sau fişiere shell script) celorlalți chiar direct pe forum. Încurajăm clarificarea lucrurilor între studenţi atât timp cât nu sunt rezolvate cerinţele în mod direct.
Urmăriți indicațiile legate de realizarea temelor. La prima abatere studentul primește un avertisment, iar punctajul obținut pe temă îi este redus cu valoarea punctajului pe task-ul respectiv. Începând cu a doua abatere, se va anula întregul punctaj pe tema curentă. Temele anterioare sau cele viitoare nu vor fi afectate. Abaterile se păstrează pe parcursul semestrului. Ori de câte ori se încalcă această regulă, se va ține cont de istoricul abaterilor. Abaterile vor fi actualizate în catalog.
/home/student/tema3-sec
se află arhiva1.zip
, protejată de o parolă simplă. Folosiți un utilitar precum fcrackzip sau john the ripper pentru a extrage fișierele din aceasta. Lungimea parolei căutate este de 6 litere.wordlist.txt
, și arhiva2.zip
, pe care trebuie să o dezarhivați la rândul ei. Pentru aceasta, trebuie să vă folosiți de fișierul wordlist.txt, singura problemă este că parolele din el sunt criptate cu OTP/XOR, cu cheia usostrongkey
. Criptarea cu xor este foarte simplă, presupune realizarea operației xor între textul în clar și cheie, decriptarea realizându-se prin aplicarea xor între textul cifrat și cheie.
otp_decrypt.py
pentru decriptarea unui bitstring (string format din biți, ex: “0100111”), pasându-i în linia de comandă, în ordine, bitstring-ul de decriptat și cheia (usostrongkey):
$ python3 otp_decrypt.py <bitstring> <key>
.
(
$ wget https://pastebin.com/raw/4mhCcJmv
)
arhiva3.zip
, și trei fișiere user[1..3].txt
cu câte un nume de utilizator și mai multe parole (fictive) pentru diverse site-uri. Doar una dintre ele este parola pentru arhiva3. Pentru a nu face brute-force, încercând fiecare parolă, mai aveți în arhiva2 și fișierul hashes.txt
, care conține hash-urile celor trei fișiere menționate. home/student/tema3-scripts
, creați un script numit users.sh
ce sortează alfabetic utilizatori din fișierul /etc/passwd
care lansează servicii în sistem și afișează numele și serviciile aferente acestora pentru primii 10. Numele utilizatorilor și serviciul aferent vor fi separate prin :
(ex. irc:irc). Scriptul va afișa informațiile în fișierul /home/student/tema3-scripts-output/users.out
. Vom considera că toți utilizatorii care lansează servicii în sistem au atribuit shell-ul /usr/sbin/nologin./home/student/tema3-scripts/weather.sh
creați un script care primește argumente în linia de comandă. Argumentele sunt de forma <Oraș temperatura vreme> (ex. București 10 soare). Scriptul va realiza următoarele acțiuni:/home/student/tema3-scripts-output/weather.info
. Ex: La rularea comenzii ./weather.sh Bucuresti 10 soare
fișierul weather.info
va conține linia București 10 soare
.live.info
(dacă un oraș există, informațiile vor fi actualizate, dacă nu există, se va adăuga o intrare nouă). Fiecare linie din fișierul live.info
va fi de forma Oraș temperatura vreme
. Ex: După rularea comenzilor ./weather.sh Bucuresti 10 soare
și ./weather.sh Bucuresti 8 ploaie
fișierul live.info
va conține linia București 8 ploaie
./home/student/tema3-scripts/weather_2.sh
care realizează aceleași acțiuni, dar poate primi argumentele în orice ordine. În rezolvarea acestei cerințe, păstrați și fișierul inițial, weather.sh
. Ex: După rularea comenzilor ./weather_2.sh soare 10 Bucuresti
și ./weather_2.sh Bucuresti ploaie 8
fișierul weather.info
va conține liniile București 10 soare
și București 8 ploaie
, iar fișierul live.info
va conține linia București 8 ploaie
./home/student/tema3-scripts
numit backup_task.sh
care creează un director cu numele /home/student/tema3-scripts-output/backup-confs
și salvează în acesta toate fișierele cu extensia .conf
din /etc
(în mod recursiv), indiferent de tipul acestora. Salvarea fișierelor presupune copierea acestora. NU modificati si nu mutați, niciun fisier din /etc, riscati compromiterea mașinii virtuale de teme. Toate erorile vor fi raportate în fișierul /home/student/tema3-scripts-output/backup-confs/errors.txt
. Mai departe, scriptul va realiza modificările necesare, astfel încât toate fișierele din directorul /home/student/tema3-scripts-output/backup-confs
de dimensiune mai mare de 1K să fie redenumite prin adăugarea sufixului _large
(ex: fișierul test2K.conf ar trebui să devină test2K.conf_large, nu test2K_large.conf). Atenție! Verificarea se va face rulând scriptul drept utilizatorul student
.
Când finalizați tema si asigurați-vă că ați trimis tema cu sudo uso submit
.