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:
-
--help
ili-h
za prikaz informacija o ovoj naredbi -
--list
ili-l
za izlistavanje svih postojećih projekata -
--switch
ili-s
za 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:
-
--help
ili-h
za prikaz informacija o ovoj naredbi -
--file
ili-f
za otvaranje datoteke -
--last
ili-l
otvara se datoteka koja se zadnja pretraživala -
--tor
ili-t
skida 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:
-
--help
ili-h
za prikaz informacija o ovoj naredbi -
--list
ili-l
za izlistavanje svih aktivnih sesija -
--switch
ili-s
za 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:
-
--help
ili-h
za prikaz informacija o ovoj naredbi -
--delete
ili-d
za brisanje originalne datoteke -
--folder
ili-f
za pohranu svih datoteka u danoj mapi -
--file-size
ili-s
filtrira datoteke po maksimalnoj veličini -
--file-type
ili-y
filtrira datoteke za pohranu prema danom tipu datoteka -
--file-name
ili-n
filtrira datoteke za pohranu prema danom imenom -
--tags
ili-t
filtrira 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:
-
--help
ili-h
za prikaz informacija o ovoj naredbi -
--tags
ili-t
za 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:
-
--help
ili-h
za prikaz informacija o ovoj naredbi -
--add
ili-a
za dodavanje tag-ova na datoteku -
--delete
ili-d
za 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:
-
--help
ili-h
za prikaz informacija o ovoj naredbi -
--list
ili-l
za izlistavanje svih bilješki na trenutno otvorenoj datoteci -
--add
ili-a
za dodavanje bilješke na trenutno otvorenu datoteku -
--view
ili-v
za pregled odabrane bilješke -
--edit
ili-e
za uređivaje postojeće bilješke na trenutno otvorenoj datoteci -
--delete
ili-d
za 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