A kọ Reverse socks5 proxy lori powershell.Apá 1

Itan kan nipa iwadii ati idagbasoke ni awọn ẹya mẹta. Apá 3 jẹ àbẹwò.
Ọpọlọpọ awọn igi beech wa - paapaa awọn anfani diẹ sii.

Igbekalẹ iṣoro naa

Lakoko awọn pentests ati awọn ipolongo RedTeam, kii ṣe nigbagbogbo ṣee ṣe lati lo awọn irinṣẹ boṣewa Onibara, bii VPN, RDP, Citrix, ati bẹbẹ lọ. bi ohun oran fun titẹ awọn ti abẹnu nẹtiwọki. Ni diẹ ninu awọn aaye, boṣewa VPN n ṣiṣẹ ni lilo MFA ati aami ohun elo kan ti lo bi ifosiwewe keji, ninu awọn miiran o jẹ abojuto ti o buruju ati iwọle VPN wa lesekese han, bi wọn ṣe sọ, pẹlu gbogbo ohun ti o kan, ṣugbọn ninu awọn miiran o wa. nìkan ko si iru awọn ọna.

Ni iru awọn ọran, nigbagbogbo a ni lati ṣe awọn ohun ti a pe ni “awọn tunnels yiyipada” - awọn asopọ lati inu nẹtiwọọki inu si orisun ita tabi olupin ti a ṣakoso. Ninu iru eefin kan, a le tẹlẹ ṣiṣẹ pẹlu awọn orisun inu ti Awọn alabara.

Nibẹ ni o wa ni ọpọlọpọ awọn orisirisi ti awọn wọnyi tunnels pada. Awọn olokiki julọ ninu wọn ni, dajudaju, Meterpreter. Awọn tunnels SSH pẹlu ifiranšẹ siwaju ibudo tun wa ni ibeere nla laarin awọn ọpọ eniyan agbonaeburuwole. Awọn ọna pupọ lo wa fun imuse ipadasẹhin eefin ati ọpọlọpọ ninu wọn ni a ṣe iwadi daradara ati ṣapejuwe.
Nitoribẹẹ, fun apakan wọn, awọn olupilẹṣẹ ti awọn solusan aabo ko duro ni apakan ati rii iru awọn iṣe bẹẹ ni itara.
Fun apẹẹrẹ, awọn akoko MSF ni a rii ni aṣeyọri nipasẹ IPS ode oni lati Sisiko tabi Tekinoloji Rere, ati pe oju eefin SSH yiyipada le ṣee wa-ri nipasẹ fere eyikeyi ogiriina deede.

Nitorinaa, lati le wa ni akiyesi ni ipolongo RedTeam ti o dara, a nilo lati kọ oju eefin iyipada nipa lilo awọn ọna ti kii ṣe deede ati mu ni pẹkipẹki bi o ti ṣee si ipo iṣẹ ṣiṣe gidi ti nẹtiwọọki naa.

Jẹ ká gbiyanju lati wa tabi pilẹ nkankan iru.

Ṣaaju ki o to ṣẹda ohunkohun, a nilo lati ni oye kini abajade ti a fẹ lati ṣaṣeyọri, awọn iṣẹ wo ni idagbasoke wa yẹ ki o ṣe. Kini yoo jẹ awọn ibeere fun oju eefin ki a le ṣiṣẹ ni ipo ifura ti o pọju?

