[Reverse engineering] - Početak

System Mehanic

Bila je to 1998. godina kada sam od prijatelja dobio "hack CD", svojevrsna Aladinova lampa puna digitalnih blaga. CD je sadržavao sve moguće tutorijale, alate i resurse vezane za cyber security dostupne do tada na internetu. Napravila ga je grupa/stranica "AstaLaVista" (nema veze sa pretraživačem Astavista) i prodavala online.

Slučajnim dodirom s tim CD-om kroz prijateljske veze, moj život je skrenuo u neočekivanom pravcu. U to vrijeme sam bio gladan informacija, a sadržaj CD-a mi se činio kao cyber securityja na steroidima.

Na samom CD sam pronašao alatke za reverse engineering - crackmes aplikacije, hiew, WinHex i OllyDbg. Uz njih su bili i uvodi u asembler, vx scenu, tutorijali za crackmes i sl.

Moje interesovanje nije bilo usmjereno na razbijanje igara, jer su većina njih tada bile dostupne u crackovanoj verziji. Međutim, aplikacije koje smo često koristili nisu bile dostupne besplatno nakon 30-dnevne probne verzije. Jedan od takvih primjera bio je System Mechanic 3.0.

Ova aplikacija je nudila čišćenje Windows 98, optimizaciju registra i mnoštvo drugih korisnih funkcija.

CD je postao moj put u svijet cyber securityja, otvarajući mi vrata u dubine digitalnog svijeta i razbuđujući strast za zaštitu informacija. Bila je to prekretnica koja je oblikovala moj profesionalni put i ostavila dubok trag na mojoj karijeri.

Godine 1999. osjetio sam potrebu za verzijom programa koja bi nastavila raditi i nakon 30 dana.

Nakon nekoliko neuspješnih pokušaja korištenja NOP instrukcija (no operation, hex kod 0x90) i promjene instrukcije JNZ u JE (ili obratno), uspio sam postići da aplikacija uvijek pokreće s 30 dana dostupnog korištenja. To sam postigao blokiranjem pisanja u registry, tako da je program svaki put pokazivao poruku "još samo 30 dana".

Kasnije sam otkrio da program generiše serijski broj u memoriji prilikom upisa korisničkog imena za "owner". Koristeći WinHex aplikaciju, kreirao sam dump kompletnog RAM-a i pronašao serijski broj za navedeni "username owner".

Ovaj pristup je radio sve do verzije System Mechanic 7.5, kada su u program ugrađene dodatne anti-debugging tehnike. hiew

Slučaj drugi

Pošto sam već do 2001 god stekao slavu u lokalnim opštinama (zezam se, nisam) do mene bi dolazili tehnički problemi koji regularni IT strucnjaci nisu uspjevlali da riješe.

Jedan od problema sa kojima sam se susreo je bila i aplikacija za kafić (uredno plaćena) koja je blokirala oko ponoći 4 Februara 2001 god. Vlasnici kafića su me pozvali nakon armije IT stručnjaka da pokusam da riješim problem.

Pošto sam shvatio da se radi o vremenskoj "smicalici" (na moje pitanje jel aplikacija prestala da radi oko 00h su odgovorili potvrdno sto je upucivalo da je sama aplikacija imala neki time limit i slično).

Kompletan računar sa aplikacijom sam donio kući, hard disk spojio na svoj racunar - pokrenuo Sysinternals alate (procmon, filemon i slično) kako bih dobio informacije o čemu se tu radi. Prvi problem na koji sam naišao je bio serijski broj particije diska (aplikacija gleda serijski broj C:\ uredjaja) - pa sam promjenio svoj na particiji u traženi. Drugi problem je bio putanja do fajla (znaci prilikom startovanja aplikacije, ista trazi fajl a FileMon alat prikazuje to trazenje fajla)

Nakon toga - sam nasao source kod u .arj fajlu - arj fajl je koristio enkripciju. Unutar fajla je bio jedan koji se nalazio u istom direktorijumu kao i arj arhiva. Brutforce na ARJ je isao jako jako sporo 1 pokusaj po sekundi. Nakon čitanja, o ARJ formatu, nasao sam da je moguće uraditi kriptoanalitički napad. Zapravo: ARJ-FILE-NOENC - ARJ-FILE-ENC => SIFRA Ukratko fajl koji se nalazio u cistom tekstu bi se kompresovao istom verzijom ARJ i sa ARJ fajlom koji je imao enkripciju - radjeno je poredjenje, ekstraktovanje šifre.

Jedan od alata: https://www.elcomsoft.com/help/en/archpr/known_plaintext_attack_(arj).html

