Linux服务器被入侵后排查 安全防御 网管技术



---用户信息文件

cat  /etc/passwd


---影子文件

cat  /etc/shadow


---查看当前登录用户及登录时长

who:        查看当前登录系统的所有用户

w:            显示已经登录系统的所有用户,以及正在施行的命令

uptime:   查看登录多久,多久用户,负载情况


---查看最近登录成功的用户及信息

last

---查看最近登录失败的用户及信息

lastb

---显示所有用户最近一次登录信息

lastlog

---查看非root运行的进程

ps -U root -u root -N

---查看用户root运行的进程

ps -u root

---检测隐藏进程

ps -ef | awk '{print}' | sort -n |uniq >1

ls /proc | sort -n |uniq >2

-sort 命令将文本文件内容加以排序,可针对文本文件的内容,以行为单位来排序。-n 参数依照数值的大小排序。

-uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。

---查看进程树是否所有异常进程存在一个父进程、判断进程的父子关系

pstree -p

---查看所有tcp网络连接信息

lsof -i tcp

---查看所有udp网络连接信息

lsof -i udp


---查看所有文件,包括隐藏的文件

ls -la

-a:显示所有文件及目录,包括隐藏文件

-l:以长格式显示目录下的内容列表。

-t:用文件和目录的更改时间排序

---查看文件路径(whereis)

whereis filename

---查看文件创建时间(ls)

ls -al filname

---查找最近24小时内修改过的文件(find)

find ./ -mtime 0

find 命令用来在指定目录下查找文件。

参数 -mtime n 按照文件的更改时间来找文件,n为整数。

-mtime 0 表示文件修改时间距离当前为0天的文件,即距离当前时间不到1天(24小时)以内的文件。

-mtime 1 表示文件修改时间距离当前为1天的文件,即距离当前时间1天(24小时-48小时)的文件。

-mtime+1 表示文件修改时间为大于1天的文件,即距离当前时间2天(48小时)之外的文件

-mtime -1 表示文件修改时间为小于1天的文件,即距离当前时间1天(24小时)之内的文件

---查找以.txt结尾的文件名(find)

find / -name "*.txt"

-忽略大小写,命令:

find / -iname "*.txt"

---查找不是以.txt结尾的文件(find)

find / ! -name "*.txt"


在黑客入侵之前,必须使用chattr +a对/var/log/wtmp


---sudo用户列表

/etc/sudoers


# 查询特权用户特权用户(uid 为0):

awk -F: '$3==0{print $1}' /etc/passwd

# 查询可以远程登录的帐号信息:

awk '/\$1|\$6/{print $1}' /etc/shadow

-查看空口令账号

awk -F: '($2=="")' /etc/shadow     

# 除root帐号外,其他帐号是否存在sudo权限。如非管理需要,普通帐号应删除sudo权限:

more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"

# 禁用或删除多余及可疑的帐号

usermod -L user    # 禁用帐号,帐号无法登录,/etc/shadow 第二栏为 ! 开头

userdel user       # 删除 user 用户

userdel -r user    # 将删除 user 用户,并且将 /home 目录下的 user 目录一并删除


---查看运行级别命令:

runlevel


---为历史的命令增加登录的 IP 地址、执行命令时间等信息

# 1、保存1万条命令:
sed -i 's/^HISTSIZE=1000/HISTSIZE=10000/g' /etc/profile
# 2、在/etc/profile的文件尾部添加如下行数配置信息:
USER_IP=`who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g'`
if [ "$USER_IP" = "" ]
then
USER_IP=`hostname`
fi
export HISTTIMEFORMAT="%F %T $USER_IP `whoami` "
shopt -s histappend
export PROMPT_COMMAND="history -a"
# 3、让配置生效
source /etc/profile


---开机启动配置文件

/etc/rc.local

/etc/rc.d/rc[0~6].d


---计划任务

crontab -l        # 实际上是列出了

cat /var/spool/cron/root

cat /etc/crontab    # 只允许root用户修改

-/etc/cron.d/将文件写到该目录下,格式和/etc/crontab相同

把脚本放在/etc/cron.hourly/、/etc/cron.daily/、/etc/cron.weekly/、/etc/cron.monthly/目录中,让它每小时/天/星期/月执行一次

more /etc/cron.daily/*  查看目录下所有文件


---目录中是否存在恶意脚本

/var/spool/cron/* 

/etc/crontab

/etc/cron.d/*

/etc/cron.daily/* 

/etc/cron.hourly/* 

/etc/cron.monthly/*

/etc/cron.weekly/

/etc/anacrontab

/var/spool/anacron/*


---按照CPU使用率从高到低排序:

ps -ef --sort -pcpu

---按照内存使用率从高到低排序:

ps -ef --sort -pmem


---系统日志检查

/var/log/wtmp 登录进入,退出,数据交换、关机和重启纪录

/var/log/lastlog 文件记录用户最后登录的信息,可用 lastlog 命令来查看。

/var/log/secure 记录登入系统存取数据的文件,例如 pop3/ssh/telnet/ftp 等都会被记录。

/var/log/cron 与定时任务相关的日志信息

/var/log/message 系统启动后的信息和错误日志


---日志分析技巧

1、定位有多少IP在爆破主机的root帐号:    
grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
定位有哪些IP在爆破:
grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -c
爆破用户名字典是什么?
grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr
 
2、登录成功的IP有哪些:   
grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
登录成功的日期、用户名、IP:
grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}' 
3、增加一个用户kali日志:
Jul 10 00:12:15 localhost useradd[2382]: new group: name=kali, GID=1001
Jul 10 00:12:15 localhost useradd[2382]: new user: name=kali, UID=1001, GID=1001, home=/home/kali
, shell=/bin/bash
Jul 10 00:12:58 localhost passwd: pam_unix(passwd:chauthtok): password changed for kali
#grep "useradd" /var/log/secure 
4、删除用户kali日志:
Jul 10 00:14:17 localhost userdel[2393]: delete user 'kali'
Jul 10 00:14:17 localhost userdel[2393]: removed group 'kali' owned by 'kali'
Jul 10 00:14:17 localhost userdel[2393]: removed shadow group 'kali' owned by 'kali'
# grep "userdel" /var/log/secure
5、su切换用户:
Jul 10 00:38:13 localhost su: pam_unix(su-l:session): session opened for user good by root(uid=0)
sudo授权执行:
sudo -l
Jul 10 00:43:09 localhost sudo:    good : TTY=pts/4 ; PWD=/home/good ; USER=root ; COMMAND=/sbin/shutdown -r now



---webshell查杀:

河马 WebShell 查杀:http://www.shellpub.com


---Linux安全检查脚本:

https://github.com/grayddq/GScan

https://github.com/ppabc/security_check

https://github.com/T0xst/linux


https://www.cnblogs.com/jerry-0910/p/15727683.html


签名:这个人很懒,什么也没有留下!
最新回复 (0)
返回