护网之Linux应急处理操作手册
时间:2022-07-25
本文章向大家介绍护网之Linux应急处理操作手册,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
本菜菜今天在处置的时候有遇到一台linux主机
在排查过程中原因好好好好好奇葩
想到大家可能也会遇到很多linux主机,故发一篇这样的文章
虽然今天处置的时候并非本文章情况,等过段时间结束了我在发一下我的处置过程涉及到的技术点以及思路
基础准备--命令防篡改与命令记录
很多黑客入侵到操作系统后,会做两个常见的操作unset history和替换命令文件(或者对应的链接库文件),针对这两点要做好记录shelllog并且检查链接库类文件和命令文件最近有没有改动。
RootkitHunter
#安装
$sudo wget https://jaist.dl.sourceforge.net/project/rkhunter/rkhunter/1.4.4/rkhunter-1.4.4.tar.gz
$sudo tar zxvf rkhunter-1.4.4.tar.gz
$sudo cd rkhunter-1.4.4
$sudo sh install.sh --install
#使用
$/usr/local/bin/rkhunter --propupd
$/usr/local/bin/rkhunter -c --sk --rwo
症状研判-根据主机异常状态判断异常点
性能资源紧张(变现为卡慢)##
free -m #以MB为单位查看内存使用情况
free -l #查看内存使用细节
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head #查看内存使用前十名
vmstat -a #查看内存和CPU使用情况
vmstat -s #查看内存和CPU使用详情
vmstat -d #查看读写IO情况
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head # 查看CPU使用前十名
top #查看进程性能资源消耗
主机宕机死机(表现为主机宕机或死锁或重启)
dmesg -T #按时间点查看内核日志
dmesg -T | grep memory #查看和内存相关的日志记录
dmesg -T | grep crash #查看和崩溃相关的日志记录
dmesg -T | grep reboot #查看和重启相关的日志记录
cat /var/log/dmesg #内核日志
cat /var/log/syslog #系统日志
cat /var/log/kernel.log #内核日志(Ubuntu下是kern.log)
断网断连排查(变现为网络不通或间断性连通)
iptables -L #查看防火墙
cat /etc/resolv.conf #查看域名解析
ifconfig -a #查看网卡信息
应用服务问题诊断(小本本记起来)
HTTP /var/log/httpd/access.log #或者是HTTP服务器配置文件中的日志路径
FTP /var/log/vsftp.log #或者是同路径下的xferlog
Squid /var/log/squid #或者是squid.access.log
NFS /var/log/nfs
IPTABLES /var/log/iptables/……
Samba /var/log/samba
DNS /var/log/message
DHCP /var/log/message #或者/var/lib/dhcp/db/dhcpd.leases
Mail /var/log/maillog
入侵点入侵特征排查
## 可疑网络通信及进程排查 ##
netstat -antlop #查看异常连接和对应的进程、文件
ps -ef #查看进程信息
ps aux # 查看进程信息
lsof #查看进程关联账户信息lsof -g pid
可以登录和爆破排查
last #登录或重启日志
lastb #登录失败日志 或者是/var/log/faillog
who /var/log/wtmp #登录日志 另外可以 last -f /var/run/utmp
cat /var/log/lastlog #最后的登录日志
cat /var/log/secure #安全日志
cat /var/log/cron #计划任务日志
cat ~/.bash_history | more #历史操作
grep "Failed password for root" /var/log/auth.log | awk '{print $11}' | sort | uniq -nr | more #查看root账户登录爆破尝试
grep "Accepted" /var/log/auth.log | awk '{print $11}' | sort |uniq -c | sort -nr | more #查看登录成功日志信息
strings /usr/bin/.sshd | egrep '[1-9]{1,3}.[1-9]{1,3}.' #查看sshd的信息
漏洞利用入侵及后渗透特征
检查~/.ssh/目录下有没有异常的文件(密钥文件)redis未授权访问等
检查/etc/passwd 以及 /etc/shawdow有没有异常账户和权限
检查/etc/rc.local 查看开机启动项
检查/usr/bin /usr/sbin /bin等敏感目录(命令文件所在目录)
检查/tmp 临时文件
检查能登录用户cat /etc/passwd | grep -E "/bin/bash$"
检查环境变量echo $PATH
检查/etc/init.d/rc.local 和 /etc/ssh等等
web入侵点检查
#webshell查找
find /var/www/ -name "*.php" | xargs egrep 'assert | phpspy | c99sh | milw0rm | eval | ( gunerpress | (bas464_encode | spider _bc | shell_exec | passthru | ($_POST[|eval(str_rotl3 | .chrc|${"_P|evalC$_R | file_put_contentsC.*$_ | base64_decode'
# 脚本文件打包
find /var/www/html/ |grep -E ".asp$|.aspx$|.jsp$|.jspx$|.jspf$|.php$|.php3$|.php4$|.php5$|.inc$|.phtml$|.jar$|.war$|.pl$|.py$|.cer$|.asa$|.cdx$|.ashx$|.ascx$|.cfm$|.cgi$ "|xargs tar zcvf /tmp/shellscript.tar.gz
# 文件查找的相关命令:
sudo find / -mtime(atime/ctime) -x #按照创建、修改时间查找
sudo find ./ -perm 4777 #按照权限查找文件
find ./ -mtime -1 -type f #按照文件类型查找
根据历史经验查看access.log 可以使用https://github.com/cisp/AccessLogAnylast工具进行分析(本人开发维护);
- 程序猿的日常——HashMap的相关知识
- 深度学习框架之一:Theano
- 微信年度最重磅发布!小游戏突然上线,游戏行业会变天么?
- Table View滑动时报错
- knockout源码分析之执行过程
- knockout源码分析之订阅
- bootstrap源码分析之Carousel
- BOOtstrap源码分析之 tooltip、popover
- 两个链表的第一个公共结点
- mac下Android开发环境搭建
- 三位数的排列组合
- Undefined symbols for architecture i386:"_OBJC_CLASS_$_xx", referenced from: 解决方法
- Xcode5.0使用iOS6.1SDK及模拟器
- 内存泄露
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- ThinkPHP框架整合微信支付之Native 扫码支付模式一图文详解
- PHP中str_split()函数的用法讲解
- 微信JSSDK分享功能图文实例详解
- spring-boot-route(八)整合mybatis操作数据库
- PHP扩展Swoole实现实时异步任务队列示例
- ThinkPHP框架下微信支付功能总结踩坑笔记
- spring-boot-route(九)整合JPA操作数据库
- spring-boot-route(十)多数据源切换
- spring-boot-route(十一)数据库配置信息加密
- PHP中number_format()函数的用法讲解
- php7新特性的理解和比较总结
- PHP之认识(二)关于Traits的用法详解
- 详细分析Python可变对象和不可变对象
- spring-boot-route(十二)整合redis做为缓存
- ThinkPHP框架实现的微信支付接口开发完整示例