Rydym yn ysgrifennu dirprwy socks5 Reverse ar powershell.Part 1

Stori am ymchwil a datblygiad mewn 3 rhan. Mae Rhan 1 yn archwiliadol.
Mae yna lawer o goed ffawydd - hyd yn oed mwy o fanteision.

Datganiad o'r broblem

Yn ystod pentests ac ymgyrchoedd RedTeam, nid yw bob amser yn bosibl defnyddio offer safonol y Cwsmer, fel VPN, RDP, Citrix, ac ati. fel angor ar gyfer mynd i mewn i'r rhwydwaith mewnol. Mewn rhai mannau, mae VPN safonol yn gweithio gan ddefnyddio MFA a defnyddir tocyn caledwedd fel ail ffactor, mewn eraill mae'n cael ei fonitro'n greulon ac mae ein mewngofnodi VPN yn dod yn weladwy ar unwaith, fel y dywedant, gyda phopeth y mae'n ei olygu, ond mewn eraill mae yna yn syml, dim modd o'r fath.

Mewn achosion o'r fath, mae'n rhaid i ni wneud “twneli gwrthdro” fel y'u gelwir yn gyson - cysylltiadau o'r rhwydwaith mewnol i adnodd allanol neu weinydd rydyn ni'n ei reoli. Y tu mewn i dwnnel o'r fath, gallwn eisoes weithio gydag adnoddau mewnol y Cwsmeriaid.

Mae sawl math o'r twneli dychwelyd hyn. Yr enwocaf ohonynt, wrth gwrs, yw Meterpreter. Mae galw mawr hefyd am dwneli SSH gyda phorthladd anfon ymlaen yn ôl ymhlith y llu hacwyr. Mae yna lawer iawn o ddulliau ar gyfer gweithredu twnelu o chwith ac mae llawer ohonynt wedi'u hastudio a'u disgrifio'n dda.
Wrth gwrs, o'u rhan hwy, nid yw datblygwyr datrysiadau diogelwch yn sefyll o'r neilltu ac yn canfod gweithredoedd o'r fath yn weithredol.
Er enghraifft, mae sesiynau MSF yn cael eu canfod yn llwyddiannus gan IPS modern o Cisco neu Positive Tech, a gellir canfod twnnel SSH gwrthdro gan bron unrhyw wal dân arferol.

Felly, er mwyn parhau i fod heb i neb sylwi mewn ymgyrch RedTeam dda, mae angen inni adeiladu twnnel gwrthdro gan ddefnyddio dulliau ansafonol ac addasu mor agos â phosibl i ddull gweithredu gwirioneddol y rhwydwaith.

Gadewch i ni geisio darganfod neu ddyfeisio rhywbeth tebyg.

Cyn dyfeisio unrhyw beth, mae angen inni ddeall pa ganlyniad yr ydym am ei gyflawni, pa swyddogaethau y dylai ein datblygiad eu cyflawni. Beth fydd y gofynion ar gyfer y twnnel fel y gallwn weithio yn y modd llechwraidd mwyaf posibl?

