安全日志审计
在Debian和Ubuntu系统中,登录日志记录在/var/log/auth.log
中,同路径下的messages
中包含了巨量的系统信息,查看时建议使用==less==。
同时,查询全部ssh失败登录命令
1 | grep -i Failed /var/log/auth.log |
1 | grep -i Accepted /var/log/auth.log |
统计登陆成功或失败的ip,并进行去重降序排序
1 | grep -i Failed /var/log/auth.log |awk '{print $(NF-3)}' |grep '^[0-9]' |sort |uniq -c |sort -rn |
其中$(NF-3)
是指当前行的倒数第三列的连续字符串(以空格分割),该字段表示的是ip地址,grep '^[0-9]'
表示用正则表达式保证字段为ip,sort
是排序,uniq -c
是统计次数.
显示最近几次的登录状态
1 | last -a -10 |
从上图的still logged in
字段可以看出当前的登录账号人数,可以查出恶意入侵,在确定非自己登录时候,接下来该查询对方登录的端口进行后续操作。如
1 | ss -anput | grep ":22" |
测试
kali作为攻击机,ssh登录了服务器
我们发现又额外用户持续登录,现检测ssh端口的连接状态
ss -anput |grep ":22"
观察进程和ip确定攻击者所使用的进程,使用命令kill -9 12260
将对方进程杀死
可以看到,kali的shell已经断开了连接,然后检测其留下的后门。
chattr +i
命令,让对应文件无法读写,直接锁上
筛选指定时间以前的内容
1 | last -a -t 20190210123030 |
Linux用户登录信息放在三个文件中:
1 /var/run/utmp:记录当前正在登录系统的用户信息,默认由who和w记录当前登录用户的信息,uptime记录系统启动时间;
2 /var/log/wtmp:记录当前正在登录和历史登录系统的用户信息,默认由last命令查看;
3 /var/log/btmp:记录失败的登录尝试信息,默认由lastb命令查看。
查询USER
w
top
但一般不准确
查询计划任务
第一个位置
当产生入侵后,对方可能留有计划任务以产生持续性后门
查看root用户的日志
crontab -l
同时,系统的计划任务日志为
1 | less /var/log/cron |
写一个5分钟更改一次密码的定时任务
先输入crontab -e
1 | */5 * * * * echo 123 | passwd --stdin root |
该内容储存在/var/spool/cron/root
里,删除可以使用crontab -u root -r
进行删除
第二个位置
/etc/rc.local
,每次启动都会执行一次里面的内容
查看异常流量
==补充==
防止恶意删除日志,可以将日志文件添加一个只可追加的属性,防止被删内容
使用iftop -i eth0
检测网卡流量情况
TX发送,RX接收,peak峰值,cum总量,rates平均速率
当kali机ping后情况
tcpdump和udpdump
输入tcpdump -i eth0 -nnv
,抓取ssh登录的tcp数据包
在登陆前tos显示的为0x0
,输入错误密码也显示0x0
,通过其可以判断服务器的入侵状态,是否被登录。
对比无ssh连接状态的情况,如下图
并无反应,我们也可输入抓取指定数量的数据包tcpdump -i eth0 -nnv -c 10
tcpdump -i eth0 -nnv -w ./file1.tcpdump
tcpdump -i eth0 -r ./file1.tcpdump
可以将整个过程的数据保存下来,ctrl+C退出,在时间段内进行的流量操作均被写入该文件中
tcpdump -i eth0 -nnv port 22
指定监听22端口的数据包
tcpdump -i eth0 -nnv net 192.168.122.0/24
抓取指定网段的数据包
tcpdump -i eth0 -nnv host 192.168.122.2
抓指定主机间的数据包
以协议作为条件
tcpdump -i eth0 -nnv arp
tcpdump -i eth0 -nnv icmp
tcpdump -i eth0 -nnv udp
tcpdump -i eth0 -nnv tcp
tcpdump -i eth0 -nnv ip
tcpdump -i eth0 -nnv vrrp
多条件抓包
使用and
,or
,not
关系符连接
测试!
云服务器上使用命令(注意and 和not 的使用!)
1 | tcpdump -i eth0 src -nnc host xxx.xxx.xxx.xxx and not port 22 |
攻击机使用nmap进行扫描
1 | nmap -sV -O xxx.xxx.xxx.xxx |
开始无内容(为什么排除22端口,因为不排除的话全篇都是ssh连接进行的交互数据),当攻击机执行nmap扫描命令后
开始有显示
kali的nmap扫描结果如上
可疑进程检测
查看进程命令
ps
ps -anx | less
查看系统进程
带中括号,这些进程不要kill
pstree
查看进程树
其中pstree -p
可以显示带进程号的tree
top
该命令进行后,警惕将CPU占用率拉到很高的进程
netstat -anput
ss -an | grep tcp
查看各个端口的连接情况
ss -an | grep ":22"
查看22端口是否有他人连接
1 | lsof /usr/sbin/vsftpd |
查看某个文件被哪个进程所使用
- 本文作者: Isabella
- 本文链接: https://username.github.io/2023/11/22/内网日志分析/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!