O han gbangba pe fun ọran kọọkan iru awọn ibeere le yatọ pupọ, ṣugbọn da lori iriri iṣẹ, awọn akọkọ le ṣe idanimọ:

  • ṣiṣẹ lori Windows-7-10 OS. Niwon ọpọlọpọ awọn nẹtiwọki ile-iṣẹ lo Windows;
  • alabara sopọ si olupin nipasẹ SSL lati yago fun gbigbọ aimọgbọnwa nipa lilo ip;
  • Nigbati o ba sopọ, alabara gbọdọ ṣe atilẹyin iṣẹ nipasẹ olupin aṣoju pẹlu aṣẹ, nitori Ni ọpọlọpọ awọn ile-iṣẹ, iraye si Intanẹẹti waye nipasẹ aṣoju kan. Ni otitọ, ẹrọ alabara le ko paapaa mọ ohunkohun nipa rẹ, ati pe a lo aṣoju ni ipo ṣiṣafihan. Ṣugbọn a gbọdọ pese iru iṣẹ ṣiṣe;
  • apakan alabara yẹ ki o jẹ ṣoki ati gbigbe;
    O han gbangba pe lati ṣiṣẹ laarin nẹtiwọọki Onibara, o le fi OpenVPN sori ẹrọ alabara ki o ṣẹda oju eefin kikun si olupin rẹ (da fun, awọn alabara openvpn le ṣiṣẹ nipasẹ aṣoju). Ṣugbọn, ni akọkọ, eyi kii yoo ṣiṣẹ nigbagbogbo, nitori a le ma jẹ awọn alabojuto agbegbe nibẹ, ati keji, yoo jẹ ariwo pupọ pe SIEM tabi HIPS ti o tọ yoo “snitch lori” wa lẹsẹkẹsẹ. Bi o ṣe yẹ, alabara wa yẹ ki o jẹ ohun ti a pe ni aṣẹ inline, bi fun apẹẹrẹ ọpọlọpọ awọn ikarahun bash ti wa ni imuse, ati ifilọlẹ nipasẹ laini aṣẹ, fun apẹẹrẹ, nigba ṣiṣe awọn aṣẹ lati macro ọrọ kan.
  • eefin wa gbọdọ jẹ olona-asapo ati atilẹyin ọpọlọpọ awọn asopọ ni nigbakannaa;
  • asopọ alabara-olupin gbọdọ ni iru aṣẹ kan ki oju eefin naa ti fi idi mulẹ nikan fun alabara wa, kii ṣe fun gbogbo eniyan ti o wa si olupin wa ni adirẹsi ati ibudo ti a sọ. Ni deede, oju-iwe ibalẹ pẹlu awọn ologbo tabi awọn akọle alamọdaju ti o ni ibatan si agbegbe atilẹba yẹ ki o ṣii fun “awọn olumulo ẹni-kẹta.”
    Fun apẹẹrẹ, ti Onibara jẹ ile-iṣẹ iṣoogun kan, lẹhinna fun olutọju aabo alaye ti o pinnu lati ṣayẹwo awọn orisun ti oṣiṣẹ ile-iwosan kan wọle, oju-iwe kan pẹlu awọn ọja oogun, Wikipedia pẹlu apejuwe ti iwadii aisan, tabi bulọọgi Dokita Komarovsky, bbl yẹ ki o ṣii.

Onínọmbà ti tẹlẹ irinṣẹ

Ṣaaju ki o to tun kẹkẹ ti ara rẹ ṣe, o nilo lati ṣe itupalẹ awọn kẹkẹ ti o wa tẹlẹ ki o loye boya a nilo rẹ gaan ati, boya, kii ṣe awa nikan ni o ti ronu nipa iwulo fun iru kẹkẹ ti o ṣiṣẹ.

Googling lori Intanẹẹti (a dabi pe a ṣe google deede), ati wiwa lori Github ni lilo awọn koko-ọrọ “awọn ibọsẹ yiyipada” ko fun ọpọlọpọ awọn abajade. Ni ipilẹ, gbogbo rẹ wa si kikọ awọn tunnels ssh pẹlu ifiranšẹ siwaju ibudo ati ohun gbogbo ti o sopọ pẹlu rẹ. Ni afikun si awọn tunnels SSH, ọpọlọpọ awọn solusan wa:

github.com/klsecservices/rpivot
Imuse igba pipẹ ti oju eefin yiyipada lati ọdọ awọn eniyan ni Kaspersky Lab. Orukọ naa jẹ ki o ye ohun ti a pinnu fun iwe afọwọkọ yii. Ti a ṣe ni Python 2.7, oju eefin n ṣiṣẹ ni ipo asọye (bi o ti jẹ asiko lati sọ ni bayi - hello RKN)

github.com/tonyseek/rsocks
Imuse miiran ni Python, tun ni cleartext, ṣugbọn pẹlu awọn aye diẹ sii. O ti kọ bi module ati pe o ni API kan fun sisọpọ ojutu sinu awọn iṣẹ akanṣe rẹ.

