{"id":502323,"date":"2026-11-09T17:30:29","date_gmt":"2026-11-09T14:30:29","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=502323"},"modified":"2026-11-09T17:30:29","modified_gmt":"2026-11-09T14:30:29","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=502323","title":{"rendered":"\u041a\u0430\u043a \u043c\u043e\u0433\u043b\u0438 \u0432\u0437\u043b\u043e\u043c\u0430\u0442\u044c Binance \u0447\u0435\u0440\u0435\u0437 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435: \u043d\u043e\u0432\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430, DevOps \u0438 \u0442\u0440\u043e\u044f\u043d \u0432 \u0430\u0440\u0445\u0438\u0432\u0435"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b, \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440 \u0441 \u0440\u0435\u043a\u0440\u0443\u0442\u0435\u0440\u043e\u043c, \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u043e\u0435\u043a\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0441\u044f\u0442 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043f\u0435\u0440\u0435\u0434 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u044d\u0442\u0430\u043f\u043e\u043c. \u0414\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u044d\u0442\u043e \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c. \u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043d\u0430 \u0442\u0430\u043a \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u0430\u0442\u0430\u043a\u0438: \u0447\u0443\u0436\u043e\u0439 \u043a\u043e\u0434 \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u043d\u0430 \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440 \u0432 \u043c\u043e\u043c\u0435\u043d\u0442, \u043a\u043e\u0433\u0434\u0430 \u043e\u0442 \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u0430 \u043e\u0436\u0438\u0434\u0430\u044e\u0442, \u0447\u0442\u043e \u043e\u043d \u0435\u0433\u043e \u0438\u0437\u0443\u0447\u0438\u0442 \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442.<\/p>\n<p>\u0412 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0441\u043e \u0432\u0437\u043b\u043e\u043c\u043e\u043c Binance \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438\u0437 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430. \u0412 <a href=\"https:\/\/www.binance.com\/en\/blog\/community\/3229153443759566763\" rel=\"noopener nofollow\">\u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u043c \u043e\u0442\u0447\u0451\u0442\u0435 \u0431\u0438\u0440\u0436\u0438 \u043e\u0442 3 \u043d\u043e\u044f\u0431\u0440\u044f 2026 \u0433\u043e\u0434\u0430<\/a> \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0444\u0430\u043b\u044c\u0448\u0438\u0432\u043e\u0435 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435: \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u0443 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u043d\u043e\u0432\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443, \u043f\u0440\u043e\u0432\u0435\u043b\u0438 \u0434\u0432\u0430 \u044d\u0442\u0430\u043f\u0430 \u0438\u043d\u0442\u0435\u0440\u0432\u044c\u044e \u0438 \u0434\u0430\u043b\u0438 \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u0441 \u0432\u0440\u0435\u0434\u043e\u043d\u043e\u0441\u043d\u044b\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u043c. \u0414\u0430\u043b\u044c\u0448\u0435 \u0430\u0442\u0430\u043a\u0430 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0438\u043b\u0430\u0441\u044c \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0438 \u0437\u0430\u0442\u0440\u043e\u043d\u0443\u043b\u0430 Wallet DevOps. \u0423\u0442\u043e\u0447\u043d\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043b\u0435\u0433\u043a\u043e \u043f\u043e\u0442\u0435\u0440\u044f\u0442\u044c \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0441\u043a\u0430\u0437\u0435: \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b Software Engineer B, \u0430 \u0434\u043e\u0441\u0442\u0443\u043f \u043a DevOps-\u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0443 A \u0438 \u0435\u0433\u043e \u0442\u043e\u043a\u0435\u043d\u0443 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u043f\u043e\u0437\u0436\u0435. \u041f\u043e \u0432\u0435\u0440\u0441\u0438\u0438 Binance, \u044d\u0442\u043e \u0431\u044b\u043b\u0430 \u043c\u043d\u043e\u0433\u043e\u044d\u0442\u0430\u043f\u043d\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f, \u0430 \u043d\u0435 \u043e\u0434\u0438\u043d \u0437\u0430\u043f\u0443\u0441\u043a \u0430\u0440\u0445\u0438\u0432\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e \u043e\u0442\u043a\u0440\u044b\u043b \u0434\u043e\u0441\u0442\u0443\u043f \u043a\u043e \u0432\u0441\u0435\u043c \u043a\u043e\u0448\u0435\u043b\u044c\u043a\u0430\u043c.<\/p>\n<p>\u0421\u0435\u0432\u0435\u0440\u043e\u043a\u043e\u0440\u0435\u0439\u0441\u043a\u0438\u0439 \u0441\u043b\u0435\u0434 \u0432 \u044d\u0442\u043e\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0442\u043e\u0436\u0435 \u0438\u043c\u0435\u0435\u0442 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a: Binance \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0430\u0442\u0440\u0438\u0431\u0443\u0446\u0438\u044e \u0424\u0411\u0420, \u0430 <a href=\"https:\/\/www.chainalysis.com\/blog\/binance-hack-dprk-employment-fraud\/\" rel=\"noopener nofollow\">Chainalysis \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0434\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043d\u0430\u0439\u043c\u0430 \u0432 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u041a\u041d\u0414\u0420 \u0430\u0442\u0430\u043a\u0430\u0445<\/a>. \u041d\u043e \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u044d\u0442\u0430 \u0442\u0435\u043c\u0430 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043b\u0430 \u0431\u044b\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u043e\u0432\u043e\u0441\u0442\u044c\u044e, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u0445\u043e\u0436\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u0441\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u0441 \u0442\u043e\u0432\u0430\u0440\u0438\u0449\u0435\u043c.<\/p>\n<p>\u041e\u043d \u043f\u043e\u043f\u0430\u043b\u0441\u044f \u043d\u0430 \u0442\u0430\u043a\u0443\u044e \u0436\u0435 \u043f\u043e \u0444\u043e\u0440\u043c\u0435 \u043f\u0440\u0438\u043c\u0430\u043d\u043a\u0443: \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u00ab\u0440\u0430\u0431\u043e\u0442\u043e\u0434\u0430\u0442\u0435\u043b\u0438\u00bb \u043f\u0440\u0438\u0441\u043b\u0430\u043b\u0438 \u0435\u043c\u0443 \u0430\u0440\u0445\u0438\u0432 \u0441 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c. \u042d\u0442\u043e\u0442 \u0430\u0440\u0445\u0438\u0432 \u043e\u043d \u043f\u0435\u0440\u0435\u0434\u0430\u043b \u043c\u043d\u0435 \u043d\u0430 \u0430\u043d\u0430\u043b\u0438\u0437. \u0412\u043e\u0437\u043d\u0438\u043a\u043b\u043e \u043f\u043e\u0434\u043e\u0437\u0440\u0435\u043d\u0438\u0435 \u043d\u0430 \u0442\u0443 \u0441\u0430\u043c\u0443\u044e \u0441\u0445\u0435\u043c\u0443 \u0441 \u0441\u0435\u0432\u0435\u0440\u043e\u043a\u043e\u0440\u0435\u0439\u0441\u043a\u0438\u043c\u0438 \u0445\u0430\u043a\u0435\u0440\u0430\u043c\u0438 \u043f\u043e\u0434 \u0432\u0438\u0434\u043e\u043c \u043d\u0430\u043d\u0438\u043c\u0430\u044e\u0449\u0435\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438. \u041b\u0438\u0447\u043d\u043e\u0441\u0442\u044c \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u0435\u0439 \u0435\u0449\u0451 \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u044f\u043b\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c. \u042f \u043d\u0430\u0447\u0430\u043b \u0441 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e: \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0430\u0440\u0445\u0438\u0432\u0430 \u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u043e\u0434 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043f\u043e\u0441\u043b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434 \u0438\u0437 README.<\/p>\n<p>\u042f \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b \u0430\u0440\u0445\u0438\u0432 \u0432 <strong>Codex \u0441 \u043c\u043e\u0434\u0435\u043b\u044c\u044e Astra \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 Extra High<\/strong> \u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043b \u044d\u0442\u043e\u0442 \u043e\u0442\u0447\u0451\u0442. \u0417\u0430\u0434\u0430\u0447\u0443 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043b \u0436\u0451\u0441\u0442\u043a\u043e: \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442 \u0432\u0440\u0430\u0436\u0434\u0435\u0431\u043d\u044b\u043c, \u043d\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, hooks \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0449\u0438\u043a\u0438, \u0430 \u0437\u0430\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u0430\u043a \u0434\u0430\u043d\u043d\u044b\u0435. \u041c\u0435\u043d\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u043b\u043e, \u0433\u0434\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435, \u043a\u0430\u043a\u0438\u0435 \u0444\u0430\u0439\u043b\u044b \u043f\u044b\u0442\u0430\u044e\u0442\u0441\u044f \u0437\u0430\u0431\u0440\u0430\u0442\u044c \u0438 \u043a\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u00ab\u0440\u0430\u0431\u043e\u0442\u043e\u0434\u0430\u0442\u0435\u043b\u044c\u00bb \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u043d\u0430 \u0447\u0443\u0436\u043e\u043c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435.<\/p>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0435 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u043e\u0437\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e <code>npm install<\/code>: \u043f\u0435\u0440\u0432\u0430\u044f \u043b\u043e\u0432\u0443\u0448\u043a\u0430 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b\u0430 \u0443\u0436\u0435 \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 Git-\u0432\u0435\u0442\u043a\u0438. \u0414\u0430\u043b\u044c\u0448\u0435 \u043d\u0430\u0448\u043b\u0438\u0441\u044c \u0441\u043a\u0440\u044b\u0442\u044b\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a, \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0433\u0430\u0431\u0430\u0439\u0442 \u043e\u0431\u0444\u0443\u0441\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e JavaScript, \u0441\u0431\u043e\u0440 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u0430\u044f \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u0430\u044f shell.<\/p>\n<p>\u0421\u0440\u0430\u0437\u0443 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0443 \u0433\u0440\u0430\u043d\u0438\u0446\u0443: \u0441\u0432\u044f\u0437\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e\u0433\u043e \u0430\u0440\u0445\u0438\u0432\u0430 \u0441 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430\u043c\u0438 \u0430\u0442\u0430\u043a\u0438 \u043d\u0430 Binance \u0438\u043b\u0438 \u0441 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0441\u0435\u0432\u0435\u0440\u043e\u043a\u043e\u0440\u0435\u0439\u0441\u043a\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u043e\u0439 <strong>\u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430<\/strong>. \u0421\u0445\u043e\u0434\u0441\u0442\u0432\u043e \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f \u2014 \u043f\u043e\u0432\u043e\u0434 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043e\u0431\u0440\u0430\u0437\u0435\u0446, \u0430 \u043d\u0435 \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e \u0430\u0442\u0440\u0438\u0431\u0443\u0446\u0438\u0438. \u041d\u0438\u0436\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0440\u0430\u0437\u0431\u043e\u0440 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c \u043f\u043e \u043a\u043e\u0434\u0443.<\/p>\n<h3>\u00ab\u041f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u0432\u0435\u0442\u043a\u0443\u00bb<\/h3>\n<p>\u0410\u0440\u0445\u0438\u0432 \u0441 \u0438\u0433\u0440\u043e\u0432\u044b\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043d\u0430\u0447\u0430\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0441 \u043e\u0448\u0438\u0431\u043a\u0438: \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0435\u0440\u0432\u0443\u044e \u0436\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u0438\u0437 README. \u0422\u0430\u043c \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u043b\u043e\u0441\u044c \u043f\u0435\u0440\u0435\u0434 \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e\u043c \u0441 \u043a\u043e\u0434\u043e\u043c \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u0432\u0435\u0442\u043a\u0443 <code>video<\/code>. \u0417\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0435\u0449\u0451 \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b, \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043e \u2014 \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u043d\u0438\u0447\u0435\u0433\u043e \u043e\u043f\u0430\u0441\u043d\u043e\u0433\u043e \u043f\u043e\u043a\u0430 \u043d\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442. \u041e\u0434\u043d\u0430\u043a\u043e \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u043c\u0438 \u0432 ZIP \u043b\u0435\u0436\u0430\u043b \u043a\u0430\u0442\u0430\u043b\u043e\u0433 <code>.git<\/code>, \u0430 \u0432 \u043d\u0451\u043c \u2014 \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 <code>post-checkout<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043b \u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u043b \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u043a\u043e\u0434.<\/p>\n<p>\u0421\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0440\u0430\u0437\u0431\u043e\u0440 \u044d\u0442\u043e\u0439 \u0446\u0435\u043f\u043e\u0447\u043a\u0438 \u043f\u0440\u0438\u0432\u0451\u043b \u043a JavaScript-\u0444\u0430\u0439\u043b\u0443 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 4,5 \u041c\u0411. \u0417\u0430 \u043e\u0431\u0444\u0443\u0441\u043a\u0430\u0446\u0438\u0435\u0439 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b\u0438\u0441\u044c \u0442\u0440\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b: \u0441\u0431\u043e\u0440\u0449\u0438\u043a \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043a\u043e\u0448\u0435\u043b\u044c\u043a\u043e\u0432, \u0441\u0431\u043e\u0440\u0449\u0438\u043a \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0438 RAT \u0441 \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0439 shell. \u041e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043d\u0430\u0448\u043b\u0430\u0441\u044c \u0432 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f \u2014 \u0432\u043d\u0443\u0442\u0440\u0438 \u043c\u043e\u0434\u0443\u043b\u044f \u0441 \u043d\u0435\u043f\u0440\u0438\u043c\u0435\u0442\u043d\u044b\u043c \u0438\u043c\u0435\u043d\u0435\u043c <code>server\/config\/.svn\/env.module<\/code>.<\/p>\n<p>\u041d\u0438\u0436\u0435 \u2014 \u0440\u0430\u0437\u0431\u043e\u0440 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u0430\u0442\u0430\u043a\u0430, \u043a\u0430\u043a\u0438\u0435 \u0432\u044b\u0432\u043e\u0434\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0442 \u0438\u0437 \u043a\u043e\u0434\u0430 \u0438 \u0433\u0434\u0435 \u043b\u0435\u0433\u043a\u043e \u043f\u0435\u0440\u0435\u043e\u0446\u0435\u043d\u0438\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043e\u0431\u0440\u0430\u0437\u0446\u0430. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b \u0434\u0432\u0435 \u0434\u0435\u0442\u0430\u043b\u0438: \u043e\u0442\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438 \u043f\u0430\u0440\u043e\u043b\u0435\u0439 \u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0439 \u0444\u0438\u043b\u044c\u0442\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0437-\u0437\u0430 \u0441\u043b\u043e\u0432\u0430 <code>user<\/code> \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0434\u0430\u043d\u043d\u044b\u0445, \u0447\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u043f\u043e \u0435\u0433\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044e.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/d2\/89\/53\/d289532b72ab7acc3d133e475ee0662f.jpg\" alt=\"\u041a\u043e\u043d\u0446\u0435\u043f\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u044f: \u0441\u043a\u0440\u044b\u0442\u044b\u0439 hook \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u0430\u043f\u043a\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0441 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u043e\u043c\" sizes=\"(max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/d2\/89\/53\/d289532b72ab7acc3d133e475ee0662f.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/d2\/89\/53\/d289532b72ab7acc3d133e475ee0662f.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041a\u043e\u043d\u0446\u0435\u043f\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u044f: \u0441\u043a\u0440\u044b\u0442\u044b\u0439 hook \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u0430\u043f\u043a\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0441 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u043e\u043c<\/figcaption><\/div>\n<\/figure>\n<h3>\u0427\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043b\u043e\u0441\u044c<\/h3>\n<p>\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442 \u2014 <code>game-demo.zip<\/code>, 28 675 021 \u0431\u0430\u0439\u0442. \u0410\u043d\u0430\u043b\u0438\u0437 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d 7 \u043d\u043e\u044f\u0431\u0440\u044f 2026 \u0433\u043e\u0434\u0430. \u041d\u0430 \u043c\u043e\u0451\u043c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435 \u0430\u0440\u0445\u0438\u0432 \u043e\u0441\u0442\u0430\u0432\u0430\u043b\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f: \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0438\u0437 README \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0438\u0441\u044c. \u041d\u0430\u043b\u0438\u0447\u0438\u0435 \u0432\u0440\u0435\u0434\u043e\u043d\u043e\u0441\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u043e, \u043d\u043e \u044d\u0442\u043e\u0442 \u0440\u0430\u0437\u0431\u043e\u0440 \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0444\u0430\u043a\u0442 \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430 \u0442\u043e\u0432\u0430\u0440\u0438\u0449\u0430 \u0438\u043b\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u0432\u0448\u0435\u0439\u0441\u044f \u0443\u0442\u0435\u0447\u043a\u0438: \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u044b \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u0435\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.<\/p>\n<p>\u0412 \u0440\u0430\u0431\u043e\u0442\u0435 \u0431\u044b\u043b\u0438 \u0434\u0432\u0435 \u0447\u0430\u0441\u0442\u0438. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u0435\u0441\u044c \u0430\u0440\u0445\u0438\u0432, Git metadata \u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e. \u0417\u0430\u0442\u0435\u043c \u0431\u044b\u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u044b \u043a\u0430\u043a \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0432\u043d\u0435\u0448\u043d\u0438\u0435 \u0441\u0442\u0430\u0434\u0438\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0441\u044b\u043b\u0430\u043b\u0441\u044f hook. \u041d\u0438 hook, \u043d\u0438 bootstrap, \u043d\u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043d\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043b\u0438\u0441\u044c. \u041a \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u043c\u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u043b\u0438\u0441\u044c, \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044e \u00ab\u0436\u0435\u0440\u0442\u0432\u044b\u00bb \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0438 \u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0443 \u043d\u0435\u0433\u043e \u043d\u0435 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u043b\u0438.<\/p>\n<p>\u042d\u0442\u043e \u0432\u0430\u0436\u043d\u0430\u044f \u0433\u0440\u0430\u043d\u0438\u0446\u0430 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0446\u0438\u0438: \u0444\u0440\u0430\u0437\u0430 \u00ab\u043a\u043e\u0434 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0444\u0430\u0439\u043b\u00bb \u043d\u0438\u0436\u0435 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u043f\u0443\u0442\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f, \u0430 \u043d\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0432\u0448\u0438\u0439\u0441\u044f \u0432 \u0441\u0435\u0442\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u0439 upload. \u0421\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043f\u0440\u0430\u0432, \u0441\u0440\u0435\u0434\u044b, \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0438 \u043e\u0442\u0432\u0435\u0442\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u043d\u0435\u043b\u044c\u0437\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u043c\u0443 \u043a\u043e\u0434\u0443.<\/p>\n<p>\u0410\u0434\u0440\u0435\u0441\u0430 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u043e\u0431\u0435\u0437\u0432\u0440\u0435\u0436\u0435\u043d\u044b \u0437\u0430\u043f\u0438\u0441\u044c\u044e <code>[.]<\/code> \u0438 <code>hxxp<\/code>. \u042d\u0442\u043e \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0434\u043b\u044f \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441 \u0436\u0443\u0440\u043d\u0430\u043b\u0430\u043c\u0438, \u0430 \u043d\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u043c.<\/p>\n<h3>1. \u0410\u0440\u0445\u0438\u0432 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043b \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438<\/h3>\n<p>\u041e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 ZIP \u0431\u044b\u043b \u0441\u043e\u0445\u0440\u0430\u043d\u0451\u043d, \u0440\u044f\u0434\u043e\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u0430 \u043f\u043e\u0431\u0430\u0439\u0442\u043e\u0432\u0430\u044f \u0440\u0430\u0431\u043e\u0447\u0430\u044f \u043a\u043e\u043f\u0438\u044f. SHA-256 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430:<\/p>\n<pre><code>a82fa42e1d48fb20b5d534a4a3b62c5ade871a723a0b7107b550c25c40983164<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper\"><\/span><\/a><\/div><\/pre>\n<p>\u0414\u043e \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u043b\u0438\u0441\u044c \u0438\u043c\u0435\u043d\u0430 entries, \u0432\u044b\u0445\u043e\u0434\u044b \u0437\u0430 \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433, \u0441\u0438\u043c\u0432\u043e\u043b\u044c\u043d\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430. \u0412 \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u043a\u043e\u043f\u0438\u0438 \u0444\u0430\u0439\u043b\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0435 \u0440\u0435\u0436\u0438\u043c\u044b; \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0441\u044c \u0432 manifest. \u0421\u0430\u043c \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u0440\u0445\u0438\u0432 \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u043b\u0441\u044f.<\/p>\n<p>\u0412 ZIP \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c 558 entries, \u0438\u0437 \u043d\u0438\u0445 346 \u0444\u0430\u0439\u043b\u043e\u0432. \u0412\u043d\u0443\u0442\u0440\u0438 \u043b\u0435\u0436\u0430\u043b\u0430 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u0430\u044f <code>.git<\/code>: \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f, hooks, refs, index \u0438 loose objects. \u042d\u0442\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u0430\u0440\u0445\u0438\u0432\u0430 tracked-\u0444\u0430\u0439\u043b\u043e\u0432: \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u043c\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044c \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f.<\/p>\n<p>Git \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0437\u0446\u0430 \u043d\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043b\u0441\u044f. \u041e\u0431\u044a\u0435\u043a\u0442\u044b \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u043b\u0438\u0441\u044c \u043a\u0430\u043a \u0434\u0430\u043d\u043d\u044b\u0435: zlib, \u0440\u0430\u0437\u0431\u043e\u0440 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u0442\u0438\u043f\u0430 \u0438 \u0434\u043b\u0438\u043d\u044b, \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 object ID, \u0437\u0430\u0442\u0435\u043c \u0447\u0442\u0435\u043d\u0438\u0435 commit\/tree\/blob. \u0411\u044b\u043b\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u044b \u0432\u0441\u0435 268 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432: 183 blob, 82 tree \u0438 \u0442\u0440\u0438 commit. Pack-\u0444\u0430\u0439\u043b\u043e\u0432 \u043d\u0435 \u0431\u044b\u043b\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u043d\u0435 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u043b\u0441\u044f \u0440\u0430\u0437\u0431\u043e\u0440 pack\/delta.<\/p>\n<p>\u0421\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0442\u0440\u0451\u0445 \u0432\u0435\u0442\u043e\u043a \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u043b\u043e\u0441\u044c:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0412\u0435\u0442\u043a\u0430<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0424\u0430\u0439\u043b\u043e\u0432<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041f\u0443\u0441\u0442\u044b\u0445<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0427\u0442\u043e \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0432\u043d\u0443\u0442\u0440\u0438<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>main<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">51<\/p>\n<\/td>\n<td>\n<p align=\"left\">48<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0447\u0442\u0438 \u043f\u0443\u0441\u0442\u043e\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u0438 README \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0435\u0439<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>video<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">3<\/p>\n<\/td>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0434\u0438\u043d \u043d\u0435\u043f\u0443\u0441\u0442\u043e\u0439 MP4 \u0438 \u0434\u0432\u0430 \u043f\u0443\u0441\u0442\u044b\u0445 \u0432\u0438\u0434\u0435\u043e\u0444\u0430\u0439\u043b\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>staging<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">189<\/p>\n<\/td>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u0434 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u0432\u0442\u043e\u0440\u043e\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u0438\u0434\u0438\u043c\u043e\u0433\u043e \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u0434\u0435\u0440\u0435\u0432\u0430 \u0434\u0430\u043b\u0430 \u0431\u044b \u043d\u0435\u043f\u043e\u043b\u043d\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u0443. \u041f\u043e\u043b\u0435\u0437\u043d\u044b\u0439 \u0434\u043b\u044f \u0430\u0442\u0430\u043a\u0438 \u043a\u043e\u0434 \u043b\u0435\u0436\u0430\u043b \u0438 \u0432 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 <code>.git<\/code>, \u0438 \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u0434\u0435\u0440\u0435\u0432\u0435 \u0438\u0441\u0442\u043e\u0440\u0438\u0438. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c timestamps \u0438 reflog \u0438\u0437 \u0430\u0440\u0445\u0438\u0432\u0430 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442 \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0441\u0430\u043c\u043e\u0433\u043e \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0430 \u2014 \u0438\u0445 \u043d\u0435\u043b\u044c\u0437\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0430\u043c\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u043d\u0430 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044f.<\/p>\n<h3>2. \u041f\u043e\u0447\u0435\u043c\u0443 \u043f\u0440\u043e\u0441\u044c\u0431\u0430 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0432\u0435\u0442\u043a\u0443 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u0442\u043e\u0447\u043a\u043e\u0439 \u0437\u0430\u043f\u0443\u0441\u043a\u0430<\/h3>\n<p>\u0412 <code>.git\/hooks\/<\/code> \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b\u0441\u044f \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 <code>post-checkout<\/code>, 826 \u0431\u0430\u0439\u0442. \u0412 ZIP \u0443 \u043d\u0435\u0433\u043e \u0431\u044b\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0435 Unix-\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b. \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0435 hooks \u043b\u0438\u0431\u043e \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0438, \u043b\u0438\u0431\u043e \u0438\u043c\u0435\u043b\u0438 \u0441\u0443\u0444\u0444\u0438\u043a\u0441 <code>.sample<\/code>.<\/p>\n<p>\u0412 \u043e\u0431\u044b\u0447\u043d\u043e\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 Git \u0438\u0449\u0435\u0442 hooks \u0432 <code>$GIT_DIR\/hooks<\/code>; \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 <code>core.hooksPath<\/code> \u043c\u043e\u0436\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u0443\u0442\u044c. <code>post-checkout<\/code> \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u0434\u0435\u0440\u0435\u0432\u0430 \u043f\u0440\u0438 <code>checkout<\/code> \u0438\u043b\u0438 <code>switch<\/code> \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043f\u0440\u0435\u0436\u043d\u0438\u0439 HEAD, \u043d\u043e\u0432\u044b\u0439 HEAD \u0438 \u0444\u043b\u0430\u0433 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0432\u0435\u0442\u043a\u0438 \u043b\u0438\u0431\u043e \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430. \u042d\u0442\u043e \u0448\u0442\u0430\u0442\u043d\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0435 \u0432 <a href=\"https:\/\/git-scm.com\/docs\/githooks#_post_checkout\" rel=\"noopener nofollow\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 Git<\/a>.<\/p>\n<p>\u0412 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u043d\u043e\u043c <code>.git\/config<\/code> \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f <code>core.hooksPath<\/code> \u0438 <code>init.templateDir<\/code> \u043d\u0435 \u0431\u044b\u043b\u043e. \u041e\u043d\u043e \u0438 \u043d\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c: \u0432\u0440\u0435\u0434\u043e\u043d\u043e\u0441\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0443\u0436\u0435 \u043b\u0435\u0436\u0430\u043b \u043f\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u043c\u0443 \u043f\u0443\u0442\u0438. README \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u043b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c <code>git checkout video<\/code>, \u0430 hook \u043d\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u043b \u043d\u0438 \u0438\u043c\u044f \u0432\u0435\u0442\u043a\u0438, \u043d\u0438 \u0442\u0440\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430. \u0421\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0435 \u0441\u043b\u043e\u0432\u043e <code>video<\/code> \u0441\u043b\u0443\u0436\u0438\u043b\u043e \u043f\u043e\u0432\u043e\u0434\u043e\u043c \u0434\u043b\u044f \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043d\u043e \u043d\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u043b\u043e \u0441\u0430\u043c \u0442\u0440\u0438\u0433\u0433\u0435\u0440.<\/p>\n<p>\u041b\u043e\u0433\u0438\u043a\u0430 hook \u0431\u044b\u043b\u0430 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 <code>uname -s<\/code><\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 hook<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Darwin<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 bootstrap \u0447\u0435\u0440\u0435\u0437 <code>curl<\/code> \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u043e\u0442\u0432\u0435\u0442 Bash<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Linux<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 bootstrap \u0447\u0435\u0440\u0435\u0437 <code>wget<\/code> \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u043e\u0442\u0432\u0435\u0442 Bash<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">MINGW\/MSYS\/CYGWIN<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 PowerShell; \u043e\u0442\u0432\u0435\u0442 <code>Invoke-RestMethod<\/code> \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0441\u044f \u0432 <code>Invoke-Expression<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041f\u0440\u043e\u0447\u0435\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0417\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u2014 <code>nexorolabs[.]store<\/code>, \u043f\u0443\u0442\u0438 <code>\/api\/terminal\/bootstrap<\/code> \u0438 <code>\/api\/terminal\/windows<\/code>. \u0414\u043b\u044f Unix-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c \u0432 query \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0441\u044f <code>os=mac<\/code> \u0438\u043b\u0438 <code>os=linux<\/code>, \u0432\u043e \u0432\u0441\u0435\u0445 \u0442\u0440\u0451\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u2014 <code>flag=3<\/code>. \u0422\u043e\u0447\u043d\u044b\u0439 \u0441\u043c\u044b\u0441\u043b \u044d\u0442\u043e\u0433\u043e \u0444\u043b\u0430\u0433\u0430 \u043f\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u043c\u0443 \u043a\u043e\u0434\u0443 \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d.<\/p>\n<p>\u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u0432 \u0444\u0430\u0439\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u043b\u0438 \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u0435\u043d\u0438\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u043e\u0433\u043e \u0438\u043b\u0438 \u0444\u043e\u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f, \u043e\u0434\u043d\u0430\u043a\u043e \u043a\u043e\u0434 \u0431\u044b\u043b \u0430\u043a\u0442\u0438\u0432\u0435\u043d. \u0412 hook \u043d\u0435\u0442 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 <code>&amp;<\/code>: \u0441\u0430\u043c \u043e\u043d \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0446\u0435\u043f\u043e\u0447\u043a\u0443 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e. \u0412\u044b\u0432\u043e\u0434 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440\u0430 \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d, \u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u044b\u0435 \u0432\u0435\u0442\u043a\u0438 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f <code>exit 0<\/code>. \u0423\u0436\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0441\u0442\u0430\u0434\u0438\u044f \u043e\u0442\u0434\u0435\u043b\u044f\u0435\u0442 \u0444\u043e\u043d\u043e\u0432\u044b\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u043e\u0442 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f.<\/p>\n<p>\u0417\u0434\u0435\u0441\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0442\u044c Git-\u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f. \u0421\u0430\u043c <code>checkout<\/code> \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u043d \u0431\u044b\u0442\u044c \u0432\u0440\u0435\u0434\u043e\u043d\u043e\u0441\u043d\u044b\u043c, \u043d\u043e \u0432 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u043e\u0439 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 ZIP \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0435\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0435\u0433\u043e \u0441\u043e\u0431\u044b\u0442\u0438\u044f. \u041e\u0431\u044b\u0447\u043d\u044b\u0439 clone \u043d\u0435 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442 \u0447\u0443\u0436\u043e\u0439 <code>.git\/hooks<\/code> \u043a\u0430\u043a tracked-\u0444\u0430\u0439\u043b; \u0430\u0440\u0445\u0438\u0432 \u0433\u043e\u0442\u043e\u0432\u043e\u0433\u043e \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 \u043c\u043e\u0436\u0435\u0442 \u0435\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c.<\/p>\n<p><strong>\u0414\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430:<\/strong> <code>README.md:13\u201325<\/code>, <code>.git\/hooks\/post-checkout:40\u201357<\/code>, <code>.git\/config:1\u201311<\/code>, \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b ZIP entry. \u041d\u0430\u043b\u0438\u0447\u0438\u0435 \u0438 \u043b\u043e\u0433\u0438\u043a\u0430 hook \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u044b \u043a\u043e\u0434\u043e\u043c; \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0443 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044f \u043d\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u043b\u043e\u0441\u044c.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/63\/c6\/65\/63c665e10fdc55336ddaad2b2102258f.png\" alt=\"\u0421\u0445\u0435\u043c\u0430 \u0446\u0435\u043f\u043e\u0447\u043a\u0438: ZIP \u0441 .git, checkout, post-checkout, bootstrap, Node, worker \u0438 \u0442\u0440\u0438 \u043c\u043e\u0434\u0443\u043b\u044f\" sizes=\"(max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/63\/c6\/65\/63c665e10fdc55336ddaad2b2102258f.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/63\/c6\/65\/63c665e10fdc55336ddaad2b2102258f.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0421\u0445\u0435\u043c\u0430 \u0446\u0435\u043f\u043e\u0447\u043a\u0438: ZIP \u0441 .git, checkout, post-checkout, bootstrap, Node, worker \u0438 \u0442\u0440\u0438 \u043c\u043e\u0434\u0443\u043b\u044f<\/figcaption><\/div>\n<\/figure>\n<p><em>\u0421\u0445\u0435\u043c\u0430 1. \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0446\u0435\u043f\u043e\u0447\u043a\u0430 \u0438 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u0432\u0445\u043e\u0434\u0430 \u0432 staging. \u0421\u0442\u0440\u0435\u043b\u043a\u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u043f\u043e \u043a\u043e\u0434\u0443; \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0437\u0430\u043f\u0443\u0441\u043a \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0441\u044f.<\/em><\/p>\n<h3>3. \u0412\u0442\u043e\u0440\u043e\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a \u0441\u043a\u0440\u044b\u0432\u0430\u043b\u0441\u044f \u0432 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438<\/h3>\n<p>\u041f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b\u0430\u0441\u044c \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u0430\u044f \u0446\u0435\u043f\u043e\u0447\u043a\u0430 \u0432 <code>staging<\/code>:<\/p>\n<pre><code>package.json: start\/dev\/server    \u2192 server\/app.js    \u2192 server\/config\/cookie.js    \u2192 server\/config\/.svn\/env.module    \u2192 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 JavaScript<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0412 \u043d\u0430\u0447\u0430\u043b\u0435 <code>cookie.js<\/code> \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f dotenv, \u0430 \u0437\u0430\u0442\u0435\u043c \u0441\u043a\u0440\u044b\u0442\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c:<\/p>\n<pre><code class=\"javascript\">require('dotenv').config();require('.\/.svn\/env.module');<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0412 <code>env.module<\/code> URL \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d Base64-\u0441\u0442\u0440\u043e\u043a\u043e\u0439. \u0414\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u043a \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u0430\u043b\u043e <code>hxxps:\/\/vantaralabs[.]online\/api\/terminal\/script?flag=3<\/code>. \u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0442\u0435\u043a\u0441\u0442\u0430 loader \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u0435\u0433\u043e \u0432 <code>new Function(\"require\", response)(require)<\/code>. \u041f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0439 <code>require<\/code> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u043c\u0443 \u043a\u043e\u0434\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f Node-\u043c\u043e\u0434\u0443\u043b\u044f\u043c\u0438 \u0441 \u043f\u0440\u0430\u0432\u0430\u043c\u0438 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430; sandbox \u0432 \u044d\u0442\u043e\u0439 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043d\u0435\u0442.<\/p>\n<p>\u0418\u043c\u044f <code>.svn<\/code> \u0437\u0434\u0435\u0441\u044c \u2014 \u0441\u043f\u043e\u0441\u043e\u0431 \u0441\u043f\u0440\u044f\u0442\u0430\u0442\u044c \u0444\u0430\u0439\u043b \u0432 \u043d\u0435\u043f\u0440\u0438\u043c\u0435\u0442\u043d\u043e\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435. \u041e\u043d\u043e \u043d\u0435 \u0434\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 Subversion. \u0418\u043c\u044f <code>cookie.js<\/code> \u0442\u043e\u0436\u0435 \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u0442 \u0432\u0435\u0441\u044c \u0444\u0430\u0439\u043b cookie-stealer: \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f cookies \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u0432\u0440\u0435\u0434\u043e\u043d\u043e\u0441\u043d\u044b\u0439 <code>require<\/code> \u2014 \u0440\u0430\u0437\u043d\u044b\u0435 \u0443\u0447\u0430\u0441\u0442\u043a\u0438 \u043a\u043e\u0434\u0430.<\/p>\n<p>\u0412\u043e \u0432\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u044b\u0445 \u0432 \u0430\u0440\u0445\u0438\u0432 <code>package.json<\/code> \u043d\u0435 \u0431\u044b\u043b\u043e lifecycle scripts <code>preinstall<\/code>, <code>install<\/code>, <code>postinstall<\/code> \u0438 <code>prepare<\/code>. \u042d\u0442\u043e \u043d\u0435 \u0434\u0435\u043b\u0430\u043b\u043e \u043f\u0440\u043e\u0435\u043a\u0442 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u043c: \u0441\u043a\u0440\u044b\u0442\u044b\u0439 loader \u0432\u044b\u0437\u044b\u0432\u0430\u043b\u0441\u044f \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, lockfiles \u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u0445 \u0442\u0440\u0430\u043d\u0437\u0438\u0442\u0438\u0432\u043d\u044b\u0435 install scripts \u0432 \u044d\u0442\u043e\u043c \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0438 \u043d\u0435 \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u043b\u0438\u0441\u044c.<\/p>\n<p>\u0422\u0435\u043b\u043e payload \u0441 <code>vantaralabs[.]online<\/code> \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0440\u0430\u0437\u0440\u0435\u0448\u0451\u043d\u043d\u043e\u0433\u043e \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u044d\u0442\u0430\u043f\u0430. \u0421\u0447\u0438\u0442\u0430\u0442\u044c \u0435\u0433\u043e \u043a\u043e\u043f\u0438\u0435\u0439 payload \u0441 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0434\u043e\u043c\u0435\u043d\u0430 \u0431\u044b\u043b\u043e \u0431\u044b \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c. \u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0451\u043d \u0441\u0430\u043c \u0432\u0442\u043e\u0440\u043e\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438 \u0442\u043e, \u0447\u0442\u043e dotenv \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u043d\u044c\u0448\u0435 \u043d\u0435\u0433\u043e: \u0441\u0435\u043a\u0440\u0435\u0442\u044b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u043c\u0443 \u043c\u043e\u0434\u0443\u043b\u044e \u0432 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435.<\/p>\n<p><strong>\u0414\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430:<\/strong> <code>server\/app.js:5<\/code>, <code>server\/config\/cookie.js:1\u20132<\/code>, <code>server\/config\/.svn\/env.module:3\u20136<\/code> \u0438\u0437 \u0434\u0435\u0440\u0435\u0432\u0430 <code>staging<\/code>.<\/p>\n<h3>4. \u0427\u0442\u043e \u0431\u044b\u043b\u043e \u0437\u0430 \u043f\u0435\u0440\u0432\u044b\u043c HTTP-\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c<\/h3>\n<p>\u0414\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0439 \u0446\u0435\u043f\u043e\u0447\u043a\u0438 \u0431\u044b\u043b\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b \u0442\u0440\u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u044b\u0445 bootstrap, \u043e\u0431\u0449\u0438\u0439 <code>connect-runner<\/code> \u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 JavaScript. \u042d\u0442\u043e \u0431\u044b\u043b\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u0434\u0430, \u0430 \u043d\u0435 \u0437\u0430\u043f\u0443\u0441\u043a \u043e\u0431\u0440\u0430\u0437\u0446\u0430. HTTP redirects \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u043b\u0438\u0441\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e, bodies \u0438 headers \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u043b\u0438\u0441\u044c \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0445\u0435\u0448\u0430\u043c\u0438. \u0422\u0430\u043a\u043e\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0440\u0430\u0441\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f; \u0431\u0435\u0441\u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043d\u044b\u043c \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0435\u0433\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0435\u043b\u044c\u0437\u044f.<\/p>\n<p>Bootstrap \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 Node.js \u0432\u0435\u0440\u0441\u0438\u0438 \u043d\u0435 \u043d\u0438\u0436\u0435 19. \u0415\u0441\u043b\u0438 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e runtime \u043d\u0435\u0442, Unix-\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044e\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 Node v22.14.0 \u0441 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e <code>nodejs.org<\/code> \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0432\u0438\u0434\u0430:<\/p>\n<pre><code>~\/.local\/share\/daam-demo\/node\/v22.14.0-&lt;platform&gt;-&lt;arch&gt;\/<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>Windows-\u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0447\u0438\u0442\u0430\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0440\u0435\u043b\u0438\u0437\u043e\u0432, \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 LTS \u0438 \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0443 MSI \u0432 <code>%LOCALAPPDATA%\/daam-demo\/node\/<\/code>. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430 Node \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u0442 \u0446\u0435\u043f\u043e\u0447\u043a\u0443 \u043b\u0435\u0433\u0438\u0442\u0438\u043c\u043d\u043e\u0439: \u0434\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440 \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043d\u0435\u0434\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430. \u0412 \u0445\u043e\u0434\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u044d\u0442\u0438 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u044b \u043d\u0435 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043b\u0438\u0441\u044c \u0438 \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u043b\u0438\u0441\u044c.<\/p>\n<p>\u0417\u0430\u0442\u0435\u043c bootstrap \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 <code>daam-connect-runner\u2026js<\/code> \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0435\u0433\u043e \u0447\u0435\u0440\u0435\u0437 Node. Runner \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 <code>daam-extra-*<\/code> \u0432\u043d\u0443\u0442\u0440\u0438 <code>os.tmpdir()<\/code>, \u043f\u0438\u0448\u0435\u0442 <code>worker.js<\/code> \u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u043e\u0433\u043e\u0432. \u041d\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0441 <code>detached: true<\/code>, \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c \u0440\u0430\u0431\u043e\u0447\u0438\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u043c \u0438 <code>unref()<\/code>.<\/p>\n<p>\u0421\u0430\u043c worker \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0442\u0435\u043a\u0441\u0442 \u0441 <code>\/api\/terminal\/script?flag=3<\/code> \u043d\u0430 <code>www.nexorolabs[.]store<\/code> \u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 <code>eval(code)<\/code>. \u042d\u0442\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u0438\u0441\u0441\u043b\u0435\u0434\u0443\u0435\u043c\u043e\u0433\u043e \u043a\u043e\u0434\u0430: \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a <code>eval<\/code> \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b. \u041f\u043e\u0441\u043b\u0435 \u043e\u0442\u0434\u0435\u043b\u0435\u043d\u0438\u044f worker \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430 \u0443\u0436\u0435 \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430\u0434\u0451\u0436\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0446\u0435\u043f\u043e\u0447\u043a\u0443.<\/p>\n<p>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0444\u0430\u0439\u043b \u0438\u043c\u0435\u043b \u0440\u0430\u0437\u043c\u0435\u0440 4 508 584 \u0431\u0430\u0439\u0442\u0430 \u0438 SHA-256:<\/p>\n<pre><code>51cc310df71e7d3461cb081ddea81b302a0cf97ea5b1cbf53a998e2b27c84c73<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u042d\u0442\u043e \u0441\u043d\u0438\u043c\u043e\u043a \u043e\u0442\u0432\u0435\u0442\u0430 \u043e\u0442 7 \u043d\u043e\u044f\u0431\u0440\u044f 2026 \u0433\u043e\u0434\u0430. \u0421\u0435\u0440\u0432\u0435\u0440 \u043c\u043e\u0433 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u043e\u0439 \u043a\u043e\u0434 \u0440\u0430\u043d\u044c\u0448\u0435, \u043f\u043e\u0437\u0436\u0435 \u0438\u043b\u0438 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043a\u043b\u0438\u0435\u043d\u0442\u0430. \u041e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0435 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 \u0441\u043b\u043e\u0432\u0430 <code>demo<\/code> \u0438 <code>DAAM<\/code> \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u043a\u0430\u043a \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u043b\u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0437\u0446\u0430.<\/p>\n<h3>5. \u0414\u0435\u043e\u0431\u0444\u0443\u0441\u043a\u0430\u0446\u0438\u044f \u0431\u0435\u0437 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0434\u0435\u043a\u043e\u0434\u0435\u0440\u0430 \u043e\u0431\u0440\u0430\u0437\u0446\u0430<\/h3>\n<p>\u0411\u043e\u043b\u044c\u0448\u043e\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0444\u0430\u0439\u043b\u0430 \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u043b\u0441\u044f \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c\u0438 \u0441\u0442\u0440\u043e\u043a, \u0438\u043d\u0434\u0435\u043a\u0441\u043d\u044b\u043c\u0438 \u043e\u0431\u0451\u0440\u0442\u043a\u0430\u043c\u0438, hex-\u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u043e\u0432 \u0438 \u0437\u0430\u043f\u0443\u0442\u0430\u043d\u043d\u044b\u043c \u043f\u043e\u0442\u043e\u043a\u043e\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f. \u0414\u043b\u044f \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 TypeScript parser: \u0444\u0430\u0439\u043b \u0447\u0438\u0442\u0430\u043b\u0441\u044f \u043a\u0430\u043a AST, \u0430 \u043d\u0435 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0441\u044f \u043a\u0430\u043a Node-\u043c\u043e\u0434\u0443\u043b\u044c. \u0421\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u043b\u0438\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043d\u0430\u0434 \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u0430\u043c\u0438 \u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0451\u043d\u043d\u044b\u0435 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c.<\/p>\n<p>\u0412 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u043c \u0434\u0435\u043a\u043e\u0434\u0435\u0440\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b\u0438\u0441\u044c Base64 \u0441 \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c \u0430\u043b\u0444\u0430\u0432\u0438\u0442\u043e\u043c \u0438 RC4. \u042d\u0442\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u044b\u043b\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043a\u0430\u043a \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043d\u0430\u0434 \u0434\u0430\u043d\u043d\u044b\u043c\u0438. \u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043b\u0430 26 315 \u0441\u0442\u0440\u043e\u043a; \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0439 \u0441\u0434\u0432\u0438\u0433 \u2014 291, \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u2014 574 728. \u041d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c 29 402 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u0430\u043c\u0435\u043d\u044b.<\/p>\n<p>\u0417\u0430\u0442\u0435\u043c \u0438\u0437 \u043a\u043e\u043d\u043a\u0430\u0442\u0435\u043d\u0430\u0446\u0438\u0439 \u0441\u0442\u0440\u043e\u043a \u0431\u044b\u043b\u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 orchestrator \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u043b \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u043c Node-\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430\u043c \u0447\u0435\u0440\u0435\u0437 stdin:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0410\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0438\u043c\u044f<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0420\u0430\u0437\u043c\u0435\u0440<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>01-x.js.txt<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">55 841 \u0431\u0430\u0439\u0442<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0440\u0430\u0443\u0437\u0435\u0440\u044b, \u043a\u043e\u0448\u0435\u043b\u044c\u043a\u0438, Keychain, \u0443\u0441\u043b\u043e\u0432\u043d\u044b\u0439 CDP-\u044d\u0442\u0430\u043f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>02-N.js.txt<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">30 765 \u0431\u0430\u0439\u0442<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0431\u0445\u043e\u0434 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0444\u0430\u0439\u043b\u043e\u0432<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>03-o.js.txt<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">96 195 \u0431\u0430\u0439\u0442<\/p>\n<\/td>\n<td>\n<p align=\"left\">Socket.IO RAT, shell, \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0438\u0441\u043a \u0444\u0430\u0439\u043b\u043e\u0432, clipboard<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u042d\u0442\u0438 \u0438\u043c\u0435\u043d\u0430 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u044b \u043f\u0440\u0438 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0438. \u041d\u0430 \u0437\u0430\u0440\u0430\u0436\u0451\u043d\u043d\u043e\u043c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0441 \u0442\u0430\u043a\u0438\u043c\u0438 \u0438\u043c\u0435\u043d\u0430\u043c\u0438 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0431\u044b\u0442\u044c. \u0422\u0440\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u0440\u043e\u0448\u043b\u0438 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0440\u0430\u0437\u0431\u043e\u0440 \u0431\u0435\u0437 \u043e\u0448\u0438\u0431\u043e\u043a, \u043d\u043e \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u0439 parse \u043d\u0435 \u0440\u0430\u0432\u0435\u043d \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u043c\u0443 \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u0438 \u043d\u0435 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442 \u0432\u0441\u0435 \u0432\u0435\u0442\u0432\u0438 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f.<\/p>\n<p>\u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u043b\u0438\u0441\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 offset, \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442 \u0438 \u0435\u0433\u043e \u0445\u0435\u0448. \u041d\u0435\u0440\u0430\u0437\u0440\u0435\u0448\u0451\u043d\u043d\u044b\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432\u043e \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u0445 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u043b\u0438\u0441\u044c \u044f\u0432\u043d\u044b\u043c\u0438 placeholders. \u0422\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0432\u044b\u0432\u043e\u0434\u0430 \u0438 \u043d\u0435 \u043f\u0435\u0440\u0435\u043f\u0443\u0442\u0430\u0442\u044c \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u0441 \u0443\u0434\u043e\u0431\u043d\u043e\u0439, \u043d\u043e \u0443\u0436\u0435 \u0438\u0437\u043c\u0435\u043d\u0451\u043d\u043d\u043e\u0439 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u043e\u043c \u0432\u0435\u0440\u0441\u0438\u0435\u0439.<\/p>\n<p>Orchestrator \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0442\u0440\u0438 \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0441 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438 <code>--max-old-space-size=4096 --no-warnings -<\/code>. \u0414\u043b\u044f \u043d\u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f <code>pid.5.1.lock<\/code>, <code>pid.5.2.lock<\/code>, <code>pid.5.3.lock<\/code> \u0432 <code>os.tmpdir()<\/code>. \u0412 \u0444\u0430\u0439\u043b\u0430\u0445 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f PID \u0438 \u0432\u0440\u0435\u043c\u044f \u0441\u0442\u0430\u0440\u0442\u0430. \u042d\u0442\u043e \u0443\u0447\u0451\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u0438 \u0437\u0430\u0449\u0438\u0442\u0430 \u043e\u0442 \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0430 \u043d\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438.<\/p>\n<h3>6. \u0411\u0440\u0430\u0443\u0437\u0435\u0440\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435: \u0447\u0442\u043e \u0437\u0430\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f, \u0430 \u0447\u0442\u043e \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043d\u0435\u0434\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c<\/h3>\n<p>\u041f\u0435\u0440\u0432\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u0438\u0449\u0435\u0442 \u043f\u0440\u043e\u0444\u0438\u043b\u0438 Chromium-\u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u0432 \u043d\u0430 Windows, macOS \u0438 Linux, \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044f WSL. \u0412 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u0435 \u0435\u0441\u0442\u044c \u0447\u0442\u0435\u043d\u0438\u0435 <code>Login Data<\/code>, <code>Login Data For Account<\/code>, <code>Web Data<\/code>, \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 <code>Local Extension Settings<\/code> \u0434\u043b\u044f 41 extension ID \u0438 Brave <code>Local Storage\/leveldb<\/code>. \u041d\u0430 macOS \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 <code>~\/Library\/Keychains\/login.keychain-db<\/code>.<\/p>\n<p>\u0424\u0430\u0439\u043b\u044b \u043a\u043e\u043f\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f multipart-\u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438. \u0414\u043b\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435: \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430, \u043f\u0440\u043e\u0444\u0438\u043b\u044c, extension ID \u0438 \u0438\u043c\u044f \u0444\u0430\u0439\u043b\u0430. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0449\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0441\u0432\u044f\u0437\u0430\u0442\u044c \u0440\u0430\u0437\u0440\u043e\u0437\u043d\u0435\u043d\u043d\u044b\u0435 \u0431\u0430\u0437\u044b \u0438 \u0444\u0430\u0439\u043b\u044b \u0441 \u0438\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u043c.<\/p>\n<p>\u041c\u043e\u0434\u0443\u043b\u044c \u0442\u0430\u043a\u0436\u0435 \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c browser encryption key \u0438\u0437 <code>Local State<\/code>: \u043d\u0430 Windows \u0447\u0435\u0440\u0435\u0437 DPAPI, \u043d\u0430 Linux \u0447\u0435\u0440\u0435\u0437 <code>secret-tool<\/code> \u0438\u043b\u0438 Python secretstorage, \u043d\u0430 macOS \u0447\u0435\u0440\u0435\u0437 <code>security<\/code> \u0438 Safe Storage. \u0423 \u043a\u0430\u0436\u0434\u043e\u0439 \u0432\u0435\u0442\u043a\u0438 \u0435\u0441\u0442\u044c \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438. \u0421\u0430\u043c \u0444\u0430\u043a\u0442 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u0442\u0430\u043a\u0438\u0445 \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u043d\u0435 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043a\u043b\u044e\u0447 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d \u043d\u0430 \u043b\u044e\u0431\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435.<\/p>\n<p>\u0421\u0430\u043c\u0430\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043d\u0430\u0445\u043e\u0434\u043a\u0430 \u2014 \u043d\u0430\u0447\u0430\u043b\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438 \u043f\u0430\u0440\u043e\u043b\u0435\u0439:<\/p>\n<pre><code class=\"javascript\">function decryptPassword(encryptedPassword, masterKey = null) {  return \"\";  \/\/ \u0414\u0430\u043b\u044c\u0448\u0435 \u0432 \u043e\u0431\u0440\u0430\u0437\u0446\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0435\u0434\u043e\u0441\u0442\u0438\u0436\u0438\u043c\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f.}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u0434\u043b\u0438\u043d\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 AES\/DPAPI \u043d\u0438\u0436\u0435, \u043b\u0435\u0433\u043a\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u043e\u0442\u0447\u0451\u0442\u0435 \u043e \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0451\u043d\u043d\u043e\u0439 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0435 \u0432\u0441\u0435\u0445 \u043f\u0430\u0440\u043e\u043b\u0435\u0439. \u041d\u043e \u043f\u0435\u0440\u0432\u044b\u0439 <code>return<\/code> \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043c\u0435\u043d\u044f\u0435\u0442 \u0432\u044b\u0432\u043e\u0434: \u044d\u0442\u0438\u043c \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0435 \u043f\u0430\u0440\u043e\u043b\u0438 \u043d\u0435 \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u044e\u0442\u0441\u044f. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043a\u043e\u0434 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0431\u0430\u0437\u044b, usernames, URL, \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 Base64 \u0438 master keys, \u0435\u0441\u043b\u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441\u0443\u043c\u0435\u043b\u0438 \u0438\u0445 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c.<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u0430\u044f \u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u043a\u0430 \u2014 \u00ab\u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043a\u043b\u044e\u0447\u0435\u0439; \u0443\u0441\u043f\u0435\u0448\u043d\u0430\u044f \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0430 \u043f\u0430\u0440\u043e\u043b\u0435\u0439 \u0434\u0430\u043d\u043d\u044b\u043c \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u043d\u0435 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0430\u00bb. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043d\u0435 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043b\u0430\u0441\u044c: \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043d\u0435\u0442. \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 Keychain database \u043d\u0435 \u0434\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0447\u0442\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u0435\u0451 \u0441\u0435\u043a\u0440\u0435\u0442\u043e\u0432 \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u0432\u0438\u0434\u0435.<\/p>\n<p>\u0412 \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u043f\u0443\u0442\u044f\u0445 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0434\u0430\u043c\u043f <code>Cookies<\/code> \u0438\u043b\u0438 <code>Network\/Cookies<\/code>. \u042d\u0442\u043e \u043d\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043f\u043e\u043f\u0430\u0434\u0430\u043d\u0438\u044f \u0438\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u0437 extension storage, \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0438\u043b\u0438 \u0431\u0443\u0444\u0435\u0440\u0430 \u043e\u0431\u043c\u0435\u043d\u0430, \u043d\u043e \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u00ab\u0432\u043e\u0440\u0443\u0435\u0442 \u0432\u0441\u0435 cookies\u00bb \u0432\u044b\u0445\u043e\u0434\u0438\u043b\u043e \u0431\u044b \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u044b \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432.<\/p>\n<p><strong>\u0414\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430:<\/strong> <code>01-x.js.txt:210\u2013325,524\u2013832,1453\u20131511<\/code>. \u041d\u043e\u043c\u0435\u0440\u0430 \u0441\u0442\u0440\u043e\u043a \u043e\u0442\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u043a \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u043c\u0443 \u043c\u043e\u0434\u0443\u043b\u044e, \u0430 \u043d\u0435 \u043a \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c\u0443 \u043e\u0434\u043d\u043e\u0441\u0442\u0440\u043e\u0447\u043d\u043e\u043c\u0443 payload.<\/p>\n<h3>7. \u0424\u0430\u0439\u043b\u043e\u0432\u044b\u0439 \u0444\u0438\u043b\u044c\u0442\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043f\u043e\u0447\u0442\u0438 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u043c<\/h3>\n<p>\u0412\u0442\u043e\u0440\u043e\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u043e\u0431\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0431\u0435\u0437 \u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432: \u043e\u043d \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u0444\u0430\u0439\u043b\u044b \u043f\u043e \u0441\u043f\u0438\u0441\u043a\u0430\u043c \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u0438 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f\u043c \u0441\u0442\u0440\u043e\u043a. \u041f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u043e\u0442\u0434\u0430\u043d Desktop, Documents, Downloads, \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0439 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438. \u0417\u0430\u0442\u0435\u043c \u043e\u0431\u0445\u043e\u0434\u044f\u0442\u0441\u044f HOME \u043b\u0438\u0431\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 Windows drives; \u0435\u0441\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 WSL. \u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 \u043e\u0434\u0438\u043d \u0444\u0430\u0439\u043b \u2014 5 MiB, \u0433\u043b\u0443\u0431\u0438\u043d\u0430 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0430.<\/p>\n<p>\u0412 \u0441\u043f\u0438\u0441\u043e\u043a \u00ab\u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445\u00bb \u0432\u0445\u043e\u0434\u044f\u0442 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0435 \u0441\u043b\u043e\u0432\u0430: <code>credential<\/code>, <code>token<\/code>, <code>wallet<\/code>, <code>seed<\/code>, <code>private<\/code>, <code>key<\/code>, <code>.env<\/code>, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432, \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445. \u041d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u043c\u044f \u0444\u0430\u0439\u043b\u0430 \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u0435\u0441\u044c \u043f\u0443\u0442\u044c:<\/p>\n<pre><code class=\"javascript\">const lowerPath = filePath.toLowerCase();return SENSITIVE_FILE_PATTERNS.some(pattern =&gt;  lowerPath.includes(pattern.toLowerCase()));<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0421\u0440\u0435\u0434\u0438 patterns \u0435\u0441\u0442\u044c <code>user<\/code>. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u043f\u0443\u0442\u044c <code>\/Users\/alice\/Documents\/report.txt<\/code> \u0438\u043b\u0438 <code>C:\\Users\\alice\\Documents\\report.txt<\/code> \u0443\u0436\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u043f\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f. \u0421\u0435\u043a\u0440\u0435\u0442\u043d\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u0432 \u0438\u043c\u0435\u043d\u0438 \u0441\u0430\u043c\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e. \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e\u0442 \u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0438\u0441\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u044b\u0435 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438 \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f, \u043b\u0438\u043c\u0438\u0442 \u0440\u0430\u0437\u043c\u0435\u0440\u0430, \u0433\u043b\u0443\u0431\u0438\u043d\u0430 \u0438 \u043f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430, \u043e\u0434\u043d\u0430\u043a\u043e \u0444\u0438\u043b\u044c\u0442\u0440 \u00ab\u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438\u00bb \u043d\u0430 \u0442\u0430\u043a\u0438\u0445 \u043f\u0443\u0442\u044f\u0445 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u0448\u0438\u0440\u043e\u043a\u0438\u043c.<\/p>\n<p>\u0423 \u044d\u0442\u043e\u0433\u043e \u0436\u0435 collector \u0435\u0441\u0442\u044c \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f <code>.ssh<\/code>, <code>.gnupg<\/code>, <code>.aws<\/code>, <code>.docker<\/code>, <code>.kube<\/code>, <code>.config<\/code> \u0438 \u0440\u044f\u0434\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432. \u0417\u0434\u0435\u0441\u044c \u043d\u0435\u043b\u044c\u0437\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0438 \u0432\u044b\u0432\u043e\u0434 \u00ab\u043e\u043d \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043a\u0440\u0430\u0434\u0451\u0442 \u0432\u0441\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 SSH\/cloud stores\u00bb, \u043d\u0438 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u043f\u043e\u043b\u043e\u0436\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434 \u00ab\u044d\u0442\u0438 \u043a\u043b\u044e\u0447\u0438 \u0437\u0430\u0449\u0438\u0449\u0435\u043d\u044b\u00bb. \u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043e\u0442\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u043a \u043e\u0434\u043d\u043e\u043c\u0443 \u043e\u0431\u0445\u043e\u0434\u0447\u0438\u043a\u0443. \u041a\u043e\u043f\u0438\u044f \u043a\u043b\u044e\u0447\u0430 \u0432 Documents, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 clipboard \u0438\u043b\u0438 \u0444\u0430\u0439\u043b, \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u0439 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u043c \u0447\u0435\u0440\u0435\u0437 RAT, \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0437\u0430 \u0438\u0445 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u043c\u0438. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 symlink \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0438\u043c\u0435\u043d\u0438 entry \u043d\u0435 \u043e\u0431\u0440\u0430\u0437\u0443\u044e\u0442 \u0441\u0442\u0440\u043e\u0433\u043e\u0439 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0434\u0430\u043d\u043d\u044b\u043c.<\/p>\n<p>\u0422\u0440\u0435\u0442\u0438\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0438\u0449\u0435\u0442 <code>.env*<\/code> \u0438 <code>keypair.json<\/code>, \u0441 \u0434\u0440\u0443\u0433\u0438\u043c \u043b\u0438\u043c\u0438\u0442\u043e\u043c \u2014 10 MiB. \u042d\u0442\u0438 \u0444\u0430\u0439\u043b\u044b \u0443\u0445\u043e\u0434\u044f\u0442 \u0447\u0435\u0440\u0435\u0437 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 upload endpoint. \u0418\u043c\u0435\u043d\u0430 \u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u0431\u043e\u0440\u0449\u0438\u043a\u043e\u0432 \u0432\u0430\u0436\u043d\u044b \u0434\u043b\u044f \u043e\u0446\u0435\u043d\u043a\u0438 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0439 \u0443\u0442\u0435\u0447\u043a\u0438, \u043d\u043e \u043d\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442 \u0432\u0441\u0451, \u0447\u0442\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0443 \u043f\u0440\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438.<\/p>\n<p><strong>\u0414\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430:<\/strong> <code>02-N.js.txt:45\u201385,89\u2013152,209\u2013344,430\u2013610<\/code>; <code>03-o.js.txt:927\u20131145,1199\u20131225<\/code>.<\/p>\n<h3>8. C2: \u0442\u0440\u0438 \u043f\u043e\u0440\u0442\u0430 \u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445<\/h3>\n<p>\u0412 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u043c\u043e\u0434\u0443\u043b\u044f\u0445 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0437\u0430\u0434\u0430\u043d IP <code>144[.]172[.]118[.]245<\/code>. \u0415\u0433\u043e \u0440\u043e\u043b\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435 \u0440\u0435\u043f\u0443\u0442\u0430\u0446\u0438\u0435\u0439 \u0430\u0434\u0440\u0435\u0441\u0430, \u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0432 \u043a\u043e\u0434\u0435: \u0442\u0443\u0434\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0444\u0430\u0439\u043b\u044b, \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u0436\u0443\u0440\u043d\u0430\u043b\u044b; \u0441 \u043d\u0438\u043c \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u041f\u043e\u0440\u0442<\/p>\n<\/th>\n<th>\n<p align=\"left\">Endpoint<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">8085<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>\/upload<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0440\u0430\u0443\u0437\u0435\u0440\u043d\u044b\u0435 \u0431\u0430\u0437\u044b, extension storage, Keychain \u0438 \u0441\u043e\u043f\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0444\u0430\u0439\u043b\u044b<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">8085<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>\/api\/upload-file<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0424\u0430\u0439\u043b\u044b \u043f\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0443 \u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043e\u0438\u0441\u043a\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">8086<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>\/upload<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0424\u0430\u0439\u043b\u044b \u0438\u0437 \u0448\u0438\u0440\u043e\u043a\u043e\u0433\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043e\u0431\u0445\u043e\u0434\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">8087<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>\/api\/notify<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f host\/user\/OS<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">8087<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>\/api\/log<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043e\u0431\u044b\u0442\u0438\u044f \u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0431\u0443\u0444\u0435\u0440\u0430 \u043e\u0431\u043c\u0435\u043d\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">8087<\/p>\n<\/td>\n<td>\n<p align=\"left\">Socket.IO<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u043c\u0430\u043d\u0434\u044b, shell \u0438 \u043e\u0442\u0432\u0435\u0442\u044b<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0417\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442 \u043a\u043e\u0434 \u043f\u043e HTTPS, \u043d\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0435 C2\/exfil URLs \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 HTTP \u0438 <code>ws:\/\/<\/code>. \u0412 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u0445 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f <code>userkey<\/code> \u0438\u043b\u0438 <code>ukey<\/code> \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c 503, <code>t<\/code> \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c 5, \u0430 \u0442\u0430\u043a\u0436\u0435 hostname, path, timestamp \u0438 <code>validation<\/code>. \u042d\u0442\u0438 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u043a\u0430\u043a \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0438 \u043e\u0431\u0440\u0430\u0437\u0446\u0430; \u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0441\u043a\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e.<\/p>\n<p>\u041e\u0431\u0435\u0437\u043b\u0438\u0447\u0435\u043d\u043d\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code class=\"json\">{  \"ukey\": 503,  \"t\": 5,  \"host\": \"503_&lt;hostname&gt;\",  \"os\": \"&lt;OS&gt;\",  \"username\": \"&lt;username&gt;\",  \"timestamp\": 0}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c <code>0<\/code> \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 timestamp. \u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a <code>validation<\/code> \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 HMAC-SHA256 \u0441 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c \u0438\u0437 \u043e\u0431\u0440\u0430\u0437\u0446\u0430; \u0441\u0430\u043c \u043a\u043b\u044e\u0447 \u0432 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044e \u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0451\u043d. \u0414\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 endpoints \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0440\u0430\u0437\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438: username, \u043f\u0443\u0442\u044c, \u0438\u043c\u044f \u0444\u0430\u0439\u043b\u0430 \u043b\u0438\u0431\u043e \u0447\u0430\u0441\u0442\u044c metadata\/message \u0432\u043c\u0435\u0441\u0442\u0435 \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c. HMAC \u043d\u0435 \u0441\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0438 \u043d\u0435 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442 HTTP \u0432 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u0430\u043d\u0430\u043b.<\/p>\n<p>\u0414\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 Socket.IO. \u042d\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 JSON \u043f\u043e\u0432\u0435\u0440\u0445 \u043b\u044e\u0431\u043e\u0433\u043e WebSocket: \u0443 Socket.IO \u0435\u0441\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0438 framing \u043f\u043e\u0432\u0435\u0440\u0445 Engine.IO, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 WebSocket \u0438 HTTP long-polling. <a href=\"https:\/\/socket.io\/docs\/v4\/socket-io-protocol\/\" rel=\"noopener nofollow\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430<\/a> \u0432\u0430\u0436\u043d\u043e \u043f\u0440\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0435 \u043b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u0451\u043c\u043d\u0438\u043a\u0430. \u0412 \u043e\u0431\u0440\u0430\u0437\u0446\u0435 \u0432\u0435\u0440\u0441\u0438\u044f npm-\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043d\u0435 \u0437\u0430\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0442\u043e\u0447\u043d\u0443\u044e wire version \u0431\u0435\u0437 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0441\u0440\u0435\u0434\u044b \u043d\u0435\u043b\u044c\u0437\u044f \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0439.<\/p>\n<p>\u041e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u044b delivery domains <code>nexorolabs[.]store<\/code> \u0438 <code>vantaralabs[.]online<\/code>. \u041d\u0430\u0431\u043b\u044e\u0434\u0430\u0432\u0448\u0438\u0439\u0441\u044f \u043f\u0440\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0438 \u043a\u043e\u0434\u0430 \u0430\u0434\u0440\u0435\u0441 shared hosting \u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u043b\u0441\u044f \u0432 \u0441\u043f\u0438\u0441\u043e\u043a \u00ab\u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430\u00bb: \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e\u0435 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043d\u0435 \u0434\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0432\u043b\u0430\u0434\u0435\u043d\u0438\u0435 IP \u0438 \u043d\u0435 \u043e\u043f\u0440\u0430\u0432\u0434\u044b\u0432\u0430\u0435\u0442 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0443 \u0432\u0441\u0435\u0433\u043e \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u0430.<\/p>\n<p><strong>\u0414\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430:<\/strong> <code>01-x.js.txt:740\u2013787<\/code>, <code>02-N.js.txt:129\u2013147<\/code>, <code>03-o.js.txt:56\u2013160,857\u2013924,1152\u20131158<\/code>.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/0a\/03\/76\/0a03765775dd87c0c833a051b66c1d61.png\" alt=\"\u0421\u0445\u0435\u043c\u0430 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043a\u0430\u043d\u0430\u043b\u043e\u0432: \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 8085, \u0444\u0430\u0439\u043b\u044b \u043d\u0430 8086, \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0438 clipboard \u043d\u0430 8087\" sizes=\"(max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/0a\/03\/76\/0a03765775dd87c0c833a051b66c1d61.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/0a\/03\/76\/0a03765775dd87c0c833a051b66c1d61.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0421\u0445\u0435\u043c\u0430 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043a\u0430\u043d\u0430\u043b\u043e\u0432: \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 8085, \u0444\u0430\u0439\u043b\u044b \u043d\u0430 8086, \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0438 clipboard \u043d\u0430 8087<\/figcaption><\/div>\n<\/figure>\n<p><em>\u0421\u0445\u0435\u043c\u0430 2. \u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u0430\u043d\u0430\u043b\u043e\u0432 \u043e\u0434\u043d\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u0446\u0430. HMAC \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435, \u043d\u043e \u043d\u0435 \u0441\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0438\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435.<\/em><\/p>\n<h3>9. \u041f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0439 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f<\/h3>\n<p>\u0423 RAT \u0435\u0441\u0442\u044c handler \u0441\u043e\u0431\u044b\u0442\u0438\u044f <code>command<\/code>. \u041e\u043d \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u0442 \u0438\u0437 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u0435 <code>message<\/code> \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u0435\u0433\u043e \u0432 <code>child_process.exec<\/code>. Allowlist \u043a\u043e\u043c\u0430\u043d\u0434 \u0432 \u044d\u0442\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d. \u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441 \u043f\u0440\u0430\u0432\u0430\u043c\u0438 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0441\u043e\u0431\u044b\u0442\u0438\u0435\u043c <code>message<\/code>.<\/p>\n<p>\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <code>code<\/code> \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443: <code>102<\/code> \u2014 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430, <code>107<\/code> \u2014 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u044b, <code>108<\/code> \u2014 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0444\u0430\u0439\u043b\u043e\u0432 \u0438\u0437 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430. \u0414\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u043b\u0438\u043c\u0438\u0442 25 MiB \u043d\u0430 \u0444\u0430\u0439\u043b. \u042d\u0442\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0432\u0435\u0442\u043a\u0438, \u0430 \u043d\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043e\u0431\u0449\u0435\u0433\u043e <code>exec<\/code> \u0442\u0440\u0435\u043c\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u043c\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438.<\/p>\n<p>\u041f\u043e\u043c\u0438\u043c\u043e \u0440\u0430\u0437\u043e\u0432\u044b\u0445 \u043a\u043e\u043c\u0430\u043d\u0434, \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0435\u0441\u0441\u0438\u0438:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0421\u043e\u0431\u044b\u0442\u0438\u0435<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>shellOpen<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0438\u043b\u0438 \u0432\u043e\u0437\u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c shell \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c cwd \u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>shellInput<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0432\u0432\u043e\u0434 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0443<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>shellResize<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 PTY, \u0435\u0441\u043b\u0438 backend \u044d\u0442\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>shellDetach<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0442\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>shellClose<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0417\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c \u0441\u0435\u0441\u0441\u0438\u044e<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>shellOutput<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0435\u0440\u043d\u0443\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0443 \u0432\u044b\u0432\u043e\u0434<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041a\u043e\u0434 \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e PTY\/backend \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0438 \u043e\u0431\u044b\u0447\u043d\u044b\u0435 pipes \u043a\u0430\u043a fallback. \u0421\u0435\u0441\u0441\u0438\u0438 \u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u0439 scrollback \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 \u043f\u0430\u043c\u044f\u0442\u0438. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0441\u043b\u043e\u0432\u043e \u00abpersistent\u00bb \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u043a shell sessions \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0436\u0438\u0432\u043e\u0439 \u0441\u0435\u0441\u0441\u0438\u0438 \u043f\u0440\u0438 \u043e\u0442\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0438, \u0430 \u043d\u0435 \u0430\u0432\u0442\u043e\u0437\u0430\u043f\u0443\u0441\u043a \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438.<\/p>\n<p>\u0417\u0434\u0435\u0441\u044c \u043d\u0435 \u043d\u0443\u0436\u0435\u043d \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 SSH-\u0441\u0435\u0440\u0432\u0435\u0440 \u0438\u043b\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u043f\u043e\u0440\u0442. \u0423\u0437\u0435\u043b \u0441\u0430\u043c \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0438 \u043e\u0442\u0434\u0430\u0451\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u0430\u044f \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u0432 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u043d\u0430\u0431\u043e\u0440\u0435 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442; \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u0430 \u043d\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0432\u0441\u0435\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b.<\/p>\n<p>\u0412 \u0442\u043e\u043c \u0436\u0435 \u043c\u043e\u0434\u0443\u043b\u0435 \u0435\u0441\u0442\u044c polling clipboard \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0440\u0430\u0437 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443. \u041d\u0430 macOS \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f <code>pbpaste<\/code>, \u043d\u0430 Windows \u2014 PowerShell \u0438 .NET Clipboard, \u043d\u0430 Linux \u2014 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u043b\u0438\u0431\u043e WSL-\u0432\u0430\u0440\u0438\u0430\u043d\u0442. \u0418\u0437\u043c\u0435\u043d\u0438\u0432\u0448\u0438\u0439\u0441\u044f \u043d\u0435\u043f\u0443\u0441\u0442\u043e\u0439 \u0442\u0435\u043a\u0441\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0441\u044f \u043a\u0430\u043a \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0432 <code>\/api\/log<\/code>. \u042d\u0442\u043e \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0451\u043d\u043d\u044b\u0439 \u0441\u0431\u043e\u0440 \u0431\u0443\u0444\u0435\u0440\u0430 \u043e\u0431\u043c\u0435\u043d\u0430, \u043d\u043e \u043d\u0435 keylogging: \u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0442\u0430 \u043d\u0430\u0436\u0430\u0442\u0438\u0439 \u043a\u043b\u0430\u0432\u0438\u0448 \u0432 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0435\u0442.<\/p>\n<p><strong>\u0414\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430:<\/strong> <code>03-o.js.txt:1244\u20131486,1561\u20132335,2366\u20132450<\/code>. \u0421\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441\u043d\u044f\u0442\u0438\u044f \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u043e\u0432, \u0437\u0430\u043f\u0438\u0441\u0438 \u044d\u043a\u0440\u0430\u043d\u0430, RDP\/VNC \u0438\u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 SSH-backdoor \u043d\u0435 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u044b. \u041f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u0430\u044f shell \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u043d\u043e \u0431\u0443\u0434\u0443\u0449\u0438\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u043d\u0435\u043b\u044c\u0437\u044f \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u0437\u0430 \u0443\u0436\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0435 \u043c\u043e\u0434\u0443\u043b\u0438.<\/p>\n<h3>10. Persistence: \u0442\u0440\u0438 \u0440\u0430\u0437\u043d\u044b\u0445 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u043b\u044c\u0437\u044f \u0441\u043c\u0435\u0448\u0438\u0432\u0430\u0442\u044c<\/h3>\n<p>\u041f\u0435\u0440\u0432\u044b\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u2014 \u0441\u0430\u043c Git hook. \u041e\u043d \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u043d\u0435 tracked tree \u0438 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u0432\u0435\u0442\u043a\u0438. \u0412\u0442\u043e\u0440\u043e\u0439 \u2014 \u0437\u0430\u0440\u0430\u0436\u0451\u043d\u043d\u044b\u0439 server loader, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043d\u043e\u0432\u0430 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u0424\u043e\u043d\u043e\u0432\u044b\u0435 Node-\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u0434\u0430\u044e\u0442 \u0435\u0449\u0451 \u043e\u0434\u043d\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e: \u043e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u043f\u0435\u0440\u0435\u0436\u0438\u0442\u044c \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430. \u041d\u0438 \u043e\u0434\u0438\u043d \u0438\u0437 \u044d\u0442\u0438\u0445 \u0444\u0430\u043a\u0442\u043e\u0432 \u0441\u0430\u043c \u043f\u043e \u0441\u0435\u0431\u0435 \u043d\u0435 \u0434\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0441\u0442\u0430\u0440\u0442 RAT \u043f\u043e\u0441\u043b\u0435 reboot.<\/p>\n<p>\u0412 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043d\u043e\u043c \u043c\u043e\u0434\u0443\u043b\u0435 \u0435\u0441\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0442\u043a\u0430 macOS. \u041f\u0440\u0438 Darwin kernel release \u043d\u0435 \u043d\u0438\u0436\u0435 <code>27.0.0<\/code> \u043a\u043e\u0434 \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u0441\u043e\u0437\u0434\u0430\u0442\u044c:<\/p>\n<pre><code>~\/Library\/LaunchAgents\/com.user.chrome.cdp.plist<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>Plist \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 <code>RunAtLoad=true<\/code>, <code>KeepAlive=false<\/code> \u0438 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b headless-\u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430, \u0432\u043a\u043b\u044e\u0447\u0430\u044f <code>--remote-debugging-port=9222<\/code>. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0444\u0438\u043b\u044c \u0438 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 Chrome DevTools Protocol, \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u0447\u0442\u0435\u043d\u0438\u0438 \u0444\u0430\u0439\u043b\u043e\u0432. \u0423\u0441\u043b\u043e\u0432\u0438\u0435 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442 \u0438\u043c\u0435\u043d\u043d\u043e Darwin release, \u0430 \u043d\u0435 \u043c\u0430\u0440\u043a\u0435\u0442\u0438\u043d\u0433\u043e\u0432\u044b\u0439 \u043d\u043e\u043c\u0435\u0440 macOS.<\/p>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 <code>launchctl bootout<\/code>, \u043d\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f plist \u0432 \u043d\u0435\u0439 \u043d\u0435\u0442. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0441\u043b\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043c\u043e\u0436\u0435\u0442 \u043e\u0441\u0442\u0430\u0442\u044c\u0441\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0434\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u043f\u0440\u0438 \u0432\u0445\u043e\u0434\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c <code>ProgramArguments<\/code> \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043d\u0430 \u0431\u0440\u0430\u0443\u0437\u0435\u0440, \u0430 \u043d\u0435 \u043d\u0430 Node RAT: \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u00ab\u043d\u0430\u0439\u0434\u0435\u043d \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u0437\u0430\u043f\u0443\u0441\u043a \u0442\u0440\u043e\u044f\u043d\u0430 \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438\u00bb \u0431\u044b\u043b\u043e \u0431\u044b \u0447\u0440\u0435\u0437\u043c\u0435\u0440\u043d\u044b\u043c.<\/p>\n<p>\u0415\u0441\u0442\u044c \u0438 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0432\u0435\u0442\u043a\u0438: \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430, \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438, \u043f\u0440\u0430\u0432\u0430 \u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0441\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u0434 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 <code>puppeteer-core<\/code>, \u0430 fallback-\u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442 <code>puppeteer<\/code>; \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u044f \u0437\u0430\u0432\u0438\u0441\u044f\u0442 \u043e\u0442 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0443\u043b\u0435\u0439. \u0412 \u044d\u0442\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 \u0432\u0435\u0442\u043a\u0430 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u043b\u0430\u0441\u044c.<\/p>\n<p>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 cron, systemd, SSH authorized_keys, Windows Run\/RunOnce, Scheduled Tasks \u0438\u043b\u0438 \u0441\u043b\u0443\u0436\u0431 \u0432 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0445 \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u0441\u0442\u0430\u0434\u0438\u044f\u0445 \u043d\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u044b. \u042d\u0442\u043e \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c\u0443 \u0441\u043d\u0438\u043c\u043a\u0443 \u043a\u043e\u0434\u0430, \u0430 \u043d\u0435 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u044f \u0434\u043b\u044f \u043c\u0430\u0448\u0438\u043d\u044b, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u0443\u0436\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b shell.<\/p>\n<p><strong>\u0414\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430:<\/strong> <code>01-x.js.txt:833\u20131080,1414\u20131445<\/code>; orchestrator \u0438 runner \u0434\u043b\u044f detached Node-\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432.<\/p>\n<h3>11. \u0427\u0442\u043e \u0438\u0441\u043a\u0430\u0442\u044c \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445<\/h3>\n<p>\u041d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0441\u0438\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u0438\u0437\u043d\u0430\u043a \u2014 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0445 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432, \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u0438 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u0439. \u041e\u0434\u0438\u043d \u0441\u043a\u0430\u0447\u0430\u043d\u043d\u044b\u0439 \u0430\u0440\u0445\u0438\u0432 \u0438\u043b\u0438 \u043e\u0434\u043d\u043e \u0438\u043c\u044f <code>node<\/code> \u043d\u0435 \u0434\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0430\u043a\u0442\u0438\u0432\u043d\u0443\u044e \u0438\u043d\u0444\u0435\u043a\u0446\u0438\u044e. \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u043f\u0443\u0441\u0442\u043e\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u043e \u0445\u0435\u0448\u0443 \u043d\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0434\u0440\u0443\u0433\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e\u0433\u043e payload.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u041f\u0440\u0438\u0437\u043d\u0430\u043a<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0413\u0434\u0435 \u0438\u0441\u043a\u0430\u0442\u044c<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Hook \u0441 <code>nexorolabs<\/code> \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435\u0439 \u043e\u0442\u0432\u0435\u0442\u0430 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440\u0443<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>.git\/hooks\/post-checkout<\/code>, effective hooksPath<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u0430\u043b\u0438\u0447\u0438\u0435 \u0432 \u043a\u0430\u0440\u0430\u043d\u0442\u0438\u043d\u0435 \u043d\u0435 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u043a<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>cookie.js<\/code> \u2192 <code>.svn\/env.module<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0430\u0431\u043e\u0447\u0435\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u0438 \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0442\u043e\u043b\u044c\u043a\u043e <code>main<\/code> \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442 staging<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>daam-extra-*<\/code>, <code>worker.js<\/code>, <code>worker.log<\/code>, <code>worker.out.log<\/code>, <code>worker.err.log<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043b\u0435\u0434\u044b \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u044b<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>pid.5.1.lock<\/code>, <code>pid.5.2.lock<\/code>, <code>pid.5.3.lock<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>os.tmpdir()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">PID \u043c\u043e\u0433 \u0443\u0441\u0442\u0430\u0440\u0435\u0442\u044c \u0438\u043b\u0438 \u0431\u044b\u0442\u044c \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Node \u0441 <code>--max-old-space-size=4096 --no-warnings -<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">Process telemetry, parent\/cwd<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0410\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u0441\u0430\u043c\u0438 \u043f\u043e \u0441\u0435\u0431\u0435 \u043d\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>com.user.chrome.cdp.plist<\/code> \u0438 CDP-\u043f\u0440\u043e\u0444\u0438\u043b\u044c<\/p>\n<\/td>\n<td>\n<p align=\"left\">LaunchAgents, \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438, browser arguments<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>144[.]172[.]118[.]245:8085\u20138087<\/code> \u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 endpoints<\/p>\n<\/td>\n<td>\n<p align=\"left\">EDR, proxy, firewall, pcap<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043f\u0440\u043e\u0448\u043b\u0443\u044e \u0443\u0442\u0435\u0447\u043a\u0443<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u043d\u0438\u043c\u043a\u0430 \u043f\u043e\u043b\u0435\u0437\u043d\u044b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 SHA-256. \u041f\u0435\u0440\u0432\u044b\u0435 \u0434\u0432\u0430 \u043e\u0442\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u043a \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u043c \u0442\u043e\u0447\u043a\u0430\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430, \u0442\u0440\u0435\u0442\u0438\u0439 \u2014 \u043a \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u043c\u0443 \u0432\u043d\u0435\u0448\u043d\u0435\u043c\u0443 \u043a\u043e\u0434\u0443:<\/p>\n<pre><code>post-checkoutbfc3ef0167e1c66f77c0117c1fe13def2c364bfa078392b042284746762cacb6staging: server\/config\/.svn\/env.modulec44786363e351de613b01437d930d8a08162f6f2cd18588b2026afa099dfdbd7\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 JavaScript51cc310df71e7d3461cb081ddea81b302a0cf97ea5b1cbf53a998e2b27c84c73<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u041f\u0440\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u0434\u0440\u0443\u0433\u0438\u0445 repositories \u043d\u0443\u0436\u043d\u043e \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c <code>.git\/config<\/code>, user\/system configs, includes, <code>core.hooksPath<\/code> \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 templates. \u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f hooks \u0432 \u043e\u0434\u043d\u043e\u043c \u0430\u0440\u0445\u0438\u0432\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u0434\u0440\u0443\u0433\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b. \u0414\u0435\u043b\u0430\u0442\u044c checkout \u043f\u043e\u0434\u043e\u0437\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0440\u0430\u0434\u0438 \u043f\u043e\u0438\u0441\u043a\u0430 \u0434\u0440\u0443\u0433\u043e\u0433\u043e branch \u043e\u043f\u0430\u0441\u043d\u043e: \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u0446\u0430 \u0442\u0430\u043a\u0430\u044f \u00ab\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430\u00bb \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u043e\u043c.<\/p>\n<p>\u0412 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u0445 ATT&amp;CK \u0437\u0434\u0435\u0441\u044c \u0443\u043c\u0435\u0441\u0442\u043d\u044b <a href=\"https:\/\/attack.mitre.org\/techniques\/T1546\/\" rel=\"noopener nofollow\">Event Triggered Execution<\/a>, <a href=\"https:\/\/attack.mitre.org\/techniques\/T1059\/007\/\" rel=\"noopener nofollow\">JavaScript execution<\/a>, <a href=\"https:\/\/attack.mitre.org\/techniques\/T1105\/\" rel=\"noopener nofollow\">Ingress Tool Transfer<\/a>, <a href=\"https:\/\/attack.mitre.org\/techniques\/T1555\/003\/\" rel=\"noopener nofollow\">Credentials from Web Browsers<\/a>, <a href=\"https:\/\/attack.mitre.org\/techniques\/T1115\/\" rel=\"noopener nofollow\">Clipboard Data<\/a> \u0438 \u0443\u0441\u043b\u043e\u0432\u043d\u044b\u0439 <a href=\"https:\/\/attack.mitre.org\/techniques\/T1543\/001\/\" rel=\"noopener nofollow\">Launch Agent<\/a>. \u0422\u0430\u043a\u043e\u0435 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435; \u043e\u043d\u043e \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u0442\u0440\u0438\u0431\u0443\u0446\u0438\u0435\u0439 \u0433\u0440\u0443\u043f\u043f\u0435 \u0438\u043b\u0438 \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u0443.<\/p>\n<h3>12. \u041a\u0430\u043a \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442\u044c \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435, \u043d\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0443<\/h3>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u044d\u0442\u0430\u043f\u0430 \u0431\u044b\u043b \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 mock C2: \u043f\u0440\u0438\u0451\u043c\u043d\u0438\u043a HTTP-\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u0443\u0436\u0435\u0431\u043d\u044b\u0445 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 Engine.IO\/Socket.IO. \u041e\u043d \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 timestamps, headers \u0438 raw payload, \u043d\u043e \u043d\u0435 \u0432\u044b\u0434\u0430\u0451\u0442 <code>command<\/code>, <code>shellInput<\/code> \u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u044f. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043b\u0430\u0441\u044c \u0441\u0438\u043d\u0442\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0432\u044b\u0437\u043e\u0432\u0430\u043c\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u2014 \u0431\u0435\u0437 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 malware \u0438 \u0431\u0435\u0437 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f listener.<\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0433\u043e \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043e\u043f\u044b\u0442\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f disposable VM \u0441\u043e snapshot. \u0423 \u043d\u0435\u0451 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043d\u044b\u0445 \u043f\u0440\u043e\u0444\u0438\u043b\u0435\u0439, SSH\/API\/cloud credentials, shared folders, clipboard sharing, \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a host filesystem \u0438\u043b\u0438 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u043e\u0432 \u0432 production\/LAN. \u041d\u0430\u0440\u0443\u0436\u043d\u044b\u0439 IPv4\/IPv6 egress \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u0442\u043e\u0433\u043e, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0432 \u043b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438 \u0437\u0430\u043c\u0435\u043d\u0438\u043b\u0438 URL.<\/p>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0446\u0435\u043f\u043e\u0447\u043a\u0435 C2 \u0437\u0430\u0434\u0430\u043d literal IP, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u0434\u043d\u043e\u0439 DNS-\u043f\u043e\u0434\u043c\u0435\u043d\u044b \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e. \u041b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u043d\u0430\u044f \u043a\u043e\u043f\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u0443\u0435\u043c\u043e\u043c\u0443 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c\u0443 transport; \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e, \u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u044e\u0442\u0441\u044f diff \u0438 \u0445\u0435\u0448\u0430\u043c\u0438. \u041d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 process tree, filesystem diff, DNS\/HTTP logs \u0438 pcap. \u0422\u0435\u0441\u0442\u043e\u0432\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0441 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043c\u0430\u0440\u043a\u0435\u0440\u0430\u043c\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0441\u0431\u043e\u0440, \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u0441\u0435\u043a\u0440\u0435\u0442\u044b.<\/p>\n<p>\u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 mock \u043d\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u0437\u0430 \u043f\u043e\u043b\u043d\u0443\u044e \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u044e \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 polling handshake \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0434\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438 \u0432\u0441\u0435\u0445 \u0432\u0435\u0440\u0441\u0438\u0439, binary frames \u0438\u043b\u0438 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043f\u0440\u0438 \u043e\u0431\u0440\u044b\u0432\u0435 \u0441\u0432\u044f\u0437\u0438. \u0417\u0434\u0435\u0441\u044c \u0442\u0430\u043a\u0436\u0435 \u043d\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u043b\u0438\u0441\u044c runtime-\u044d\u0444\u0444\u0435\u043a\u0442\u044b TCC, DPAPI, Keychain \u0438 macOS LaunchAgent. \u042d\u0442\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u043e\u0441\u0442\u0430\u043b\u0438\u0441\u044c \u0432 \u043f\u043b\u0430\u043d\u0435 \u043b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u0438\u0438, \u0430 \u043d\u0435 \u0431\u044b\u043b\u0438 \u0437\u0430\u043c\u0435\u043d\u0435\u043d\u044b \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c\u0438.<\/p>\n<h3>13. \u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c, \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0435\u043a\u0442 \u0443\u0436\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043b\u0438<\/h3>\n<p>\u0414\u043b\u044f \u0441\u043b\u0443\u0447\u0430\u044f \u00ab\u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043a\u0430\u0447\u0430\u043b ZIP\u00bb \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u0430\u044f \u0446\u0435\u043f\u043e\u0447\u043a\u0430 \u043d\u0435 \u0434\u0430\u0451\u0442 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u044f \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0442\u044c \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e\u0439 \u0440\u043e\u0442\u0430\u0446\u0438\u0438 \u0432\u0441\u0435\u0445 \u0441\u0435\u043a\u0440\u0435\u0442\u043e\u0432. \u0414\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043d\u0435 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442 \u0432 \u043a\u0430\u0440\u0430\u043d\u0442\u0438\u043d\u0435 \u0434\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u043d\u0443\u0436\u0435\u043d \u043b\u0438 \u043e\u043d \u0434\u043b\u044f \u0440\u0430\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f. \u042d\u0442\u043e \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u043a \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u043c \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430\u043c \u0438 \u043d\u0435 \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0430\u0443\u0434\u0438\u0442 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430.<\/p>\n<p>\u0415\u0441\u043b\u0438 checkout, server \u0438\u043b\u0438 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 installers \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0438\u0441\u044c, \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0434\u0440\u0443\u0433\u043e\u0439:<\/p>\n<ol>\n<li>\n<p>\u0418\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c host \u043e\u0442 \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u0441\u0435\u0442\u0438 \u0438 LAN, \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c volatile evidence \u0438 \u043a\u043e\u043f\u0438\u044e \u0434\u0438\u0441\u043a\u0430\/\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f. \u041d\u043e\u0432\u044b\u0435 credentials \u0432\u0432\u043e\u0434\u0438\u0442\u044c \u0441 \u0447\u0438\u0441\u0442\u043e\u0439 \u0441\u0442\u0430\u043d\u0446\u0438\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u0441 worker paths, PID locks \u0438 \u0441\u0435\u0442\u0435\u0432\u044b\u043c\u0438 IOC. \u041d\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0442\u044c \u0432\u0441\u0435 Node \u0438\u043b\u0438 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e \u0438\u043c\u0435\u043d\u0438: \u0432\u0430\u0436\u043d\u044b \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c, cwd, \u0432\u0440\u0435\u043c\u044f \u0441\u0442\u0430\u0440\u0442\u0430 \u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<li>\n<p>\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0451\u043d\u043d\u0443\u044e \u0446\u0435\u043f\u043e\u0447\u043a\u0443 \u0438 \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0435 shells. \u0423 file collector \u0435\u0441\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 SIGTERM\/SIGINT \u0431\u0435\u0437 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 graceful stop \u043c\u043e\u0436\u0435\u0442 \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u044b\u043c.<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u043a\u0440\u044b\u0442\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a: malicious hook, \u0441\u043a\u0440\u044b\u0442\u044b\u0439 server loader, \u0430 \u043f\u0440\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u2014 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0439 CDP LaunchAgent. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430; \u043e\u0434\u043d\u043e\u0433\u043e <code>bootout<\/code> \u0431\u0435\u0437 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0451\u043d\u043d\u043e\u0433\u043e plist \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 persistence locations \u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u0438\u0437 \u0434\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430. \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u043e\u0434\u043d\u043e\u0439 \u0432\u0435\u0442\u043a\u0435 \u043d\u0435 \u043e\u0447\u0438\u0449\u0430\u0435\u0442 \u0437\u0430\u0440\u0430\u0436\u0451\u043d\u043d\u0443\u044e \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0438 \u043d\u0435 \u043e\u0442\u043c\u0435\u043d\u044f\u0435\u0442 \u0443\u0436\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430.<\/p>\n<\/li>\n<li>\n<p>\u0421 \u0447\u0438\u0441\u0442\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043e\u0442\u043e\u0437\u0432\u0430\u0442\u044c \u0441\u0435\u0441\u0441\u0438\u0438 \u0438 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0435\u043a\u0440\u0435\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b\u043b\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b host \u0432 \u043f\u0435\u0440\u0438\u043e\u0434 \u0440\u0438\u0441\u043a\u0430: browser accounts, tokens \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0438 clipboard, \u043a\u043b\u044e\u0447\u0438 \u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b. \u0414\u043e\u0441\u0442\u0443\u043f \u043a wallet seed\/private material \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0441 \u043d\u043e\u0432\u044b\u043c\u0438 \u043a\u043b\u044e\u0447\u0430\u043c\u0438; \u0441\u043c\u0435\u043d\u0430 \u043f\u0430\u0440\u043e\u043b\u044f \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u0441\u0442\u0430\u0440\u044b\u0439 seed \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442.<\/p>\n<\/li>\n<\/ol>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0432\u0448\u0435\u0433\u043e RAT \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 <code>.ssh<\/code> \u0438\u0437 \u043e\u0434\u043d\u043e\u0433\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e collector \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0440\u0438\u0437\u043d\u0430\u0442\u044c SSH-\u043a\u043b\u044e\u0447\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u043c\u0438. \u0415\u0441\u043b\u0438 \u043d\u0435\u0442 \u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u043d\u043e\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u043a\u043e\u043c\u0430\u043d\u0434 \u0438 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0432\u0441\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u043f\u0435\u0440\u0435\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438\u0437 \u0434\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0433\u043e baseline \u0434\u0430\u0451\u0442 \u0431\u043e\u043b\u0435\u0435 \u0441\u0438\u043b\u044c\u043d\u0443\u044e \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u044e, \u0447\u0435\u043c \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432.<\/p>\n<h3>\u0413\u0434\u0435 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432\u044b\u0432\u043e\u0434\u044b \u044d\u0442\u043e\u0433\u043e \u0440\u0430\u0437\u0431\u043e\u0440\u0430<\/h3>\n<p>\u0423\u0434\u0430\u043b\u043e\u0441\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0434\u0432\u0435 \u0442\u043e\u0447\u043a\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430, \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u043e\u0434\u043d\u0443 \u0446\u0435\u043f\u043e\u0447\u043a\u0443 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0441\u0442\u0430\u0434\u0438\u0439, \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0442\u0440\u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043c\u043e\u0434\u0443\u043b\u044f \u0438 \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0438\u0445 C2, \u0441\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u0443\u044e shell. \u041d\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u044b \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c, \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0438 \u0442\u0435\u043b\u043e \u0432\u0442\u043e\u0440\u043e\u0433\u043e payload \u0441 <code>vantaralabs[.]online<\/code>; \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0441\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437. \u041d\u0435\u0442 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0439 \u043f\u0440\u0438\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u043e\u0431\u0440\u0430\u0437\u0435\u0446 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u0433\u0440\u0443\u043f\u043f\u0435 \u0438\u043b\u0438 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u043c\u0443 \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u0443 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e \u0438\u043c\u0435\u043d\u0430\u043c \u0432 README, Git remote \u0438\u043b\u0438 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445.<\/p>\n<p>\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0443\u0440\u043e\u043a \u044d\u0442\u043e\u0433\u043e \u0441\u043b\u0443\u0447\u0430\u044f \u2014 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0432\u0435\u0441\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442 \u0434\u043e \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u00ab\u0441\u043b\u0443\u0436\u0435\u0431\u043d\u043e\u0433\u043e\u00bb \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f. \u0418\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u0430\u044f \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0441 <code>npm install<\/code> \u0438\u043b\u0438 \u043a\u043d\u043e\u043f\u043a\u0438 Run. \u0415\u0441\u043b\u0438 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u043c\u0438 \u043f\u0440\u0438\u0435\u0445\u0430\u043b\u0430 \u0447\u0443\u0436\u0430\u044f <code>.git<\/code>, \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u00ab\u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u0432\u0435\u0442\u043a\u0443\u00bb \u0443\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u044c \u0433\u0440\u0430\u043d\u0438\u0446\u0443 \u0434\u043e\u0432\u0435\u0440\u0438\u044f.<\/p>\n<\/div>\n<p>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/1105540\/\">https:\/\/habr.com\/ru\/articles\/1105540\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u041f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b, \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440 \u0441 \u0440\u0435\u043a\u0440\u0443\u0442\u0435\u0440\u043e\u043c, \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u043e\u0435\u043a\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0441\u044f\u0442 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043f\u0435\u0440\u0435\u0434 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u044d\u0442\u0430\u043f\u043e\u043c. \u0414\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u044d\u0442\u043e \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c. \u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043d\u0430 \u0442\u0430\u043a \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u0430\u0442\u0430\u043a\u0438: \u0447\u0443\u0436\u043e\u0439 \u043a\u043e\u0434 \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u043d\u0430 \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440 \u0432 \u043c\u043e\u043c\u0435\u043d\u0442, \u043a\u043e\u0433\u0434\u0430 \u043e\u0442 \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u0430 \u043e\u0436\u0438\u0434\u0430\u044e\u0442, \u0447\u0442\u043e \u043e\u043d \u0435\u0433\u043e \u0438\u0437\u0443\u0447\u0438\u0442 \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442.\u0412 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0441\u043e \u0432\u0437\u043b\u043e\u043c\u043e\u043c Binance \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438\u0437 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430. \u0412 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u043c \u043e\u0442\u0447\u0451\u0442\u0435 \u0431\u0438\u0440\u0436\u0438 \u043e\u0442 3 \u043d\u043e\u044f\u0431\u0440\u044f 2026 \u0433\u043e\u0434\u0430 \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0444\u0430\u043b\u044c\u0448\u0438\u0432\u043e\u0435 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435: \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u0443 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u043d\u043e\u0432\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443, \u043f\u0440\u043e\u0432\u0435\u043b\u0438 \u0434\u0432\u0430 \u044d\u0442\u0430\u043f\u0430 \u0438\u043d\u0442\u0435\u0440\u0432\u044c\u044e \u0438 \u0434\u0430\u043b\u0438 \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u0441 \u0432\u0440\u0435\u0434\u043e\u043d\u043e\u0441\u043d\u044b\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u043c. \u0414\u0430\u043b\u044c\u0448\u0435 \u0430\u0442\u0430\u043a\u0430 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0438\u043b\u0430\u0441\u044c \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0438 \u0437\u0430\u0442\u0440\u043e\u043d\u0443\u043b\u0430 Wallet DevOps. \u0423\u0442\u043e\u0447\u043d\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043b\u0435\u0433\u043a\u043e \u043f\u043e\u0442\u0435\u0440\u044f\u0442\u044c \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0441\u043a\u0430\u0437\u0435: \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b Software Engineer B, \u0430 \u0434\u043e\u0441\u0442\u0443\u043f \u043a DevOps-\u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0443 A \u0438 \u0435\u0433\u043e \u0442\u043e\u043a\u0435\u043d\u0443 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u043f\u043e\u0437\u0436\u0435. \u041f\u043e \u0432\u0435\u0440\u0441\u0438\u0438 Binance, \u044d\u0442\u043e \u0431\u044b\u043b\u0430 \u043c\u043d\u043e\u0433\u043e\u044d\u0442\u0430\u043f\u043d\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f, \u0430 \u043d\u0435 \u043e\u0434\u0438\u043d \u0437\u0430\u043f\u0443\u0441\u043a \u0430\u0440\u0445\u0438\u0432\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e \u043e\u0442\u043a\u0440\u044b\u043b \u0434\u043e\u0441\u0442\u0443\u043f \u043a\u043e \u0432\u0441\u0435\u043c \u043a\u043e\u0448\u0435\u043b\u044c\u043a\u0430\u043c.\u0421\u0435\u0432\u0435\u0440\u043e\u043a\u043e\u0440\u0435\u0439\u0441\u043a\u0438\u0439 \u0441\u043b\u0435\u0434 \u0432 \u044d\u0442\u043e\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0442\u043e\u0436\u0435 \u0438\u043c\u0435\u0435\u0442 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a: Binance \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0430\u0442\u0440\u0438\u0431\u0443\u0446\u0438\u044e \u0424\u0411\u0420, \u0430 Chainalysis \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0434\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043d\u0430\u0439\u043c\u0430 \u0432 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u041a\u041d\u0414\u0420 \u0430\u0442\u0430\u043a\u0430\u0445. \u041d\u043e \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u044d\u0442\u0430 \u0442\u0435\u043c\u0430 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043b\u0430 \u0431\u044b\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u043e\u0432\u043e\u0441\u0442\u044c\u044e, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u0445\u043e\u0436\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u0441\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u0441 \u0442\u043e\u0432\u0430\u0440\u0438\u0449\u0435\u043c.\u041e\u043d \u043f\u043e\u043f\u0430\u043b\u0441\u044f \u043d\u0430 \u0442\u0430\u043a\u0443\u044e \u0436\u0435 \u043f\u043e \u0444\u043e\u0440\u043c\u0435 \u043f\u0440\u0438\u043c\u0430\u043d\u043a\u0443: \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u00ab\u0440\u0430\u0431\u043e\u0442\u043e\u0434\u0430\u0442\u0435\u043b\u0438\u00bb \u043f\u0440\u0438\u0441\u043b\u0430\u043b\u0438 \u0435\u043c\u0443 \u0430\u0440\u0445\u0438\u0432 \u0441 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c. \u042d\u0442\u043e\u0442 \u0430\u0440\u0445\u0438\u0432 \u043e\u043d \u043f\u0435\u0440\u0435\u0434\u0430\u043b \u043c\u043d\u0435 \u043d\u0430 \u0430\u043d\u0430\u043b\u0438\u0437. \u0412\u043e\u0437\u043d\u0438\u043a\u043b\u043e \u043f\u043e\u0434\u043e\u0437\u0440\u0435\u043d\u0438\u0435 \u043d\u0430 \u0442\u0443 \u0441\u0430\u043c\u0443\u044e \u0441\u0445\u0435\u043c\u0443 \u0441 \u0441\u0435\u0432\u0435\u0440\u043e\u043a\u043e\u0440\u0435\u0439\u0441\u043a\u0438\u043c\u0438 \u0445\u0430\u043a\u0435\u0440\u0430\u043c\u0438 \u043f\u043e\u0434 \u0432\u0438\u0434\u043e\u043c \u043d\u0430\u043d\u0438\u043c\u0430\u044e\u0449\u0435\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438. \u041b\u0438\u0447\u043d\u043e\u0441\u0442\u044c \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u0435\u0439 \u0435\u0449\u0451 \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u044f\u043b\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c. \u042f \u043d\u0430\u0447\u0430\u043b \u0441 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e: \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0430\u0440\u0445\u0438\u0432\u0430 \u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u043e\u0434 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043f\u043e\u0441\u043b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434 \u0438\u0437 README.\u042f \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b \u0430\u0440\u0445\u0438\u0432 \u0432 Codex \u0441 \u043c\u043e\u0434\u0435\u043b\u044c\u044e Astra \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 Extra High \u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043b \u044d\u0442\u043e\u0442 \u043e\u0442\u0447\u0451\u0442. \u0417\u0430\u0434\u0430\u0447\u0443 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043b \u0436\u0451\u0441\u0442\u043a\u043e: \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442 \u0432\u0440\u0430\u0436\u0434\u0435\u0431\u043d\u044b\u043c, \u043d\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, hooks \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0449\u0438\u043a\u0438, \u0430 \u0437\u0430\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u0430\u043a \u0434\u0430\u043d\u043d\u044b\u0435. \u041c\u0435\u043d\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u043b\u043e, \u0433\u0434\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435, \u043a\u0430\u043a\u0438\u0435 \u0444\u0430\u0439\u043b\u044b \u043f\u044b\u0442\u0430\u044e\u0442\u0441\u044f \u0437\u0430\u0431\u0440\u0430\u0442\u044c \u0438 \u043a\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u00ab\u0440\u0430\u0431\u043e\u0442\u043e\u0434\u0430\u0442\u0435\u043b\u044c\u00bb \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u043d\u0430 \u0447\u0443\u0436\u043e\u043c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435.\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0435 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u043e\u0437\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e npm install: \u043f\u0435\u0440\u0432\u0430\u044f \u043b\u043e\u0432\u0443\u0448\u043a\u0430 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b\u0430 \u0443\u0436\u0435 \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 Git-\u0432\u0435\u0442\u043a\u0438. \u0414\u0430\u043b\u044c\u0448\u0435 \u043d\u0430\u0448\u043b\u0438\u0441\u044c \u0441\u043a\u0440\u044b\u0442\u044b\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a, \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0433\u0430\u0431\u0430\u0439\u0442 \u043e\u0431\u0444\u0443\u0441\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e JavaScript, \u0441\u0431\u043e\u0440 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u0430\u044f \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u0430\u044f shell.\u0421\u0440\u0430\u0437\u0443 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0443 \u0433\u0440\u0430\u043d\u0438\u0446\u0443: \u0441\u0432\u044f\u0437\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e\u0433\u043e \u0430\u0440\u0445\u0438\u0432\u0430 \u0441 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430\u043c\u0438 \u0430\u0442\u0430\u043a\u0438 \u043d\u0430 Binance \u0438\u043b\u0438 \u0441 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0441\u0435\u0432\u0435\u0440\u043e\u043a\u043e\u0440\u0435\u0439\u0441\u043a\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u043e\u0439 \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430. \u0421\u0445\u043e\u0434\u0441\u0442\u0432\u043e \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f \u2014 \u043f\u043e\u0432\u043e\u0434 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043e\u0431\u0440\u0430\u0437\u0435\u0446, \u0430 \u043d\u0435 \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e \u0430\u0442\u0440\u0438\u0431\u0443\u0446\u0438\u0438. \u041d\u0438\u0436\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0440\u0430\u0437\u0431\u043e\u0440 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c \u043f\u043e \u043a\u043e\u0434\u0443.\u00ab\u041f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u0432\u0435\u0442\u043a\u0443\u00bb\u0410\u0440\u0445\u0438\u0432 \u0441 \u0438\u0433\u0440\u043e\u0432\u044b\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043d\u0430\u0447\u0430\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0441 \u043e\u0448\u0438\u0431\u043a\u0438: \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0435\u0440\u0432\u0443\u044e \u0436\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u0438\u0437 README. \u0422\u0430\u043c \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u043b\u043e\u0441\u044c \u043f\u0435\u0440\u0435\u0434 \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e\u043c \u0441 \u043a\u043e\u0434\u043e\u043c \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u0432\u0435\u0442\u043a\u0443 video. \u0417\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0435\u0449\u0451 \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b, \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043e \u2014 \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u043d\u0438\u0447\u0435\u0433\u043e \u043e\u043f\u0430\u0441\u043d\u043e\u0433\u043e \u043f\u043e\u043a\u0430 \u043d\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442. \u041e\u0434\u043d\u0430\u043a\u043e \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u043c\u0438 \u0432 ZIP \u043b\u0435\u0436\u0430\u043b \u043a\u0430\u0442\u0430\u043b\u043e\u0433 .git, \u0430 \u0432 \u043d\u0451\u043c \u2014 \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 post-checkout, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043b \u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u043b \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u043a\u043e\u0434.\u0421\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0440\u0430\u0437\u0431\u043e\u0440 \u044d\u0442\u043e\u0439 \u0446\u0435\u043f\u043e\u0447\u043a\u0438 \u043f\u0440\u0438\u0432\u0451\u043b \u043a JavaScript-\u0444\u0430\u0439\u043b\u0443 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 4,5 \u041c\u0411. \u0417\u0430 \u043e\u0431\u0444\u0443\u0441\u043a\u0430\u0446\u0438\u0435\u0439 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b\u0438\u0441\u044c \u0442\u0440\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b: \u0441\u0431\u043e\u0440\u0449\u0438\u043a \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043a\u043e\u0448\u0435\u043b\u044c\u043a\u043e\u0432, \u0441\u0431\u043e\u0440\u0449\u0438\u043a \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0438 RAT \u0441 \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0439 shell. \u041e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043d\u0430\u0448\u043b\u0430\u0441\u044c \u0432 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f \u2014 \u0432\u043d\u0443\u0442\u0440\u0438 \u043c\u043e\u0434\u0443\u043b\u044f \u0441 \u043d\u0435\u043f\u0440\u0438\u043c\u0435\u0442\u043d\u044b\u043c \u0438\u043c\u0435\u043d\u0435\u043c server\/config\/.svn\/env.module.\u041d\u0438\u0436\u0435 \u2014 \u0440\u0430\u0437\u0431\u043e\u0440 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u0430\u0442\u0430\u043a\u0430, \u043a\u0430\u043a\u0438\u0435 \u0432\u044b\u0432\u043e\u0434\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0442 \u0438\u0437 \u043a\u043e\u0434\u0430 \u0438 \u0433\u0434\u0435 \u043b\u0435\u0433\u043a\u043e \u043f\u0435\u0440\u0435\u043e\u0446\u0435\u043d\u0438\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043e\u0431\u0440\u0430\u0437\u0446\u0430. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b \u0434\u0432\u0435 \u0434\u0435\u0442\u0430\u043b\u0438: \u043e\u0442\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438 \u043f\u0430\u0440\u043e\u043b\u0435\u0439 \u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0439 \u0444\u0438\u043b\u044c\u0442\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0437-\u0437\u0430 \u0441\u043b\u043e\u0432\u0430 user \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0434\u0430\u043d\u043d\u044b\u0445, \u0447\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u043f\u043e \u0435\u0433\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044e.\u041a\u043e\u043d\u0446\u0435\u043f\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u044f: \u0441\u043a\u0440\u044b\u0442\u044b\u0439 hook \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u0430\u043f\u043a\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0441 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u043e\u043c\u0427\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043b\u043e\u0441\u044c\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442 \u2014 game-demo.zip, 28 675 021 \u0431\u0430\u0439\u0442. \u0410\u043d\u0430\u043b\u0438\u0437 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d 7 \u043d\u043e\u044f\u0431\u0440\u044f 2026 \u0433\u043e\u0434\u0430. \u041d\u0430 \u043c\u043e\u0451\u043c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435 \u0430\u0440\u0445\u0438\u0432 \u043e\u0441\u0442\u0430\u0432\u0430\u043b\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f: \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0438\u0437 README \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0438\u0441\u044c. \u041d\u0430\u043b\u0438\u0447\u0438\u0435 \u0432\u0440\u0435\u0434\u043e\u043d\u043e\u0441\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u043e, \u043d\u043e \u044d\u0442\u043e\u0442 \u0440\u0430\u0437\u0431\u043e\u0440 \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0444\u0430\u043a\u0442 \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430 \u0442\u043e\u0432\u0430\u0440\u0438\u0449\u0430 \u0438\u043b\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u0432\u0448\u0435\u0439\u0441\u044f \u0443\u0442\u0435\u0447\u043a\u0438: \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u044b \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u0435\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.\u0412 \u0440\u0430\u0431\u043e\u0442\u0435 \u0431\u044b\u043b\u0438 \u0434\u0432\u0435 \u0447\u0430\u0441\u0442\u0438. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u0435\u0441\u044c \u0430\u0440\u0445\u0438\u0432, Git metadata \u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e. \u0417\u0430\u0442\u0435\u043c \u0431\u044b\u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u044b \u043a\u0430\u043a \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0432\u043d\u0435\u0448\u043d\u0438\u0435 \u0441\u0442\u0430\u0434\u0438\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0441\u044b\u043b\u0430\u043b\u0441\u044f hook. \u041d\u0438 hook, \u043d\u0438 bootstrap, \u043d\u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043d\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043b\u0438\u0441\u044c. \u041a \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u043c\u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u043b\u0438\u0441\u044c, \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044e \u00ab\u0436\u0435\u0440\u0442\u0432\u044b\u00bb \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0438 \u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0443 \u043d\u0435\u0433\u043e \u043d\u0435 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u043b\u0438.\u042d\u0442\u043e \u0432\u0430\u0436\u043d\u0430\u044f \u0433\u0440\u0430\u043d\u0438\u0446\u0430 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0446\u0438\u0438: \u0444\u0440\u0430\u0437\u0430 \u00ab\u043a\u043e\u0434 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0444\u0430\u0439\u043b\u00bb \u043d\u0438\u0436\u0435 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u043f\u0443\u0442\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f, \u0430 \u043d\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0432\u0448\u0438\u0439\u0441\u044f \u0432 \u0441\u0435\u0442\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u0439 upload. \u0421\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043f\u0440\u0430\u0432, \u0441\u0440\u0435\u0434\u044b, \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0438 \u043e\u0442\u0432\u0435\u0442\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u043d\u0435\u043b\u044c\u0437\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u043c\u0443 \u043a\u043e\u0434\u0443.\u0410\u0434\u0440\u0435\u0441\u0430 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u043e\u0431\u0435\u0437\u0432\u0440\u0435\u0436\u0435\u043d\u044b \u0437\u0430\u043f\u0438\u0441\u044c\u044e [.] \u0438 hxxp. \u042d\u0442\u043e \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0434\u043b\u044f \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441 \u0436\u0443\u0440\u043d\u0430\u043b\u0430\u043c\u0438, \u0430 \u043d\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u043c.1. \u0410\u0440\u0445\u0438\u0432 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043b \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438\u041e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 ZIP \u0431\u044b\u043b \u0441\u043e\u0445\u0440\u0430\u043d\u0451\u043d, \u0440\u044f\u0434\u043e\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u0430 \u043f\u043e\u0431\u0430\u0439\u0442\u043e\u0432\u0430\u044f \u0440\u0430\u0431\u043e\u0447\u0430\u044f \u043a\u043e\u043f\u0438\u044f. SHA-256 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430:a82fa42e1d48fb20b5d534a4a3b62c5ade871a723a0b7107b550c25c40983164\u0414\u043e \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u043b\u0438\u0441\u044c \u0438\u043c\u0435\u043d\u0430 entries, \u0432\u044b\u0445\u043e\u0434\u044b \u0437\u0430 \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433, \u0441\u0438\u043c\u0432\u043e\u043b\u044c\u043d\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430. \u0412 \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u043a\u043e\u043f\u0438\u0438 \u0444\u0430\u0439\u043b\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0435 \u0440\u0435\u0436\u0438\u043c\u044b; \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0441\u044c \u0432 manifest. \u0421\u0430\u043c \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u0440\u0445\u0438\u0432 \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u043b\u0441\u044f.\u0412 ZIP \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c 558 entries, \u0438\u0437 \u043d\u0438\u0445 346 \u0444\u0430\u0439\u043b\u043e\u0432. \u0412\u043d\u0443\u0442\u0440\u0438 \u043b\u0435\u0436\u0430\u043b\u0430 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u0430\u044f .git: \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f, hooks, refs, index \u0438 loose objects. \u042d\u0442\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u0430\u0440\u0445\u0438\u0432\u0430 tracked-\u0444\u0430\u0439\u043b\u043e\u0432: \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u043c\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044c \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f.Git \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0437\u0446\u0430 \u043d\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043b\u0441\u044f. \u041e\u0431\u044a\u0435\u043a\u0442\u044b \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u043b\u0438\u0441\u044c \u043a\u0430\u043a \u0434\u0430\u043d\u043d\u044b\u0435: zlib, \u0440\u0430\u0437\u0431\u043e\u0440 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u0442\u0438\u043f\u0430 \u0438 \u0434\u043b\u0438\u043d\u044b, \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 object ID, \u0437\u0430\u0442\u0435\u043c \u0447\u0442\u0435\u043d\u0438\u0435 commit\/tree\/blob. \u0411\u044b\u043b\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u044b \u0432\u0441\u0435 268 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432: 183 blob, 82 tree \u0438 \u0442\u0440\u0438 commit. Pack-\u0444\u0430\u0439\u043b\u043e\u0432 \u043d\u0435 \u0431\u044b\u043b\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u043d\u0435 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u043b\u0441\u044f \u0440\u0430\u0437\u0431\u043e\u0440 pack\/delta.\u0421\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0442\u0440\u0451\u0445 \u0432\u0435\u0442\u043e\u043a \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u043b\u043e\u0441\u044c:\u0412\u0435\u0442\u043a\u0430\u0424\u0430\u0439\u043b\u043e\u0432\u041f\u0443\u0441\u0442\u044b\u0445\u0427\u0442\u043e \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0432\u043d\u0443\u0442\u0440\u0438main5148\u041f\u043e\u0447\u0442\u0438 \u043f\u0443\u0441\u0442\u043e\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u0438 README \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0435\u0439video32\u041e\u0434\u0438\u043d \u043d\u0435\u043f\u0443\u0441\u0442\u043e\u0439 MP4 \u0438 \u0434\u0432\u0430 \u043f\u0443\u0441\u0442\u044b\u0445 \u0432\u0438\u0434\u0435\u043e\u0444\u0430\u0439\u043b\u0430staging1891\u041a\u043e\u0434 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u0432\u0442\u043e\u0440\u043e\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u0438\u0434\u0438\u043c\u043e\u0433\u043e \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u0434\u0435\u0440\u0435\u0432\u0430 \u0434\u0430\u043b\u0430 \u0431\u044b \u043d\u0435\u043f\u043e\u043b\u043d\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u0443. \u041f\u043e\u043b\u0435\u0437\u043d\u044b\u0439 \u0434\u043b\u044f \u0430\u0442\u0430\u043a\u0438 \u043a\u043e\u0434 \u043b\u0435\u0436\u0430\u043b \u0438 \u0432 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 .git, \u0438 \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u0434\u0435\u0440\u0435\u0432\u0435 \u0438\u0441\u0442\u043e\u0440\u0438\u0438. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c timestamps \u0438 reflog \u0438\u0437 \u0430\u0440\u0445\u0438\u0432\u0430 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442 \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0441\u0430\u043c\u043e\u0433\u043e \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0430 \u2014 \u0438\u0445 \u043d\u0435\u043b\u044c\u0437\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0430\u043c\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u043d\u0430 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044f.2. \u041f\u043e\u0447\u0435\u043c\u0443 \u043f\u0440\u043e\u0441\u044c\u0431\u0430 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0432\u0435\u0442\u043a\u0443 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u0442\u043e\u0447\u043a\u043e\u0439 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0412 .git\/hooks\/ \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b\u0441\u044f \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 post-checkout, 826 \u0431\u0430\u0439\u0442. \u0412 ZIP \u0443 \u043d\u0435\u0433\u043e \u0431\u044b\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0435 Unix-\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b. \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0435 hooks \u043b\u0438\u0431\u043e \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0438, \u043b\u0438\u0431\u043e \u0438\u043c\u0435\u043b\u0438 \u0441\u0443\u0444\u0444\u0438\u043a\u0441 .sample.\u0412 \u043e\u0431\u044b\u0447\u043d\u043e\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 Git \u0438\u0449\u0435\u0442 hooks \u0432 $GIT_DIR\/hooks; \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 core.hooksPath \u043c\u043e\u0436\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u0443\u0442\u044c. post-checkout \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u0434\u0435\u0440\u0435\u0432\u0430 \u043f\u0440\u0438 checkout \u0438\u043b\u0438 switch \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043f\u0440\u0435\u0436\u043d\u0438\u0439 HEAD, \u043d\u043e\u0432\u044b\u0439 HEAD \u0438 \u0444\u043b\u0430\u0433 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0432\u0435\u0442\u043a\u0438 \u043b\u0438\u0431\u043e \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430. \u042d\u0442\u043e \u0448\u0442\u0430\u0442\u043d\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0435 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 Git.\u0412 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u043d\u043e\u043c .git\/config \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f core.hooksPath \u0438 init.templateDir \u043d\u0435 \u0431\u044b\u043b\u043e. \u041e\u043d\u043e \u0438 \u043d\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c: \u0432\u0440\u0435\u0434\u043e\u043d\u043e\u0441\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0443\u0436\u0435 \u043b\u0435\u0436\u0430\u043b \u043f\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u043c\u0443 \u043f\u0443\u0442\u0438. README \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u043b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c git checkout video, \u0430 hook \u043d\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u043b \u043d\u0438 \u0438\u043c\u044f \u0432\u0435\u0442\u043a\u0438, \u043d\u0438 \u0442\u0440\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430. \u0421\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0435 \u0441\u043b\u043e\u0432\u043e video \u0441\u043b\u0443\u0436\u0438\u043b\u043e \u043f\u043e\u0432\u043e\u0434\u043e\u043c \u0434\u043b\u044f \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043d\u043e \u043d\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u043b\u043e \u0441\u0430\u043c \u0442\u0440\u0438\u0433\u0433\u0435\u0440.\u041b\u043e\u0433\u0438\u043a\u0430 hook \u0431\u044b\u043b\u0430 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439:\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 uname -s\u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 hookDarwin\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 bootstrap \u0447\u0435\u0440\u0435\u0437 curl \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u043e\u0442\u0432\u0435\u0442 BashLinux\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 bootstrap \u0447\u0435\u0440\u0435\u0437 wget \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u043e\u0442\u0432\u0435\u0442 BashMINGW\/MSYS\/CYGWIN\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 PowerShell; \u043e\u0442\u0432\u0435\u0442 Invoke-RestMethod \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0441\u044f \u0432 Invoke-Expression\u041f\u0440\u043e\u0447\u0435\u0435\u0417\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u2014 nexorolabs[.]store, \u043f\u0443\u0442\u0438 \/api\/terminal\/bootstrap \u0438 \/api\/terminal\/windows. \u0414\u043b\u044f Unix-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c \u0432 query \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0441\u044f os=mac \u0438\u043b\u0438 os=linux, \u0432\u043e \u0432\u0441\u0435\u0445 \u0442\u0440\u0451\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u2014 flag=3. \u0422\u043e\u0447\u043d\u044b\u0439 \u0441\u043c\u044b\u0441\u043b \u044d\u0442\u043e\u0433\u043e \u0444\u043b\u0430\u0433\u0430 \u043f\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u043c\u0443 \u043a\u043e\u0434\u0443 \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d.\u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u0432 \u0444\u0430\u0439\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u043b\u0438 \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u0435\u043d\u0438\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u043e\u0433\u043e \u0438\u043b\u0438 \u0444\u043e\u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f, \u043e\u0434\u043d\u0430\u043a\u043e \u043a\u043e\u0434 \u0431\u044b\u043b \u0430\u043a\u0442\u0438\u0432\u0435\u043d. \u0412 hook \u043d\u0435\u0442 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 &amp;: \u0441\u0430\u043c \u043e\u043d \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0446\u0435\u043f\u043e\u0447\u043a\u0443 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e. \u0412\u044b\u0432\u043e\u0434 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440\u0430 \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d, \u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u044b\u0435 \u0432\u0435\u0442\u043a\u0438 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f exit 0. \u0423\u0436\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0441\u0442\u0430\u0434\u0438\u044f \u043e\u0442\u0434\u0435\u043b\u044f\u0435\u0442 \u0444\u043e\u043d\u043e\u0432\u044b\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u043e\u0442 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f.\u0417\u0434\u0435\u0441\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0442\u044c Git-\u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f. \u0421\u0430\u043c checkout \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u043d \u0431\u044b\u0442\u044c \u0432\u0440\u0435\u0434\u043e\u043d\u043e\u0441\u043d\u044b\u043c, \u043d\u043e \u0432 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u043e\u0439 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 ZIP \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0435\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0435\u0433\u043e \u0441\u043e\u0431\u044b\u0442\u0438\u044f. \u041e\u0431\u044b\u0447\u043d\u044b\u0439 clone \u043d\u0435 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442 \u0447\u0443\u0436\u043e\u0439 .git\/hooks \u043a\u0430\u043a tracked-\u0444\u0430\u0439\u043b; \u0430\u0440\u0445\u0438\u0432 \u0433\u043e\u0442\u043e\u0432\u043e\u0433\u043e \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 \u043c\u043e\u0436\u0435\u0442 \u0435\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c.\u0414\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430: README.md:13\u201325, .git\/hooks\/post-checkout:40\u201357, .git\/config:1\u201311, \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b ZIP entry. \u041d\u0430\u043b\u0438\u0447\u0438\u0435 \u0438 \u043b\u043e\u0433\u0438\u043a\u0430 hook \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u044b \u043a\u043e\u0434\u043e\u043c; \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0443 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044f \u043d\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u043b\u043e\u0441\u044c.\u0421\u0445\u0435\u043c\u0430 \u0446\u0435\u043f\u043e\u0447\u043a\u0438: ZIP \u0441 .git, checkout, post-checkout, bootstrap, Node, worker \u0438 \u0442\u0440\u0438 \u043c\u043e\u0434\u0443\u043b\u044f\u0421\u0445\u0435\u043c\u0430 1. \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0446\u0435\u043f\u043e\u0447\u043a\u0430 \u0438 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u0432\u0445\u043e\u0434\u0430 \u0432 staging. \u0421\u0442\u0440\u0435\u043b\u043a\u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u043f\u043e \u043a\u043e\u0434\u0443; \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0437\u0430\u043f\u0443\u0441\u043a \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0441\u044f.3. \u0412\u0442\u043e\u0440\u043e\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a \u0441\u043a\u0440\u044b\u0432\u0430\u043b\u0441\u044f \u0432 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438\u041f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b\u0430\u0441\u044c \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u0430\u044f \u0446\u0435\u043f\u043e\u0447\u043a\u0430 \u0432 staging:package.json: start\/dev\/server    \u2192 server\/app.js    \u2192 server\/config\/cookie.js    \u2192 server\/config\/.svn\/env.module    \u2192 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 JavaScript\u0412 \u043d\u0430\u0447\u0430\u043b\u0435 cookie.js \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f dotenv, \u0430 \u0437\u0430\u0442\u0435\u043c \u0441\u043a\u0440\u044b\u0442\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c:require(&#8216;dotenv&#8217;).config();require(&#8216;.\/.svn\/env.module&#8217;);\u0412 env.module URL \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d Base64-\u0441\u0442\u0440\u043e\u043a\u043e\u0439. \u0414\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u043a \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u0430\u043b\u043e hxxps:\/\/vantaralabs[.]online\/api\/terminal\/script?flag=3. \u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0442\u0435\u043a\u0441\u0442\u0430 loader \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u0435\u0433\u043e \u0432 new Function(&#171;require&#187;, response)(require). \u041f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0439 require \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u043c\u0443 \u043a\u043e\u0434\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f Node-\u043c\u043e\u0434\u0443\u043b\u044f\u043c\u0438 \u0441 \u043f\u0440\u0430\u0432\u0430\u043c\u0438 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430; sandbox \u0432 \u044d\u0442\u043e\u0439 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043d\u0435\u0442.\u0418\u043c\u044f .svn \u0437\u0434\u0435\u0441\u044c \u2014 \u0441\u043f\u043e\u0441\u043e\u0431 \u0441\u043f\u0440\u044f\u0442\u0430\u0442\u044c \u0444\u0430\u0439\u043b \u0432 \u043d\u0435\u043f\u0440\u0438\u043c\u0435\u0442\u043d\u043e\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435. \u041e\u043d\u043e \u043d\u0435 \u0434\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 Subversion. \u0418\u043c\u044f cookie.js \u0442\u043e\u0436\u0435 \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u0442 \u0432\u0435\u0441\u044c \u0444\u0430\u0439\u043b cookie-stealer: \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f cookies \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-502323","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/502323","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=502323"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/502323\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=502323"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=502323"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=502323"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}