Mae’n amlwg y gall gofynion o’r fath amrywio’n fawr ym mhob achos, ond yn seiliedig ar brofiad gwaith, gellir nodi’r prif rai:

  • gweithio ar Windows-7-10 OS. Gan fod y rhan fwyaf o rwydweithiau corfforaethol yn defnyddio Windows;
  • mae'r cleient yn cysylltu â'r gweinydd trwy SSL i osgoi gwrando dwp gan ddefnyddio ips;
  • Wrth gysylltu, rhaid i'r cleient gefnogi gwaith trwy weinydd dirprwy gydag awdurdodiad, oherwydd Mewn llawer o gwmnïau, mae mynediad i'r Rhyngrwyd yn digwydd trwy ddirprwy. Mewn gwirionedd, efallai na fydd peiriant y cleient hyd yn oed yn gwybod dim amdano, a defnyddir y dirprwy mewn modd tryloyw. Ond rhaid i ni ddarparu ymarferoldeb o'r fath;
  • dylai'r rhan cleient fod yn gryno ac yn gludadwy;
    Mae'n amlwg, i weithio o fewn rhwydwaith y Cwsmer, y gallwch osod OpenVPN ar y peiriant cleient a chreu twnnel llawn i'ch gweinydd (yn ffodus, gall cleientiaid openvpn weithio trwy ddirprwy). Ond, yn gyntaf, ni fydd hyn bob amser yn gweithio, gan ei bod yn bosibl na fyddwn yn weinyddwyr lleol yno, ac yn ail, bydd yn gwneud cymaint o sŵn fel y bydd SIEM neu HIPS gweddus yn “snitsio” arnom ar unwaith. Yn ddelfrydol, dylai ein cleient fod yn orchymyn mewnol fel y'i gelwir, oherwydd er enghraifft mae llawer o gregyn bash yn cael eu gweithredu, a'u lansio trwy'r llinell orchymyn, er enghraifft, wrth weithredu gorchmynion o air macro.
  • rhaid i'n twnnel fod yn aml-edau a chynnal llawer o gysylltiadau ar yr un pryd;
  • rhaid i'r cysylltiad cleient-gweinydd gael rhyw fath o awdurdodiad fel bod y twnnel wedi'i sefydlu ar gyfer ein cleient yn unig, ac nid ar gyfer pawb sy'n dod at ein gweinydd yn y cyfeiriad a'r porthladd penodedig. Yn ddelfrydol, dylai tudalen lanio gyda chathod neu bynciau proffesiynol sy'n ymwneud â'r parth gwreiddiol agor ar gyfer "defnyddwyr trydydd parti."
    Er enghraifft, os yw'r Cwsmer yn sefydliad meddygol, yna ar gyfer gweinyddwr diogelwch gwybodaeth sy'n penderfynu gwirio'r adnodd y mae gweithiwr clinig wedi'i gyrchu, tudalen gyda chynhyrchion fferyllol, Wikipedia gyda disgrifiad o'r diagnosis, neu flog Dr Komarovsky, ac ati Dylai agor .

Dadansoddiad o offer presennol

Cyn ailddyfeisio'ch beic eich hun, mae angen i chi wneud dadansoddiad o'r beiciau presennol a deall a ydym wir ei angen ac, yn ôl pob tebyg, nid ni yw'r unig rai sydd wedi meddwl am yr angen am feic swyddogaethol o'r fath.

Ni roddodd googling ar y Rhyngrwyd (mae'n ymddangos ein bod ni'n google fel arfer), yn ogystal â chwilio ar Github gan ddefnyddio'r geiriau allweddol “sanau gwrthdroi” lawer o ganlyniadau. Yn y bôn, mae'r cyfan yn dibynnu ar adeiladu twneli ssh gydag anfon porthladd gwrthdro a phopeth sy'n gysylltiedig ag ef. Yn ogystal â thwneli SSH, mae yna nifer o atebion:

github.com/klsecservices/rpivot
Gweithrediad hirsefydlog o dwnnel cefn gan y dynion yn Kaspersky Lab. Mae'r enw'n ei gwneud hi'n glir beth yw bwriad y sgript hon. Wedi'i weithredu yn Python 2.7, mae'r twnnel yn gweithredu yn y modd testun clir (fel y mae'n ffasiynol i'w ddweud nawr - helo RKN)

github.com/tonyseek/rsocks
Gweithrediad arall yn Python, hefyd mewn testun clir, ond gyda mwy o bosibiliadau. Mae wedi'i ysgrifennu fel modiwl ac mae ganddo API ar gyfer integreiddio'r datrysiad i'ch prosiectau.

github.com/llkat/rsockstun
github.com/mis-team/rsockstun
Y ddolen gyntaf yw'r fersiwn wreiddiol o weithrediad cefn sox yn Golang (heb ei gefnogi gan y datblygwr).
Yr ail ddolen yw ein hadolygiad gyda nodweddion ychwanegol, hefyd yn Golang. Yn ein fersiwn, fe wnaethom weithredu SSL, gweithio trwy ddirprwy gydag awdurdodiad NTLM, awdurdodiad ar y cleient, tudalen lanio rhag ofn bod cyfrinair anghywir (neu yn hytrach, ailgyfeiriad i'r dudalen lanio), modd aml-edau (h.y. sawl person yn gallu gweithio gyda'r twnnel ar yr un pryd) , system o pingio'r cleient i benderfynu a yw'n fyw ai peidio.

