Pagsulat sa Reverse socks5 proxy sa powershell.Bahin 1

Usa ka istorya bahin sa panukiduki ug pag-uswag sa 3 ka bahin. Part 1 kay eksplorasyon.
Adunay daghang mga punoan sa beech - labi pa nga mga benepisyo.

Pagbuot sa problema

Atol sa mga kampanya sa pentest ug RedTeam, dili kanunay posible nga gamiton ang standard nga mga himan sa Customer, sama sa VPN, RDP, Citrix, ug uban pa. isip angkla sa pagsulod sa internal nga network. Sa pipila ka mga lugar, ang usa ka standard nga VPN naglihok gamit ang MFA ug ang usa ka hardware token gigamit ingon nga ikaduha nga hinungdan, sa uban kini brutal nga gibantayan ug ang among pag-login sa VPN diha-diha dayon makita, ingon sa ilang giingon, sa tanan nga gikinahanglan niini, apan sa uban adunay walay ingon nga paagi.

Sa ingon nga mga kaso, kinahanglan namon kanunay nga maghimo sa gitawag nga "reverse tunnels" - mga koneksyon gikan sa internal nga network ngadto sa usa ka eksternal nga kapanguhaan o usa ka server nga among gikontrol. Sulod sa ingon nga tunnel, mahimo na namon nga magtrabaho kauban ang mga internal nga kapanguhaan sa mga Kustomer.

Adunay ubay-ubay nga mga lahi niining mga balik nga tunnel. Ang labing inila kanila mao, siyempre, Meterpreter. Ang mga tunel sa SSH nga adunay reverse port forwarding dako usab nga panginahanglan sa mga hacker nga masa. Adunay daghan nga mga paagi alang sa pagpatuman sa reverse tunneling ug daghan niini maayo nga gitun-an ug gihulagway.
Siyempre, alang sa ilang bahin, ang mga nag-develop sa mga solusyon sa seguridad dili mohunong ug aktibo nga nakit-an ang ingon nga mga aksyon.
Pananglitan, ang mga sesyon sa MSF malampuson nga nakit-an sa modernong IPS gikan sa Cisco o Positive Tech, ug ang usa ka reverse SSH tunnel mahimong makit-an sa halos bisan unsang normal nga firewall.

Busa, aron magpabilin nga dili mamatikdan sa usa ka maayo nga kampanya sa RedTeam, kita kinahanglan nga magtukod og usa ka reverse tunnel gamit ang non-standard nga mga paagi ug ipahiangay kutob sa mahimo sa tinuod nga operating mode sa network.

Atong sulayan pagpangita o pag-imbento og susama.

Sa dili pa mag-imbento sa bisan unsa, kinahanglan natong masabtan kung unsa nga resulta ang gusto natong makab-ot, unsa nga mga gimbuhaton ang kinahanglan buhaton sa atong pag-uswag. Unsa man ang mga kinahanglanon alang sa tunel aron makatrabaho kami sa maximum stealth mode?

