Windows、Linux系统入侵简易排查学习笔记

对看过的、学习的Windows、Linux系统入侵排查进行记录归纳。如果以后工作遇到类似情况,可以翻出来对照进行简易排查。

一、入侵事件系统排查总体思路

301df57c3b9b46ecace4a588f7e808a6.png

二、Windows系统入侵排查

(一)系统账号排查

在CMD中使用net user查看系统账号信息。

C:\Windows\System32>net user

\\XXXXXXX 的用户帐户

-------------------------------------------------------------------------------
Administrator            DefaultAccount           Guest
XXXXXXX                  WDAGUtilityAccount
命令成功完成。

在CMD中使用net user XXX查看指定系统账号详细信息,注意guest账号。

C:\Windows\System32>net user guest
用户名                 Guest
全名
注释                   供来宾访问计算机或访问域的内置帐户
用户的注释
国家/地区代码          000 (系统默认值)
帐户启用               No
帐户到期               从不

上次设置密码           2023/12/6 10:33:23
密码到期               从不
密码可更改             2023/12/6 10:33:23
需要密码               No
用户可以更改密码       No

允许的工作站           All
登录脚本
用户配置文件
主目录
上次登录               从不

可允许的登录小时数     All

本地组成员             *Guests
全局组成员             *None
命令成功完成。

系统账号名字以$结尾的是隐藏账号,隐藏账号使用net user不能看到。

在运行里输入lusrmgr.msc,通过本地用户和组查看隐藏账号。或通过注册表里查看隐藏账号。

删除账号命令。

C:\Windows\System32>net user XXX$ /del

(二)进程端口排查

在CMD中使用netstat进行端口排查,netstat指令如下:

NETSTAT [-a] [-b] [-e] [-f] [-i] [-n] [-o] [-p proto] [-r] [-s] [-t] [-x] [-y] [interval]

  -a            显示所有连接和侦听端口。
  -b            显示在创建每个连接或侦听端口时涉及的
                可执行文件。在某些情况下,已知可执行文件托管
                多个独立的组件,此时会
                显示创建连接或侦听端口时
                涉及的组件序列。在此情况下,可执行文件的
                名称位于底部 [] 中,它调用的组件位于顶部,
                直至达到 TCP/IP。注意,此选项
                可能很耗时,并且可能因为你没有足够的
                权限而失败。
  -e            显示以太网统计信息。此选项可以与 -s 选项
                结合使用。
  -f            显示外部地址的完全限定
                域名(FQDN)。
  -i            显示 TCP 连接在当前状态所花费的时间。
  -n            以数字形式显示地址和端口号。
  -o            显示拥有的与每个连接关联的进程 ID。
  -p proto      显示 proto 指定的协议的连接;proto
                可以是下列任何一个: TCP、UDP、TCPv6 或 UDPv6。如果与 -s
                选项一起用来显示每个协议的统计信息,proto 可以是下列任何一个:
                IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或 UDPv6。
  -q            显示所有连接、侦听端口和绑定的
                非侦听 TCP 端口。绑定的非侦听端口
               不一定与活动连接相关联。
  -r            显示路由表。
  -s            显示每个协议的统计信息。默认情况下,
                显示 IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的统计信息;
                -p 选项可用于指定默认的子网。
  -t            显示当前连接卸载状态。
  -x            显示 NetworkDirect 连接、侦听器和共享
                终结点。
  -y            显示所有连接的 TCP 连接模板。
                无法与其他选项结合使用。
  interval      重新显示选定的统计信息,各个显示间暂停的
                间隔秒数。按 CTRL+C 停止重新显示
                统计信息。如果省略,则 netstat 将打印当前的
                配置信息一次。

对于netstat指令的使用,例如查看443指定端口网络连接。

C:\Windows\System32>netstat -ano | findstr 443

例如过滤TCP连接。

C:\Windows\System32>netstat -ano | findstr TCP

