浅谈入侵溯源学习

前言

看了一位大师傅的博客,然后自己又学了点其他的记录下

大师傅博客:https://oneda1sy.gitee.io/

文章地址:https://oneda1sy.gitee.io/2020/05/13/qzsy-1/

溯源思路

常下手的几个点

1
2
3
4
1.网页源码分析
2.日志分析
3.系统存储的信息分析
4.分析进程端口

网页源码分析

网页源码分析又包括几个方面

1
2
3
4
5
1.查杀后门
2.diff源码
3.查看文件时间排序
4.使用find命令查找更改的文件
5.查看文件详细信息

查杀后门

​ 可以使用 D 盾查杀是否存在网站后门,如果存在 webshell,记录下该 webshell 的信息,找到 webshell 后,就可以根据该文件的路径,在日志里查找有关信息,例如访问该文件的 IP、时间等。可以根据这些信息确定网站别入侵的时间,然后写脚本将重要信息提取出来。

diff源码

​ 查找文件被修改的地方,记录被修改的代码信息。可以根据文件的修改信息来进一步分析。

查看文件时间排序

可以根据文件的排序迅速找到被攻击者修改的文件,从而找到入侵时间。

使用find命令查找更改的文件

例:查看50分钟内修改的文件

1
[root@localhost ~]# find ./ -cmin -50 -name "*.php"                                                                 ./1.php

查看文件详细信息

1
[root@localhost ~]# stat 1.php

日志分析

网站日志分析

网站日志一般都是下列两个文件

1
2
·access.log
·error.log

网站的日志信息分析,关于日志的信息,一般都是由IP 浏览者使用的浏览器之类的信息,但是由于信息多,会导致分析的时候看的不方便,所以我就用刚学的java写了个切片处理的脚本。由于刚学,代码不够完美。大佬们轻点喷!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package a;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStreamReader;
import java.io.BufferedReader;

public class Test {

public static void main(String[] args) {
try {
FileInputStream fis = new FileInputStream(new File("D:\\test.txt"));
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
String ling = br.readLine();
String[] chs=ling.split(" ");
for (String string : chs) {
System.out.println(string);
}
} catch (Exception e) {

e.printStackTrace();
}


}

}

系统日志分析

1
2
3
4
5
6
/var/log/wtmp 登录进入,退出,数据交换、关机和重启纪录
/var/run/utmp 有关当前登录用户的信息记录
/var/log/lastlog 文件记录用户最后登录的信息,可用 lastlog 命令来查看。
/var/log/secure 记录登入系统存取数据的文件,例pop3/ssh/telnet/ftp 等都会被记录。
/var/log/cron 与定时任务相关的日志信息
/var/log/message 系统启动后的信息和错误日志

​ /var/log/wtmp 和/var/run/utmp 两个文件无法直接使用 cat 命令输出,但是可以使用一些命令来查看,比如 w/who/finger/id/last/ac/uptime

Linux的查看信息命令

last命令

该命令往回搜索 /var/log/wtmp 文件来显示自从该文件第一次创建以来所有登录过的用户:

w命令

该命令查询 /var/log/wtmp 文件并显示 当前 系统中每个用户和它所运行的进程信息:

lastlog

/var/log/lastlog 文件在每次有用户登录时被查询。可以使用 lastlog 命令来检查某特定用户上次登录的时间,并格式化输出上次登录日志 /var/log/lastlog 的内容,要以root运行命令:

系统存储的信息分析

1
2
3
4
1.history
2./etc/passwd
3.分析服务器的开机自启程序
4.查看登录信息

history

通过该命令来查看服务器上使用过的历史命令,查看是否有敏感信息。

/etc/passwd

可通过cat这个文件内容来查看是否存在可疑用户。

分析服务器的开机自启程序

1
2
3
1.ls -alt /etc/init.d
2.chkconfig
3.systemctl list-unit-files

查看登录信息

1
2
3
1 lastlog(查看系统中所有用户最近一次的登录信息)
2 lasstb (查看用户的错误登录信息)
3 last(显示用户最近登录信息)

分析进程(端口)

检查服务器是否有攻击者留下的木马文件。

首先查看端口的占用情况

1
netstat -apn|more

进一步分析可疑端口

1
ps aux|grep ‘pid’

结束可疑进程(端口)

1
2
3
kill PID
killall <进程名>  
kill - <PID>