Minsan sa isang pentest, o Paano masira ang lahat sa tulong ng isang urologist at Roskomnadzor

Minsan sa isang pentest, o Paano masira ang lahat sa tulong ng isang urologist at Roskomnadzor
Ang artikulong ito ay isinulat batay sa isang napakatagumpay na pantest na isinagawa ng mga espesyalista ng Group-IB ilang taon na ang nakalipas: isang kuwento ang nangyari na maaaring iakma para sa pelikula sa Bollywood. Ngayon, malamang, ang reaksyon ng mambabasa ay susunod: "Oh, isa pang artikulo ng PR, muli itong inilalarawan, kung gaano sila kahusay, huwag kalimutang bumili ng isang pentest." Well, sa isang banda, ito ay. Gayunpaman, may ilang iba pang mga dahilan kung bakit lumitaw ang artikulong ito. Nais kong ipakita kung ano ang eksaktong ginagawa ng mga pentester, kung gaano kawili-wili at hindi mahalaga ang gawaing ito, kung anong mga nakakatawang pangyayari ang maaaring lumitaw sa mga proyekto, at higit sa lahat, ipakita ang live na materyal na may mga tunay na halimbawa.

Upang maibalik ang balanse ng kahinhinan sa mundo, pagkatapos ng ilang sandali ay magsusulat tayo tungkol sa isang pentest na hindi naging maganda. Ipapakita namin kung paano mapoprotektahan ng mahusay na disenyo ang mga proseso sa isang kumpanya laban sa isang buong hanay ng mga pag-atake, maging ang mga mahusay na inihanda, dahil lang sa umiiral at aktwal na gumagana ang mga prosesong ito.

Para sa customer sa artikulong ito, ang lahat ay sa pangkalahatan ay mahusay din, hindi bababa sa mas mahusay kaysa sa 95% ng merkado sa Russian Federation, ayon sa aming mga damdamin, ngunit mayroong isang bilang ng mga maliliit na nuances na nabuo ang isang mahabang hanay ng mga kaganapan, na una humantong sa isang mahabang ulat sa trabaho, at pagkatapos ay sa artikulong ito.

Kaya, mag-imbak tayo ng popcorn, at maligayang pagdating sa kuwento ng tiktik. salita - Pavel Suprunyuk, technical manager ng departamento ng "Audit and Consulting" ng Group-IB.

Bahagi 1. Pochkin doktor

2018 Mayroong isang customer - isang high-tech na kumpanya ng IT, na mismo ay nagsisilbi sa maraming mga kliyente. Nais makakuha ng sagot sa tanong: posible ba, nang walang anumang paunang kaalaman at pag-access, nagtatrabaho sa pamamagitan ng Internet, upang makakuha ng mga karapatan ng administrator ng domain ng Active Directory? Hindi ako interesado sa anumang social engineering (oh, ngunit walang kabuluhan), hindi nila nilayon na makagambala sa trabaho nang may layunin, ngunit maaaring hindi nila sinasadyang - i-reload ang isang kakaibang gumaganang server, halimbawa. Ang isang karagdagang layunin ay upang tukuyin ang maraming iba pang mga vector ng pag-atake hangga't maaari laban sa panlabas na perimeter. Ang kumpanya ay regular na nagsasagawa ng mga naturang pagsubok, at ngayon ang deadline para sa isang bagong pagsubok ay dumating na. Ang mga kondisyon ay halos tipikal, sapat, naiintindihan. Magsimula na tayo.

Mayroong pangalan ng customer - hayaan itong maging "Kumpanya", kasama ang pangunahing website www.company.ru. Siyempre, iba ang tawag sa customer, ngunit sa artikulong ito ang lahat ay magiging impersonal.
Nagsasagawa ako ng network reconnaissance - alamin kung aling mga address at domain ang nakarehistro sa customer, gumuhit ng network diagram, kung paano ipinamamahagi ang mga serbisyo sa mga address na ito. Nakukuha ko ang resulta: higit sa 4000 live na IP address. Tinitingnan ko ang mga domain sa mga network na ito: sa kabutihang palad, ang karamihan ay mga network na inilaan para sa mga kliyente ng customer, at hindi kami pormal na interesado sa kanila. Ganun din ang iniisip ng customer.

Mayroong nananatiling isang network na may 256 na mga address, kung saan sa sandaling ito ay mayroon nang pag-unawa sa pamamahagi ng mga domain at subdomain sa pamamagitan ng mga IP address, mayroong impormasyon tungkol sa mga na-scan na port, na nangangahulugang maaari mong tingnan ang mga serbisyo para sa mga kawili-wili. Kaayon, ang lahat ng uri ng mga scanner ay inilunsad sa mga available na IP address at hiwalay sa mga website.

Mayroong maraming mga serbisyo. Kadalasan ito ay kagalakan para sa pentester at ang pag-asam ng isang mabilis na tagumpay, dahil ang mas maraming mga serbisyo ay mayroong, mas malaki ang field para sa pag-atake at mas madaling makahanap ng isang artifact. Ang isang mabilis na pagtingin sa mga website ay nagpakita na karamihan sa mga ito ay mga web interface ng mga kilalang produkto ng malalaking pandaigdigang kumpanya, na sa lahat ng hitsura ay nagsasabi sa iyo na hindi sila malugod na tinatanggap. Humihingi sila ng username at password, i-shake out ang field para sa pagpasok sa pangalawang salik, humingi ng certificate ng TLS client, o ipadala ito sa Microsoft ADFS. Ang ilan ay hindi naa-access mula sa Internet. Para sa ilan, malinaw na kailangan mong magkaroon ng isang espesyal na bayad na kliyente para sa tatlong suweldo o alam ang eksaktong URL na ilalagay. Laktawan natin ang isa pang linggo ng unti-unting kawalan ng pag-asa sa proseso ng pagsubok na "masira" ang mga bersyon ng software para sa mga kilalang kahinaan, paghahanap ng nakatagong content sa mga web path at mga leaked na account mula sa mga third-party na serbisyo tulad ng LinkedIn, sinusubukang hulaan ang mga password gamit ang mga ito, pati na rin bilang paghuhukay ng mga kahinaan sa mga self-written na website β€” nga pala, ayon sa mga istatistika, ito ang pinaka-promising na vector ng external na pag-atake ngayon. Mapapansin ko kaagad ang baril ng pelikula na kasunod na pumutok.

