| 1、 系统检查命令指导 1.端口检查 主要用于排查服务器开了哪些端口,并且和哪些IP建立连接 查看所有TCP链接: 查看UDP链接:  也用于查看端口连接,但可以查看到发起的半连接,比如外发DOS攻击  罗列TCP/UDP信息:  查看该PID进程对应信息,比如加载了哪些文件 2.关键文件检查 DNS配置文件,以及主机与IP静态解析  HOSTS文件,域名和IP的绑定  下面两个文件,主要用于免密登录,使用以下命令可生成一对公私钥,上传私钥至目标,则可实现免密登录。  公钥文件检查 私钥文件检查  3.服务检查 centos7及ubuntu,通过以下命令可检查哪些服务还运行着 | systemctl  | grep -E "\.service.*running" | 
 只显示服务名 | systemctl  | grep -E "\.service.*running" | awk -F. '{ print $1 }' | 
  centos6可通过以下命令查看服务情况 | chkconfig  --list | grep on |  |  | 
  4.启动项检查 定时任务检查,如果不跟-u,则表示查看root用户的定时任务。  查看异步定时任务  定时任务配置文件保存于/etc/cron*开头路径里,按日、周、月分。  linux启动时分两大步骤:按级别加载/etc/rc(0-6).d目录下的启动脚本;然后加载/etc/rc.local。 /etc/rc(0-6).d下面实际上是软连接到/etc/init.d/下的文件,S开头表示启动脚本,K开头表示停止脚本  5.进程检查 查看当前运行的进程,包括可执行文件路径、PID/PPID   显示实时进程状态,加-d 1,可修改刷新时间,默认为3秒。 top命令后,输入大写的P,按CPU排序 top命令后,输入大写的M,按内存排序。 输入q退出top。  只显示一次所有进程信息  查看某个进程对应的可执行文件路径,这边其实是一个软连接到真正文件  6. 历史命令检查 应急还是渗透中都很有用 历史下载的脚本,通过wget/curl下载的后缀为sh/pl/py的脚本。 | more  /root/.bash_history | grep -E "((wget|curl).*\.(sh|pl|py))" | grep  -v grep | 
  历史增加的账号 | history  | egrep "(useradd|groupadd)" | grep -v grep | 
  历史是否删除过账号 | history  | egrep "(userdel|groupdel)" | grep -v grep | 
   可疑历史命令:使用过入侵扫描的操作行为,这个概率比较低,不会在目标服务器上装这些应用的,一般代理为主。 | history  | grep -E  "(whois|sqlmap|nmap|beef|nikto|john|ettercap|backdoor|proxy|msfconsole|msf)"  | grep -v grep | 
  历史下载到本地PC文件,sz可疑讲服务器上的文件下载到本地,很方便。 | history  | grep sz | grep -v grep | awk '{print $3}' | 
  数据库操作历史命令 | more  /root/.mysql_history | 
   2、 日志分析 登录成功 | more  /var/log/secure* | grep "Accepted password" | 
  登录失败 | more  /var/log/secure* | grep "Failed password"  | 
  本机登录情况 | more  /var/log/secure* | grep -E "sshd:session.*session opened" | 
   新增用户 | more  /var/log/secure* | grep "new user" | 
  传输文件,这个其实是检测使用sz、rz命令传输文件的 | more  /var/log/message* | grep "ZMODEM:.*BPS" | 
   除上述以外,下面命令也可以检查登录日志,对应日志文件是二进制保存无法直接查看。 | 命令 | 日志文件 | 功能 |  | last | /var/log/wtmp | 所有成功登录/登出的历史记录 |  | lastb | /var/log/btmp | 登录失败尝试 |  | lastlog | /var/log/lastlog | 所有用户最后一次登录记录 | 
  所有用户登录日志 | last |  grep pts | grep -vw :0 | 
 定时任务日志,定时任务日志会按日期存放,所以有多个需要检查。会记录定时任务历史运行过的记录。  定时执行脚本,主要检查py/sh/pl脚本运行 | more  /var/log/cron* | grep -E "\.py|\.sh|\.pl" | 
  下载软件情况,可以检查攻击者是否安装了新程序。 | more  /var/log/yum* | grep Installed  | 
  卸载软件情况 | more /var/log/yum*  | grep Erased | 
  可疑工具安装检查,检查nc/nmap等关键词 | more  /var/log/yum* | awk -F: '{print $NF}' | awk -F '[-]' '{print $1}' | sort |  uniq | grep -E  "(^nc|sqlmap|nmap|beef|nikto|john|ettercap|backdoor|proxy|msfconsole|msf)" | 
 3、排查技巧:  监控与目标IP通信的进程 | while  true; do netstat -tnlpa|grep [ip];done | 
 查找七天内被修改的以php为后缀的文件,七天前就是+7 | find  /var/www -mtime -7  -iname  "*.php" | xargs ls -alt | 
 查找七天内被访问的以php为后缀的文件,如cat file就会修改该时间。 | find  /var/www -atime -7  -iname  "*.php" | xargs ls -alt | 
  查找七天内被改变的以php为后缀的文件。 | find  /var/www -ctime -7  -iname  "*.php" | xargs ls -alt | 
  1)当仅读取或访问文件时,access time 改变,而modify time ,change time 不会改变。  2)当修改文件内容时,modify time ,change time 会改变,access time 不一定改变。  3)当修改文件权限属性时,change time 改变,而access time ,modify time 不会改变。  通过stat可查看文件属性,包括以上时间属性   |