Em li ser powershell proxy Reverse socks5 dinivîsin.Part 1

Çîrokek li ser lêkolîn û pêşveçûnê ji 3 beşan. Beş 1 vekolîn e.
Gelek darên bihîv hene - hê bêtir feyde.

Formulkirina pirsgirêkê

Di dema pentest û kampanyayên RedTeam de, ne gengaz e ku meriv amûrên standard ên Xerîdar, wek VPN, RDP, Citrix, hwd bikar bîne. wekî lengerek ji bo ketina tora navxweyî. Li hin deveran, VPN-ya standard bi karanîna MFA-yê dixebite û tokenek hardware wekî faktorek duyemîn tê bikar anîn, li hinên din ew bi hovane tê şopandin û têketina VPN-ya me tavilê xuya dibe, wekî ku ew dibêjin, digel hemî tiştên ku tê de têne xuyang kirin, lê li yên din hene. bi tenê wateyek wiha tune.

Di rewşên weha de, em bi berdewamî neçar in ku bi navê "tunelên berevajî" çêbikin - girêdanên ji tora hundurîn bi çavkaniyek derveyî an serverek ku em kontrol dikin. Di hundurê tunelek wusa de, em dikarin berê bi çavkaniyên navxweyî yên Xerîdar re bixebitin.

Çend cureyên van tunelên vegerê hene. Ya herî navdar ji wan, bê guman, Meterpreter e. Tunelên SSH yên bi şandina porta berevajî jî di nav girseyên hacker de daxwazek mezin in. Ji bo bicihanîna tunelêkirina berevajî gelek rêgez hene û gelek ji wan baş hatine lêkolîn û şirove kirin.
Bê guman, ji hêla xwe ve, pêşdebirên çareseriyên ewlehiyê li aliyekê nasekinin û bi awayekî çalak van kiryaran tespît dikin.
Mînakî, danişînên MSF-ê ji hêla IPS-ya nûjen ve ji Cisco an Teknolojiya Positive bi serfirazî têne nas kirin, û tunelek SSH-ya berevajî dikare ji hêla hema hema her dîwarê dîwarê normal ve were tespît kirin.

Ji ber vê yekê, ji bo ku em di kampanyayek RedTeam ya baş de bêhemdî bimînin, pêdivî ye ku em tunelek berevajî bi karanîna rêgezên ne-standard ava bikin û bi qasî ku gengaz nêzik moda xebitandina rastîn a torê bibin.

Werin em hewl bidin ku tiştek wusa bibînin an îcad bikin.

Berî ku em tiştek îcad bikin, pêdivî ye ku em fam bikin ka em dixwazin çi encamê bi dest bixin, divê pêşkeftina me çi fonksiyonan pêk bîne. Dê hewcedariyên tunelê çi bin da ku em di moda herî dizî de bixebitin?

Eşkere ye ku ji bo her rewşê hewcedariyên weha dikarin pir cûda bibin, lê li ser bingeha ezmûna xebatê, yên sereke dikarin bêne nas kirin:

  • li ser Windows-7-10 OS kar bikin. Ji ber ku piraniya torên pargîdanî Windows bikar tînin;
  • xerîdar bi serverê bi SSL-ê ve girêdide da ku bi karanîna ips-ê ji guhdariya ehmeqî dûr bixe;
  • Dema ku tê girêdan, pêdivî ye ku xerîdar xebata bi navgîniya serverek proxy bi destûr piştgirî bike, ji ber ku Di gelek pargîdaniyan de, gihîştina Înternetê bi riya proxy pêk tê. Di rastiyê de, dibe ku makîneya xerîdar di derheqê wê de tiştek nizane, û proxy di modek zelal de tê bikar anîn. Lê divê em fonksiyonek weha bidin;
  • beşa xerîdar divê kurt û portable be;
    Eşkere ye ku ji bo ku hûn di nav tora Xerîdar de bixebitin, hûn dikarin OpenVPN-ê li ser makîneya xerîdar saz bikin û tunelek bêkêmasî ji servera xwe re biafirînin (bextane, xerîdarên openvpn dikarin bi navbeynkarek bixebitin). Lê, yekem, ev ê her gav nexebite, ji ber ku dibe ku em nebin rêveberên herêmî li wir, û ya duyemîn jî, ew ê ewqas deng derxe ku SIEM an HIPS-ya maqûl dê tavilê me "xapîne". Bi îdeal, muwekîlê me pêdivî ye ku jê re fermanek hundurîn be, ji ber ku mînakî gelek şêlên bash têne bicîh kirin, û bi rêza fermanê ve têne destpêkirin, mînakî, dema ku emrên ji makroyek peyvê têne bicîh kirin.
  • divê tunela me pir-têl be û di heman demê de gelek girêdan piştgirî bike;
  • pêdivî ye ku pêwendiya xerîdar-server xwedan cûreyek destûrnameyê be da ku tunel tenê ji bo muwekîlê me were damezrandin, û ne ji bo her kesê ku li navnîşan û porta diyarkirî tê ser servera me. Bi îdeal, rûpelek zevî ya bi pisîk an mijarên profesyonel ên ku bi domaina orîjînal ve girêdayî ne divê ji bo "bikarhênerên sêyemîn" vebe.
    Mînakî, heke Xerîdar rêxistinek bijîjkî be, wê hingê ji bo rêveberek ewlehiya agahdariya ku biryar dide çavkaniyek ku xebatkarek klînîkê gihîştiye kontrol bike, rûpelek bi hilberên dermanan, Wikipedia bi ravekirina teşhîsê, an bloga Dr. Komarovsky, hwd. divê vebe.