Kaya, nakakita kami ng dalawang site na namumukod-tangi sa daan-daang mga serbisyo. Ang mga site na ito ay may isang bagay na pareho: kung hindi ka nakikibahagi sa maselang network reconnaissance ayon sa domain, ngunit tumingin nang direkta para sa mga bukas na port o nagta-target ng isang vulnerability scanner gamit ang isang kilalang IP range, ang mga site na ito ay makakatakas sa pag-scan at hindi na nakikita nang hindi nalalaman ang pangalan ng DNS. Marahil ay napalampas sila nang mas maaga, hindi bababa sa, at ang aming mga awtomatikong tool ay hindi nakakita ng anumang mga problema sa kanila, kahit na sila ay direktang ipinadala sa mapagkukunan.

Sa pamamagitan ng paraan, tungkol sa kung ano ang naunang inilunsad na mga scanner na natagpuan sa pangkalahatan. Paalalahanan ko kayo: para sa ilang tao, ang "pentest" ay katumbas ng "automated scan". Ngunit ang mga scanner sa proyektong ito ay walang sinabi. Buweno, ang maximum ay ipinakita ng mga Katamtamang kahinaan (3 sa 5 sa mga tuntunin ng kalubhaan): sa ilang serbisyo isang masamang TLS certificate o hindi napapanahong mga algorithm ng pag-encrypt, at sa karamihan ng mga site na Clickjacking. Ngunit hindi ka nito madadala sa iyong layunin. Marahil ay mas kapaki-pakinabang ang mga scanner dito, ngunit hayaan mo akong ipaalala sa iyo: ang customer mismo ay nakakabili ng mga naturang programa at nasubok ang kanyang sarili sa kanila, at, sa paghusga sa malungkot na mga resulta, nasuri na niya.

Bumalik tayo sa mga "anomalyang" site. Ang una ay tulad ng isang lokal na Wiki sa isang hindi karaniwang address, ngunit sa artikulong ito hayaan itong wiki.company[.]ru. Agad din siyang humingi ng login at password, ngunit sa pamamagitan ng NTLM sa browser. Para sa user, ito ay mukhang isang ascetic window na humihiling na magpasok ng username at password. At ito ay masamang gawi.

Isang maliit na tala. Ang NTLM sa mga perimeter website ay masama sa maraming dahilan. Ang unang dahilan ay ang pangalan ng domain ng Active Directory ay ipinahayag. Sa aming halimbawa, ito rin ay naging company.ru, tulad ng "panlabas" na pangalan ng DNS. Sa pag-alam nito, maaari mong maingat na maghanda ng isang bagay na nakakapinsala upang ito ay maisagawa lamang sa domain machine ng organisasyon, at hindi sa ilang sandbox. Pangalawa, ang pagpapatotoo ay direktang napupunta sa domain controller sa pamamagitan ng NTLM (sorpresa, tama?), kasama ang lahat ng mga tampok ng "internal" na mga patakaran sa network, kabilang ang pagharang sa mga account mula sa paglampas sa bilang ng mga pagtatangka sa pagpasok ng password. Kung nalaman ng isang umaatake ang mga login, maghahanap siya ng mga password para sa kanila. Kung na-configure ka upang harangan ang mga account mula sa pagpasok ng mga maling password, gagana ito at mai-block ang account. Pangatlo, imposibleng magdagdag ng pangalawang salik sa naturang pagpapatunay. Kung alam pa rin ng sinuman sa mga mambabasa kung paano, mangyaring ipaalam sa akin, ito ay talagang kawili-wili. Pang-apat, kahinaan sa mga pass-the-hash na pag-atake. Ang ADFS ay naimbento, bukod sa iba pang mga bagay, upang maprotektahan laban sa lahat ng ito.

Mayroong isang masamang pag-aari ng mga produkto ng Microsoft: kahit na hindi mo partikular na nai-publish ang naturang NTLM, mai-install ito bilang default sa OWA at Lync, hindi bababa sa.

Sa pamamagitan ng paraan, ang may-akda ng artikulong ito ay isang beses na aksidenteng na-block ang humigit-kumulang 1000 mga account ng mga empleyado ng isang malaking bangko sa loob lamang ng isang oras gamit ang parehong paraan at pagkatapos ay mukhang medyo maputla. Maputla din ang mga serbisyo ng IT ng bangko, ngunit natapos ang lahat nang maayos at sapat, pinuri pa nga kami sa pagiging unang nakahanap ng problemang ito at nag-udyok ng mabilis at mapagpasyang pag-aayos.

Ang pangalawang site ay may address na "malinaw na isang uri ng apelyido.company.ru." Natagpuan ito sa pamamagitan ng Google, tulad nito sa pahina 10. Ang disenyo ay mula sa unang bahagi ng kalagitnaan ng XNUMXs, at isang kagalang-galang na tao ang tumitingin dito mula sa pangunahing pahina, tulad nito:

Minsan sa isang pentest, o Paano masira ang lahat sa tulong ng isang urologist at Roskomnadzor
Dito ko kinuha ang isang pa rin mula sa "Puso ng isang Aso", ngunit maniwala ka sa akin, ito ay malabo na magkatulad, kahit na ang disenyo ng kulay ay may katulad na mga tono. Hayaang tawagan ang site preobrazhensky.company.ru.

Ito ay isang personal na website... para sa isang urologist. Nagtaka ako kung ano ang ginagawa ng website ng isang urologist sa subdomain ng isang high-tech na kumpanya. Ang isang mabilis na paghuhukay sa Google ay nagpakita na ang doktor na ito ay isang co-founder ng isa sa mga legal na entity ng aming customer at nag-ambag pa nga ng humigit-kumulang 1000 rubles sa awtorisadong kapital. Ang site ay malamang na nilikha maraming taon na ang nakalilipas, at ang mga mapagkukunan ng server ng customer ay ginamit bilang pagho-host. Ang site ay matagal nang nawala ang kaugnayan nito, ngunit sa ilang kadahilanan ay naiwan itong gumagana nang mahabang panahon.