Klaro nga alang sa matag kaso ang ingon nga mga kinahanglanon mahimong magkalainlain kaayo, apan base sa kasinatian sa trabaho, ang mga nag-una mahimong mailhan:

  • pagtrabaho sa Windows-7-10 OS. Tungod kay kadaghanan sa mga corporate network naggamit sa Windows;
  • ang kliyente nagkonektar sa server pinaagi sa SSL aron malikayan ang hungog nga pagpaminaw gamit ang ips;
  • Kung nagkonektar, kinahanglan nga suportahan sa kliyente ang trabaho pinaagi sa usa ka proxy server nga adunay pagtugot, tungod kay Sa daghang mga kompanya, ang pag-access sa Internet mahitabo pinaagi sa usa ka proxy. Sa tinuud, ang makina sa kliyente mahimo’g wala’y nahibal-an bahin niini, ug ang proxy gigamit sa usa ka transparent mode. Apan kinahanglan namon nga hatagan ang ingon nga pagpaandar;
  • ang bahin sa kliyente kinahanglan nga mubo ug madaladala;
    Klaro nga aron magtrabaho sa sulod sa network sa Customer, mahimo nimong i-install ang OpenVPN sa makina sa kliyente ug maghimo usa ka hingpit nga tunel sa imong server (maayo na lang, ang mga kliyente sa openvpn mahimong molihok pinaagi sa usa ka proxy). Apan, una, dili kini kanunay nga molihok, tungod kay dili kami mga lokal nga admin didto, ug ikaduha, maghimo kini nga labi ka kasaba nga usa ka disente nga SIEM o HIPS ang "mag-agaw" kanamo. Sa tinuud, ang among kliyente kinahanglan nga usa ka gitawag nga inline nga mando, sama pananglitan daghang mga bash shell ang gipatuman, ug gilunsad pinaagi sa command line, pananglitan, kung nagpatuman sa mga mando gikan sa usa ka pulong nga macro.
  • ang atong tunel kinahanglan nga multi-threaded ug nagsuporta sa daghang mga koneksyon nga dungan;
  • ang koneksyon sa kliyente-server kinahanglan adunay usa ka matang sa pagtugot aron ang tunel matukod lamang alang sa among kliyente, ug dili alang sa tanan nga moadto sa among server sa gitakda nga adres ug pantalan. Sa tinuud, ang usa ka landing page nga adunay mga iring o propesyonal nga mga hilisgutan nga may kalabutan sa orihinal nga domain kinahanglan magbukas alang sa "mga tiggamit sa ikatulo nga partido."
    Pananglitan, kung ang Customer usa ka medikal nga organisasyon, unya alang sa usa ka tagdumala sa seguridad sa impormasyon nga nakahukom sa pagsusi sa kapanguhaan nga gi-access sa empleyado sa klinika, usa ka panid nga adunay mga produkto sa parmasyutiko, Wikipedia nga adunay paghulagway sa diagnosis, o blog ni Dr. Komarovsky, ug uban pa. .kinahanglan ablihan.

Pagtuki sa kasamtangan nga mga himan

Sa wala pa imbento pag-usab ang imong kaugalingon nga bisikleta, kinahanglan nimo nga maghimo usa ka pagtuki sa mga naglungtad nga mga bisikleta ug sabton kung kinahanglan ba gyud naton kini ug, tingali, dili lang kami ang naghunahuna bahin sa panginahanglan alang sa ingon nga usa ka functional nga bisikleta.

Ang pag-googling sa Internet (murag kasagaran namong google), ingon man ang pagpangita sa Github gamit ang mga keyword nga "reverse socks" wala maghatag ug daghang resulta. Sa panguna, kini tanan moabut sa pagtukod sa mga tunel sa ssh nga adunay reverse port forwarding ug ang tanan nga konektado niini. Dugang sa SSH tunnels, adunay daghang mga solusyon:

github.com/klsecservices/rpivot
Usa ka dugay na nga pagpatuman sa usa ka reverse tunnel gikan sa mga lalaki sa Kaspersky Lab. Giklaro sa ngalan kung para sa unsa kini nga script. Gipatuman sa Python 2.7, ang tunel naglihok sa cleartext mode (ingon nga kini uso karon - hello RKN)

github.com/tonyseek/rsocks
Laing pagpatuman sa Python, usab sa tin-aw nga teksto, apan adunay daghang mga posibilidad. Gisulat kini isip usa ka module ug adunay API alang sa pag-integrate sa solusyon sa imong mga proyekto.

github.com/llkat/rsockstun
github.com/mis-team/rsockstun
Ang unang link mao ang orihinal nga bersyon sa reverse sox nga pagpatuman sa Golang (dili suportado sa developer).
Ang ikaduha nga link mao ang among rebisyon nga adunay dugang nga mga bahin, usab sa Golang. Sa among bersyon, gipatuman namon ang SSL, nagtrabaho pinaagi sa usa ka proxy nga adunay pagtugot sa NTLM, pagtugot sa kliyente, usa ka landing page kung adunay sayup nga password (o hinoon, usa ka pag-redirect sa landing page), multi-threaded mode (ie daghang mga tawo makatrabaho sa tunnel sa samang higayon), usa ka sistema sa pag-ping sa kliyente aron mahibal-an kung buhi ba siya o dili.