Nakon što sam otvorio ARJ arhivu (šifra je bila PVSOFT - od Pavle Software), pronasao sam kod u Clipperu. Unutar poruke koja je bila prikazana kada se pokrene aplikacija "not enough memory" a koju sam nasao u source kodu - nasao sam IF gdje ima (otprilike) date => 20010402 i isti promjenio u 20990402 Kompajlirao, testirao, vratio računar vlasniku. Za sve ovo mi je bilo potrebno 12h i veci dio vremena sam proveo na pronalazenje informacija o ARJ, softweru za krekovanje ARJ enkripcije. SysInternals alate sam poceo koristiti jos 1999 god - djelovali su mi super i mogao sam pratiti sta zapravo aplikacije rade (čitanje registrija, pristup fajlovima, korisćenje TCP/IP i drugo) Mislim da je programer htio da zaštiti aplikaciju od kopiranja i da ovdje nije bilo namjerno uradjeno blokiranje.

Kasnije je bilo jos situacija gdje sam koristio reverse engineering alate, vjestine (pored onih za security, RE je jako jako bitan skills)

Pored korišćenja Windows 98, uporedo sam koristio Slackware i Phat Linux (bilo je moguće bootvati direktno iz Windowsa 98 u Linux bez Lilo boot loadera)

To je to.

DDOS napad (zaustavljeni)

2020 godine je išao DDOS napad na time mk - slučajno sam se zadesio na profilu AnoNiMuZa (nikakve veze nemaju sa orignalnom idejom) gdje su se dotični hvalili sa tim. Iskopao sam podatke, brojeve telefona i email, imena i prezimena i dao uslov da ako ne zaustave napad da će zavrsiti u policiji.

Napad je stao a pojedinci su prestali da se glupiraju.

Korisnik Mele

I radi podsjećanja da spomenem DDOS napad na RTRS iz 2014 god, gdje me je gospodin Branislav pozvao da mu pomognem (slučajno se zadesio kod njega na kafi) a pošto (sada bivši) šef VTK tada nije želio da mi dostavi kontakte žrtava DDOS napada (obrazložio je da ako oni ne mogu onda ne može niko). Tada sam identifikovao napadača, tip napada i napad zaustavljen. I dalje sam insistirao tj od 2014 god da mi daju kontakte žrtava (jer nisu svi napadi ni medijski bili objavljeni).

Većinu DDOS napada je moguće zaustaviti i bez Cloudfare i sličnog. Postoje napadi gdje Cloudfare ne pomaže jer je arhitektura pogrešna. Naravno ne sa "stručnjacima" koji još nisu savladali nmap, tcp ip i drugo.

Ili sa muzičkom pozadinom: (hvala nevaljalom djecaku na doradi)

Kako je "uklonjen" domen Vlade Srpske (social engineering lekcija) i loše odluke za novu domenu

Razmišljao sam da li da napišem ovaj tekst jer se radi o odličnoj lekciji iz sigurnost na nivou države i uopste kako voditi IT sektor jedne države.

Foto: capital.ba Foto: capital.ba