Sa mga tuntunin ng mga kahinaan, ang website mismo ay ligtas. Sa hinaharap, sasabihin ko na ito ay isang hanay ng mga static na impormasyon - simpleng mga pahina ng html na may nakapasok na mga guhit sa anyo ng mga bato at pantog. Walang silbi na "masira" ang naturang site.

Ngunit ang web server sa ilalim ay mas kawili-wili. Sa paghusga sa header ng HTTP Server, mayroon itong IIS 6.0, na nangangahulugang ginamit nito ang Windows 2003 bilang operating system. Natukoy na dati ng scanner na ang partikular na website ng urologist na ito, hindi tulad ng iba pang mga virtual na host sa parehong web server, ay tumugon sa utos ng PROPFIND, ibig sabihin, ito ay nagpapatakbo ng WebDAV. Sa pamamagitan ng paraan, ibinalik ng scanner ang impormasyong ito na may markang Info (sa wika ng mga ulat ng scanner, ito ang pinakamababang panganib) - ang mga naturang bagay ay kadalasang nilaktawan lamang. Sa kumbinasyon, nagbigay ito ng isang kawili-wiling epekto, na nahayag lamang pagkatapos ng isa pang paghuhukay sa Google: isang bihirang buffer overflow na kahinaan na nauugnay sa hanay ng Shadow Brokers, katulad ng CVE-2017-7269, na mayroon nang handa na pagsasamantala. Sa madaling salita, magkakaroon ng problema kung mayroon kang Windows 2003 at ang WebDAV ay tumatakbo sa IIS. Bagama't ang pagpapatakbo ng Windows 2003 sa produksyon sa 2018 ay isang problema mismo.

Ang pagsasamantala ay napunta sa Metasploit at agad na nasubok sa isang load na nagpadala ng kahilingan sa DNS sa isang kinokontrol na serbisyo - Tradisyonal na ginagamit ang Burp Collaborator upang mahuli ang mga kahilingan sa DNS. Sa aking sorpresa, gumana ito sa unang pagkakataon: isang DNS knockout ang natanggap. Susunod, nagkaroon ng pagtatangka na lumikha ng backconnect sa pamamagitan ng port 80 (iyon ay, isang koneksyon sa network mula sa server patungo sa umaatake, na may access sa cmd.exe sa host ng biktima), ngunit pagkatapos ay nangyari ang isang pagkabigo. Ang koneksyon ay hindi dumating, at pagkatapos ng ikatlong pagtatangka na gamitin ang site, kasama ang lahat ng mga kagiliw-giliw na larawan, ay nawala magpakailanman.

Kadalasan ito ay sinusundan ng isang sulat sa estilo ng "customer, gisingin, ibinagsak namin ang lahat." Ngunit sinabi sa amin na ang site ay walang kinalaman sa mga proseso ng negosyo at gumagana doon nang walang dahilan, tulad ng buong server, at maaari naming gamitin ang mapagkukunang ito ayon sa gusto namin.
Makalipas ang halos isang araw ang site ay biglang nagsimulang magtrabaho nang mag-isa. Ang pagkakaroon ng pagbuo ng isang bangko mula sa WebDAV sa IIS 6.0, nalaman ko na ang default na setting ay upang i-restart ang mga proseso ng manggagawa sa IIS tuwing 30 oras. Iyon ay, kapag ang kontrol ay lumabas sa shellcode, natapos ang proseso ng manggagawa ng IIS, pagkatapos ay nag-restart ito ng ilang beses at pagkatapos ay nagpapahinga ng 30 oras.

Dahil nabigo ang backconnect sa tcp sa unang pagkakataon, iniugnay ko ang problemang ito sa isang saradong port. Iyon ay, ipinapalagay niya ang pagkakaroon ng ilang uri ng firewall na hindi pinapayagan ang mga papalabas na koneksyon na dumaan sa labas. Nagsimula akong magpatakbo ng mga shellcode na naghanap sa maraming tcp at udp port, walang epekto. Hindi gumana ang reverse connection load sa pamamagitan ng http(s) mula sa Metasploit - meterpreter/reverse_http(s). Biglang, isang koneksyon sa parehong port 80 ay naitatag, ngunit agad na bumaba. Iniugnay ko ito sa pagkilos ng haka-haka na IPS pa rin, na hindi nagustuhan ang trapiko ng meterpreter. Sa liwanag ng katotohanan na ang isang purong tcp na koneksyon sa port 80 ay hindi dumaan, ngunit isang koneksyon sa http, napagpasyahan ko na ang isang http proxy ay kahit papaano ay na-configure sa system.

Sinubukan ko pa ang meterpreter sa pamamagitan ng DNS (salamat d00kie para sa iyong mga pagsusumikap, nag-save ng maraming proyekto), naaalala ang pinakaunang tagumpay, ngunit hindi ito gumana sa stand - ang shellcode ay masyadong malaki para sa kahinaan na ito.

Sa totoo lang, ganito ang hitsura: 3-4 na pagtatangka sa mga pag-atake sa loob ng 5 minuto, pagkatapos ay naghihintay ng 30 oras. At iba pa sa loob ng tatlong linggong magkakasunod. Nag-set pa ako ng reminder para hindi masayang ang oras. Bukod pa rito, nagkaroon ng pagkakaiba sa pag-uugali ng mga kapaligiran sa pagsubok at produksyon: para sa kahinaang ito mayroong dalawang magkatulad na pagsasamantala, isa mula sa Metasploit, ang pangalawa mula sa Internet, na na-convert mula sa bersyon ng Shadow Brokers. Kaya, ang Metasploit lamang ang nasubok sa labanan, at ang pangalawa lamang ang nasubok sa bench, na nagpahirap sa pag-debug at nakakasira ng utak.

Sa huli, napatunayang epektibo ang isang shellcode na nag-download ng exe file mula sa isang ibinigay na server sa pamamagitan ng http at inilunsad ito sa target na sistema. Ang shellcode ay sapat na maliit upang magkasya, ngunit hindi bababa sa ito ay gumana. Dahil hindi gusto ng server ang trapiko ng TCP at ang (mga) http ay siniyasat para sa pagkakaroon ng meterpreter, napagpasyahan ko na ang pinakamabilis na paraan ay ang pag-download ng isang exe file na naglalaman ng DNS-meterpreter sa pamamagitan ng shellcode na ito.