github.com/jun7th/tsocks
Gweithredu reverse sox gan ein “ffrindiau Tsieineaidd” yn Python. Yno, ar gyfer y diog ac “anfarwol”, mae deuaidd parod (exe), wedi'i ymgynnull gan y Tsieineaid ac yn barod i'w ddefnyddio. Yma, dim ond y Duw Tsieineaidd sy'n gwybod beth arall y gall y deuaidd hwn ei gynnwys ar wahân i'r prif swyddogaethau, felly defnyddiwch ar eich perygl a'ch risg eich hun.

github.com/securesocketfunneling/ssf
Prosiect eithaf diddorol yn C ++ ar gyfer gweithredu reverse sox a mwy. Yn ogystal â'r twnnel cefn, gall anfon porthladd ymlaen, creu cragen gorchymyn, ac ati.

Mesurydd MSF
Yma, fel y dywedant, dim sylwadau. Mae pob haciwr hyd yn oed mwy neu lai addysgedig yn gyfarwydd iawn â'r peth hwn ac yn deall pa mor hawdd y gellir ei ganfod gan offer diogelwch.

Mae'r holl offer a ddisgrifir uchod yn gweithio gan ddefnyddio technoleg debyg: ar beiriant y tu mewn i'r rhwydwaith, mae modiwl deuaidd gweithredadwy wedi'i baratoi ymlaen llaw yn cael ei lansio, sy'n sefydlu cysylltiad â gweinydd allanol. Mae'r gweinydd yn rhedeg gweinydd SOCKS4/5 sy'n derbyn cysylltiadau ac yn eu trosglwyddo i'r cleient.

Anfantais yr holl offer uchod yw bod yn rhaid gosod naill ai Python neu Golang ar y peiriant cleient (ydych chi wedi gweld Python yn aml wedi'i osod ar beiriannau, er enghraifft, cyfarwyddwr cwmni neu weithwyr swyddfa?), neu wedi'i gydosod ymlaen llaw rhaid llusgo deuaidd (python mewn gwirionedd) ar y peiriant hwn a sgriptio mewn un botel) a rhedeg y deuaidd hwn yno eisoes. Ac mae lawrlwytho exe ac yna ei lansio hefyd yn llofnod ar gyfer gwrthfeirws lleol neu HIPS.

Yn gyffredinol, mae'r casgliad yn awgrymu ei hun - mae angen datrysiad cragen pwerau. Nawr bydd tomatos yn hedfan atom ni - maen nhw'n dweud bod plisgyn pŵer eisoes wedi'i hacni, mae'n cael ei fonitro, ei rwystro, ac ati. ac yn y blaen. Mewn gwirionedd, nid ym mhobman. Rydym yn datgan yn gyfrifol. Gyda llaw, mae yna lawer o ffyrdd i osgoi blocio (yma eto mae ymadrodd ffasiynol am helo RKN 🙂), gan ddechrau o ailenwi'n wirion powershell.exe -> cmdd.exe ac yn gorffen gyda powerdll, ac ati.

Gadewch i ni ddechrau dyfeisio

Mae'n amlwg y byddwn yn edrych ar Google yn gyntaf a ... ni fyddwn yn dod o hyd i unrhyw beth ar y pwnc hwn (os yw rhywun wedi dod o hyd iddo, postiwch ddolenni yn y sylwadau). Nid oes ond gweithredu Socks5 ar powershell, ond socs “uniongyrchol” arferol yw hwn, sydd â nifer o'i anfanteision ei hun (byddwn yn siarad amdanynt yn nes ymlaen). Gallwch, wrth gwrs, gyda symudiad bach yn eich llaw, ei droi i'r gwrthwyneb, ond dim ond sox un edau fydd hwn, ac nid dyna'r hyn sydd ei angen arnom ni yn union.

