Storja dwar riċerka u żvilupp fi 3 partijiet. Parti 1 hija esploratorja.
Hemm ħafna siġar tal-fagu - saħansitra aktar benefiċċji.
Dikjarazzjoni tal-problema
Waqt pentests u kampanji RedTeam, mhux dejjem ikun possibbli li tuża l-għodod standard tal-Klijent, bħal VPN, RDP, Citrix, eċċ. bħala ankra għad-dħul fin-netwerk intern. F'xi postijiet, VPN standard jaħdem bl-użu ta' MFA u token tal-ħardwer jintuża bħala t-tieni fattur, f'oħrajn huwa mmonitorjat b'mod brutali u l-login VPN tagħna immedjatament isir viżibbli, kif jgħidu, b'dak kollu li jinvolvi, iżda f'oħrajn hemm sempliċiment ebda mezz bħal dan.
F'każijiet bħal dawn, dejjem għandna nagħmlu l-hekk imsejħa "mini reverse" - konnessjonijiet min-netwerk intern għal riżors estern jew server li nikkontrollaw. Ġewwa mina bħal din, diġà nistgħu naħdmu bir-riżorsi interni tal-Klijenti.
Hemm diversi varjetajiet ta 'dawn il-mini tar-ritorn. L-aktar famuż minnhom huwa, ovvjament, Meterpreter. Mini SSH b'reverse port forwarding huma wkoll fid-domanda kbira fost il-mases tal-hackers. Hemm ħafna mezzi għall-implimentazzjoni tar-reverse tunneling u ħafna minnhom huma studjati u deskritti tajjeb.
Naturalment, min-naħa tagħhom, l-iżviluppaturi ta 'soluzzjonijiet ta' sigurtà ma jwarrbux u jiskopru b'mod attiv tali azzjonijiet.
Pereżempju, is-sessjonijiet tal-MSF jiġu skoperti b'suċċess minn IPS moderni minn Cisco jew Positive Tech, u mina SSH inversa tista 'tiġi skoperta minn kważi kull firewall normali.
Għalhekk, sabiex nibqgħu inosservati f'kampanja tajba tar-RedTeam, għandna bżonn nibnu mina inversa bl-użu ta 'mezzi mhux standard u naddattaw kemm jista' jkun għall-mod ta 'tħaddim reali tan-netwerk.
Ejja nippruvaw insibu jew nivvintaw xi ħaġa simili.
Qabel ma nivvinta xi ħaġa, irridu nifhmu x'riżultat irridu niksbu, liema funzjonijiet għandu jwettaq l-iżvilupp tagħna. X'se jkunu r-rekwiżiti għall-mina sabiex inkunu nistgħu naħdmu fil-modalità massima stealth?
Huwa ċar li għal kull każ tali rekwiżiti jistgħu jvarjaw ħafna, iżda abbażi tal-esperjenza tax-xogħol, jistgħu jiġu identifikati dawk ewlenin:
- taħdem fuq Windows-7-10 OS. Peress li ħafna netwerks korporattivi jużaw Windows;
- il-klijent jgħaqqad mas-server permezz ta 'SSL biex jevita smigħ stupid bl-użu ta' ips;
- Meta tikkonnettja, il-klijent għandu jappoġġja x-xogħol permezz ta 'server prokura b'awtorizzazzjoni, għaliex F'ħafna kumpaniji, l-aċċess għall-Internet iseħħ permezz ta' prokura. Fil-fatt, il-magna tal-klijent tista' lanqas tkun taf xejn dwarha, u l-prokura tintuża f'mod trasparenti. Imma rridu nipprovdu tali funzjonalità;
- il-parti tal-klijent għandha tkun konċiża u portabbli;
Huwa ċar li biex taħdem fin-netwerk tal-Klijent, tista 'tinstalla OpenVPN fuq il-magna tal-klijent u toħloq mina sħiħa għas-server tiegħek (fortunatament, il-klijenti openvpn jistgħu jaħdmu permezz ta' prokura). Iżda, l-ewwelnett, dan mhux dejjem se jaħdem, peress li nistgħu ma nkunux amministraturi lokali hemmhekk, u t-tieni, se jagħmel tant ħoss li SIEM jew HIPS deċenti immedjatament "snitch on" us. Idealment, il-klijent tagħna għandu jkun l-hekk imsejjaħ kmand inline, peress li pereżempju ħafna bash shells huma implimentati, u mnedija permezz tal-linja tal-kmand, pereżempju, meta tesegwixxi kmandi minn makro kelma. - il-mina tagħna trid tkun multi-threaded u tappoġġja ħafna konnessjonijiet fl-istess ħin;
- il-konnessjoni klijent-server għandu jkollha xi tip ta 'awtorizzazzjoni sabiex il-mina tkun stabbilita biss għall-klijent tagħna, u mhux għal kull min jiġi fis-server tagħna fl-indirizz u l-port speċifikati. Idealment, paġna ta’ destinazzjoni bi qtates jew suġġetti professjonali relatati mad-dominju oriġinali għandha tiftaħ għal “utenti ta’ terzi”.
Pereżempju, jekk il-Klijent huwa organizzazzjoni medika, allura għal amministratur tas-sigurtà tal-informazzjoni li jiddeċiedi li jiċċekkja r-riżors li aċċessa impjegat tal-klinika, paġna bi prodotti farmaċewtiċi, Wikipedija b'deskrizzjoni tad-dijanjosi, jew il-blog ta' Dr Komarovsky, eċċ. għandha tiftaħ.
Analiżi ta 'għodod eżistenti
Qabel ma tivvinta mill-ġdid ir-rota tiegħek, trid tagħmel analiżi tar-roti eżistenti u tifhem jekk verament għandna bżonnha u, probabbilment, m’aħniex l-uniċi li ħsibna dwar il-ħtieġa ta’ rota funzjonali bħal din.
Googling fuq l-Internet (jidher li google normalment), kif ukoll it-tiftix fuq Github bl-użu tal-kliem kjavi "reverse socks" ma tawx ħafna riżultati. Bażikament, kollox niżel għall-bini ta 'mini ssh b'reverse port forwarding u dak kollu konness miegħu. Minbarra l-mini SSH, hemm diversi soluzzjonijiet:
Implimentazzjoni li ilha teżisti ta' mina inversa mill-ġuvni ta' Kaspersky Lab. L-isem jagħmilha ċara għal xiex hija maħsuba din l-iskrittura. Implimentata f'Python 2.7, il-mina topera fil-modalità tat-test ċar (kif huwa moda li tgħid issa - bonjour RKN)
Implimentazzjoni oħra f'Python, ukoll f'test ċar, iżda b'aktar possibbiltajiet. Huwa miktub bħala modulu u għandu API għall-integrazzjoni tas-soluzzjoni fil-proġetti tiegħek.
L-ewwel rabta hija l-verżjoni oriġinali tal-implimentazzjoni tar-reverse sox f'Golang (mhux appoġġjat mill-iżviluppatur).
It-tieni link hija r-reviżjoni tagħna b'karatteristiċi addizzjonali, ukoll f'Golang. Fil-verżjoni tagħna, implimentajna SSL, naħdmu permezz ta 'prokura b'awtorizzazzjoni NTLM, awtorizzazzjoni fuq il-klijent, paġna ta' inżul f'każ ta 'password żbaljata (jew aħjar, redirect lejn il-paġna ta' inżul), modalità b'ħafna ħajt (jiġifieri diversi nies jista 'jaħdem mal-mina fl-istess ħin), sistema ta' ping tal-klijent biex jiddetermina jekk hux ħaj jew le.
Implimentazzjoni ta 'reverse sox minn "ħbieb Ċiniżi" tagħna f'Python. Hemm, għall-għażżien u "immortali", hemm binarju lest (exe), immuntat miċ-Ċiniżi u lest għall-użu. Hawnhekk, Alla Ċiniż biss jaf x'iktar jista' jkun fih dan il-binarju minbarra l-funzjonalità ewlenija, għalhekk uża għar-riskju u r-riskju tiegħek.
Proġett pjuttost interessanti f'C++ għall-implimentazzjoni tar-reverse sox u aktar. Minbarra l-mina b'lura, tista 'tagħmel port forwarding, toħloq qoxra ta' kmand, eċċ.
MSF meterpreter
Hawnhekk, kif jgħidu, l-ebda kummenti. Il-hackers kollha saħansitra aktar jew inqas edukati huma familjari ħafna ma 'din il-ħaġa u jifhmu kemm jista' jiġi skopert faċilment minn għodod tas-sigurtà.
L-għodod kollha deskritti hawn fuq jaħdmu bl-użu ta 'teknoloġija simili: modulu binarju eżekutibbli ppreparat minn qabel jiġi mniedi fuq magna ġewwa n-netwerk, li jistabbilixxi konnessjoni ma' server estern. Is-server imexxi server SOCKS4/5 li jaċċetta konnessjonijiet u jibgħathom lill-klijent.
L-iżvantaġġ tal-għodod kollha ta 'hawn fuq huwa li jew Python jew Golang għandhom jiġu installati fuq il-magna tal-klijent (spiss rajt Python installat fuq il-magni ta', pereżempju, direttur tal-kumpanija jew ħaddiema tal-uffiċċju?), jew immuntat minn qabel binarju (fil-fatt python) għandu jiġi mkaxkra fuq din il-magna u skript fi flixkun wieħed) u mexxi dan il-binarju diġà hemm. U t-tniżżil ta 'exe u mbagħad it-tnedija hija wkoll firma għal antivirus lokali jew HIPS.
B'mod ġenerali, il-konklużjoni tissuġġerixxi lilha nfisha - neħtieġu soluzzjoni powershell. Issa t-tadam se jtir magħna - jgħidu li l-powershell diġà hija kollha mnaqqsa, hija mmonitorjata, imblukkata, eċċ. u l-bqija. Fil-fatt, mhux kullimkien. Aħna niddikjaraw b'mod responsabbli. Mill-mod, hemm ħafna modi biex taqbeż l-imblukkar (hawn għal darb'oħra hemm frażi moda dwar bonjour RKN 🙂), li tibda mit-tismija stupida ta 'powershell.exe -> cmdd.exe u tispiċċa b'powerdll, eċċ.
Ejja nibdew nivvintaw
Huwa ċar li l-ewwel se nħarsu fuq Google u... ma nsibu xejn fuq dan is-suġġett (jekk xi ħadd sabha, poġġi links fil-kummenti). Hemm biss
Allura, ma sibna xejn lest, għalhekk xorta jkollna nivvintaw mill-ġdid ir-rota tagħna. Se nieħdu bħala l-bażi għar-rota tagħna
RSocksTun
Allura kif jaħdem rsockstun?
L-operazzjoni ta 'RsocksTun (minn hawn 'il quddiem imsejħa rs) hija bbażata fuq żewġ komponenti tas-softwer - Yamux u Socks5 server. Socks5 server huwa socks5 lokali regolari, jaħdem fuq il-klijent. U l-multiplexing ta' konnessjonijiet magħha (tiftakar dwar il-multithreading?) huwa pprovdut bl-użu ta' yamux (
L-essenza ta 'kif jaħdem yamux hija li tintroduċi saff ta' netwerk addizzjonali ta 'flussi, li timplimentah fil-forma ta' header ta '12-byte għal kull pakkett. (Hawn aħna deliberatament nużaw il-kelma "fluss" aktar milli ħajta, sabiex ma nħawdux lill-qarrej ma 'fluss ta' programm "ħajt" - aħna se nużaw ukoll dan il-kunċett f'dan l-artikolu). L-header tal-yamux fih in-numru tal-fluss, bnadar għall-installazzjoni/terminazzjoni tal-fluss, in-numru ta 'bytes trasferiti, u d-daqs tat-tieqa tat-trasferiment.
Minbarra l-installazzjoni/terminazzjoni ta 'fluss, yamux jimplimenta mekkaniżmu keepalive li jippermettilek tissorvelja l-prestazzjoni tal-kanal ta' komunikazzjoni stabbilit. It-tħaddim tal-mekkaniżmu tal-messaġġ keeplive huwa kkonfigurat meta tinħoloq sessjoni Yamux. Fil-fatt, mis-settings hemm biss żewġ parametri: jawtorizzaw/iskonnettjaw u l-frekwenza li jintbagħtu l-pakketti f'sekondi. Messaġġi Keepalive jistgħu jintbagħtu minn server yamux jew klijent yamux. Meta tirċievi messaġġ keepalive, il-parti remota trid tirrispondi għalih billi tibgħat eżattament l-istess identifikatur tal-messaġġ (fil-fatt numru) li rċeviet. B'mod ġenerali, keepalive huwa l-istess ping, għal yamux biss.
It-teknika operattiva kollha tal-multiplexer: it-tipi tal-pakketti, is-setup tal-konnessjoni u l-bnadar tat-terminazzjoni, u l-mekkaniżmu tat-trasferiment tad-dejta huma deskritti fid-dettall f'
Konklużjoni għall-ewwel parti
Għalhekk, fl-ewwel parti tal-artikolu, aħna ltqajna familjari ma 'xi għodod għall-organizzazzjoni ta' mini reverse, ħares lejn il-vantaġġi u l-iżvantaġġi tagħhom, studja l-mekkaniżmu ta 'tħaddim tal-multiplexer Yamux u ddeskrivejna r-rekwiżiti bażiċi għall-modulu powershell maħluq ġdid. Fil-parti li jmiss se niżviluppaw il-modulu innifsu, prattikament mill-bidu. Ser jitkompla aktar il-quddiem. Taqlibx :)
Sors: www.habr.com