Narito muli ang isang problema ay lumitaw: kapag nag-download ng isang exe file at, tulad ng ipinakita ng mga pagtatangka, kahit alin, ang pag-download ay nagambala. Muli, hindi nagustuhan ng ilang security device sa pagitan ng aking server at ng urologist ang trapiko ng http na may exe sa loob. Ang "mabilis" na solusyon ay tila upang baguhin ang shellcode upang ito ay obfuscate http trapiko sa mabilisang, upang ang abstract binary data ay ililipat sa halip na exe. Sa wakas, matagumpay ang pag-atake, natanggap ang kontrol sa pamamagitan ng manipis na channel ng DNS:

Minsan sa isang pentest, o Paano masira ang lahat sa tulong ng isang urologist at Roskomnadzor
Kaagad na naging malinaw na mayroon akong pinakapangunahing mga karapatan sa daloy ng trabaho sa IIS, na nagpapahintulot sa akin na wala akong gawin. Ito ang hitsura nito sa Metasploit console:

Minsan sa isang pentest, o Paano masira ang lahat sa tulong ng isang urologist at Roskomnadzor
Lahat ng mga pamamaraan ng pentest ay mariing nagmumungkahi na kailangan mong dagdagan ang mga karapatan kapag nakakakuha ng access. Karaniwang hindi ko ito ginagawa nang lokal, dahil ang pinakaunang pag-access ay nakikita lamang bilang isang network entry point, at ang pag-kompromiso sa isa pang makina sa parehong network ay kadalasang mas madali at mas mabilis kaysa sa pagtaas ng mga pribilehiyo sa isang umiiral na host. Ngunit hindi ito ang kaso dito, dahil ang channel ng DNS ay napakakitid at hindi nito papayagan na lumiwanag ang trapiko.

Ipagpalagay na ang Windows 2003 server na ito ay hindi naayos para sa sikat na MS17-010 na kahinaan, ini-tunnel ko ang trapiko sa port 445/TCP sa pamamagitan ng meterpreter DNS tunnel sa localhost (oo, posible rin ito) at subukang patakbuhin ang naunang na-download na exe sa pamamagitan ng ang kahinaan. Gumagana ang pag-atake, nakatanggap ako ng pangalawang koneksyon, ngunit may mga karapatan sa SYSTEM.

Minsan sa isang pentest, o Paano masira ang lahat sa tulong ng isang urologist at Roskomnadzor

Ito ay kagiliw-giliw na sinubukan pa rin nilang protektahan ang server mula sa MS17-010 - mayroon itong mga mahina na serbisyo sa network na hindi pinagana sa panlabas na interface. Pinoprotektahan nito ang mga pag-atake sa network, ngunit gumana ang pag-atake mula sa loob sa localhost, dahil hindi mo maaaring mabilis na i-off ang SMB sa localhost.

Susunod, ang mga bagong kawili-wiling detalye ay ipinahayag:

  1. Ang pagkakaroon ng mga karapatan sa SYSTEM, madali kang makakapagtatag ng backconnection sa pamamagitan ng TCP. Malinaw, ang hindi pagpapagana ng direktang TCP ay mahigpit na problema para sa limitadong gumagamit ng IIS. Spoiler: ang trapiko ng gumagamit ng IIS ay nakabalot sa lokal na ISA Proxy sa parehong direksyon. Kung paano ito gumagana, hindi ko pa na-reproduce.
  2. Ako ay nasa isang tiyak na "DMZ" (at hindi ito isang Active Directory na domain, ngunit isang WORKGROUP) - ito ay lohikal. Ngunit sa halip na ang inaasahang pribadong IP address ("kulay abo"), mayroon akong ganap na "puting" IP address, eksaktong kapareho ng inatake ko kanina. Nangangahulugan ito na ang kumpanya ay napakatanda na sa mundo ng IPv4 addressing na kaya nitong mapanatili ang isang DMZ zone para sa 128 "white" na mga address na walang NAT ayon sa scheme, tulad ng inilalarawan sa mga manual ng Cisco mula 2005.

Dahil luma na ang server, garantisadong gagana ang Mimikatz nang direkta mula sa memorya:

Minsan sa isang pentest, o Paano masira ang lahat sa tulong ng isang urologist at Roskomnadzor
Nakukuha ko ang password ng lokal na administrator, tunnel RDP traffic sa TCP at nag-log in sa isang maaliwalas na desktop. Dahil magagawa ko ang anumang gusto ko sa server, inalis ko ang antivirus at nalaman kong ang server ay maa-access lamang mula sa Internet sa pamamagitan ng TCP port 80 at 443, at ang 443 ay hindi abala. Nag-set up ako ng OpenVPN server sa 443, nagdagdag ng mga function ng NAT para sa aking trapiko sa VPN at kumuha ng direktang access sa DMZ network sa walang limitasyong anyo sa pamamagitan ng aking OpenVPN. Kapansin-pansin na ang ISA, na may ilang hindi pinaganang IPS function, ay humarang sa aking trapiko sa pamamagitan ng pag-scan ng port, kung saan kailangan itong mapalitan ng isang mas simple at mas sumusunod na RRAS. Kaya ang mga pentester kung minsan ay kailangan pa ring mangasiwa ng lahat ng uri ng mga bagay.

Minsan sa isang pentest, o Paano masira ang lahat sa tulong ng isang urologist at Roskomnadzor
Ang isang matulungin na mambabasa ay magtatanong: "Ano ang tungkol sa pangalawang site - isang wiki na may pagpapatunay ng NTLM, tungkol sa kung saan napakaraming naisulat?" Higit pa tungkol dito mamaya.

Bahagi 2: Hindi pa rin nag-e-encrypt? Pagkatapos ay papunta na kami sa iyo dito

