Մեթոդը թույլ է տալիս փաթեթների փոխարինում TCP կապերի մակարդակով, որոնք անցնում են գաղտնագրված թունելի ներսում, բայց թույլ չի տալիս խրվել կապերի մեջ, որոնք օգտագործում են լրացուցիչ ծածկագրման շերտեր (օրինակ՝ TLS, HTTPS, SSH): VPN-ում օգտագործվող գաղտնագրման ալգորիթմները նշանակություն չունեն, քանի որ կեղծված փաթեթները գալիս են արտաքին ինտերֆեյսից և մշակվում են միջուկի կողմից որպես փաթեթներ VPN ինտերֆեյսից: Հարձակման ամենահավանական թիրախը չգաղտնագրված HTTP կապերին միջամտելն է, սակայն
Փաթեթների հաջող կեղծումը ցուցադրվել է OpenVPN-ի, WireGuard-ի և IKEv2/IPSec-ի միջոցով ստեղծված թունելների համար: Tor-ը ենթակա չէ խնդրին, քանի որ այն օգտագործում է SOCKS՝ երթևեկությունը փոխանցելու համար և կապված է loopback ինտերֆեյսի հետ: IPv4-ի համար հարձակումը հնարավոր է, եթե rp_filter-ը դրված է «Loose» ռեժիմի վրա (sysctl net.ipv4.conf.all.rp_filter = 2): Սկզբում համակարգերի մեծ մասն օգտագործում էր «Խիստ» ռեժիմը, բայց սկսած
rp_filter մեխանիզմ
Արձագանքման երթուղին կարող է անցնել ցանցային ինտերֆեյսի միջով, բացի այն, որով մուտքային փաթեթը հասել է:
Loose ռեժիմում մուտքային փաթեթը ստուգվում է երթուղային աղյուսակի համեմատ, բայց համարվում է վավեր, եթե աղբյուրի հասցեն հասանելի է ցանկացած հասանելի ցանցային ինտերֆեյսի միջոցով: Առաջարկվող հարձակումը հիմնված է այն փաստի վրա, որ հարձակվողը կարող է ուղարկել փաթեթ՝ կեղծված աղբյուրի հասցեով, որը համապատասխանում է VPN ինտերֆեյսին, և չնայած այն հանգամանքին, որ այս փաթեթը համակարգ կմտնի արտաքին ցանցային ինտերֆեյսի և ոչ թե VPN-ի միջոցով, rp_filter «Չամրացված» ռեժիմը նման փաթեթը չի հեռացվի:
Հարձակումն իրականացնելու համար հարձակվողը պետք է վերահսկի այն դարպասը, որով օգտատերը մուտք է գործում ցանց (օրինակ՝ MITM կազմակերպության միջոցով, երբ զոհը միանում է հարձակվողի կողմից վերահսկվող անլար մուտքի կետին կամ
Ստեղծելով հորինված փաթեթների հոսք, որտեղ փոխարինված է VPN ինտերֆեյսի IP հասցեն, փորձ է արվում ազդել հաճախորդի կողմից հաստատված կապի վրա, սակայն այդ փաթեթների ազդեցությունը կարելի է դիտարկել միայն կապված կոդավորված երթևեկության հոսքի պասիվ վերլուծության միջոցով: թունելի շահագործման հետ։ Հարձակում իրականացնելու համար դուք պետք է պարզեք VPN սերվերի կողմից նշանակված թունելային ցանցի ինտերֆեյսի IP հասցեն, ինչպես նաև որոշեք, որ կոնկրետ հոսթի հետ կապը ներկայումս ակտիվ է թունելի միջոցով:
VPN վիրտուալ ցանցի ինտերֆեյսի IP-ն որոշելու համար SYN-ACK փաթեթներն ուղարկվում են զոհի համակարգ՝ հաջորդաբար թվարկելով վիրտուալ հասցեների ողջ տիրույթը (առաջին հերթին, VPN-ում օգտագործվող հասցեները թվարկվում են լռելյայն, օրինակ՝ OpenVPN): օգտագործում է 10.8.0.0/24 ենթացանցը): Հասցեի առկայությունը կարելի է դատել RST դրոշով պատասխան ստանալու հիման վրա:
Նմանապես որոշվում է որոշակի կայքի հետ կապի առկայությունը և հաճախորդի կողմից պորտի համարը. պորտի համարները տեսակավորելով՝ օգտվողին ուղարկվում է SYN փաթեթ՝ որպես սկզբնաղբյուր հասցե, որում IP. Կայքը փոխարինված է, և նպատակակետ հասցեն վիրտուալ IP VPN է: Սերվերի պորտը կարելի է կանխատեսել (80 HTTP-ի համար), իսկ հաճախորդի կողմից պորտի համարը կարող է հաշվարկվել կոպիտ ուժի միջոցով՝ տարբեր թվերի համար վերլուծելով ACK պատասխանների ինտենսիվության փոփոխությունը՝ RST-ի հետ փաթեթի բացակայության հետ միասին։ դրոշ.
Այս փուլում հարձակվողը գիտի կապի բոլոր չորս տարրերը (աղբյուրի IP հասցեներ/նավահանգիստ և նպատակակետ IP հասցե/պորտ), բայց որպեսզի ստեղծվի ֆիկտիվ փաթեթ, որը կընդունի զոհի համակարգը, հարձակվողը պետք է որոշի TCP հաջորդականությունը և ճանաչման համարներ (seq և ack) - կապեր: Այս պարամետրերը որոշելու համար հարձակվողը շարունակաբար ուղարկում է կեղծ RST փաթեթներ՝ փորձելով տարբեր հաջորդական թվեր, մինչև նա հայտնաբերի ACK պատասխան փաթեթը, որի ժամանումը ցույց է տալիս, որ համարը ընկնում է TCP պատուհանում:
Այնուհետև հարձակվողը պարզաբանում է սահմանման ճիշտությունը՝ ուղարկելով նույն թվով փաթեթներ և դիտելով ACK պատասխանների ժամանումը, որից հետո ընտրում է ընթացիկ հաջորդականության ճշգրիտ թիվը։ Խնդիրը բարդանում է նրանով, որ պատասխաններն ուղարկվում են գաղտնագրված թունելի ներսում, և դրանց առկայությունը խափանված երթևեկության հոսքում կարող է վերլուծվել միայն անուղղակի մեթոդներով: Արդյոք հաճախորդը ուղարկում է ACK փաթեթ՝ հասցեագրված VPN սերվերին, որոշվում է գաղտնագրված պատասխանների չափի և հետաձգման հիման վրա, որոնք կապված են կեղծված փաթեթների ուղարկման հետ: Օրինակ, OpenVPN-ի համար 79 կոդավորված փաթեթի չափը թույլ է տալիս ճշգրիտ դատել, որ ներսում կա ACK:
Մինչև հարձակման պաշտպանությունը չի ավելացվի օպերացիոն համակարգի միջուկին՝ որպես խնդրի արգելափակման ժամանակավոր մեթոդ
iptables -t raw -I PREROUTING ! -i wg0 -d 10.182.12.8 -m addrtype ! --src տիպի LOCAL -j ԿԱԹԻԼ
կամ nftable-ների համար
nft ավելացնել սեղանի ip հում
nft add chain ip raw prerouting '{ type filter hook prerouting priority 0; }'
nft ավելացնել կանոն ip raw prerouting 'iifname != "wg0" ip daddr 10.182.12.8 fib saddr տեսակ != լոկալ անկում'
IPv4 հասցեներով թունելներ օգտագործելիս ինքներդ ձեզ պաշտպանելու համար պարզապես rp_filter-ը դրեք «Strict» ռեժիմի («sysctl net.ipv4.conf.all.rp_filter = 1»): VPN-ի կողմից հաջորդական թվերի հայտնաբերման մեթոդը կարող է արգելափակվել՝ գաղտնագրված փաթեթներին լրացում ավելացնելով, բոլոր փաթեթները դարձնելով նույն չափը:
Source: opennet.ru