github.com/lkat/rsockstun
github.com/mis-team/rsockstun
Ọna asopọ akọkọ jẹ ẹya atilẹba ti imuse sox yiyipada ni Golang (kii ṣe atilẹyin nipasẹ olupilẹṣẹ).
Ọna asopọ keji jẹ atunyẹwo wa pẹlu awọn ẹya afikun, tun ni Golang. Ninu ẹya wa, a ṣe imuse SSL, ṣiṣẹ nipasẹ aṣoju kan pẹlu aṣẹ NTLM, aṣẹ lori alabara, oju-iwe ibalẹ ni ọran ti ọrọ igbaniwọle ti ko tọ (tabi dipo, àtúnjúwe si oju-iwe ibalẹ), ipo asapo pupọ (ie ọpọlọpọ eniyan le ṣiṣẹ pẹlu oju eefin ni akoko kanna) , eto ti pinging alabara lati pinnu boya o wa laaye tabi rara.

github.com/jun7th/tsocks
Imuse ti yiyipada sox lati wa "Chinese ọrẹ" ni Python. Nibe, fun ọlẹ ati "aiku", alakomeji ti a ti ṣetan (exe), ti a pejọ nipasẹ Kannada ati ṣetan fun lilo. Nibi, Ọlọrun Kannada nikan ni o mọ kini ohun miiran alakomeji le ni pẹlu iṣẹ ṣiṣe akọkọ, nitorinaa lo ninu ewu tirẹ ati eewu.

github.com/securesocketfunneling/ssf
Oyimbo ohun awon ise agbese ni C ++ fun a imuse yiyipada sox ati siwaju sii. Ni afikun si eefin yiyipada, o le ṣe ifiranšẹ ibudo, ṣẹda ikarahun aṣẹ, ati bẹbẹ lọ.

MSF meterpreter
Nibi, bi wọn ti sọ, ko si comments. Gbogbo paapaa diẹ sii tabi kere si awọn olosa ti o kọ ẹkọ jẹ faramọ pẹlu nkan yii ati loye bi o ṣe le ni irọrun ti o le rii nipasẹ awọn irinṣẹ aabo.

Gbogbo awọn irinṣẹ ti a ṣalaye loke n ṣiṣẹ ni lilo imọ-ẹrọ ti o jọra: module alakomeji ti a ti pese tẹlẹ ti ṣe ifilọlẹ lori ẹrọ inu nẹtiwọọki, eyiti o fi idi asopọ kan mulẹ pẹlu olupin ita. Olupin naa nṣiṣẹ olupin SOCKS4/5 ti o gba awọn asopọ ti o si fi wọn ranṣẹ si onibara.

Aila-nfani ti gbogbo awọn irinṣẹ ti o wa loke ni pe boya Python tabi Golang gbọdọ fi sori ẹrọ lori ẹrọ alabara (njẹ o ti rii nigbagbogbo Python ti a fi sori ẹrọ lori awọn ẹrọ ti, fun apẹẹrẹ, oludari ile-iṣẹ tabi awọn oṣiṣẹ ọfiisi?), Tabi ti a ti ṣajọ tẹlẹ. alakomeji (gangan Python) gbọdọ wa ni fifa lori ẹrọ yii ati iwe afọwọkọ ninu igo kan) ati ṣiṣe alakomeji yii tẹlẹ nibẹ. Ati gbigbajade exe ati lẹhinna ifilọlẹ tun jẹ ibuwọlu fun ọlọjẹ agbegbe tabi HIPS.

Ni gbogbogbo, ipari ni imọran funrararẹ - a nilo ojutu agbara agbara. Bayi awọn tomati yoo fo si wa - wọn sọ pe powershell ti wa ni gbogbo gige tẹlẹ, o jẹ abojuto, dina, ati bẹbẹ lọ. ati bẹbẹ lọ. Ni otitọ, kii ṣe nibi gbogbo. A kede ni ifojusọna. Nipa ọna, awọn ọna pupọ lo wa lati fori idinamọ (nibi lẹẹkansi gbolohun ọrọ asiko kan wa nipa hello RKN 🙂), bẹrẹ lati lorukọmii aṣiwere ti powershell.exe -> cmdd.exe ati ipari pẹlu powerdll, bbl

Jẹ ká bẹrẹ inventing

O han gbangba pe akọkọ a yoo wo Google ati… a kii yoo rii ohunkohun lori koko yii (ti ẹnikan ba ti rii, firanṣẹ awọn ọna asopọ ni awọn asọye). Nibẹ ni nikan imuse Socks5 lori powershell, ṣugbọn eyi jẹ arinrin “taara” sox, eyiti o ni nọmba awọn alailanfani tirẹ (a yoo sọrọ nipa wọn nigbamii). O le, nitorinaa, pẹlu iṣipopada diẹ ti ọwọ rẹ, yi pada si ọkan, ṣugbọn eyi yoo jẹ sox-asapo kan nikan, eyiti kii ṣe ohun ti a nilo fun wa.