Kaya, mayroong access sa segment ng network ng DMZ. Kailangan mong pumunta sa administrator ng domain. Ang unang bagay na pumapasok sa isip ay ang awtomatikong suriin ang seguridad ng mga serbisyo sa loob ng segment ng DMZ, lalo na't marami pa sa kanila ang bukas na para sa pagsasaliksik. Isang tipikal na larawan sa panahon ng pagsubok sa pagtagos: ang panlabas na perimeter ay mas protektado kaysa sa mga panloob na serbisyo, at kapag nakakuha ng anumang pag-access sa loob ng isang malaking imprastraktura, mas madaling makakuha ng mga pinahabang karapatan sa isang domain dahil lamang sa katotohanan na ang domain na ito ay nagsisimula na maging naa-access sa mga tool, at pangalawa, Sa isang imprastraktura na may ilang libong host, palaging magkakaroon ng ilang kritikal na problema.

Sinisingil ko ang mga scanner sa pamamagitan ng DMZ sa pamamagitan ng isang OpenVPN tunnel at maghintay. Binuksan ko ang ulat - muli walang seryoso, tila may dumaan sa parehong pamamaraan bago ako. Ang susunod na hakbang ay suriin kung paano nakikipag-usap ang mga host sa loob ng DMZ network. Upang gawin ito, ilunsad muna ang karaniwang Wireshark at makinig para sa mga kahilingan sa pag-broadcast, pangunahin ang ARP. Ang mga pakete ng ARP ay nakolekta sa buong araw. Lumalabas na maraming gateway ang ginagamit sa segment na ito. Ito ay magiging kapaki-pakinabang mamaya. Sa pamamagitan ng pagsasama-sama ng data sa mga kahilingan at tugon ng ARP at data sa pag-scan ng port, nakita ko ang mga exit point ng trapiko ng user mula sa loob ng lokal na network bilang karagdagan sa mga serbisyong iyon na dati nang kilala, gaya ng web at mail.

Dahil sa ngayon ay wala akong anumang access sa iba pang mga system at wala akong isang account para sa mga serbisyong pangkorporasyon, napagpasyahan na manghuli ng kahit ilang account mula sa trapiko gamit ang ARP Spoofing.

Ang Cain&Abel ay inilunsad sa server ng urologist. Isinasaalang-alang ang mga natukoy na daloy ng trapiko, ang mga pinaka-promising na pares para sa man-in-the-middle attack ay napili, at pagkatapos ay ang ilang trapiko sa network ay natanggap sa pamamagitan ng panandaliang paglulunsad sa loob ng 5-10 minuto, na may timer upang i-reboot ang server sa kaso ng pagyeyelo. Tulad ng sa biro, mayroong dalawang balita:

  1. Mabuti: maraming mga kredensyal ang nahuli at ang pag-atake sa kabuuan ay gumana.
  2. Ang masama: lahat ng mga kredensyal ay mula sa sariling mga kliyente ng customer. Habang nagbibigay ng mga serbisyo ng suporta, nakakonekta ang mga customer specialist sa mga serbisyo ng mga kliyente na hindi palaging naka-configure ang traffic encryption.

Bilang resulta, nakakuha ako ng maraming kredensyal na walang silbi sa konteksto ng proyekto, ngunit talagang kawili-wili bilang isang pagpapakita ng panganib ng pag-atake. Border router ng malalaking kumpanya na may telnet, ipinasa ang mga debug na http port sa panloob na CRM kasama ang lahat ng data, direktang access sa RDP mula sa Windows XP sa lokal na network at iba pang obscurantism. Ito ay naging ganito Supply Chain Compromise ayon sa MITRE matrix.

Nakakita rin ako ng isang nakakatawang pagkakataon upang mangolekta ng mga liham mula sa trapiko, isang bagay na tulad nito. Ito ay isang halimbawa ng isang handa na sulat na nagpunta mula sa aming customer sa SMTP port ng kanyang kliyente, muli, nang walang pag-encrypt. Ang isang tiyak na Andrey ay humiling sa kanyang kapangalan na muling ipadala ang dokumentasyon, at ito ay na-upload sa isang cloud disk na may login, password at link sa isang sulat ng tugon:

Minsan sa isang pentest, o Paano masira ang lahat sa tulong ng isang urologist at Roskomnadzor
Ito ay isa pang paalala na i-encrypt ang lahat ng mga serbisyo. Hindi alam kung sino at kailan ang partikular na magbabasa at gagamit ng iyong data - ang provider, ang system administrator ng ibang kumpanya, o tulad ng isang pentester. Ako ay tahimik tungkol sa katotohanan na maraming tao ang maaaring humarang lamang sa hindi naka-encrypt na trapiko.

Sa kabila ng maliwanag na tagumpay, hindi ito naglalapit sa amin sa layunin. Posible, siyempre, na umupo nang mahabang panahon at manghuli ng mahalagang impormasyon, ngunit hindi isang katotohanan na lilitaw ito doon, at ang pag-atake mismo ay lubhang mapanganib sa mga tuntunin ng integridad ng network.

Pagkatapos ng isa pang paghuhukay sa mga serbisyo, isang kawili-wiling ideya ang naisip. Mayroong ganoong utility na tinatawag na Responder (madaling makahanap ng mga halimbawa ng paggamit sa pangalang ito), na, sa pamamagitan ng "pagkalason" sa mga kahilingan sa pag-broadcast, ay nag-uudyok ng mga koneksyon sa pamamagitan ng iba't ibang mga protocol tulad ng SMB, HTTP, LDAP, atbp. sa iba't ibang paraan, pagkatapos ay tatanungin ang lahat ng kumokonekta na patotohanan at i-set up ito upang maganap ang pagpapatotoo sa pamamagitan ng NTLM at sa isang mode na transparent sa biktima. Kadalasan, ang isang attacker ay nangongolekta ng NetNTLMv2 handshakes sa ganitong paraan at mula sa kanila, gamit ang isang diksyunaryo, mabilis na nabawi ang mga password ng domain ng user. Dito gusto ko ang isang bagay na katulad, ngunit ang mga gumagamit ay nakaupo "sa likod ng isang pader", o sa halip, sila ay pinaghiwalay ng isang firewall, at na-access ang WEB sa pamamagitan ng Blue Coat proxy cluster.