github.com/jun7th/tsocks
Pagpatuman sa reverse sox gikan sa among "mga higala nga Intsik" sa Python. Didto, alang sa mga tapulan ug "imortal", adunay usa ka andam nga binary (exe), nga gitigum sa mga Intsik ug andam na alang sa paggamit. Dinhi, ang Diyos nga Intsik lamang ang nahibal-an kung unsa pa ang mahimo nga sulud sa kini nga binary gawas sa panguna nga gamit, busa gamita sa imong kaugalingon nga peligro ug peligro.

github.com/securesocketfunneling/ssf
Usa ka makapaikag nga proyekto sa C ++ alang sa pagpatuman sa reverse sox ug daghan pa. Dugang pa sa reverse tunnel, mahimo kini nga port forwarding, paghimo og command shell, ug uban pa.

MSF meterpreter
Dinhi, ingon sa ilang giingon, walay mga komento. Ang tanan nga labi pa o dili kaayo edukado nga mga hacker pamilyar kaayo sa kini nga butang ug nakasabut kung unsa kadali kini mahibal-an sa mga himan sa seguridad.

Ang tanan nga mga himan nga gihulagway sa ibabaw nagtrabaho gamit ang usa ka susama nga teknolohiya: ang usa ka pre-prepared executable binary module gilansad sa usa ka makina sa sulod sa network, nga nagtukod usa ka koneksyon sa usa ka eksternal nga server. Ang server nagpadagan sa usa ka SOCKS4/5 server nga modawat sa mga koneksyon ug ipasa kini ngadto sa kliyente.

Ang disbentaha sa tanan nga mga himan sa ibabaw mao nga ang Python o Golang kinahanglan nga ma-install sa makina sa kliyente (kadaghan ba nimo nakita ang Python nga gi-install sa mga makina, pananglitan, usa ka direktor sa kompanya o mga trabahante sa opisina?), O usa ka pre-assembled Ang binary (sa tinuud nga python) kinahanglan nga giguyod sa kini nga makina ug script sa usa ka botelya) ug ipadagan kini nga binary didto na. Ug ang pag-download sa usa ka exe ug dayon paglansad kini usa usab ka pirma alang sa usa ka lokal nga antivirus o HIPS.

Sa kinatibuk-an, ang konklusyon nagsugyot sa iyang kaugalingon - kinahanglan namon ang solusyon sa powershell. Karon ang mga kamatis molupad sa amon - giingon nila nga ang powershell na-hackney na, kini gibantayan, gibabagan, ug uban pa. ug uban pa. Sa pagkatinuod, dili bisan asa. Kami nagpahayag nga responsable. Pinaagi sa dalan, adunay daghang mga paagi sa pag-bypass sa pag-block (dinhi na usab ang us aka us aka us aka hugpong sa mga pulong bahin sa hello RKN πŸ™‚), sugod sa hungog nga pagbag-o sa ngalan sa powershell.exe -> cmdd.exe ug matapos sa powerdll, ug uban pa.

Magsugod ta sa pag-imbento

Klaro nga una nga tan-awon namon ang Google ug… wala kami makit-an bahin sa kini nga hilisgutan (kung adunay nakit-an, i-post ang mga link sa mga komento). Adunay ra pagpatuman Socks5 sa powershell, apan kini usa ka ordinaryo nga "direkta" nga sox, nga adunay daghang mga kaugalingon nga mga disadvantages (atong hisgutan kini sa ulahi). Mahimo nimo, siyempre, sa usa ka gamay nga paglihok sa imong kamot, ibalik kini sa usa, apan kini usa ra nga sinulud nga sox, nga dili kaayo kung unsa ang kinahanglan namon alang kanamo.