Nitorinaa, a ko rii ohunkohun ti a ti ṣetan, nitorinaa a yoo tun ni lati tun kẹkẹ wa pada. A yoo mu bi ipilẹ fun keke wa idagbasoke wa yiyipada sox ni Golang, ati pe a ṣe imuse alabara kan fun ni agbara agbara.

RSocksTun
Nitorina bawo ni rsockstun ṣiṣẹ?

Iṣiṣẹ ti RsocksTun (lẹhin ti a tọka si bi rs) da lori awọn paati sọfitiwia meji - Yamux ati olupin Socks5. Socks5 olupin jẹ ibọsẹ agbegbe deede5, o nṣiṣẹ lori alabara. Ati multiplexing ti awọn asopọ si o (ranti nipa multithreading?) Ti pese nipa lilo yamux (sibe miiran multiplexer). Eto yii ngbanilaaye lati ṣe ifilọlẹ ọpọlọpọ awọn olupin socks5 alabara ati pinpin awọn asopọ ita si wọn, fifiranṣẹ wọn nipasẹ asopọ TCP kan ṣoṣo (o fẹrẹẹ fẹ ni meterpreter) lati alabara si olupin, nitorinaa imuse ipo aṣapo pupọ, laisi eyiti a kii yoo rọrun. ni anfani lati ṣiṣẹ ni kikun ni awọn nẹtiwọọki inu.

Koko-ọrọ ti bii yamux ṣe n ṣiṣẹ ni pe o ṣafihan afikun ipele nẹtiwọọki ti awọn ṣiṣan, imuse rẹ ni irisi akọsori 12-byte fun soso kọọkan. (Nibi a mọọmọ lo ọrọ naa “sisan” kuku ju o tẹle ara, nitorinaa ki o ma ṣe daru oluka naa pẹlu ṣiṣan eto “o tẹle” - a yoo tun lo imọran yii ninu nkan yii). Akọsori yamux ni nọmba ṣiṣan naa, awọn asia fun fifi sori ẹrọ/fipin si ṣiṣan naa, nọmba awọn baiti ti o gbe, ati iwọn ti window gbigbe.

A kọ Reverse socks5 proxy lori powershell.Apá 1

Ni afikun si fifi sori ẹrọ / ifopinsi ṣiṣan kan, yamux ṣe imuse ẹrọ ti o wa laaye ti o fun ọ laaye lati ṣe atẹle iṣẹ ti ikanni ibaraẹnisọrọ ti iṣeto. Iṣiṣẹ ti ẹrọ ifiranse ifiwe laaye jẹ tunto nigba ṣiṣẹda igba Yamux kan. Lootọ, ti awọn eto awọn aye meji nikan lo wa: mu ṣiṣẹ / mu ṣiṣẹ ati igbohunsafẹfẹ ti awọn apo-iwe fifiranṣẹ ni iṣẹju-aaya. Awọn ifiranṣẹ Keepalive le jẹ fifiranṣẹ nipasẹ olupin yamux tabi alabara yamux kan. Nigbati o ba ngba ifiranṣẹ ti o wa laaye, ẹgbẹ latọna jijin gbọdọ dahun si rẹ nipa fifiranšẹ idamọ ifiranṣẹ kanna (nitootọ nọmba kan) ti o gba. Ni gbogbogbo, keepalive jẹ ping kanna, nikan fun yamux.

Gbogbo ilana iṣiṣẹ ti multiplexer: awọn iru apo, iṣeto asopọ ati awọn asia ifopinsi, ati ẹrọ gbigbe data jẹ apejuwe ni awọn alaye ni ni pato to yamux.

Ipari si apakan akọkọ

Nitorinaa, ni apakan akọkọ ti nkan naa, a mọ diẹ ninu awọn irinṣẹ fun siseto awọn tunnels yiyipada, wo awọn anfani ati aila-nfani wọn, ṣe iwadi ọna ṣiṣe ti Yamux multiplexer ati ṣapejuwe awọn ibeere ipilẹ fun module tuntun ti a ṣẹda tuntun. Ni nigbamii ti apakan a yoo se agbekale awọn module ara, Oba lati ibere. A tun ma a se ni ojo iwaju. Maṣe yipada :)

orisun: www.habr.com

Fi ọrọìwòye kun