一、先说被挂马的文件吧。
木马文件一般会伪装成正常文件,或者非可执行文件,以达到欺骗的目的。
比方说,伪装成icon图标文件。
找到一个伪装的文件,用编辑器打开,就会发现里面是源码。
这种的工作原理大概是,在某一个正常的文件中用include引入这个图标文件,
然后,文件中的代码就被不知不觉的跟随正常的应用文件执行了。
同时,为了达到隐藏的目的,include的代码也不是显式的写的。
例如:@include "\x2fh\x6fm\x65/\x77w\x77r\x6fo\x74/\x64e\x66a\x75l\x74/\x77p
这里有一点要注意,\xdd这样的写法,其中dd是16进制数,用这样的元字符来代替
相应的字母,以达到隐式拼接路径的目的。
下面说怎么查找:
我用的命令是:
grep --color -i -r -n "@include" /home/
其他方法可查看这个链接。
这样就可以在指定位置,比如“/home/”目录里查看所有包含“@include”的文件
然后用文本编辑器打开疑似木马文件的那个文件,看是否是代码。
如果是,找出其代表性的字符。比如,define的常量。
接下来就用类似上面的步骤,查找出具有相同特征的文件就行了。
二、用Nginx做反向代理
先上代码:
location / { proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; if ($remote_addr ~* 255.255.255.0){ proxy_pass http://127.0.0.1:8080; break; } proxy_pass https://www.baidu.com; }
其中如果是255.255.255.0这个IP来访问,则跳转到本地8080端口
前提是要打开并监听这个端口
如果不是,则跳转到百度
这里有一点要注意,if条件里面,如果包含路径,要用$request_uri来代替。
同时,如果if中不使用proxy_pass则不会执行if里面的配置。
也附上链接地址。