Felly, nid ydym wedi dod o hyd i unrhyw beth parod, felly bydd yn rhaid i ni ailddyfeisio ein olwyn o hyd. Byddwn yn cymryd fel sail ar gyfer ein beic ein datblygiad reverse sox yn Golang, ac rydym yn gweithredu cleient ar ei gyfer yn powershell.

RSocksTun
Felly sut mae rsockstun yn gweithio?

Mae gweithrediad RsocksTun (y cyfeirir ati yma wedi hyn fel rs) yn seiliedig ar ddwy gydran meddalwedd - gweinydd Yamux a Socks5. Mae gweinydd Socks5 yn socks5 lleol rheolaidd, mae'n rhedeg ar y cleient. A darperir amlblecsio cysylltiadau iddo (cofiwch am aml-edau?) gan ddefnyddio yamux (amlblecsydd arall eto). Mae'r cynllun hwn yn caniatáu ichi lansio sawl gweinydd socks5 cleient a dosbarthu cysylltiadau allanol iddynt, gan eu hanfon ymlaen trwy un cysylltiad TCP sengl (bron fel mewn mesurydd mesurydd) o'r cleient i'r gweinydd, a thrwy hynny weithredu modd aml-edau, hebddo ni fyddwn yn syml. gallu gweithio'n llawn yn y rhwydweithiau mewnol.

Hanfod sut mae yamux yn gweithio yw ei fod yn cyflwyno haen rhwydwaith ychwanegol o ffrydiau, gan ei weithredu ar ffurf pennawd 12-beit ar gyfer pob pecyn. (Yma rydyn ni’n defnyddio’r gair “stream” yn fwriadol yn hytrach nag edau, er mwyn peidio â drysu’r darllenydd gyda ffrwd rhaglen “edau” - byddwn hefyd yn defnyddio’r cysyniad hwn yn yr erthygl hon). Mae pennawd yamux yn cynnwys rhif y nant, baneri ar gyfer gosod / terfynu'r nant, nifer y beitau a drosglwyddwyd, a maint y ffenestr drosglwyddo.

Rydym yn ysgrifennu dirprwy socks5 Reverse ar powershell.Part 1

Yn ogystal â gosod / terfynu ffrwd, mae yamux yn gweithredu mecanwaith cadw'n fyw sy'n eich galluogi i fonitro perfformiad y sianel gyfathrebu sefydledig. Mae gweithrediad y mecanwaith negeseuon keeplive wedi'i ffurfweddu wrth greu sesiwn Yamux. Mewn gwirionedd, dim ond dau baramedr sydd o'r gosodiadau: galluogi / analluogi ac amlder anfon pecynnau mewn eiliadau. Gall gweinydd yamux neu gleient yamux anfon negeseuon Keepalive. Wrth dderbyn neges cadw'n fyw, rhaid i'r parti pell ymateb iddo trwy anfon yr un dynodwr neges yn union (rhif mewn gwirionedd) a dderbyniodd. Yn gyffredinol, yr un ping yw keepalive, dim ond ar gyfer yamux.

Disgrifir techneg weithredu gyfan yr amlblecsydd: mathau o becynnau, gosodiadau cysylltiad a baneri terfynu, a'r mecanwaith trosglwyddo data yn fanwl yn manylebau i yamux.

Diweddglo i'r rhan gyntaf

Felly, yn rhan gyntaf yr erthygl, daethom yn gyfarwydd â rhai offer ar gyfer trefnu twneli gwrthdro, edrych ar eu manteision a'u hanfanteision, astudio mecanwaith gweithredu amlblecsydd Yamux a disgrifio'r gofynion sylfaenol ar gyfer y modiwl cragen pwerau newydd. Yn y rhan nesaf byddwn yn datblygu'r modiwl ei hun, yn ymarferol o'r dechrau. I'w barhau. Peidiwch â newid :)

Ffynhonnell: hab.com

Ychwanegu sylw