Tandaan, tinukoy ko na ang pangalan ng domain ng Active Directory ay kasabay ng "panlabas" na domain, iyon ay, ito ay company.ru? Kaya, ang Windows, mas tiyak na Internet Explorer (at Edge at Chrome), ay nagbibigay-daan sa user na malinaw na mag-authenticate sa HTTP sa pamamagitan ng NTLM kung isasaalang-alang nila na ang site ay matatagpuan sa ilang "Intranet Zone". Ang isa sa mga palatandaan ng isang "Intranet" ay ang pag-access sa isang "grey" na IP address o isang maikling pangalan ng DNS, iyon ay, walang mga tuldok. Dahil mayroon silang server na may "puting" IP at DNS name na preobrazhensky.company.ru, at karaniwang natatanggap ng mga domain machine ang Active Directory domain suffix sa pamamagitan ng DHCP para sa pinasimpleng pagpasok ng pangalan, kailangan lang nilang isulat ang URL sa address bar preobrazhensky, upang mahanap nila ang tamang landas patungo sa server ng nakompromisong urologist, hindi nakakalimutan na ito ay tinatawag na ngayong "Intranet". Iyon ay, kasabay ng pagbibigay sa akin ng NTLM-handshake ng gumagamit nang hindi niya nalalaman. Ang natitira na lang ay pilitin ang mga browser ng kliyente na isipin ang tungkol sa agarang pangangailangang makipag-ugnayan sa server na ito.

Ang kahanga-hangang Intercepter-NG utility ay dumating upang iligtas (salamat Interceptor). Pinahintulutan ka nitong baguhin ang trapiko nang mabilis at gumana nang mahusay sa Windows 2003. Mayroon pa itong hiwalay na paggana para sa pagbabago lamang ng mga JavaScript file sa daloy ng trapiko. Isang uri ng napakalaking Cross-Site Scripting ang pinlano.

Ang mga proxy ng Blue Coat, kung saan na-access ng mga user ang pandaigdigang WEB, ay pana-panahong nag-cache ng static na nilalaman. Sa pamamagitan ng pagharang sa trapiko, malinaw na nagtatrabaho sila sa buong orasan, walang katapusang humihiling ng madalas na ginagamit na static upang pabilisin ang pagpapakita ng nilalaman sa mga oras ng kasiyahan. Bilang karagdagan, ang BlueCoat ay may isang tiyak na User-Agent, na malinaw na nakikilala ito mula sa isang tunay na gumagamit.

Inihanda ang Javascript, na, gamit ang Intercepter-NG, ay ipinatupad nang isang oras sa gabi para sa bawat tugon na may mga JS file para sa Blue Coat. Ginawa ng script ang sumusunod:

  • Tinukoy ang kasalukuyang browser ng User-Agent. Kung ito ay Internet Explorer, Edge o Chrome, patuloy itong gumana.
  • Naghintay ako hanggang sa mabuo ang DOM ng page.
  • Nagpasok ng invisible na imahe sa DOM na may src attribute ng form preobrazhensky:8080/NNNNNNN.png, kung saan ang NNN ay mga arbitrary na numero upang hindi ito ma-cache ng BlueCoat.
  • Magtakda ng global flag variable upang ipahiwatig na ang pag-iniksyon ay nakumpleto at hindi na kailangang magpasok ng mga larawan.

Sinubukan ng browser na i-load ang larawang ito; sa port 8080 ng nakompromisong server, naghihintay ang isang TCP tunnel sa aking laptop, kung saan tumatakbo ang parehong Responder, na nangangailangan ng browser na mag-log in sa pamamagitan ng NTLM.

Minsan sa isang pentest, o Paano masira ang lahat sa tulong ng isang urologist at Roskomnadzor
Sa paghusga sa pamamagitan ng mga log ng Responder, ang mga tao ay dumating sa trabaho sa umaga, binuksan ang kanilang mga workstation, pagkatapos ay maramihan at hindi napapansin na nagsimulang bumisita sa server ng urologist, na hindi nakakalimutang "alisin" ang NTLM handshakes. Buong araw umulan ang pakikipagkamay at malinaw na naipon ang materyal para sa isang malinaw na matagumpay na pag-atake upang mabawi ang mga password. Ganito ang hitsura ng mga log ng Responder:

Minsan sa isang pentest, o Paano masira ang lahat sa tulong ng isang urologist at RoskomnadzorMass secret na pagbisita sa urologist server ng mga user

Marahil ay napansin mo na ang buong kuwentong ito ay binuo sa prinsipyong "ang lahat ay maayos, ngunit pagkatapos ay nagkaroon ng pagkabalisa, pagkatapos ay nagkaroon ng pagtagumpayan, at pagkatapos ang lahat ay nagtagumpay." Kaya, nagkaroon ng bummer dito. Sa limampung natatanging pakikipagkamay, wala ni isa ang nabunyag. At isinasaalang-alang nito ang katotohanan na kahit na sa isang laptop na may patay na processor, ang mga NTLMv2 handshake na ito ay pinoproseso sa bilis na ilang daang milyong mga pagtatangka bawat segundo.

Kinailangan kong armasan ang aking sarili ng mga diskarte sa mutation ng password, isang video card, isang mas makapal na diksyunaryo at maghintay. Pagkaraan ng mahabang panahon, ilang mga account na may mga password ng form na "Q11111111....1111111q" ay nahayag, na nagmumungkahi na ang lahat ng mga gumagamit ay minsang napilitang gumawa ng isang napakahabang password na may iba't ibang mga kaso ng mga character, na dapat ding maging kumplikado. Ngunit hindi mo maaaring lokohin ang isang batikang gumagamit, at ito ay kung paano niya ginawang mas madali para sa kanyang sarili na matandaan. Sa kabuuan, humigit-kumulang 5 account ang nakompromiso, at isa lang sa kanila ang may anumang mahahalagang karapatan sa mga serbisyo.

Bahagi 3. Tumalikod ang Roskomnadzor