Analîza amûrên heyî

Berî ku hûn bisiklêta xwe ji nû ve îcad bikin, hûn hewce ne ku analîzek bisîkletên heyî bikin û fêm bikin ka em bi rastî hewcedarê wê ne û, dibe ku, em ne tenê ne ku li ser hewcedariya bisîkletek wusa fonksiyonel fikirîn.

Googlêkirina li ser Înternetê (dixuye ku em bi gelemperî google dikin), û her weha lêgerîna li ser Github bi karanîna peyvên sereke yên "berepaş sock" gelek encam nedan. Di bingeh de, ew hemî bi avakirina tunelên ssh-ê bi şandina porta berevajî û her tiştê ku pê ve girêdayî ye tê. Ji bilî tunelên SSH, çend çareserî hene:

github.com/klsecservices/rpivot
Pêkanîna demdirêj a tunelek berevajî ji xortên Kaspersky Lab. Nav eşkere dike ku ev skrîpt ji bo çi tê armanc kirin. Di Python 2.7-ê de hatî bicîh kirin, tunel di moda zelal a nivîsê de dixebite (wek ku niha moda ye ku meriv bêje - silav RKN)

github.com/tonyseek/rsocks
Pêkanîna din li Python, di heman demê de bi zelal, lê bi îmkanên zêdetir. Ew wekî modulek hatî nivîsandin û ji bo yekkirina çareseriyê di projeyên we de API heye.

github.com/llkat/rsocstun
github.com/mis-team/rsocstun
Zencîreya yekem guhertoya orîjînal a pêkanîna sox a berevajî ya li Golang e (ji hêla pêşdebir ve nayê piştgirî kirin).
Zencîreya duyemîn guhertoya me ya bi taybetmendiyên pêvek e, di heman demê de li Golang. Di guhertoya xwe de, me SSL bicîh kir, bi navgînek bi destûrnameya NTLM, destûrdana li ser xerîdar, rûpelek zevî di bûyera şîfreyek nerast de (an bêtir, beralîkirina rûpela zevî), moda pir-mija (ango çend kes dikare di heman demê de bi tunelê re bixebite), pergalek pingkirina xerîdar da ku diyar bike ka ew sax e an na.

github.com/jun7th/tsocks
Pêkanîna soksê berevajî ji "hevalên me yên çînî" li Python. Li wir, ji bo tembel û "nemiran", binaryek amade (exe) heye, ku ji hêla çînî ve hatî berhev kirin û ji bo karanîna amade ye. Li vir, tenê Xwedayê Chineseînî dizane ku ev binary ji bilî fonksiyona sereke çi din heye, ji ber vê yekê di xeter û xetereya xwe de bikar bînin.

github.com/securesocketfunneling/ssf
Projeyek pir balkêş di C ++ de ji bo pêkanîna soksê berevajî û bêtir. Digel tunela berevajî, ew dikare şandina portê bike, şêlek fermanê biafirîne, hwd.

MSF meterpreter
Li vir, wekî ku ew dibêjin, şîrove tune. Hemî hackerên hîn kêm-zêde xwenda bi vî tiştî pir nas in û fam dikin ka ew çiqas bi hêsanî dikare ji hêla amûrên ewlehiyê ve were tesbît kirin.

Hemî amûrên ku li jor hatine diyar kirin bi karanîna teknolojiyek wusa dixebitin: modulek binar a pêş-amadekirî li ser makîneyek di hundurê torê de tê destpêkirin, ku têkiliyek bi serverek derveyî re saz dike. Pêşkêşker serverek SOCKS4/5 dimeşîne ku pêwendiyan qebûl dike û wan ji xerîdar re vediguhezîne.

Kêmasiya hemî amûrên jorîn ev e ku pêdivî ye ku Python an Golang li ser makîneya xerîdar were saz kirin (we pir caran dîtiye ku Python li ser makîneyên, mînakî, derhênerek pargîdanî an xebatkarên nivîsgehê hatî saz kirin?), an pêş-civînek binary (bi rastî python) divê li ser vê makîneyê û skrîptê di yek şûşeyê de were kaş kirin) û vê binaryê jixwe li wir bimeşîne. Û dakêşana exe û paşê destpêkirina wê jî ji bo antivirusek herêmî an HIPS îmzeyek e.

