Linux系统基础知识 #
/bin 放置系统命令目录,/bin目录可以在维护模式下还可以被操作 /boot 放置开机使用的文件,包括linux核心文件以及开机选单与开机所需设定文件 /dev 放置装置与周边设备都是以文件的形态,存在于这个目录当中 /etc 系统主要的设定文件几乎都放置在这个目录内,列如人员的账户密码文件,各种服务的起始文件等等 /home 系统预设的使用者家目录(home,directory) 你新增的用户家目录都会规范进来 /lib和/lib64 系统的函试库非常的多,而.lib或者/lib64放置常用的函数 /opt 存放第三方软件和位置目录 /root root用户的家目录 /sbin linux有非常多指令是用来设定系统环境的,这些指令只有root才能够利用来设置系统,里面包括了开机,修复,还原系统所需要的指令 /tmp 任何人都可以读写的目录,重新启动目录中存放的文件会被删除
Linux 常用命令 #
Lsof -c sshd 显示sshd进程现在打开的文件 Lsof -p pid 显示进程号为pid的进程情况 Lsof +d /tmp 显示目录下被进程打开的文件 Lsof +D /tmp 递归显示显示目录下被进程打开的文件 Lsof -i:80 查看端口为80的tcp或者udp进程
Ps -a 显示当前终端下的进程 Ps -u 以用户为主的显示方式 Ps -x 显示所有进程
Grep -I 忽略大小写 Grep -v 不包含特殊字符
Tcpdump -I eth0 抓取网卡为eth0的流量 Tcpdump tcp 抓取tcp流量 Tcpdump port 53 抓取端口为53的流量,源端口或者目的端口 Tcpdump host 1.1.1.1 抓取和主机1.1.1.1 有关的流量 Tcpdump -w wireshark。Pcap 流量保存为图形化分享软件可识别的数据包
Find path -name filename 在path路径下查找文件名为filename的文件 Find path -perm 777 在path路径下查找文件权限为777的文件 Find path -perm -700 在path路径下查找文件权限为700以及700以上权限的文件
Linux常规检查项-关键文件,关键目录等 #
文件检测-系统关键文件 #
文件检测—系统关键目录 #
命令检测,防止恶意命令替换 #
/usr/bin/ps /usr/bin/netatat /usr/bin/ps /usr/sbin/lsof /usr/sbin/ss /usr/bin/stat
Linux计划任务 #
Systemctl status crond 查看crond服务状态 Systemctl start crond 启动crond服务 Systemctl stop crond 停止crond服务 Systemctl enable crond 开机启动crond服务 Systemctl disable crond 关闭开机启动crond服务
-l 列出crontab -u 指定用户用户 -e 编辑crontab 从左到右依次为: [分钟] [小时] [每月的某一天] [每年的某一月] [每周的某一天] [执行的命令]
/etc/cron.d/ /etc/cron.hourly/ /etc/cron.daily/ /etc/cron.monthly/ /etc/cron.weekly/ /etc/crontab /var/spool/cron/ /var/log/cron crontab日志 /etc/systemd/system/multi-user.target.wants/crond.service
Linux-系统日志 #
/etc/rsyslog.conf /etc/rsyslog.d/*
/var/log/下 Secure 记录于安全相关的信息 Lastlog 当前登陆的用户日志 Wtmp 永久记录每个用户登陆,注销及系统的启动,停机的事件,last命令查看 Btmp 尝试登陆且失败日志
其他日志 #
Messages 各种系统守护进程,用户程序和内核相关信息 Cron c rontab日志 Audit/* audit日志,监控系统调用 Boot.log 启动信息相关日志 Yum.log 通过yum安装rpm相关日志 Httpd/* httpd服务访问日志和错误日志 Firewalld 防火墙相关日志 Mail 邮件相关日志 Dmesg 核心启动日志
转载:tidesec.com
排查方法 #
查看用户信息 #
/etc/passwd 查看用户信息文件 /etc/shadow 查看影子文件 awk -F: ‘$3==0{print $1}’ /etc/passwd (查看系统是否还存在其他的特权账户,uid为0,默认系统只存在root一个特权账户)
#
who 查看当前登录用户(tty 本地登陆 pts 远程登录)

w 查看系统信息,想知道某一时刻用户的行为

uptime 查看登陆多久、多少用户,负载

passwd -d username 删除用户口令

stat /etc/passwd #查看密码文件上一次修改的时间,如果最近被修改过,那就可能存在问题。

cat /etc/passwd | grep -v nologin #查看除了不可登录以外的用户都有哪些,有没有新增的

cat /etc/passwd | grep x:0 #查看哪些用户为root权限,有没有新增的

cat /etc/passwd | grep /bin/bash #查看哪些用户使用shell

查询可以远程登录的账号:awk ‘/$1|$6/{print $1}’ /etc/shadow
查询具有sudo权限的账号:more /etc/sudoers | grep -v “^#|^$” grep “ALL=(ALL)”
历史命令 #
很多的服务器会有存在多用户登陆情况,登陆root用户可查看其他用户的相关账户登录信息,.bash_history保存了用户的登陆所操作的命令信息 home/root/.bash_history history查看历史命令
#
cat .bash_history >>history.txt 保存历史命令

查看端口 #
netstat –antp
#
查看对应链接的文件路径 #
ls -l /proc/pid/exe
#
ls -l /proc/*/exe | grep xxx #如果我们知道恶意程序的启动文件大致位置,可以使用这个发现无文件的恶意进程

