StÄsts par pÄtniecÄ«bu un attÄ«stÄ«bu 3 daļÄs. 1. daļa ir pÄtnieciska.
Ir daudz dižskÄbaržu ā vÄl vairÄk priekÅ”rocÄ«bu.
ProblÄmas paziÅojums
Pentestu un RedTeam kampaÅu laikÄ ne vienmÄr ir iespÄjams izmantot Klienta standarta rÄ«kus, piemÄram, VPN, RDP, Citrix u.c. kÄ enkurs iekļūŔanai iekÅ”ÄjÄ tÄ«klÄ. DažÄs vietÄs standarta VPN darbojas, izmantojot MFA un kÄ otrs faktors tiek izmantots aparatÅ«ras marÄ·ieris, citÄs tas tiek brutÄli uzraudzÄ«ts un mÅ«su VPN pieteikÅ”anÄs uzreiz kļūst redzama, kÄ saka, ar visu to, ko tas ietver, bet citÄs ir tÄdu lÄ«dzekļu vienkÄrÅ”i nav.
Å Ädos gadÄ«jumos mums pastÄvÄ«gi ir jÄveido tÄ sauktie āreversie tuneļiā - savienojumi no iekÅ”ÄjÄ tÄ«kla uz ÄrÄju resursu vai serveri, kuru mÄs kontrolÄjam. Å ÄdÄ tunelÄ« jau varam strÄdÄt ar Klientu iekÅ”Äjiem resursiem.
Ir vairÄkas Å”o atgrieÅ”anÄs tuneļu Ŕķirnes. SlavenÄkais no tiem, protams, ir Meterpreter. SSH tuneļi ar reverso portu pÄradresÄciju ir arÄ« ļoti pieprasÄ«ti hakeru vidÅ«. Ir diezgan daudz lÄ«dzekļu reversÄs tunelÄÅ”anas ievieÅ”anai, un daudzi no tiem ir labi izpÄtÄ«ti un aprakstÄ«ti.
Protams, no savas puses droŔības risinÄjumu izstrÄdÄtÄji nestÄv malÄ un aktÄ«vi konstatÄ Å”Ädas darbÄ«bas.
PiemÄram, MSF sesijas veiksmÄ«gi nosaka mÅ«sdienu Cisco vai Positive Tech IPS, un reverso SSH tuneli var noteikt gandrÄ«z jebkurÅ” parasts ugunsmÅ«ris.
TÄpÄc, lai labÄ RedTeam kampaÅÄ paliktu nepamanÄ«ti, mums ir jÄizbÅ«vÄ reversais tunelis, izmantojot nestandarta lÄ«dzekļus un pÄc iespÄjas tuvÄk jÄpielÄgojas reÄlajam tÄ«kla darbÄ«bas režīmam.
MÄÄ£inÄsim atrast vai izdomÄt ko lÄ«dzÄ«gu.
Pirms kaut ko izdomÄt, mums ir jÄsaprot, kÄdu rezultÄtu vÄlamies sasniegt, kÄdas funkcijas bÅ«tu jÄveic mÅ«su attÄ«stÄ«bai. KÄdas bÅ«s prasÄ«bas tunelim, lai mÄs varÄtu strÄdÄt maksimÄli slepenÄ režīmÄ?
Ir skaidrs, ka katrÄ gadÄ«jumÄ Å”Ädas prasÄ«bas var ievÄrojami atŔķirties, taÄu, pamatojoties uz darba pieredzi, var identificÄt galvenÄs:
- strÄdÄt operÄtÄjsistÄmÄ Windows-7-10. TÄ kÄ lielÄkÄ daļa korporatÄ«vo tÄ«klu izmanto Windows;
- klients izveido savienojumu ar serveri, izmantojot SSL, lai novÄrstu muļķīgu klausÄ«Å”anos, izmantojot ips;
- PieslÄdzoties klientam jÄatbalsta darbs caur starpniekserveri ar autorizÄciju, jo Daudzos uzÅÄmumos piekļuve internetam notiek, izmantojot starpniekserveri. Faktiski klienta iekÄrta var pat neko par to nezinÄt, un starpniekserveris tiek izmantots caurspÄ«dÄ«gÄ režīmÄ. Bet mums ir jÄnodroÅ”ina Å”Äda funkcionalitÄte;
- klienta daļai jÄbÅ«t kodolÄ«gai un pÄrnÄsÄjamai;
Ir skaidrs, ka, lai strÄdÄtu klienta tÄ«klÄ, klienta datorÄ varat instalÄt OpenVPN un izveidot pilnvÄrtÄ«gu tuneli savam serverim (par laimi, openvpn klienti var strÄdÄt caur starpniekserveri). Bet, pirmkÄrt, tas ne vienmÄr darbosies, jo mÄs, iespÄjams, neesam tur vietÄjie administratori, un, otrkÄrt, tas radÄ«s tik lielu troksni, ka kÄrtÄ«gs SIEM vai HIPS nekavÄjoties mÅ«s āizvilksā. IdeÄlÄ gadÄ«jumÄ mÅ«su klientam vajadzÄtu bÅ«t tÄ sauktajai inline komandai, jo, piemÄram, tiek ieviesti daudzi bash Äaulas un tiek palaisti caur komandrindu, piemÄram, izpildot komandas no vÄrdu makro. - mÅ«su tunelim jÄbÅ«t ar vairÄkiem pavedieniem un vienlaikus jÄatbalsta daudzi savienojumi;
- klienta-servera savienojumam ir jÄbÅ«t kaut kÄdai autorizÄcijai, lai tunelis tiktu izveidots tikai mÅ«su klientam, nevis visiem, kas nÄk pie mÅ«su servera norÄdÄ«tajÄ adresÄ un ostÄ. IdeÄlÄ gadÄ«jumÄ galvenÄ lapa ar kaÄ·iem vai profesionÄlÄm tÄmÄm, kas saistÄ«tas ar sÄkotnÄjo domÄnu, ir jÄatver ātreÅ”Äs puses lietotÄjiemā.
PiemÄram, ja Klients ir medicÄ«nas organizÄcija, tad informÄcijas droŔības administratoram, kurÅ” nolemj pÄrbaudÄ«t resursu, kuram piekļuva klÄ«nikas darbinieks, lapu ar farmaceitiskajiem produktiem, VikipÄdiju ar diagnozes aprakstu vai doktora Komarovska emuÄru utt. vajadzÄtu atvÄrt.
EsoŔo rīku analīze
Pirms sava velosipÄda izgudroÅ”anas no jauna ir jÄveic esoÅ”o velosipÄdu analÄ«ze un jÄsaprot, vai tas mums tieÅ”Äm ir vajadzÄ«gs un, iespÄjams, neesam vienÄ«gie, kas aizdomÄjuÅ”ies par Å”Äda funkcionÄla velosipÄda nepiecieÅ”amÄ«bu.
GooglÄÅ”ana internetÄ (Ŕķiet, ka googlÄ normÄli), kÄ arÄ« meklÄÅ”ana Github, izmantojot atslÄgvÄrdus āreverse socksā, nedeva daudz rezultÄtu. BÅ«tÄ«bÄ tas viss ir saistÄ«ts ar ssh tuneļu izveidi ar reverso portu pÄrsÅ«tÄ«Å”anu un visu, kas ar to saistÄ«ts. Papildus SSH tuneļiem ir vairÄki risinÄjumi:
IlgstoÅ”a apgrieztÄ tuneļa ievieÅ”ana no Kaspersky Lab puiÅ”iem. Nosaukums skaidri parÄda, kam Å”is skripts ir paredzÄts. Ieviests Python 2.7, tunelis darbojas skaidrÄ teksta režīmÄ (kÄ tagad ir modÄ teikt - sveiki RKN)
VÄl viena ievieÅ”ana Python, arÄ« skaidrÄ tekstÄ, bet ar vairÄk iespÄjÄm. Tas ir rakstÄ«ts kÄ modulis, un tam ir API risinÄjuma integrÄÅ”anai jÅ«su projektos.
PirmÄ saite ir reversÄs sox ievieÅ”anas sÄkotnÄjÄ versija GolangÄ (izstrÄdÄtÄjs to neatbalsta).
OtrÄ saite ir mÅ«su pÄrskatÄ«Å”ana ar papildu funkcijÄm, arÄ« GolangÄ. MÅ«su versijÄ mÄs ieviesÄm SSL, strÄdÄjam caur starpniekserveri ar NTLM autorizÄciju, autorizÄciju klientÄ, galveno lapu nepareizas paroles gadÄ«jumÄ (vai drÄ«zÄk novirzÄ«Å”anu uz galveno lapu), vairÄku pavedienu režīmu (t.i., vairÄki cilvÄki). var vienlaikus strÄdÄt ar tuneli), sistÄma, kas klientam tiek nosÅ«tÄ«ta, lai noteiktu, vai viÅÅ” ir dzÄ«vs vai nÄ.
Reverse sox ievieÅ”ana no mÅ«su āÄ·Ä«nieÅ”u draugiemā Python. Tur slinkajiem un ānemirstÄ«gajiemā ir gatavs binÄrs (exe), ko Ä·Ä«nieÅ”i ir samontÄjuÅ”i un gatavs lietoÅ”anai. Å eit tikai Ä·Ä«nieÅ”u Dievs zina, ko vÄl Å”is binÄrs var saturÄt, izÅemot galveno funkcionalitÄti, tÄpÄc izmantojiet to uz savu risku un risku.
Diezgan interesants projekts C++, lai ieviestu reverse sox un daudz ko citu. Papildus reversajam tunelim tas var veikt portu pÄradresÄciju, izveidot komandu apvalku utt.
MSF mÄraparÄts
Å eit, kÄ saka, bez komentÄriem. Visi pat vairÄk vai mazÄk izglÄ«toti hakeri ļoti labi pÄrzina Å”o lietu un saprot, cik viegli to var atklÄt ar droŔības rÄ«kiem.
Visi iepriekÅ” aprakstÄ«tie rÄ«ki darbojas, izmantojot lÄ«dzÄ«gu tehnoloÄ£iju: datorÄ tÄ«kla iekÅ”ienÄ tiek palaists iepriekÅ” sagatavots izpildÄms binÄrais modulis, kas izveido savienojumu ar ÄrÄju serveri. Serveris darbina SOCKS4/5 serveri, kas pieÅem savienojumus un pÄrsÅ«ta tos klientam.
Visu iepriekÅ” minÄto rÄ«ku trÅ«kums ir tÄds, ka klienta datorÄ ir jÄinstalÄ Python vai Golang (vai bieži esat redzÄjis Python instalÄtu, piemÄram, uzÅÄmuma direktora vai biroja darbinieku maŔīnÄs?), vai arÄ« iepriekÅ” samontÄtam. binÄrais (faktiski python) ir jÄievelk uz Ŕīs maŔīnas un skripts vienÄ pudelÄ) un palaist Å”o binÄro jau tur. Un exe lejupielÄde un pÄc tam tÄ palaiÅ”ana ir arÄ« paraksts vietÄjam antivÄ«rusam vai HIPS.
KopumÄ secinÄjums liek domÄt ā mums ir nepiecieÅ”ams powershell risinÄjums. Tagad pie mums lidos tomÄti - saka, ka powershell jau viss ir izjaukts, tiek uzraudzÄ«ts, bloÄ·Äts utt. un tÄ tÄlÄk. PatiesÄ«bÄ ne visur. MÄs deklarÄjam atbildÄ«gi. Starp citu, ir ļoti daudz veidu, kÄ apiet bloÄ·ÄÅ”anu (Å”eit atkal ir modÄ«ga frÄze par hello RKN š), sÄkot ar stulbu powershell.exe pÄrdÄvÄÅ”anu -> cmdd.exe un beidzot ar powerdll utt.
SÄksim izgudrot
Skaidrs, ka vispirms meklÄsim Google un... neko par Å”o tÄmu neatradÄ«sim (ja kÄds ir atradis, ievietojiet saites komentÄros). Ir tikai
TÄtad, mÄs neesam atraduÅ”i neko gatavu, tÄpÄc mums joprojÄm bÅ«s jÄizgudro savs ritenis. MÄs Åemsim par pamatu mÅ«su velosipÄdam
RSocksTun
TÄtad, kÄ darbojas rsockstun?
RsocksTun (turpmÄk tekstÄ rs) darbÄ«ba balstÄs uz diviem programmatÅ«ras komponentiem - Yamux un Socks5 serveri. Socks5 serveris ir parasts vietÄjais socks5, tas darbojas uz klienta. Un savienojumu multipleksÄÅ”ana ar to (atceries par daudzpavedienu?) tiek nodroÅ”inÄta, izmantojot yamux (
Yamux darbÄ«bas bÅ«tÄ«ba ir tÄda, ka tas ievieÅ” papildu tÄ«kla straumju slÄni, ievieÅ”ot to 12 baitu galvenes veidÄ katrai paketei. (Å eit mÄs apzinÄti lietojam vÄrdu āstraumeā, nevis pavediens, lai nesajauktu lasÄ«tÄju ar programmas straumes āpavedienuā - Å”o jÄdzienu izmantosim arÄ« Å”ajÄ rakstÄ). Yamux galvenÄ ir straumes numurs, karodziÅi straumes instalÄÅ”anai/pÄrtraukÅ”anai, pÄrsÅ«tÄ«to baitu skaits un pÄrsÅ«tÄ«Å”anas loga lielums.
Papildus straumes instalÄÅ”anai/pÄrtraukÅ”anai yamux ievieÅ” uzturÄÅ”anas mehÄnismu, kas ļauj pÄrraudzÄ«t izveidotÄ sakaru kanÄla veiktspÄju. Keeplive ziÅojumu mehÄnisma darbÄ«ba tiek konfigurÄta, veidojot Yamux sesiju. Faktiski no iestatÄ«jumiem ir tikai divi parametri: iespÄjot/atspÄjot un pakeÅ”u sÅ«tÄ«Å”anas biežums sekundÄs. Keepalive ziÅojumus var nosÅ«tÄ«t yamux serveris vai yamux klients. SaÅemot saglabÄÅ”anas ziÅojumu, attÄlajai pusei ir jÄatbild uz to, nosÅ«tot tieÅ”i tÄdu paÅ”u ziÅojuma identifikatoru (faktiski numuru), ko tÄ saÅÄma. VispÄr keepalive ir tas pats ping, tikai priekÅ” yamux.
Visa multipleksora darbÄ«bas tehnika: pakeÅ”u veidi, savienojuma iestatÄ«Å”anas un beigu karodziÅi, kÄ arÄ« datu pÄrsÅ«tÄ«Å”anas mehÄnisms ir detalizÄti aprakstÄ«ts
SecinÄjums pirmajai daļai
TÄtad raksta pirmajÄ daÄ¼Ä iepazinÄmies ar dažiem reverso tuneļu organizÄÅ”anas rÄ«kiem, apskatÄ«jÄm to priekÅ”rocÄ«bas un trÅ«kumus, izpÄtÄ«jÄm Yamux multipleksora darbÄ«bas mehÄnismu un aprakstÄ«jÄm pamatprasÄ«bas jaunizveidotajam powershell modulim. NÄkamajÄ daÄ¼Ä mÄs izstrÄdÄsim paÅ”u moduli, praktiski no nulles. TurpinÄjums sekos. NepÄrslÄdzies :)
Avots: www.habr.com