Bi gelemperî, encam bixwe pêşniyar dike - em hewceyê çareseriyek powershell e. Naha dê tomato bi ser me de bifirin - ew dibêjin powershell jixwe hemî hackneyed e, ew tê şopandin, asteng kirin, hwd. wate ya vê çîye. Bi rastî, ne li her derê. Em bi berpirsyarî radigihînin. Bi awayê, gelek rê hene ku meriv astengkirinê derbas bike (li vir dîsa li ser silav RKN 🙂 hevokek modêl heye), ji nûvekirina bêaqil a powershell.exe -> cmdd.exe dest pê dike û bi powerdll, hwd bi dawî dibe.

Ka em dest bi dahênanê bikin

Eşkere ye ku pêşî em ê li Google-ê bigerin û… em ê li ser vê mijarê tiştek nabînin (eger kesek ew dît, lînkan di şîroveyan de bişînin). Tenê heye pêkanîn Socks5 li ser powershell, lê ev soxek "rasterast" a asayî ye, ku hejmarek kêmasiyên xwe hene (em ê paşê li ser wan biaxivin). Bê guman, hûn dikarin bi tevgerek sivik a destê xwe, wê bizivirînin yeka berevajî, lê ev ê tenê soxek yek-têlek be, ya ku ne ew e ku em ji me re hewce ne.

Ji ber vê yekê, me tiştek amade nedîtiye, ji ber vê yekê em ê hîn jî neçar in ku çerxa xwe ji nû ve îcad bikin. Em ê duçerxeya xwe esas bigirin pêşveçûna me li Golangê soksê berevajî bikin, û em ji bo wê di powershell de xerîdarek bicîh dikin.

RSocksTun
Ji ber vê yekê rsokstun çawa dixebite?

Operasyona RsocksTun (li vir wekî rs tê binav kirin) li ser du hêmanên nermalavê-yamux û servera Socks5-ê ye. Pêşkêşkara Socks5 socks5ek herêmî ya birêkûpêk e, ew li ser xerîdar dimeşe. Û piralîkirina girêdanên pê re (li ser multithreading tê bîra we?) bi karanîna yamux (dîsa jî multiplexer din). Ev nexşe dihêle hûn çend pêşkêşkerên xerîdar socks5 bidin destpêkirin û girêdanên derveyî li wan belav bikin, wan bi yek pêwendiya TCP-ê (hema hema mîna metrepreter) ji xerîdar heya serverê bişînin, bi vî rengî modek pir-tehlî bicîh bikin, bêyî ku em ê bi hêsanî nebin. dikare bi tevahî di torên navxweyî de bixebite.

Esasê awayê ku yamux dixebite ev e ku ew pêvek torê ya pêvek a çeman destnîşan dike, wê ji bo her pakêtê di forma sernavek 12-byte de bicîh tîne. (Li vir em bi zanetî peyva "herik"ê li şûna têlê bikar tînin, ji bo ku xwendevan bi "têlek"ek bernameyê tevlihev nekin - em ê di vê gotarê de jî vê têgehê bikar bînin). Sernivîsa yamux jimareya herikînê, alayên ji bo sazkirin/qedandina herikînê, hejmara baytên hatine veguheztin, û mezinahiya pencereya veguheztinê vedihewîne.

Em li ser powershell proxy Reverse socks5 dinivîsin.Part 1

Digel sazkirina/bidawîkirina herikekê, yamux mekanîzmayek parastinê pêk tîne ku dihêle hûn performansa kanala ragihandinê ya sazkirî bişopînin. Operasyona mekanîzmaya peyama keeplive dema ku danişînek Yamux diafirîne tê mîheng kirin. Bi rastî, di nav mîhengan de tenê du parameter hene: çalakkirin/neçalakkirin û frekansa şandina pakêtan di çirkeyan de. Peyamên Keepalive dikarin ji hêla serverek yamux an xerîdarek yamux ve bêne şandin. Dema ku peyamek parastinê werdigire, divê partiya dûr bersivê bide wê bi şandina tam nasnameya peyamê (bi rastî hejmarek) ku wergirtiye. Bi gelemperî, keepalive heman ping e, tenê ji bo yamux.

Tevahiya teknîka xebitandinê ya multiplexer: celebên pakêtê, sazkirina girêdanê û alayên bidawîbûnê, û mekanîzmaya veguheztina daneyê bi hûrgulî di taybetmendiyên ji yamux re.

Encama beşa yekem

Ji ber vê yekê, di beşa yekem a gotarê de, me bi hin amûrên ji bo birêxistinkirina tunelên berevajî ve nas kir, li avantaj û dezawantajên wan mêze kir, mekanîzmaya xebitandina multiplekserê Yamux lêkolîn kir û hewcedariyên bingehîn ji bo modula powershell ya nû hatî afirandin rave kir. Di beşa paşîn de em ê modulê bixwe, bi pratîkî ji sifirê pêşve bibin. Ez bêtir ji te hez dikim. Neguhere :)

Source: www.habr.com

Add a comment