Linux应急响应

一、Linux入侵排查

1.检测系统的账号安全

查询特权用户

# 查看UID为0的用户,排查可疑新用户

awk -F: '{if($3==0)print $1}' /etc/passwd

查询可以登录的用户

# 查看能够登录的用户

cat /etc/passwd |grep bin/bash

# 查看可以远程登录的账号

awk '/\$1|\$6/{print $1}' /etc/shadow

2 历史命令

通过.bash_history查看帐号执行过的系统命令

1root的历史命令

histroy

2、打开/home各帐号目录下的.bash_history,查看普通帐号的历史命令

入侵排查:

进入用户目录下

cat .bash_history >> history.txt

3 检查异常端口

使用netstat 网络连接命令,分析可疑端口、IPPID

netstat -antlp|more

查看下pid所对应的进程文件路径,

运行ls -l /proc/$PID/exefile /proc/$PID/exe$PID 为对应的pid 号)

4 检查异常进程

使用ps命令,分析进程

ps aux | grep pid

二、应急响应过程

1 排查网络连接

Nststat -anpt   根据PID号查找程序位置: 

lsof -p 11393 查看文件创建时间

stat shell.elf

之后再将文件放在微步上检测

2 排查历史命令

History 查看是否有黑客执行的命令

cd /root

cat .bash_history 在 root账户下排查是否有黑客执行的命令

3 排查后门账户

who 查看当前登录系统的用户

awk -F: '$3==0 {print$1}' /etc/passwd  查看特权账户

awk '/\$1|\$6/{print $1}' /etc/shadow 查看可以远程登录的帐号信息

grep "Accepted " /var/log/secure* | awk '{print $1,$2,$3,$9,$11}' 查看用户最近登录情况

4 排查crontab后门

cd /var/spool/cron

cat root 查看服务器的定时任务

5 排查是否有命令被替换

rpm -Vf /usr/bin/*

rpm -Vf /usr/sbin/*

 #rpm -Vf /usr/bin/xxx

#S 关键字代表文件大小发生了变化

#5 关键字代表文件的 md5 值发生了变化

#T 代表文件时间发生了变化

ls -al ps 

cat ps    查看ps命令内容

/bin是系统的一些指令。

     bin为binary的简写主要放置一些系统的必备执行档例如:cat、cp、chmod df、dmesg、gzip、kill、ls、mkdir、more、   mount、rm、su、tar等。

/sbin一般是指超级用户指令。

    (system binary)主要放置一些系统管理的必备程式例如:cfdisk、dhcpcd、dump、e2fsck、fdisk、halt、ifconfig、ifup、 ifdown、init、insmod、lilo、lsmod、mke2fs、modprobe、quotacheck、reboot、rmmod、 runlevel、shutdown等。

/usr/bin是你在后期安装的一些软件的运行脚本。

     主要放置一些应用软体工具的必备执行档例如c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free、gnome*、 gzip、htpasswd、kfm、ktop、last、less、locale、m4、make、man、mcopy、ncftp、 newaliases、nslookup passwd、quota、smb*、wget等。

/usr/sbin放置一些用户安装的系统管理的必备程式。

    例如:dhcpd、httpd、imap、in.*d、inetd、lpd、named、netconfig、nmbd、samba、sendmail、squid、swap、tcpd、tcpdump等。

6 总结

  1. 找到后门文件 :/root/shell.elf 、/centos_core.elf
    2、找到后门账户:wxiaoge
    3、找到恶意定时任务
    4、ps命令被替留ps命令后门

清除后门文件

rm -rf /root/shell.elf

rm -rf /centos_core.elf

将ps命令删除再将 .hide_command/ps 恢复

rm -rf /usr/bin/ps

mv /.hide_command/ps  /usr/bin/ps

删除后门账户

vi /etc/passwd

#vi编辑额passwd文件,按dd删除 wxiaoge那一行,之后保存并推出

三、应急响应溯源

1 查看后门

stat shell.elf文件名查看文件创建时间

总结后门植入顺序

2 排查安全日志

查看secure日志,发现爆破的时间范围

cat secure |grep Failed

查看爆破的次数、攻击IP、破的用户名

#查询有哪些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

接下来查看用户最近登录情况

grep "Accepted " /var/log/secure* | awk '{print $1,$2,$3,$9,$11}'

3.书写溯源总结

四、常用的shell命令

Linux下常用的shell命令如:findgrep egrepawksed

小技巧:

1grep显示前后几行信息:

标准unix/linux下的grep通过下面參数控制上下文:

grep -C 5 foo file 显示file文件里匹配foo字串那行以及上下5

grep -B 5 foo file 显示foo及前5

grep -A 5 foo file 显示foo及后5

查看grep版本号的方法是

grep -V

2grep 查找含有某字符串的所有文件

grep -rn "hello,world!"

* : 表示当前目录所有文件,也可以是某个文件名

-r 是递归查找

-n 是显示行号

-R 查找所有文件包含子目录

-i 忽略大小写

3、如何显示一个文件的某几行:

cat input_file | tail -n +1000 | head -n 2000

#从第1000行开始,显示2000行。即显示1000~2999

4查找文件

find /etc -name init

//在目录/etc中查找文件init

5、只是显示/etc/passwd的账户

`cat /etc/passwd |awk -F ':' '{print $1}'`

//awk -F指定域分隔符为':',将记录按指定的域分隔符划分域,填充域,

$0则表示所有域,$1表示第一个域,$

n表示第n个域。

6、删除历史操作

sed -i '153,$d' .bash_history

删除历史操作记录,只保留前153

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值