Vulnerabilitas quae in TCP nexus per VPN per cuniculos factas nuptias concedit

Published technicam oppugnandi (CVE-2019-14899) quae sinit te reponere, mutare, substituere in TCP nexus per cuniculos VPN transmittantur. Exitus afficit Linux, FreeBSD, OpenBSD, Android, macOS, iOS, et alia systemata Unix similia. Linux rp_filter (inversa eliquare) mechanismum pro IPv4 sustinet, eamque ad modum "Stricti" problemati obstat.

Modus substituendi fasciculum patitur in ambitu nexuum TCP intra cuniculum encryptatum transeuntium, sed nexus qui adiunctis encryptionis stratis utuntur, uti non sinit. Algorithmi encryptionis in VPN usu nullius sunt, quia fasciculi spoofed ab extra interfaciem veniunt et a nucleo quasi fasciculi interfacii VPN tractantur. Verisimile oppugnationis scopum est impedire nexus HTTP unencrypted, sed non excluduntur et utens impetu dns responsionibus manipulare.

Feliciter fasciculus spoofing demonstratum est in cuniculis utens OpenVPN, WireGuard et IKEv2/IPSec creato.-tor quaestio non afficitur, sicut SOCKS ad mercaturam prolatam adhibet et ad interfaciem fasciculi ligatur. Impetus enim IPv4 fieri potest, si rp_filter ponitur ad modum "solve" (sysctl net.ipv4.conf.all.rp_filter = 2). Initio plerique systemata "strictio" adhibebant modum, sed incipiens a systemd 240Novissimo Decembri emissus, modus operandi default in "Solve" mutatus est et haec mutatio in uncinis multarum distributionum Linux relucet.

rp_filter mechanism applicatas insuper ad reprimendam tramitem viae ne fons inscriptionis spoofing. Cum ad 0 ponatur, fons inscriptionis verificationis confici non potest et quaelibet fasciculus transmitti potest inter interfaces retis sine restrictionibus. Modus 1 "Strictus" includit quemlibet fasciculum advenientis contra mensam fusuram reprimendam, et si interfacies retis per quam fasciculus recipitur non coniungitur cum optimali responsione traditionis itineris, fasciculus abicitur. Modus 2 "Solve" repressionem mollit ut laborem permittat, cum onere librariorum vel asymmetricarum fusa utens, in qua
via responsionis non potest transire per interfaciem retis, per quam fasciculum advenientis advenit.

In solve modum, fasciculus advenientis contra mensam fusuram reprimitur, sed valida consideratur si fons inscriptionis locus per quemlibet retis interfaciem praesto est. Propositus impetus innititur eo quod percussor fasciculum mittere potest cum fonte concolorato electronico respondenti VPN interfaciei, et non obstante quod haec fasciculus systema intrat per interfaciem retis externam, et non per VPN, in filtro. "Solve" modum, talis fasciculus non abiciendus est.

Impetum facere debet, oppugnator ostium moderari debet per quod retiaculum utentis accedit (exempli gratia, per MITM organizationem, cum victima coniungitur cum puncto accessu wireless continentis oppugnatoris, vel per iter hack). Portae moderando per quam usor cum reticulo coniungitur, oppugnator potest mittere fasciculos dummy quae in contextu retiacula interfaciendi VPN intellegentur, sed responsiones per cuniculum mittentur.

Fluvium dummy fasciculorum generando in quo substituitur IP oratio interfaciei VPN, conatus fiunt ad nexum ab client constitutum influere, at effectus harum fasciculorum nonnisi per analysim encrypted commercii adiunctorum passiva observari potest. cum operatione cuniculi. Ad impetum faciendum, necesse est invenire IP oratio retis interfaciei cuniculi ab VPN servo assignato, et etiam determinare nexum cum certo exercitui actu per cuniculum acturi.

Determinare IP ipsius VPN retis virtualis interfaciem, mittens SYN-ACK fasciculos ad systema victimae adhibitum, sequentially genus per totam ambitum virtualis inscriptionum (primum, inscriptiones in VPN per defaltam adhibitae sunt digestae, e.g. , OpenVPN subnet utitur 10.8.0.0/24). Existentia inscriptionis iudicari potest secundum recepcionem responsionis cum vexillo RST.

Similiter, praesentia nexus ad situm determinatum et numerum portus in latere clientis determinantur - sorting per numeros portus, syn fasciculus mittitur ad utentem ut fons inscriptionis, in quo situs IP substituitur, ac oratio destinationis est VPN virtualis IP. Portus ministrantis dici potest (80 pro HTTP), et numerus portus in latere clientis potest esse brutus cogendus, dividendo pro diversis numeris mutationem responsionum in intensione responsionum ACK cum absentia fasciculi cum vexillo RST .

In hoc statu oppugnator cognoscit omnia quattuor elementa nexus (fons IP oratio/portus et destinatio IP oratio/portus), sed ut fasciculum generandum phantasticum quem ratio victimae accipiet, oppugnator TCP determinare debet ordo et agnitio numeri (seq et ack )β€”connections. Ad parametros hos definiendos, oppugnator continue emittit fictos RST packets, varias seriei numeros quaerit, donec responsionis ACK capiat fasciculum, cuius adventus indicat numerum in fenestra TCP cadere.

Deinde oppugnator rectitudinem determinationis declarat totidem fasciculis missis et adventum responsionum ACK observans, post quem exactum numerum sequentis seriei eligit. Negotium perplexum est quod responsa intra cuniculum encryptatum mittuntur et praesentia eorum in fluere negotiationis interceptae solum per methodos obliquas resolvi potest. Utrum cliens fasciculum ACK missum ad VPN servo missum sit, determinatur secundum magnitudinem et latentiam responsionum encryptarum, quae cum missione facis fasciculorum referunt. Exempli gratia, pro OpenVPN, fasciculus encryptatus cum 79 magnitudine permittit te accurate iudicari agnitionem ACK intus continere.

Ante oppugnationem praesidium ad nucleum systematis operantis accedit, ut tempus problema claudendi commendatae utens fasciculum colum in "preroute" catena, obstrue transitum fasciculi in quo virtualis IP oratio cuniculi specificatur sicut oratio destinatum.

iptables -t rudis ego prerouting! -i wg0 -d 10.182.12.8 -m addrtype ! --src-type LOCAL -j DROP

vel nftables

nft addendi mensam ip raw
nft adde catena ip rudis prerouting ' { type filter hook prerouting prior 0; }'
nft add regula ip raw prerouting 'iifname != "wg0" ip daddr 10.182.12.8 fib saddr type != localis gutta'

Ad tutelam cum cuniculis cum IPv4 inscriptionibus utens, satis est rp_filter ad modum "stricti" ("sysctl net.ipv4.conf.all.rp_filter = 1") apponere. Ex parte VPN, modus determinandi numerum sequentium impediri potest, additis additamentis ad fasciculos encryptatos addito, magnitudinem omnium fasciculorum eandem faciens.

Source: opennet.ru