Kaya, natanggap ang mga unang domain account. Kung hindi ka pa nakatulog sa puntong ito mula sa isang mahabang pagbasa, malamang na maaalala mo na nabanggit ko ang isang serbisyo na hindi nangangailangan ng pangalawang kadahilanan ng pagpapatunay: ito ay isang wiki na may pagpapatunay ng NTLM. Syempre, ang unang gawin ay pumasok doon. Ang paghuhukay sa panloob na base ng kaalaman ay mabilis na nagdulot ng mga resulta:

  • Ang kumpanya ay may WiFi network na may authentication gamit ang mga domain account na may access sa lokal na network. Sa kasalukuyang hanay ng data, isa na itong gumaganang vector ng pag-atake, ngunit kailangan mong pumunta sa opisina gamit ang iyong mga paa at matatagpuan sa isang lugar sa teritoryo ng opisina ng customer.
  • Nakakita ako ng isang pagtuturo ayon sa kung saan mayroong isang serbisyo na nagpapahintulot... na nakapag-iisa na magrehistro ng isang "pangalawang kadahilanan" na aparato sa pagpapatunay kung ang gumagamit ay nasa loob ng isang lokal na network at kumpiyansa na naaalala ang kanyang pag-login at password sa domain. Sa kasong ito, ang "loob" at "labas" ay tinutukoy ng pagiging naa-access ng port ng serbisyong ito sa user. Ang port ay hindi naa-access mula sa Internet, ngunit medyo naa-access sa pamamagitan ng DMZ.

Siyempre, ang isang "pangalawang kadahilanan" ay agad na idinagdag sa nakompromisong account sa anyo ng isang application sa aking telepono. May isang programa na maaaring malakas na magpadala ng push request sa telepono gamit ang "approve"/"disapprove" button para sa aksyon, o tahimik na ipakita ang OTP code sa screen para sa karagdagang independent entry. Bukod dito, ang unang pamamaraan ay dapat na ang mga tagubilin ay ang tanging tama, ngunit hindi ito gumana, hindi katulad ng pamamaraang OTP.

Sa pagkasira ng "pangalawang salik", na-access ko ang Outlook Web Access mail at malayuang pag-access sa Citrix Netscaler Gateway. Nagkaroon ng sorpresa sa mail sa Outlook:

Minsan sa isang pentest, o Paano masira ang lahat sa tulong ng isang urologist at Roskomnadzor
Sa bihirang shot na ito makikita mo kung paano tinutulungan ng Roskomnadzor ang mga pentester

Ito ang mga unang buwan pagkatapos ng sikat na "tagahanga" na pagharang ng Telegram, nang ang buong network na may libu-libong mga address ay hindi maiiwasang mawala sa pag-access. Naging malinaw kung bakit hindi gumana kaagad ang push at kung bakit hindi nagpatunog ang aking "biktima" ng alarma dahil sinimulan nilang gamitin ang kanyang account sa mga oras na bukas.

Ang sinumang pamilyar sa Citrix Netscaler ay nag-iisip na ito ay karaniwang ipinatupad sa paraang ang isang interface ng larawan lamang ang maaaring maihatid sa gumagamit, sinusubukan na huwag bigyan siya ng mga tool upang maglunsad ng mga third-party na application at maglipat ng data, na nililimitahan sa lahat ng posibleng paraan ng mga aksyon. sa pamamagitan ng karaniwang control shell. Ang aking "biktima", dahil sa kanyang trabaho, nakakuha lamang ng 1C:

Minsan sa isang pentest, o Paano masira ang lahat sa tulong ng isang urologist at Roskomnadzor
Pagkatapos maglakad sa paligid ng 1C interface nang kaunti, nalaman kong may mga panlabas na module sa pagproseso doon. Maaaring i-load ang mga ito mula sa interface, at isasagawa ang mga ito sa client o server, depende sa mga karapatan at setting.

Tinanong ko ang aking mga kaibigan sa 1C programmer na lumikha ng isang pagpoproseso na tatanggap ng isang string at isakatuparan ito. Sa 1C na wika, ang pagsisimula ng isang proseso ay mukhang ganito (kinuha mula sa Internet). Sumasang-ayon ka ba na ang syntax ng 1C na wika ay humanga sa mga taong nagsasalita ng Ruso sa spontaneity nito?

Minsan sa isang pentest, o Paano masira ang lahat sa tulong ng isang urologist at Roskomnadzor

Ang pagproseso ay ganap na naisakatuparan; ito ay naging tinatawag ng mga pentester na "shell" - inilunsad ang Internet Explorer sa pamamagitan nito.

Minsan sa isang pentest, o Paano masira ang lahat sa tulong ng isang urologist at Roskomnadzor
Mas maaga, ang address ng isang sistema na nagpapahintulot sa iyo na mag-order ng mga pass sa teritoryo ay natagpuan sa koreo. Nag-order ako ng pass kung sakaling kailanganin kong gumamit ng WiFi attack vector.

Minsan sa isang pentest, o Paano masira ang lahat sa tulong ng isang urologist at Roskomnadzor
May usap-usapan sa Internet na mayroon pa ring masarap na libreng pagtutustos ng pagkain sa opisina ng customer, ngunit mas pinili ko pa rin na bumuo ng pag-atake nang malayuan, ito ay mas kalmado.

Ang AppLocker ay na-activate sa application server na nagpapatakbo ng Citrix, ngunit ito ay na-bypass. Ang parehong Meterpreter ay na-load at inilunsad sa pamamagitan ng DNS, dahil ang (mga) bersyon ng http ay hindi gustong kumonekta, at hindi ko alam ang panloob na proxy address sa oras na iyon. Sa pamamagitan ng paraan, mula sa sandaling ito, ang panlabas na pentest ay mahalagang ganap na naging panloob.

Part 4. Ang mga karapatan ng admin para sa mga gumagamit ay masama, okay?

Ang unang gawain ng isang pentester kapag nakakuha ng kontrol sa isang session ng gumagamit ng domain ay upang mangolekta ng lahat ng impormasyon tungkol sa mga karapatan sa domain. Mayroong isang utility ng BloodHound na awtomatikong nagbibigay-daan sa iyong mag-download ng impormasyon tungkol sa mga user, computer, grupo ng seguridad sa pamamagitan ng LDAP protocol mula sa isang domain controller, at sa pamamagitan ng SMB - impormasyon tungkol sa kung sinong user ang kamakailang naka-log in kung saan at sino ang lokal na administrator.

