Viper binary management and analysis framework
Autor stranice: Tajana Obad
Viper je framework za binarni menadžment i analizu. Izdan je pod BSD 3-Clause licencom i zaštićen pod autorskim pravom Claudio Gaurnieri. Na GitHub-u je dostupan izvorni kod i tamo se koordinira razvoj. Osnovni cilj je pružanje organizacijskih rješenja za kolekciju uzoraka malware-a i exploit-a te kolekciju skripti koje je korisnik kreirao ili našao tokom vremena da bi si olakšao svoje dnevno istraživanje. Moglo bi se reći da je Viper zapravo Metasploit za istraživače malware-a jer nudi sve funkcionalnosti koje su im potrebne. Naime, pruža sučelje u obliku terminala koje se može koristiti za pohranu, pretraživanje i analizu arbitrarnih datoteka i kao framework za lako kreiranje plugin-ova.
Sadržaj |
Naredbe
Viper daje na raspolaganje sljedeće naredbe za rad s podacima:
- projects
- open
- sessions
- close
- store
- delete
- find
- info
- tags
- notes
projects
Viper omogućava rad s više projekata, koji služe za izolaciju više datoteka pod istim imenom. Projekt se može napraviti tako da se specificira vrijednost argumentu --project prilikom pokretanja viper.py sa terminala, a na isti način se može pokrenuti i već postojeći projekt.
Naredbi projects se pridružuju sljedeći argumenti:
-
--helpili-hza prikaz informacija o ovoj naredbi -
--listili-lza izlistavanje svih postojećih projekata -
--switchili-sza zamjenu trenutno otvorenog projekta
projects dajemo argument --list ili kraće -l.projects dajemo argument --switch ili -s i tom argumentu dajemo ime projekta kao vrijednost. No, ako se kao vrijednost tom argumentu da ime nepostojećeg projekta, Viper će kreirati novi projekt s tim imenom i prebaciti rad na njega.open
Naredbom open otvaramo sesiju na jednoj datoteci. U toj datoteci sve ostale naredbe koje su namijenjene za datoteku će se izvršavati na datoteci otvorenoj u toj sesiji.
Naredba prima sljedeće argumente uz sebe:
-
--helpili-hza prikaz informacija o ovoj naredbi -
--fileili-fza otvaranje datoteke -
--lastili-lotvara se datoteka koja se zadnja pretraživala -
--torili-tskida datoteku preko Tor-a
Za generično otvaranje datoteke, koristit ćemo argument --file ili -f. Vrijednost koju moramo pridružiti tom argumentu je putanja do željene datoteke. Otvaranje preko URL-a radi na sličan način.
Ako smo prethodno pretražili datoteke pomoću naredbe find, tada možemo otvoriti tu datoteku pomoću argumenta --last ili -l. Vrijednost tog argumenta je redni broj datoteke koji se izlistao preko naredbe find.
No, ako naredbi open pridružimo vrijednost bez ikakvog argumenta, ono će tu vrijednost shvatiti kao MD5 ili SHA256 te prema tome, u svome lokalnom repozitoriju, tražiti datoteku za otvoriti.
sessions
Naredba sessions nam omogućava dvije stvari: uvid u trenutno aktivnih sesija i mijenjanje sesija s kojima radimo. Sesije se stvaraju tako da otvorimo datoteke pomoću naredbe open.
Ovoj naredbi se mogu pridružiti sljedeći argumenti:
-
--helpili-hza prikaz informacija o ovoj naredbi -
--listili-lza izlistavanje svih aktivnih sesija -
--switchili-sza promjenu sesije s onom s kojom se želi raditi
Ako želimo izlistati sve aktivne sesije, onda se naredbi sessions pridružuje argument --list ili -l. Važno je znati da se nove sesije ne stvaraju na temelju datoteke koja se otvori, već na temelju vremena u kojem su otvorene. Tako da se može imati više sesija sa istom datotekom.
Za zamjenu sesije s kojom korisnik želi raditi, naredbi sessions dajemo argument --switch ili -s, a vrijednost tog argumenta treba biti redni broj sesije koja se moće vidjeti koristeći --list argument.
close
Ovo je vrlo jednostavna naredba, ona zatvara trenutno otvorenu sesiju. No, valja napomenuti da će sesija biti zapamćena u slučaju da se želi opet pozvati, a ostat će zapamćena sve dok se Viper ne isključi.
store
Naredba store služi za pohranu trenutno otvorene datoteke u lokalni repozitorij Viper-a.
Naredbi se mogu pridružiti sljedeći argumenti:
-
--helpili-hza prikaz informacija o ovoj naredbi -
--deleteili-dza brisanje originalne datoteke -
--folderili-fza pohranu svih datoteka u danoj mapi -
--file-sizeili-sfiltrira datoteke po maksimalnoj veličini -
--file-typeili-yfiltrira datoteke za pohranu prema danom tipu datoteka -
--file-nameili-nfiltrira datoteke za pohranu prema danom imenom -
--tagsili-tfiltrira datoteke za pohranu prema njihovim tag-ovima
Za pohranu datoteke, datoteku je prvo potrebno otvoriti sa open naredbom. Nakon toga je dovoljno u terminalu upisati naredbu store i datoteka se pohrani u lokalni repozitorij Viper-a.
Ako se želi skratiti posao i odjednom pohraniti sve datoteke koje se nalaze u jednoj mapi, potrebno je uz naredbu store dodati argument --folder ili -f, a kao vrijednost tom argumentu potrebno je unijeti putanju do željene mape s datotekama.
delete
Naredba delete je još jedna vrlo jednostavna naredba. Ona zatvara sesiju sa datotekom i briše ju iz lokalnog repozitorija Viper-a. Da se provjeri da li se datoteka uspješno izbrisala, jednostavno se pokrene naredba find.
find
find je veoma korisna naredba koja omogućava pretraživanje datoteka koje su pohranjene u Viper-ovom lokalnom repozitoriju.
Ova naredba može primiti 3 argumenta:
-
--helpili-hza prikaz informacija o ovoj naredbi -
--tagsili-tza izlistavanje svih korištenih tag-ova - bilo koji od
<all|latest|name|md5|sha256|tag|note>argumenata koji se koriste za pretraživanje
Na primjer, ako se žele pretražiti sve datoteke koje su pohranjene u lokalnom repozitoriju trenutnog projekta od Viper-a, uz naredbu find ćemo staviti argument all.
Ako se želi pretražiti datoteka ovisno o njenom imenu, uz naredbu find se stavlja argument name i tom argumentu se pridružuje ime ili dio imena datoteka koje se žele pronaći.
info
Naredba info je još jedna jednostavna naredba koja će vratiti informacije o datoteci koja je trenutno otvorena u sesiji.
tags
Viper omogućuje davanje tag-ova datotekama u lokalnom repozitoriju, radi lakšeg grupiranja, kategoriziranja i identificiranja datoteka.
To omogućava naredbom tags koja prima sljedeće argumente:
-
--helpili-hza prikaz informacija o ovoj naredbi -
--addili-aza dodavanje tag-ova na datoteku -
--deleteili-dza brisanje tag-a sa datoteke
Tag-ovi u nekoj datoteci se mogu vidjeti preko naredbe info
Za jednostavno dodavanje tag-ova naredbi tags pridružit će se argument --add ili -a. Vrijednost tom argumentu mora biti neka riječ. Također, može se dodati više tag-ova odjednom tako da se u naredbi za dodavanje odvajaju zarezom (bez razmaka poslije zareza).
A za brisanje tag-a, naredbi tags se daje argument --delete ili -d, a tom argumentu se kao vrijednost pridružuje tekst tag-a koji se želi obrisati.
notes
Viper omogućuje dodavanje bilješki (eng. notes) na datoteke koje obrađujemo. Na taj način se lakše čuvaju analize i pronalasci koji se naprave tokom rada s nekom datotekom. Ta mogućnost se realizira korištenjem naredbe notes.
Ovoj naredbi se mogu pridružiti sljedeći argumenti:
-
--helpili-hza prikaz informacija o ovoj naredbi -
--listili-lza izlistavanje svih bilješki na trenutno otvorenoj datoteci -
--addili-aza dodavanje bilješke na trenutno otvorenu datoteku -
--viewili-vza pregled odabrane bilješke -
--editili-eza uređivaje postojeće bilješke na trenutno otvorenoj datoteci -
--deleteili-dza brisanje odabrane bilješke sa trenutno otvorene datoteke
Za dodavanje bilješke na datoteku uz naredbu notes treba dodati argument --add ili -a. Nakon što se potvrdi ta naredba Viper će nas tražiti da unesemo naslov te bilješke. Nakon što se unese naslov, otvorit će se jedan od tekstualnih editora (nano, pico, itd,) u kojem unosimo sadržaj bilješke. Nakon što unesemo sadržaj i spremimo bilješku, Viper će se vratiti u svoj shell, ispisati potvrdu spremanja bilješke i nastaviti dalje s radom.
Izlistavanje svih bilješki na trenutno otvorenoj datoteci je vrlo jednostavno. Sve što treba je naredbi notes pridružiti argument --list ili -l. Kao rezultat te naredbe ispisat će se tablica bilješki, svaka sa svojoj ID-em.
Za pregled sadržaja bilješke naredbi notes se pridružuje argument --view ili -v, a tom argumentu se kao vrijednost treba pridružiti ID bilješke. Da bi se provjerio ID bilješke treba jednostavno ispisati sve bilješke sa notes --list i provjeriti pod stupcem ID. Kao rezultat naredbe ispisat će se naslov (title) bilješke i njen sadržaj (body),
Brisanje bilješke ide slično kao i ispis bilješke. Naredbi notes se pridružuje argument --delete ili -d, a tom argumentu je potrebno pridružiti ID bilješke kao vrijednost. Viper neće dati do znanja da se izbrisala bilješka, ali to se da provjeriti tako da pogledamo koje su sve bilješke ostale sa notes --list.
Video primjer
Dana poveznica će uputiti na YouTube video koji demonstrira rad s Viper framework-om: http://youtu.be/27FXNepCtTc
Literatura
- Guarnieri C. (2014) Viper documentation. Preuzeto 20.10.2014. s https://media.readthedocs.org/pdf/viper-framework/latest/viper-framework.pdf