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.
Actualizări. Urmăriți atât forumul cât ș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 acs.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, vă 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.
Verificaţi toate indicaţiile din Tema 0 cu privire la maşina virtuală şi configuratiile necesare. Dacă aveţi probleme postați, pe forum!
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.
Când finalizați tema, asigurați-vă că ați submis tema cu sudo uso submit.
Porniţi lucrul la tema 2
student@usohomework:~$ sudo uso start 2
După ce vă conectați cu user-ul și parola de pe moodle pe platforma de teme, introduceți codul primit mai sus când ați rulat sudo uso start 2 pentru a porni tema!
student@usohomework:~$ sudo uso update User logged in as: rares.shefu.thau Updatam tema. Te rog asteapta... Tema updatata.
Conectaţi-vă la maşina virtuală folosind SSH. ESTE RECOMANDAT SĂ LUCRAŢI FOLOSIND SSH LA ACEASTA TEMĂ, veţi avea nevoie de lucru în mai multe terminale!
mihai@wormhole:~$ ssh student@localhost student@usohomework:~$
Pentru cei la care host-ul pe maşina fizică este Windows puteţi folosi utilitarul Putty. Aveţi aici un tutorial de Putty. Pur şi simplu alegeţi ca IP 127.0.0.1, protocol SSH, port 2222. Open and have fun. Deschideţi atâtea instanţe de Putty câte terminale aveţi nevoie (recomandăm minim 5 - 4 containere, 1 pentru maşina de USO). De asemenea, puteți folosi client-ul built-in de ssh al Windows-ului (mai multe detalii aici)
Trimiteți exact 5 pachete catre adresa 8.8.8.8 la intervale regulate de 6 sec
afisand TIMESTAMP-ul pachetelor si activand reserve DNS resolution
Salvați outputul în: /home/student/tema2/task1/PING_PONG.txt
Trimiteti un singur pachet catre adresa 1.1.1.1, salvand output-ul /home/student/tema2/task1/four_ones.txt
Folosind nslookup gasiti adresa ipv4 si adresa ipv6 a google.com. Salvati fiecare adresa pe cate o linie in fisierul /home/student/tema2/task1/ipv6.txt
Pentru acest task, ne vom folosi de un clasic wordlist(un leak de parole care au fost facute publice de hackeri) numit 'rockyou', unul dintre cele mai mari din istorie.
b) Acum ne vom folosi(adica voi) de skill-urile dobandite pentru a descarca folosind un request de tip GET(=a obtine o resursa de pe internet) fisierul rockyou.txt.gz, un celebru wordlist cu parole din datacentere sparte. Link-ul este acesta https://weakpass.com/wordlists/rockyou.txt. Problema este ca va trebui sa identificati link-ul aferent fisierului, nu paginii html. Dupa descarcare, salvati parola de pe line 7777 in fisierul /home/student/tema2/task2/my_password.txt
Dupa ce descarcati si dezarhivati wordlist-ul, redirectionati un checksum de tip sha256 al acestui wordlist in fisierul /home/student/tema2/task2/wordlist_checksum.txt
Pentru acest task ne vom juca cu fisierul extras la task-ul anterior(rockyou.txt) folosind comenzi precum grep, cat, wc.v
Pentru fiecare subtask veti salva output-ul aferent pe o linie noua in fisierul home/student/tema2/task3/values.txt pe care vav
trebui sa il creati voi
;.| values.txt | outputs.txt |
|---|---|
| student | echo $(whoami) |
| 10 | echo “10” |
| 99 | echo “99” |
a) Scrieti pe prima linie a fisierului /home/student/tema2/task3/values.txt numarul de octeti ocupat de wordlist-ul rockyou.txt.
b) Adaugati pe a doua linie a fisierului /home/student/tema2/task3/values.txt parola aflata pe pozitia 1337 d.p.d.v. alfabetic din primele 3000 de parole aflate in wordlist-ul nesortat.
Pentru acest task va trebui sa descarcam un alt wordlist mai 'domestic' decat acel anterior si mai relevant pentru noi ca si limba(nu ne intereseaza parole cu alfabete non latine) si anume: https://github.com/kkrypt0nn/wordlists/blob/main/wordlists/passwords/most_used_passwords.txt;
wget https://github.com/kkrypt0nn/wordlists/blob/main/wordlists/passwords/ NU va functiona corect. Nu veti primi fisierul text, ci pagina web aferenta. Folositi-va de interfata web a GitHub si de resursele valabile pe internet pentru a afla structura aferenta URL-ul
Dupa ce descarcati wordlist-ul, veti scrie in fisierul home/student/tema2/task4/password_statistics.txt urmatoarele informatii
Doarece subtask-ul a) a fost de incalzire, acum dorim sa scriem pe a patra liniie numarul total de parole care respecta cel putin una din conditiile urmatoare:
Un prieten vă cere ajutorul cu un virus. El vă spune că, de fiecare dată când pornește sistemul său, acesta se blochează după câteva minute. Virusul acesta se multiplică la un anumit interval de timp, umplând memoria sistemului cu procese, care nu fac nimic util.
Task-ul vostru este să opriți toate procesele malițioase, folosind o singură comandă.
Prin “o singură comandă” se înțelege ceva executat în terminal, după o singură apăsare a tastei enter, care nu conține comenzi înlănțuite prin ;.
Pentru acest task, aveți de realizat următoarele:
sudo /home/student/tema2/task5/task5/home/student/tema2/task5/sol.txt comanda folosită
Fiind studenți la UPB, aveți unele beneficii.
Unul dintre ele posibilitatea de a folosi mașini din cloud-ul facultății.
Vă puteți conecta la aceste mașini folosind username-ul și parola de pe Moodle în felul următor: ssh <user>@fep.grid.pub.ro
- faceți configurația necesară pentru a vă putea conecta la fep fără a vi se cere parola, prin ssh. [7p]
/home/student/tema2/task6/user.txt username-ul vostru de pe moodle.
- faceti configuratia necesara pentru a va conecta la fep folosind doar comanda ssh fep. Din nou, conectarea trebuie sa fie fara parola. [7p]
Avem un scenariu in care presupunem ca avem un proces care executa cod malitios pe masina noastra virtuala(fiind VM-ul facultatii probabil nu va pasa, asa ca imaginativa ca este PC-ul vostru). Acestaconsuma foarte putine resurse - CPU si memorie -, asa ca este posibil ca nu fie usor detectabil. Trebuie sa scrieti un script in bash care sa identifice top K procese care consuma cel mai putin CPU ori MEM.
Scriptul se va rula astfel:
./analyzer.sh <RESOURCE> K
./analyzer.sh MEM 4 → top 4 procese care consuma cea mai putina memorie
Posibil output:
PID,%MEM 2,0.0 3,0.0 4,0.2 5,0.3
./analyzer.sh CPU 7 → top 7 procese care consuma cel mai putin CPU
PID,%CPU 3,0.0 4,0.0 5,0.0 6,0.1 7,0.2
Scriptul trebuie sa respecte intocmai formatarea din exemplu a output-ului, si anume:
Pentru acest task va trebui sa combinati cunostintele de USO cu cele de PCLP1 si sa scrieti un cod care sa simuleze datul cu zarul(2 zaruri). Citit cu atentie ambele subtask-uri pentru a intelege scopul exercitiului intrucat nu sunt disjuncte, iar rezolvarea celor 2 nu se succede d.p.d.v. temporal, ci se rezolva concomitent.
1. Functionalitatea proiectului consta in apelarea unui mic shell script care va primi ca argument limbajul de programare in care vom simula zarurile pe care le aruncam - ori C, ori Python in felul urmator:
./zar.sh py
./zar.sh c
Output-ul trebuie sa arate astfel:
Dau cu zaru X Y unde X si Y sunt posibile numere ce apar pe fata unui zar, si anume numere naturale nenule, cuprinse intre 1 si 6. Exista 2 situatii exceptionale:
Dau cu zaru 6 5 n-am nevoie de serviciDau cu zaru 6 6 ca mine nu se mai naste
Al doilea subtask consta in implementarea acestui proiect utilizand un Git repo si avand minim 3 branch-uri(master este inclus in acestea 3). Pentru simplitate se recomanda a nu modifica fisiere sau bucati de cod simultan in 2 branch-uri simultan intrucat poate duce la conflicte(adica 2 implementari diferite)
Când finalizați tema asigurați-vă că ați submis tema cu sudo uso submit.