Ang isang tipikal na pamamaraan para sa pag-agaw ng mga karapatan ng administrator ng domain ay mukhang pinasimple bilang isang cycle ng mga monotonous na aksyon:

  • Pumunta kami sa mga domain computer kung saan may mga lokal na karapatan ng administrator, batay sa mga nakuha nang domain account.
  • Inilunsad namin ang Mimikatz at kumuha ng mga naka-cache na password, Kerberos ticket at NTLM hash ng mga domain account na kamakailang naka-log in sa system na ito. O tanggalin namin ang memory image ng proseso ng lsass.exe at gawin ang parehong sa aming panig. Gumagana ito nang maayos sa Windows na mas bata sa 2012R2/Windows 8.1 na may mga default na setting.
  • Tinutukoy namin kung saan ang mga nakompromisong account ay may mga karapatan sa lokal na administrator. Ulitin namin ang unang punto. Sa ilang yugto nakakakuha kami ng mga karapatan ng administrator para sa buong domain.

"End of the Cycle;", gaya ng isusulat ng 1C programmer dito.

Kaya, ang aming gumagamit ay naging isang lokal na administrator sa isang host lamang na may Windows 7, ang pangalan kung saan kasama ang salitang "VDI", o "Virtual Desktop Infrastructure", mga personal na virtual machine. Marahil, ang taga-disenyo ng serbisyo ng VDI ay nangangahulugan na dahil ang VDI ay ang personal na operating system ng user, kahit na binago ng user ang software environment ayon sa gusto niya, ang host ay maaari pa ring "i-reload". Naisip ko rin na sa pangkalahatan ay maganda ang ideya, pumunta ako sa personal na VDI host na ito at gumawa ng pugad doon:

  • Nag-install ako ng OpenVPN client doon, na gumawa ng tunnel sa pamamagitan ng Internet sa aking server. Kailangang pilitin ang kliyente na dumaan sa parehong Blue Coat na may pagpapatunay ng domain, ngunit ginawa ito ng OpenVPN, gaya ng sinasabi nila, "out of the box."
  • Naka-install ang OpenSSH sa VDI. Well, talaga, ano ang Windows 7 na walang SSH?

Ito ang hitsura nito nang live. Hayaan akong ipaalala sa iyo na ang lahat ng ito ay dapat gawin sa pamamagitan ng Citrix at 1C:

Minsan sa isang pentest, o Paano masira ang lahat sa tulong ng isang urologist at Roskomnadzor
Ang isang pamamaraan para sa pag-promote ng access sa mga kalapit na computer ay upang suriin ang mga password ng lokal na administrator para sa isang tugma. Dito ay agad na naghihintay ang suwerte: ang NTLM hash ng default na lokal na administrator (na biglang tinawag na Administrator) ay nilapitan sa pamamagitan ng pass-the-hash na pag-atake sa mga kalapit na VDI host, kung saan mayroong ilang daan. Siyempre, agad silang tinamaan ng pag-atake.

Dito binaril ng mga administrador ng VDI ang kanilang mga sarili sa paa ng dalawang beses:

  • Ang unang pagkakataon ay kapag ang mga VDI machine ay hindi dinala sa ilalim ng LAPS, mahalagang pinapanatili ang parehong lokal na password ng administrator mula sa imahe na malawakang na-deploy sa VDI.
  • Ang default na administrator ay ang tanging lokal na account na madaling maapektuhan ng mga pass-the-hash na pag-atake. Kahit na may parehong password, posibleng maiwasan ang malawakang kompromiso sa pamamagitan ng paglikha ng pangalawang lokal na administrator account na may kumplikadong random na password at pagharang sa default.

Bakit may serbisyo ng SSH sa Windows na iyon? Napakasimple: ngayon ang OpenSSH server ay hindi lamang nagbigay ng isang maginhawang interactive na command shell nang hindi nakakasagabal sa trabaho ng user, kundi pati na rin ng isang socks5 proxy sa VDI. Sa pamamagitan ng medyas na ito, nakakonekta ako sa pamamagitan ng SMB at nangolekta ng mga naka-cache na account mula sa lahat ng daan-daang VDI machine na ito, pagkatapos ay hinanap ko ang landas patungo sa administrator ng domain gamit ang mga ito sa mga graph ng BloodHound. Sa daan-daang mga host sa aking pagtatapon, natagpuan ko ang paraang ito nang mabilis. Nakuha ang mga karapatan ng administrator ng domain.

Narito ang isang larawan mula sa Internet na nagpapakita ng katulad na paghahanap. Ipinapakita ng mga koneksyon kung sino ang nasaan ang administrator at kung saan naka-log in.

Minsan sa isang pentest, o Paano masira ang lahat sa tulong ng isang urologist at Roskomnadzor
Sa pamamagitan ng paraan, tandaan ang kondisyon mula sa simula ng proyekto - "huwag gumamit ng social engineering." Kaya, ipinapanukala kong pag-isipan kung magkano ang lahat ng Bollywood na ito na may mga espesyal na epekto ay mapuputol kung posible pa ring gumamit ng banal na phishing. Ngunit sa personal, napaka-interesante para sa akin na gawin ang lahat ng ito. Sana ay nasiyahan ka sa pagbabasa nito. Siyempre, hindi lahat ng proyekto ay mukhang nakakaintriga, ngunit ang trabaho sa kabuuan ay napaka-mapaghamong at hindi pinapayagan itong tumitigil.

Marahil ay may magtatanong: paano protektahan ang iyong sarili? Kahit na ang artikulong ito ay naglalarawan ng maraming mga diskarte, marami sa mga ito ay hindi alam ng mga administrator ng Windows. Gayunpaman, iminumungkahi kong tingnan ang mga ito mula sa pananaw ng mga na-hackney na prinsipyo at mga hakbang sa seguridad ng impormasyon:

  • huwag gumamit ng hindi napapanahong software (tandaan ang Windows 2003 sa simula?)
  • huwag panatilihing naka-on ang mga hindi kinakailangang sistema (bakit nagkaroon ng website ng urologist?)
  • suriin ang mga password ng gumagamit para sa lakas ng iyong sarili (kung hindi man mga sundalo... gagawin ito ng mga pentester)
  • walang parehong mga password para sa iba't ibang mga account (kompromiso sa VDI)
  • at iba pang mga

Siyempre, ito ay napakahirap ipatupad, ngunit sa susunod na artikulo ay ipapakita namin sa pagsasanay na ito ay lubos na posible.

Pinagmulan: www.habr.com

Magdagdag ng komento