Viper binary management and analysis framework

Izvor: SIS Wiki
Skoči na: orijentacija, traži

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

Pokretanje novog ili postojećeg projekta prilikom pokretanja viper.py

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
Pregled svih projekata
Unutar Viper-ovog shell-a možemo vidjeti listu postojećih projekata tako da naredbi projects dajemo argument --list ili kraće -l.
Promjena trenutnog projekta
Također nam je na raspolaganju promjena trenutnog projekta s nekim drugim. To se radi tako da naredbi 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
Otvaranje datoteke preko njene putanje

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.

Otvaranje datoteke na temelju zadnje pretrage

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.

Otvaranje datoteke pomoću MD5 ili SHA256 koda

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
Izlistavanje aktivnih sesija, primjetite više sesija za jedan dokument

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.


Zamjena sesije s kojom se radi

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

Zatvaranje sesije

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
Otvaranje i pohrana datoteke

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.

Pohrana datoteka iz dane mape

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

Brisanje trenutno otvorene datoteke te provjera je li obrisana

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
Pretraživanje svih pohranjenih datoteka

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.


Pretraživanje svih pohranjenih datoteka

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

Ispis informacija o datoteci; Zbog preuskog terminala, ispis je malo loš

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

Dodavanje novog tag-a i provjera naredbom 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).

Brisanje tag-a

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
Postupak dodavanja bilješke

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

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.


Ispis sadržaja bilješke

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),

Izlistavanje svih bilješki na trenutno otvorenoj datoteci

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

  1. Guarnieri C. (2014) Viper documentation. Preuzeto 20.10.2014. s https://media.readthedocs.org/pdf/viper-framework/latest/viper-framework.pdf
Osobni alati
Imenski prostori
Inačice
Radnje
Orijentacija
Traka s alatima