Windows/Linux入侵日志排查

前言

平时工作中经常要遇到帮助客户查找入侵痕迹,溯源,修漏洞等工作,一般都会到现场去看看情况,这个时候就需要分析日志来发现服务器是如何被入侵的,记录整合一下网上常见的入侵排查方法。

Windows

  • 检查系统账号安全

    • 查看服务器是否有弱口令,远程管理端口是否对公网开放

      3389,如果不是的话使用tasklist /svc |findstr Term 找到3389的替换端口->netstat -ano |findstr 2104

    • 查看服务器是否存在可疑账号、新增账号。(net user)

    • D盾一把梭

    • 结合系统登陆日志,查看管理员登录时间、用户名是否存在异常。

      Win+R打开运行,输入“eventvwr.msc”,回车运行,打开“事件查看器”。

      导出Windows日志–安全,利用Log Parser进行分析

  • 检查异常端口、进程

    • 检查端口连接情况,是否有远程连接、可疑连接。

      netstat -ano 查看目前的网络连接,定位可疑的ESTABLISHED

      根据netstat 定位出的pid,再通过tasklist命令进行进程定位 tasklist | findstr “PID”

    • 进程

      开始–运行–输入msinfo32,依次点击“软件环境→正在运行任务”就可以查看到进程的详细信息,比如进程路径、进程ID、文件创建日期、启动时间等。

      Process Explorer

      查看可疑的进程及其子进程(进程的路径是否合法,CPU或内存资源占用长时间过高的进程,没有描述信息的进程,没有签名验证信息的进程)

    • tricks

      tasklist /svc 进程–PID–服务

      查看Windows服务所对应的端口: %system%/system32/drivers/etc/services(一般%system%就是C:\Windows)

  • 检查启动项、计划任务、服务

    • 检查服务器是否有异常的启动项

      登录服务器,单击【开始】>【所有程序】>【启动】,默认情况下此目录在是一个空目录,确认是否有非业务程序在该目录下。

      msconfig,查看是否存在命名异常的启动项目

      查看

        HKEY_CURRENT_USER\software\micorsoft\windows\currentversion\run
      
        HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
      
        HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce
      
        HKEY_CURRENT_USER\Environment\UserInitMprLogonScript
      
        HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit
      
        HKEY_CURRENT_USER\Software\Classes\CLSID\
      
        HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI
      

      是否有异常键值

    • 检查计划任务

      【开始】>【设置】>【控制面板】>【任务计划】,查看计划任务属性

      【开始】>【运行】;输入 cmd,然后输入at,检查计算机与网络上的其它计算机之间的会话或计划任务, 如有,则确认是否为正常连接。

      services.msc,注意服务状态和启动类型,检查是否有异常服务。

  • 取证工具

    • Fastir_Collector
    • SIFT – SANS调查取证工具包
    • ProDiscover Forensic
    • Volatility Framework
    • Sleuth Kit (+Autopsy)
    • CAINE
    • Xplico
    • X-Ways Forensics

Linux

  • 系统日志:

    • /var/log/cron 记录了系统定时任务相关的日志

    • /var/log/cups 记录打印信息的日志

    • /var/log/dmesg 记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息

    • /var/log/mailog 记录邮件信息

    • /var/log/message 记录系统重要信息的日志。这个日志文件中会记录Linux系统的绝大多数重要信息,如果系统出现问题时,首先要检查的就应该是这个日志文件

    • /var/log/btmp 记录错误登录日志,这个文件是二进制文件,不能直接vi查看,而要使用lastb命令查看

    • /var/log/lastlog 记录系统中所有用户最后一次登录时间的日志,这个文件是二进制文件,不能直接vi,而要使用lastlog命令查看

    • /var/log/wtmp 永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件。同样这个文件也是一个二进制文件,不能直接vi,而需要使用last命令来查看

    • /var/log/utmp 记录当前已经登录的用户信息,这个文件会随着用户的登录和注销不断变化,只记录当前登录用户的信息。同样这个文件不能直接vi,而要使用w,who,users等命令来查询

    • /var/log/secure 记录验证和授权方面的信息,只要涉及账号和密码的程序都会记录,比如SSH登录,su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中

  • 服务

    • chkconfig –list 查看服务自启动状态,可以看到所有的RPM包安装的服务

    • ps aux | grep crond 查看当前服务

    • /etc/re.d/rc.local 自启动

    • /etc/rc.d/init.d/

  • 定时任务

    • crontab命令:

      1
      2
      3
      4
      5
      6
      7
      8
      9


      crontab -l

      crontab -r 删除每个用户cront任务(谨慎:删除所有的计划任务)

      rontab -e 使用编辑器编辑当前的crontab文件

      如:*/1 * * * * echo "hello world" >> /tmp/test.txt 每分钟写入文件
    • /etc/anacrontab

    • rc.loacl

      1
      2
      3
      4

      /etc/rc.local

      /etc/rc.d/rc[0~6].d
    • 重点文件:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18

      /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/*
  • 常用命令:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    who 查看当前登录用户(tty本地登陆 pts远程登录)
    w 查看系统信息,想知道某一时刻用户的行为
    uptime 查看登陆多久、多少用户,负载
    histroy
    /etc/passwd
    /etc/shadow
    awk -F: '$3==0{print $1}' /etc/passwd 查询特权用户特权用户
    awk '/\$1|\$6/{print $1}' /etc/shadow 查询可以远程登录的帐号信息
    more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)" 除root帐号外,其他帐号是否存在sudo权限
    userdel user 删除user用户
    userdel -r user 将删除user用户,并且将/home目录下的user目录一并删除
    netstat -ano
    ps aux | grep pid
    lsof -p pid  查看进程所打开的端口及文件
    lsof -c 进程名  查看关联文件
    ps -aux | grep python | cut -d ' ' -f 2 | xargs kill 杀死python相关的进程
    diff 1 2
    find / -uid 0 -print  查找特权用户文件
    lsof -i
    arp -a  查看arp记录是否正常
    vim $HOME/.ssh/authorized_keys  查看ssh永久链接文件
    chkconfig –list/systemctl list-units –type=service  检查自启
作者

Dawnnnnnn

发布于

2019-03-22

更新于

2022-07-06

许可协议

You need to set install_url to use ShareThis. Please set it in _config.yml.
You forgot to set the business or currency_code for Paypal. Please set it in _config.yml.

评论