Mao nga, wala kami nakit-an nga bisan unsang butang nga andam, busa kinahanglan pa namon nga usbon ang among ligid. Atong kuhaon nga basehan sa atong biseklita atong kalamboan reverse sox sa Golang, ug nag-implementar mi og kliyente para niini sa powershell.

RSocksTun
Busa sa unsang paagi ang rsockstun nagtrabaho?

Ang operasyon sa RsocksTun (gitawag nga rs) gibase sa duha ka sangkap sa software - Yamux ug Socks5 server. Ang Socks5 server usa ka regular nga lokal nga socks5, nagdagan kini sa kliyente. Ug ang multiplexing sa mga koneksyon niini (hinumdomi ang bahin sa multithreading?) gihatag gamit ang yamux (usa pa ka multiplexer). Kini nga laraw nagtugot kanimo sa paglansad sa daghang mga kliyente nga socks5 nga mga server ug pag-apod-apod sa mga eksternal nga koneksyon sa kanila, ipasa kini pinaagi sa usa ka koneksyon sa TCP (halos sama sa meterpreter) gikan sa kliyente ngadto sa server, sa ingon nagpatuman sa usa ka multi-threaded mode, kung wala kini dili kami mahimo. makahimo sa hingpit nga pagtrabaho sa mga internal nga network.

Ang diwa sa kung giunsa ang yamux nagtrabaho mao nga kini nagpaila sa usa ka dugang nga layer sa network sa mga sapa, nga gipatuman kini sa porma sa usa ka 12-byte nga header alang sa matag pakete. (Dinhi gituyo namon nga gamiton ang pulong nga "stream" imbes nga hilo, aron dili malibog ang magbabasa sa usa ka stream sa programa nga "thread" - gamiton usab namon kini nga konsepto sa kini nga artikulo). Ang yamux header naglangkob sa numero sa sapa, mga bandila alang sa pag-instalar/pagtapos sa sapa, ang gidaghanon sa mga byte nga gibalhin, ug ang gidak-on sa window sa pagbalhin.

Pagsulat sa Reverse socks5 proxy sa powershell.Bahin 1

Dugang pa sa pag-instalar/pagtapos sa usa ka sapa, ang yamux nagpatuman sa usa ka keepalive nga mekanismo nga nagtugot kanimo sa pag-monitor sa performance sa natukod nga channel sa komunikasyon. Ang operasyon sa keeplive nga mekanismo sa mensahe gi-configure kung maghimo usa ka sesyon sa Yamux. Sa tinuud, sa mga setting adunay duha ra nga mga parameter: pag-enable/disable ug ang frequency sa pagpadala sa mga pakete sa mga segundo. Ang mga mensahe sa Keepalive mahimong ipadala sa yamux server o yamux nga kliyente. Kung makadawat ug keepalive nga mensahe, ang hilit nga partido kinahanglang mosanong niini pinaagi sa pagpadala sa eksaktong samang message identifier (tinuod nga numero) nga nadawat niini. Sa kinatibuk-an, ang keepalive parehas nga ping, para lang sa yamux.

Ang tibuuk nga pamaagi sa pag-operate sa multiplexer: mga tipo sa pakete, pag-setup sa koneksyon ug mga bandila sa pagtapos, ug ang mekanismo sa pagbalhin sa data gihulagway sa detalye sa mga detalye sa yamux.

Panapos sa unang bahin

Mao nga, sa una nga bahin sa artikulo, nahibal-an namon ang pipila ka mga himan alang sa pag-organisar sa mga reverse tunnels, gitan-aw ang ilang mga bentaha ug mga disbentaha, gitun-an ang mekanismo sa operasyon sa Yamux multiplexer ug gihulagway ang sukaranan nga mga kinahanglanon alang sa bag-ong nabuhat nga module sa powershell. Sa sunod nga bahin atong pauswagon ang module mismo, halos gikan sa wala. Ipadayon. ayaw ug switch :)

Source: www.habr.com

Idugang sa usa ka comment