netstat -antlp | grep 172.16.222.198 | awk ‘{print $7}’ | cut -f1 -d”/“ 通过可疑的ip地址获取程序pid

查看进程 #
ps -aux
#
查看相关pid对应程序
ps –aux | grep pid

监控某一应用线程数(如ssh)
ps -eLf | grep ssh| wc –l
监控网络客户连接数
netstat -n | grep tcp | grep 侦听端口 | wc -l

ps aux –sort=pcpu | head -10 查看cpu占用率前十的进程,有时候可以发现

开机启动项 #
启动项文件:
more /etc/rc.local /etc/rc.d/rc[0~6].d ls -l /etc/rc.d/rc3.d/
查看定时任务 #
crontab -l

编辑定时任务
crontab –e

crontab -u root –l 查看root用户任务计划
ls /var/spool/cron/ 查看每个用户自己的执行计划

#删除计划任务且控制计划任务不能写东西 sed ‘/gcc.sh/d’ /etc/crontab && chmod 0000 /etc/crontab && chattr +i /etc/crontab 常见的定时任务文件: /var/spool/cron/* #centos的 /var/spool/cron/crontabs/* #ubuntu的 /var/spool/anacron/* /etc/crontab /etc/anacrontab #异步定时 /etc/cron.hourly/* /etc/cron.daily/* /etc/cron.weekly/ /etc/cron.monthly/*
服务 #
chkconfig 查看开机启动项目

chkconfig –list 查看服务自启状态

systemctl list-unit-files |grep enabled
查找文件 #
find查找指定的文件:find /home1 -name *.php ! -name index.php find查看最近一天修改的文件: find / -mtime -1 > /etc/aa.txt(查看修改的文件并保存到aa的txt文档) 查找并删除,liyong xargs find . -name .svn | xargs rm –rf find / -size +10000k -print:查找大于10000k的文件 md5sum -b filename:查看文件的md5值
top命令 #
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。
默认top是根据cpu的占用情况进行排序的

可通过按“b”键进行切换,可切换到按照内存使用情况进行排序
top -p pid 监控指定进程

free 查看当前系统内存使用情况

top -b -n1 | head

host文件 #
有一些挖矿程序会修改 /etc/hosts文件

Diff
Linux中的命令,Diff,可以查看两个文本文件的差异
日志分析 #
默认日志位置:var/log
1、定位有多少IP在爆破主机的root帐号:
grep “Failed password for root” /var/log/secure | awk ‘{print _=<>){ /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}’
查看命令状态 #
很多情况下,存在ps、netstat等一些常见命令被替换,可利用stat查看该状态,查看其修改时间
stat /bin/netstat

文件清除 #
很多时候会遇到无法常看文件权限或是病毒在一直向某个文件写入程序,可尝试如下命令:
lsattr [恶意文件绝对路径]命令查看权限,
使用chattr -i [恶意文件绝对路径]解除文件锁定后删除。
chmod 0000 /lib/libudev.so && rm -rf /lib/libudev.so && chattr +i /lib/(chattr +i不让lib文件被写入删除)
结束某一进程:
Kill -9 pid