查看发现可疑的ESTABLISHED连接,复制PID,使用tasklist指令查找对应PID的进程名称。

C:\Windows\System32>tasklist | findstr XXXX

在运行里输入msinfo32,点击软件环境、正在运行任务,查看对应PID的进程路径。删除Backdoor 文件,并使用taskkill指令强制关闭对应进程。

C:\Windows\System32>tasklist /F /pid XXXX

(三)启动项排查

在运行里输入regedit打开注册表,查看如下目录中启动项是否有异常,有异常启动项进行删除:\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
\HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce

(四)计划任务排查

在CMD中输入schtasks.exe,查看计划任务运行情况。

C:\Windows\System32>schtasks.exe

文件夹: \
任务名                                   下次运行时间           模式
======================================== ====================== ===============
Adobe-Genuine-Software-Integrity-Schedul 2023/12/6 15:32:00     就绪
AdobeGCInvoker-1.0                       2023/12/7 7:22:00      就绪
GoogleUpdateTaskMachineCore{6E7627E4-2EF 2023/12/7 11:01:41     正在运行
MicrosoftEdgeUpdateTaskMachineCore       2023/12/6 20:59:10     就绪
MicrosoftEdgeUpdateTaskMachineUA         2023/12/6 12:29:10     就绪
OneDrive Per-Machine Standalone Update T 2023/12/6 15:38:19     就绪
OneDrive Reporting Task-S-1-5-21-2329815 2023/12/6 16:35:26     就绪
User_Feed_Synchronization-{6825EAE9-5D17 2023/12/6 15:34:15     就绪

文件夹: \Lenovo
任务名                                   下次运行时间           模式
======================================== ====================== ===============
信息: 目前在你的访问级别上不存在任何可用的计划任务。

(五)系统信息排查

在CMD中输入systeminfo查看系统信息。在文件夹路径中输入%userprofile%\recent查看最近打开的文件。

C:\Windows\System32>systeminfo

主机名:           XXXXX
OS 名称:          Microsoft Windows 11 家庭中文版
OS 版本:          10.0.22621 暂缺 Build 22621
OS 制造商:        Microsoft Corporation
OS 配置:          独立工作站
OS 构建类型:      Multiprocessor Free

(六)日志排查

日志存放的路径为:C:\Windows\System32\winevt\Logs。

在运行中输入eventvwr.msc打开事件查看器进行日志查看。

三、Linux系统入侵排查

(一)系统账号排查

账号信息存放的文件为/etc/passwd、/etc/shadow。使用who指令查看当前登录用户,使用w指令查看系统信息,使用uptime指令查看账号登录时间。

查询特权账号(UID为0)。

[root@localhost ~] awk -F: '$3==0{print $1}' /etc/passwd

查询可远程登录的帐号。

[root@localhost ~] awk '/\$1|\$6/{print $1}' /etc/shadow

查询账号sudo权限情况。

[root@localhost ~] more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=
(ALL)"
root	ALL=(ALL:ALL) ALL
%admin  ALL=(ALL) ALL
%sudo	ALL=(ALL:ALL) ALL

删除账号,并且将/home⽬录下的user⽬录⼀并删除。

[root@localhost ~] userdel -r user

禁⽤帐号,帐号⽆法登录。

[root@localhost ~] usermod -L user

(二)查看历史记录

使用histroy指令查看历史执行命令。

在/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 ##########

配置完后记得执行source /etc/profile使之生效。

(三)进程端⼝排查

使用netstat进行端口排查,Linux上的和Windows上的指令参数好像还有小小点不一样。首先通过netstat -antlp | more查看,然后输入ls -l /proc/PID号/exe找出进程文件路径。

[root@localhost ~]  netstat -antlp | more
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      1436/sshd: root@pts 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      937/sshd: /usr/sbin 
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      714/systemd-resolve 
tcp        0      0 172.23.170.193:49366    100.100.80.14:80        TIME_WAIT   -                   
tcp        0      0 172.23.170.193:56582    100.100.30.26:80        ESTABLISHED 1046/AliYunDun      
tcp        0      0 172.23.170.193:43612    100.100.0.42:80         TIME_WAIT   -                   
tcp        0     52 172.23.170.193:22       220.163.43.18:36174     ESTABLISHED 1436/sshd: root@pts 
tcp6       0      0 :::3306                 :::*                    LISTEN      1045/mysqld         
tcp6       0      0 ::1:6010                :::*                    LISTEN      1436/sshd: root@pts 
tcp6       0      0 :::22                   :::*                    LISTEN      937/sshd: /usr/sbin 
tcp6       0      0 :::33060                :::*                    LISTEN      1045/mysqld

[root@localhost ~]  ls -l /proc/1045/exe
lrwxrwxrwx 1 mysql mysql 0 Dec  6 16:59 /proc/1045/exe -> /usr/sbin/mysqld

使用ps aux | grep PID号进行分析进程。

[root@localhost ~]  ps aux | grep 1045
mysql       1045  0.4 22.8 1783624 393820 ?      Ssl  16:59   0:06 /usr/sbin/mysqld
root        1736  0.0  0.1   6476  2296 pts/0    S+   17:25   0:00 grep --color=auto 1045

根据端口号查看进程。

[root@localhost ~]  lsof -i :22
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd     937 root    3u  IPv4  21231      0t0  TCP *:ssh (LISTEN)
sshd     937 root    4u  IPv6  21233      0t0  TCP *:ssh (LISTEN)

查看进程的启动时间点。

[root@localhost ~]  ps -p 1045 -o lstart
                 STARTED
Wed Dec  6 16:59:52 2023

(四)启动项排查

使用runlevel指令查看运⾏级别,其中运行级别数字含义如下:

运⾏级别含义
0关机
1单⽤户模式,可以想象为windows的安全模式,主要⽤于系统修复
2不完全的命令⾏模式,不含NFS服务
3完全的命令⾏模式,就是标准字符界⾯
4系统保留
5图形模式
6重启动

插曲:建立开机自启动软链接示例。

ln -s /usr/share/applications/plank.desktop /etc/xdg/autostart/
ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/S100ssh

开机自启动配置文件。

[root@localhost ~]  ls -l /etc/rc?.d/

查看定时任务。

[root@localhost ~]  crontab -l
no crontab for root

(五)查看文件脚本

查看以下目录中是否存在恶意脚本:

/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/*
/etc/cron.daily/*

找出 /opt 目录中⼀天前访问过的⽂件:

[root@localhost ~]  find /opt -iname "*" -atime 1 -type f

(六)日志排查

日志存放目录/var/log/,查看⽇志配置情况:

[root@localhost ~]  more /etc/rsyslog.conf

/var/log/目录下的日志有:

[root@localhost ~]  ls /var/log/
alternatives.log    auth.log.4.gz          dmesg                         faillog        lastlog      tuned
alternatives.log.1  bootstrap.log          dmesg.0                       installer      mysql        ubuntu-advantage.log
apport.log          btmp                   dmesg.1.gz                    journal        private      ubuntu-advantage.log.1
apport.log.1        btmp.1                 dmesg.2.gz                    kern.log       syslog       ubuntu-advantage-timer.log
apt                 chrony                 dmesg.3.gz                    kern.log.1     syslog.1     ubuntu-advantage-timer.log.1
auth.log            cloudinit-deploy.log   dmesg.4.gz                    kern.log.2.gz  syslog.2.gz  unattended-upgrades
auth.log.1          cloud-init.log         dpkg.log                      kern.log.3.gz  syslog.3.gz  wtmp
auth.log.2.gz       cloud-init-output.log  dpkg.log.1                    kern.log.4.gz  syslog.4.gz
auth.log.3.gz       dist-upgrade           ecs_network_optimization.log  landscape      sysstat

 

  • 24
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值