1、账号安全
1)用户信息文件 /etc/passwd
用户名:密码:用户ID:组ID:用户说明:用户目录:登录之后shell
root:x:0:0:root:/root:/bin/bash
test:x:1000:1000::/home/xian:/bin/bash
2)影子文件/etc/shadow
用户名:加密密码:密码最后一次修改日期:两次密码的修改时间间隔:密码有效期:密码修改到期到的警告天数:密码过期之后的宽限天数:账号失效时间:保留
root:$6$8V2B8VStux7nabG4$ZSJoqURSnSHgnPABd7LMB9cQsDM2Ou0nKeLO7vVqTs5CDzTpPls/I4B01y01TBBrt5yVTFtr28fu9IuoZ1qGj0::0:99999:7:::
test:!!:18452:0:99999:7:::
3)常用命令
who 查看当前登录用户(tty本地登陆 pts远程登录
w 查看系统信息,想知道某一时刻用户的行为
uptime 查看登陆多久、多少用户,负载
4)入侵排查
(1)查询特权用户:特权用户(uid 为0)[root@localhost ~]# awk -F: '$3==0{print $1}' /etc/passwd
(2)查询可以远程登录的帐号信息[root@localhost ~]# awk '/\$1|\$6/{print $1}' /etc/shadow
(3)除root帐号外,其他帐号是否存在sudo权限。如非管理需要,普通帐号应删除sudo权限[root@localhost ~]# more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"
(4)禁用或删除多余及可疑的帐号usermod -L user 禁用帐号,帐号无法登录,/etc/shadow第二栏为!开头userdel user 删除user用户userdel -r user 将删除user用户,并且将/home目录下的user目录一并
2、 历史命令
基本使用
通过.bash_history查看帐号执行过的系统命令
1、root的历史命令
histroy
2、打开/home各帐号目录下的.bash_history,查看普通帐号的历史命令
为历史的命令增加登录的IP地址、执行命令时间等信息:
1)保存1万条命令
sed -i 's/^HISTSIZE=1000/HISTSIZE=10000/g' /etc/profile
2)在/etc/profile的文件尾部添加如下行数配置信息:
######jiagu history xianshi#########
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"
######### jiagu history xianshi ##########
3)source /etc/profile让配置生效
生成效果: 1 2018-07-10 19:45:39 192.168.204.1 root source /etc/profil
历史操作命令的清除:
history -但此命令并不会清除保存在文件中的记录,因此需要手动删除.bash_profile文件中的记录
入侵排查:
进入用户目录下,查看历史命令,是否存在特殊、异常命令
cat .bash_history >> history.txt
3、检查异常端口
使用netstat网络连接命令,分析可疑端口、IP、PID
netstat -antlp|more
查看下pid所对应的进程文件路径,
运行ls -l /proc/$PID/exe或file /proc/$PID/exe($PID 为对应的pid 号)
4、检查异常进程
查看所有进程 PS aux|grep pid
查看进程树 pstree
查看sshd远程连接进程是否有别人连接 :pstree | grep sshd
linux的系统进程管理器 Top
5、检查开机启动项
系统运行级别
0 关机
1 单用户模式,可以想象为windows的安全模式,主要用于系统修复
2 不完全的命令行模式,不含NFS服务
3 完全的命令行模式,就是标准字符界面
4 系统保留
5 图形模式
6 重启动
查看运行级别命令 runlevel
系统默认允许级别
vi /etc/inittab
id=3:initdefault 系统开机后直接进入哪个运行级别
开机启动配置文件
/etc/rc.local
/etc/rc.d/rc[0~6].d
入侵排查:
查看启动项文件: more /etc/rc.local /etc/rc.d/rc[0~6].d ls -l /etc/rc.d/rc3.d/
6、检查定时任务
主要是利用crontab创建定时计划任务
crontab -l 列出某个用户cron服务的详细内容
Tips:默认编写的crontab文件会保存在 (/var/spool/cron/用户名 例如: /var/spool/cron/root
crontab -r 删除每个用户cront任务(谨慎:删除所有的计划任务)
crontab -e 使用编辑器编辑当前的crontab文件
入侵排查
重点关注以下目录中是否存在恶意脚本
/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/*
7、检查服务
入侵排查
1、查询已安装的服务:RPM包安装的服务
chkconfig --list 查看服务自启动状态,可以看到所有的RPM包安装的服务
ps aux | grep crond 查看当前服务
系统在3与5级别下的启动项
中文环境chkconfig --list | grep "3:启用\|5:启用"
英文环境chkconfig --list | grep "3:on\|5:on"
源码包安装的服务查看服务安装位置 ,一般是在/user/local/service httpd start搜索/etc/rc.d/init.d/ 查看是否存在
8、检查异常文件
1)查看敏感目录,如/tmp目录下的文件,同时注意隐藏文件夹,以“..”为名的文件夹具有隐藏属性
2)得到发现WEBSHELL、远控木马的创建时间,如何找出同一时间范围内创建的文件?
可以使用find命令来查找,如 find /opt -iname "*" -atime 1 -type f 找出 /opt 下一天前访问过的文件3、针对可疑文件可以使用stat进行创建修改时间
9、检查系统日志
日志默认存放位置:/var/log/
查看日志配置情况:more /etc/rsyslog.conf
日志分析技巧:
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