Između 20 i 24 oktobra 2023 godine nepoznata osoba je poslala email provajderu domene vlade Srpske. Domena zakupljena jos 2001 god (https://web.archive.org/web/20010201000000*/https://www.vladars.net/ izgled prve stranice ) Da li je bilo dijelo jedne il više osoba nećemo saznati jer policija i "stručnjaci" iz vlade Srpske nisu našli problem pa evo kroz ovaj tekst ćemo objaviti da se radilo o social engineering napadu nepoznate osobe. Ne morate biti neki veći poznavalac OFAC liste i kako sankcije funkcionišu ali vlade Srpske na toj istoj listi nema. Neko je iskoristio povezanost lica sa te liste i vlade Srpske da pošalje email provajderu domene. Blokiranje sajta vlade Srpske

Nivo potreban za ovakav čin je minimalno znanje kako funkcioniše domena, whois i email slanje. Iako sam u nekoliko navrata opisao na tviteru/X da se domena može vratiti i da nije bilo potrebno da se ide na novu - stručna lica i spoljni saradnici vlade Srpske su procjenili da treba nova domena. Trenutno stara domena je u funkciji a postoji i nova. Automatsko blokiranje phishinga na X/Twitteru

Prilikom izbora nove domene napravljena je jos jedna greška koja je koštala da sajt vlade i email server budu blokirani nekoliko mjeseci poslije te odluke. Pošto je izbor bio "vladars . rs" a već postoji vladars . net - po automatizmu je domena označena kao phishing. S obzirom da je ovo proslo kroz ruke mnogih IT rukovodilaca - postavlja se pitanje kako je bilo moguće da u eri digitializacije nisu u stanju predvidjeti takvu gresku? Proces uklanjanja je išao "pješke" jer niko iz državnih agencija nije shvatio da se može i brže uraditi.

Funny

Još uvijek je stara domena u funkciji a koristi se i nova (dok pišem ovo) pa me navodi da ovakav pristup više odmaže nego sto ima pomoći da se pronadje domena. Nova domena je registrovana na privatnu firmu i to je uveliko problem.

Provjera na VirustTotal (Novembar 2023) VirusTotal

Korisni linkovi: https://mondo.ba/Info/Drustvo/a1256407/Vlada-RS-lazni-sajt-i-domen-poruka.html

https://vladarepublikesrpske.rs/

https://www.slobodnaevropa.org/a/vlada-rs-stranice-srbija-republika-srpska-dodik-viskovic-sankcije/32666252.html

https://www.infoveza.com/od-sutra-it-blokada-vlade-republike-srpske/

Analiza predstojeceg napada na EU banke

Vladimir Cicovic

Analiza moguceg napada na EU banke REvil i Killnet

Napomena: Analiza je uradjena sa minimum informacija zbog nedostatka vremena (napad pocinje 16 Juna)

Izvor informacije za pomenuti napad: https://twitter.com/vxunderground/status/1669034104619245587

Tajnost operacije, tajnost mete/cilja, tajnost ucesnika operacija, tajnost pocetka operacije, tajnost lanca operacije

Resursi, brojnost grupe vs resursi i brojnost meta

TTP – tactics, tehnics procedures , ogranicen set TTP za operacije

Tajnost operacije

uspjeh bilo kakvog angazovanja u sajber prostoru utice najvise tajnost operacije. Tu se meta/zrtva bez vanrednih mjera osjeca sigurno u svakodnevnoj rutini i poslovima. Bilo kakav nagovjestaj operacije ugrozava istu jer suprotna strana se moze prilagoditi potencijalnom napadu i napadacu. Meta u slucaju prepoznavanja aktivnosti moze podici nivo angazovanja ljudstva, sredstava i ocekivanom ucinku napada. Ako se prepoznaje , recimo, da ce biti izvrsen DDOS napad na mrezu gdje se nalazi meta – iste se mogu ili prosiriti na nove (na nekoliko dana il sedmica) mreze/izlaze/ulaze ili angazovati dodatna sredstva da bi osigurali nesmetan rad. Ovo moze biti privremeno i vremenski ograniceno. Samim tim postoji mogucnost od neuspjeha napada.

Tajnost mete/cilja operacije

U slucaju otkrivanja mete/cilja opet dolazi do dodatnih angazovanja ljudstva, sredstava, vrsi se analiza kompletnog IT sektora, uspostavlja se rezim u kojem se (ograniceni period) vrsi zastita mete/cilja. Sav fokus ide na metu, analizu mete i rada iste – sa ciljem stvaranja modela gdje meta/cilj i dalje funkcionise. Npr kradja svih racunara u jednoj filijali banke – gdje se prave dodatne rezerve (na nekom drugom mjestu) i bekup radnih stanica/servera kroz ograniceni vremenski period.

Tajnost ucesnika operacije

Jedna od stvari uspjeha moze biti i tajnost ucesnika. U slucaju otkrivanja postoji mogucnost opstrukcije ili manipulacije ucesnicima. Ucesnici se mogu opstruisati tehnicki, psiholoski i fizicki. Tehnicki, sredstva izvrsenja: racunari, internet konekcije, struja. Psiholoski: izazivanje sukoba izmedju clanova grupe, stvaranja osjecaja krivice ili druge vrste manipulacija. Fizicki, likvidacija ili otmica.

Tajnost pocetka operacije

Ovisno o finalnom cilju prema meti – samo otkrivanje pocetka moze pomoci racionalnom angazovanju sredstava i propasti kompletne operacije. Mogucnost tajnih operacija druge strane kako bi finalno uticala na propast il ometanje napada.

Tajnost lanca operacije

Ovdje se uzima model ransomware grupe/DdoS. Citav lanac koji se koristi za operaciju (ransomware treba IA initial access, C2 servere, C2 alatke i operatore za iste) (DdoS koristi placene DDOS servise, osobe koje uspostavljaju sopstvene DdoS servise, novac/kriptovalute) (remote exploit, ranjivost , 0day brokeri)

U slucaju da je poznat citav ovaj lanac koji se koristi za operaciju ili samo dio – pa samim tim mogu uticati na manji dio da napadaca onesposobe il onemoguce kako bi nastavio napad.

Initial Access: ubacivanje FBI agenata/agenata privatnih intel kompanija sa laznim pristupima odredjenim kompanijama. Uvodi se kompletna lazna IT struktura kompanije, ili se daje tacno pristup sa nalozima u kontrolisanom okruzenju – gdje napadac se onemogucava da napadne komplet IT strukturu vec samo onaj manji dio koji je u kontrolisanom okruzenju (izlovan, isklljucen sa glavnom dijela)

C2 serveri: ubacivanjem servera sa punom kontrolom nad napadacevim server side softwerom i onemogucavanjem rada u odredjenom dijelu operacija ili monitoring konekcija prema metama

C2 tools/alatke: prodaja bekdorovanih alata, monitoring, unistavanje kompletne infrastrukture

DDOs servisi: pridobijanje klijenata, laziranje napada (u dogovoru sa metom/ciljem) DdoS servisi “trovanje”: ubacivanjem ogromnog broja DdoS servisa po povoljnim cijenama i radom bez problema – da bi se u toku perioda planiranog napada “ukinuo” ili lazirao napade na metu/cilj Novac/kripto valute: izgradnja mjenjacnica od strane FBI/CIA/NSA/EU interpol – monitoring slanja/primanja izmedju kriminalaca. Ukidanje kompletnog protkola za odredjeni dio interneta ili glavniih ruting tacaka, DDOS kripto mjenjacnica, pronalazak ranjivosti u kriptovalutama/blokcejinu/pametnim ugovorima

Remote 0day exploiti: sama potraznja prema vrsti softwera moze ukazivati na mete. Od postavljanja 0day brokera, do informacije koji soft zele "napasti" - takve informacije vec mogu pomoci da se smanji broj meta i onemoguci napad

Resursi, brojnost grupe vs Resursi i brojnost meta

Najveci izazov za napadaca jeste da ako nema snagu da udari na metu/mete – izazove psiholoski efekat kroz medije/internet. Meta/cilj moze uraditi isto kroz medijsko eksponiranje i obesmisljavanje napadaca. U slucaju da resursi i brojnost grupe veoma mala naspram resursa i brojnosti meta. Ako postoji napad na odredjeni sektor – onda se servisi koji su onemoguceni mogu prebaciti na druge kompanije kroz legalan rad i sve ostalo (zakonski problem, regulative, al moguce) U slucaju Killneta i Revil, dolazi do udruzivanje resursa al opet ne moze rezultirati uspjehom zbog brojnosti meta, geografske rasprostranjenosti i nepoznavanje rada banaka. Plan je napad je vjerovatno web servisi i slicno ali i tu postoji mogucnost postavljanja Anycasta na vise provajdera, dislokacija geo blokiranje i drugo. Banke su u vecoj mjeri spremne na ovakve stvari.

TTP – tactics, tehnics procedures , ogranicen set TTP za operacije

Odavanjem TTP odredjene grupe (recimo Anonymous Sudan, DdoS) dolazimo do fokusa i analize na detalje koji koriste i koje toolove koriste. Unutar rada i principa rada toolova je moguce pronaci odredjene slabosti. Npr DNS query, slanje paketa i drugo mogu imati ranjivu tacku. Primjer – postavljanjem *.meta.com na 127.0.0.1 za kveri iz Rusije ili VPN provajderima sirom svijeta moze dovesti do toga da napadac obori svoju infrastrukturu. Mozemo koristiti za usporavanje napada, preusmjeravanje napada, laziranje uspjeha napada i slicno.


Moguce vrste napada na EU Banke

DDOS napad

Ovisno o koga napadaju - jedan dio napada Killnet i Anonimusi Sudana nije imao efekta. U slucaju Anonimusi Sudana koji imaju svoju infrastrukturu za DDoS + rentaju istu drugima za novac, mete biraju koje se nalaze iza cloudfare i slicnih servisa (zastita od DDoS) kako bi pojacali efekat napada u medijima. Male i srednje mete (male kompanije, kompanije sa manjim brojem ljudi i nedovoljnom anti-DDoS zastitom) pod DDOS napadom grupe Anonimus Sudan, uglavnom od 5 do 15 min. U nekim slucajevima i duze ali se radi o 1 serveru sa HTTP portom iza cloudfare kojeg je moguce oboriti sa manjim DDoS napadom. Nekoliko puta im je DDoS "propao" ili nisu bili u mogucnosti da odrze napad duze od 5 minuta (uglavnom mete koje su imale daleko bolju zastitu ili se bave cybersec) Sve banke posluju SWIFTom, ATM mreza je povezana sa bazom u bankama ali moze biti izmjestena tako da se nalaze na razlicitim ISP/mrezama i da imaju "hibridni" pristup (kombinacija 4G mreze i racunarske mreze, ili wifi pristup) Najranjiviji dio banaka su web portali - ali je moguce i taj dio zastiti ukoliko se preduzmu mjere na vrijeme ili se u toku napada donese odluka. Ovdje moze doci do prekida pristupa klijenata na web platformi (recicemo da pristup preko softwera na telefonima, desktop racunarima moze biti "izmjesten")

Ransomware napadi

Ovise od nekoliko faktora: Initial Access brokerima, raspolaganjem 0day exploita i brojem operatora a onda sam proces sinhronizacije napada (pricamo da zele da napad izvrse na sve EU banke). Banke ulazu u sigurnost svog IT sektora. Postoje mehanizmi na nivou kompletne banke gdje se vrsi izolacija servisa i njihovo osiguravanje da prilikom napada rade neometano ( high avaibility, replikacija servisa, bekupi i tako dalje). Sama jedna grupa ne bi bila u stanju da u kracem vremenu osigura pristup IT sektoru ovih banaka. Jedan od pristupa moze biti i insajderi unutar banaka koji bi pomogli za pocetni pristup ali i tu se nivo sigurnosti banaka razlikuje tako da nije sigurno da ce svi napadi proci uspjesno - ako se desi, to ce opet biti manji dio. Uspjeh napada zavisi od dosta faktora tako da opet su u nemilosti koliko je banka pripremljena u tehnickom smislu.

Medijsko promovisanje napada

Jedini siguran element u svemu ovome jeste psiholoski efekat navodnog napada. Cak i ako se ne desi napad, sama cinjenica da se informacija pojavila u medijima moze pomoci u jacem efektu kada se desi obaranje web sajta neke banke (recimo da je samo to cilj, najbrze za izvodjenje u ovom slucaju) . Od berze, gubitka klijenata, ostalo. Postoji mogucnost da se izazove izvlacenje novca iz banaka i tako izazove problem sa radom banaka.

Napada konkurenata

Ovako "sivu" situaciju mogu iskoristiti (ali je manje vjerovatno iz vise razloga) konkurencija odredjenih banaka da uniste one druge (kroz spinovanje, stvarne napade i drugo). Opet postoji mogucnost da se napadi povezu i da organizator napada (u ovom slucaju banka) bude pronadjen i dozivi propadanje/gubitak novca/zatvaranje. Tako da je malo il nikako vjerovatno. U slucaju da jeste, onda mozemo pricati o povezanosti banke sa Killnet/REvil grupom kroz udio vlasnistva banke(recimo da je neko iz Rusije vlasnik dijela neke banke). Opet postoji mogucnost pronalazenja veza grupa-banka konkurent.

Podrska strane zemlje grupama Killnet i REvil

Drzave cesto koriste kriminalne grupe zbog ostvarivanja odredjenog cilja. Ovdje postoji mogucnost umjesanosti Rusije kao sponzora. Takve stvari se mogu otkriti na osnovu toga koliko je grupa imala resursa prije i poslije odredjenog vremena. Kakav impakt njihovi napadi imaju (ne u medijima, vec tehnicki dio napada) i tu se moze naci povezanost u smislu da imaju dosta novca, da su bolje organizovani, da su promjenili nacine napada i drugo. Ali kao sto rekoh tako nesto postaje vidljivo. Da li mogu da ih usmjeravaju prema odredjenim metama? Da. ali opet u tom slucaju bi drzava osigurala da napad bude efektivan sto bi bilo vidljivo i lako za uociti.

Analiza sajta lakodoposla dot kom

Ovo je kratki pregled sadržaja baze koju je nepoznata osoba skinula sa sajta lakodoposla dot com i ujedno savjet kako da osigurate tudje i svoje privatne informacije. Ovdje će izostati analiza šifri (karakteristike, frekvencija, duzina, ostalo) koja bi trebalo da bude u narednom periodu a i ujedno će sadržaj biti u Wifi pass fajlu

Baza se pojavila prvo na jednom od reddit subova, tj skrihshoot a poslije nekog vremena i link ka kompletnoj bazi.

Šta se nalazi u bazi?

Baza sadrži informacije o poslodavcima i radnicima koji traže posao. Jedan dio se odnos na komunikaciju izmedju administracije sajta i poslodavaca gdje se vrši plaćanje usluga. Svi skupa imaju sljedeće informacije: ime/prezime, email, šifre, adresa/ulica/grad, broj telefona, datum rodjenja.

Slika dumpa baze Slika zapisa baze

Baza sa korisnicima počinje nekad od 2008 godine a posljednji unos/izmjene su 28 Jula 2022 u 02:21

posljednji datum u bazi

Informacija o datumu kreiranja zadnjeg naloga je jako bitna kao i broj kreiranih naloga ukupno i vremenski period.

Baza sadrži oko 510.000 zapisa radnika. Od toga je u 2022 godini registrovano 10.000.

Kako su došli do baze?

Baza je vjerovatno skinuta sa nekim od alata (sqlmap, sqlninja i slično) a preko buga u sajtu (vjerovatno SQL injection). Napadac je vjerovatno onda prebacio u svoj phpmyadmin pa dumpo/izbacio bazu u sql fajl i okacio na jedan od foruma. Razlog je gledanje informacija iz baze (tražio je kartice, pristupne šifre, mailove i drugo) U ovom teksu se neću baviti propustima i ovo sve navedeno je nagadjanje u nedostatku informacija.

Kako ne raditi sa privatnim informacijama

Ovo je najbitniji dio teksta i ovome sam želio pisati. Ovdje ću tek nekoliko osnovnih i bitnih stavki vezano za sigurnost napomenuti. Ima ih još pa čak u narednom periodu planiram preduzeti neke korake kako bi se generalno stanje na ovom polju u BH/SRB/CG/HR počelo mjenjati.

Trajanje zapisa privatnih informacija

Svako kreiranje naloga treba da ima kada je osoba zadnji put se logovala. Iz te informacije treba izvršiti da poslije 90 dana neaktivnosti šaljemo korisniku email upozorenja a zatim ako nema odgovora - brišemo iz baze. Sa ovim pristupom od 510.000 privatnih informacija, šteta bi se svela na svega 2000 do 4000 naloga.

Kvalitet šifre + 2FA ili čak OAuth2 identifikacija

Sve šifre se čuvaju u nekoliko formata: plain text, wordpress hash(wp hash) i bcrypt hash(bcrypt). Sajt lakodoposla nema minimum duzine (idealno 12 do 16), miks slova, brojeva i specijalnih znakova. Prilikom kreiranja naloga šifre kao "12345678" je moguće unijeti. Takve stvari su nedopustive.

Sajt takodje nema 2FA (izuzetno lako integrisati sa freeOTP) koji bi u slučaju pogadjanja šifre moguće je sačuvati pristup sajtu (pod uslovom da nema curenja baze i slično). Čak i ako se koristi ista šifra za različite sajtove 2FA pravi ogromnu razliku.

freeOTP freeOTP logo

Sljedeći iz ovog arsenala je OAuth2 protokol koji može da posluži za registraciju i pristup sajtu. Sa SSO (single sign-on) korisnik može autorizovati sajt da preuzme informacije i kasnije da pristupi istom tom sajtu. Ovdje se ne mora posjedovati šifra - sve se čuva u OAuth provajderu a minimum informacija koje sajt treba da ima su email, ime i prezime, ostalo.

OAuth2 OAuth2 - slika preuzeta sa InterSystems Learning Services youtube kanala

Minimiziranje dijeljenja privatnih informacija i skladištenja u bazi

Imamo nekoliko bitnih privatnih informacija koje moramo držati u bazi a sve se mogu redukovati i smanjiti negativni uticaj curenja informacija. Ovdje pričamo o ime/prezime, email, broj telefona, CV-iju, tekstualne poruke.

Ime i prezime: redukovati na samo ime sa početnim slovom prezimena. Apsolutno nebitno poslodavcu a u komunikaciji kasnije moguće je saznati.

Email: Ukratko moguće je u bazi drzati email koji je povezan sa korisnikom i loginom, a da pri tome ne držimo pravi email. Slanje na ovaj email bi mogao samo servis zbog informacija/resetovanja i slično. Samim tim bi npr imali 9dc3242cd523367c2296afbc65520f29@domena.com gdje bi na email serveru identifikacija za 9dc3242cd523367c2296afbc65520f29 bila prema ovojenekimail[at]gmail dot com. Naravno, ovdje se može smanjiti veličina hasha, uzeti neki drugi koji pruža bolju sigurnost (argon2id, scrypt, PBKDF2) i napraviti format koji je pogodan za email adresu.

Broj telefona: Ako postoji mogucnost izbaciti skroz. Ako bas se mora implementirati onda bi jedinstveni ID bio u bazi a pravi broj bi se čuvao na drugom mjestu i informacije slale kroz REST API.

CV: Izbaciti sve privatne detalje, imena firmi - kasnije je moguće poslati zainteresovanom poslodavcu puni CV sa detaljima. Ovdje bi trebalo da sama firma koja vodi sajt pregleda isti taj CV i ukloni isto sve privatne detalje radnika i firmi.

Tekstualne poruke: Godina je 2022 i vi dalje vjerujete da vam niko neće sem vas samih čitati poruke? Public key, moguće je šifrovati poruke i držati ih kao takve u bazi i za svaku sesiju / tekst imati ključ koji se opet čuva sa master ključem / privatnim ključem (ovdje treba PKI al ideja je da se poruke ne ostavljaju u otvorenom tekstu). Uglavnom: ne ostavljajte poruke u bazi u "otvorenom tekstu"

Zaključak

Ovaj incident je samo "demo" sajtova u SRB/HR/BH/CG/MK gdje se ne vodi računa o privatnosti korisnika. Samo da je ispoštovano pravilo 90 dana il manje - uticaj ovoga bi bio redukovan sa 510.000 zapisa na 2000 do 4000. Pričamo o brojevima telefona, email adresama, datumima rodjenja, punim imenima i prezimenima oko pola miliona ljudi. Ovakve informacije se mogu koristiti za dalji napad, uznemiravanje ljudi, preprodati ili zloupotrebiti na druge načine. Sajt se nalazi na Linodu u USA - isto nedopustivo kada znamo da informacije gradjana Srbije treba da budu u Srbiji. Nisam spominjao standarde, penetration testing, hardening sajta i drugo - koji bi definitivno smanjili šansu da se dese ovakvi ishodi.

Zahvalnica

Gospodinu @milos_rs_ koji je pokazao skrinshoot i naveo početni dio (phpmyadmin). Svima koji stvaraju i kreiraju sadržaj a vezano za računarsku sigurnost.

How to run and setup twint (OLD - DOES NOT WORK)

Twint is an OSINT tool for Twitter intelligence gathering and it is used by many people in the security industry (as others also). In this short article, I am going to give you a list of commands to run with no problem.

Twint is currently archived and the normal setup produces an issue. So, in this article, you will see how to run it with no issue.

Source of twint: https://github.com/twintproject/twint I would guess you are running Linux and have docker installed. There is 2 possible way. One is using docker - and the other we skip docker install and run other commands (if our Linux is Ubuntu/Debian and support python 3.6 or 3.9)

As the first step, you need to download the docker image.


docker run -ti --rm kalilinux/kali-rolling:latest bash

If all goes fine (pull, and running bash under docker) you will get into prompt of Kali Linux.

We go to the next step in this process install and run python3.9/virutalenv and activate envoriment


apt update && apt -y install git python3.9 python3-pip

pip3 install virtualenv

virtualenv --python=python3.9 py39

cd py39

source bin/activate

After this, you will get into a virtual env for development.

Setup and run of twint.


pip3 install --upgrade -e git+https://github.com/twintproject/twint.git@origin/master#egg=twint;

twint -u twitter --user-full

If all goes ok - it would show information on user @twitter

CAA DNS records - prevent hijacking TLS/SSL certificate

SSL type of CERT

Imagine that certification authority without your permission publish certificate for your site and for example the same one gets used by cybercriminals. Your online shop gets BGP hijacked and you lose millions.

So how to prevent this type of attack?

One way is to use CAA DNS records. What does that mean? It means that you put exactly what CA you want only to use. So others CA become a fraud. And if happen - you get a message on this.

It is a security mechanism to prevent stealing SSL/TLS certificates and imitates your (let say) online shop and stealing millions from your clients and from you.

Example of the records: Example DNS CAA Records

dig CAA vladimircicovic.com

; <<>> DiG 12.11.3-1TAONSA_linuxOS<<>> CAA vladimircicovic.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10986
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;vladimircicovic.com.       IN  CAA

;; ANSWER SECTION:
vladimircicovic.com.    10800   IN  CAA 0 iodef "mailto:someemail@localhost.com"
vladimircicovic.com.    10800   IN  CAA 0 issue "letsencrypt.org"
vladimircicovic.com.    10800   IN  CAA 0 issuewild "letsencrypt.org"

;; Query time: 307 msec
;; SERVER: 
;; WHEN: Sat May 09 20:06:28 CEST 2020
;; MSG SIZE  rcvd: 174

So important to set iodef, issue, issuewild to CAA works properly.

You can ignore the given record but keep in mind this How 3ve’s BGP hijackers eluded the Internet—and made $29M could happen to you.

Yea this is a scary blog post about how people lose money if they don't read this post :D

Web security sites for practice + docker + book

Web security Picture was taken from http://www.tankado.com

This is a small post about how to start web security. Idea is to put just 2 things. Two sites for practice, one good book and docker example of the vuln web app.

Book The Web Application Hacker's Handbook: Finding and Exploiting Security Flaws

Site 1 Web security academy

Site 2 CTF hacker 101

Damn Vuln Web App DVWA docker

Besides this, you will need Burp suite and Kali or Blackarch.

This is a short intro in this area. Read a book, apply to sites or docker, and practice.

Curenje kljuceva za info bot ministarstva za sajber sigurnost i jos 3 stvari koje nisam upamtio

U slobodno vrijeme kada nemam sta da radim sasvim slucajno sam naletio na github repo (tamo gdje ostavljamo kod za publikaciju, da se koristi od strane drugih ljudi) ministra Rajcevica.

Sve bi bilo super da unutar tog koda nije pobrisana baza sa pravim kljucevima od bota koji je trebao da sluzi za raniju verziju CERT-vog profila gdje bi taj bot kacio vijesti i informacije na tviter. Github sve pobrisane fajlove cuva kao dio baze koda. Tako da je nemoguce pobrisati bilo sta - sem ako se kompletan repo pobrise sa githuba.

github repo bota

Nakon 3 min pregleda koda dosao sam do zakljucka da postoji baza sa kljucevima koja je pobrisana. Prva pomisao mi je bila da pripada profilu ministra jer je pisalo njegovo tviter nalog ime. Prvo sto sam uradio jeste poslao CERTu da kljuceve pobrisu i da se uradi tzv revoke (znaci da se obnove novi kljucevi dok se stari u ovom slucaju za koje znamo odbacuju za dalje koriscenje).

CERT email

Isti dan su naveli da je slucaj zatvoren. Sacekao sam 24h. sljedeci dan sam shvatio da kljucevi nisu ponisteni i da se i dalje u upotrebi.

Pregledom starog bloga g ministra Rajcevica naisao sam da su kljucevi zapravo za bot a ne njegov profil.

Blog arhiva Rajcevic

Tu sam nasao da je trebalo da bude kao neki bot koji bi se koristio u ex-CERT RS gdje bi isti kacio na tviter informacije i slicno.

Opis bota

Nakon citanja online manuala - napravio sam kod koji za 30 sek radi verifikaciju da je moguce pristupiti nalogu.

Sa kljucevima koji su procurili, okacio sam nekoliko tvitova.

Ownage slika je jednim dijelom ministrova

Takodje sam napomenuo ministra da ukloni kljuceve koje on ni do dan danas nije uspio da ukloni. Zapravo uklonio je privatne informacije sa bota tako da ne bi mogao biti povezan. Sem profilne slike koja je 50% njegova.

Takodje sam poslao nekoliko poruka DM tako da uklone kljuceve koje koriste njegovim pratiocima pa i ministru Rajcevicu.

Nakon toga je samo uklonio informacije sa opisa bota kao i link ka blogu. Removed info

Prije svega ovoga bio sam blokiran na tviteru od strane ministra nakon nekoliko pitanja za koje nije mogao il nije zelio da da odg. Pitanaj su bila uljudna i bez ruznih rijeci.

Block

Da sumiramo sve ovo: Kod ovog tviter bota je online 3 god i pored svih ljudi u ministarstvu, CERTu, i jos nekoliko kompanija sa kojima saradjuju nisu bili u stanju da uklone ovaj propust. Sada se postavlja pitanje sta je sa kompletnom infrastrukturom vlade RS i agencija. Naravno nisam imao ugovor sa ministrom niti vladom RS za ovo ali je kljuc bio tu svo vrijeme i pitanje je sta bi se desilo kada bi neko ozbiljan krenuo na kompletnu infrastrukturu vlade RS? Da li ovo znaci da nisu u stanju da zastite sopstveni kod a kamoli kompletne mreze i servere ? . Trebalo mi je nekoliko minuta da sve ovo uvezem - zamislite profesionalne grupe sajber kriminalaca.

Pouka svega je da nikada ne ostavljate u otvorenom tekstu sifre, kljuceve i druge bitne stvari - a pogotovo da i sifrovane ne leakujete na internet.

Ovo me podsjeca na likove koji su pravili kod u C za irc botove tamo 1999 do 2001 sa bugom tipa format string (ako neko zna o cemu se radi) i kako je bilo moguce preko nekoliko komandi da se odstampa sifra i user glavnog korisnika i pristupi botu. To su bila neka druga vremena.

EPILOG: nekoliko ljudi je naslo da su napravili istu gresku - pa su mi se zahvalili za pisanje clanka jer su i sami uklonili slicne probleme (pobrisane kljuceve, sifre iz koda koji su jos uvijek tu na githubu)