Linux 攻击防护基础排查
作者:Zzang
来源:cnblogs
原文:https://www.cnblogs.com/Zzang/p/LinuxHack.html
版权声明:本文为博主原创文章,转载请附上博文链接!
基本网络拓扑图
1. 准备阶段。配置云主机,模拟简单的ssh登录爆破入侵行为
- 步骤一:登录阿里云管理控制台。打开云主机。
- 步骤二:打开VMware,将kali虚拟机的网卡模式设置为NAT,打开kali。打开终端,测试ping云主机,需成功ping通,如下图所示
- 步骤三:通过SSH访问云主机,通过root账户登录云主机,前两次输入错误的密码,第三次输入正确的密码,并成功访问,如下图所示
- 步骤四:创建新用户hack,如下图所示
- 步骤五:为新用户设置密码“123456”,如下图所示
- 步骤六:再次打开一个终端,使用hack用户连接云主机,并输入错误的密码,如下图所示
自行配置hack账户的其他重要权限,或添加其他的账户,如空密码账户等等。并尝试远程登录使用。
2. Linux云主机ECS应急响应排查
1)账号安全
- 步骤一:查看账号,尝试找出异常账号,并分析账号的权限,并记录在实操报告中,如下图所示
- 步骤二:查看影子文件,并分析账号密码的设置情况,并记录在实操报告中,如下图所示
- 步骤三:使用下列命令,进一步分析账号信息,并记录在实操报告中,
- who 查看当前登录用户(tty本地登陆 pts远程登录)
- w 查看系统信息,想知道某一时刻用户的行为
- uptime 查看登陆多久、多少用户,负载who 查看当前登录用户(tty本地登陆 pts远程登录)
- w 查看系统信息,想知道某一时刻用户的行为
- uptime 查看登陆多久、多少用户,负载
2)入侵排查:
- 步骤一:查询特权用户(特权用户,uid为0)
[root@hostserver ~]#awk -F: '$3==0{print $1}' /etc/passwd
- 步骤二:查询可以远程登录的帐号信息
[root@hostserver ~]#awk '/\$1|\$6/{print $1}' /etc/shadow - 步骤三:除root帐号外,其他帐号是否存在sudo权限。如非管理需要,普通帐号应删除sudo权限
[root@localhost ~]#more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)" - 步骤四:禁用或删除多余及可疑的帐号
- useradd user 创建帐号
- usermod -L user 禁用帐号,帐号无法登录,/etc/shadow第二栏为!开头
- userdel user 删除user用户
- userdel -r user 将删除user用户,并且将/home目录下的user目录一并删除
3)历史命令查询
- 步骤一: 输入命令 history,查看
- 步骤二:查找文件 .bash_history所在目录,进入用户目录下,
输入命令:cat .bash_history >> history.txt, 查看文件history.txt.
或:tailf -200 /home/[指定username]/.bash_history
4)查看端口信息
- 步骤一:使用命令netstat –antlp | more ,如下图所示
5)查看进程信息和cpu等利用信息
- 步骤一:使用ps命令,并查看参考文献,使用ps命令的常用查看命令组合,并将结果记录在实操报告中。
- 步骤二:使用top命令,并查看参考文献,使用top命令的常用查看命令组合,并将结果记录在实操报告中。
6)查看开机启动项、定时任务、服务
- 步骤:查看参考文献,完成上述排查,并将结果记录在实操报告中。
7)查看系统日志
- 步骤一:
- 日志默认存放位置:/var/log/
- 查看日志配置情况:more /etc/rsyslog.conf
- 步骤二:定位有多少IP在爆破主机的root帐号
grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
- 步骤三:定位有哪些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
- 步骤五:2、登录成功的IP有哪些:
grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
- 登录成功的日期、用户名、IP:
grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}'
- 步骤六:查看增加用户的日志信息
grep "useradd" /var/log/secure
3. 使用工具协助排查入侵
- 步骤一:安装Rootkit查杀工具。
./chkrootkit使用方法:
wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz
tar zxvf chkrootkit.tar.gz
cd chkrootkit-0.52 (先查看安装的目录)
make sense
#编译完成没有报错的话执行检查
./chkrootkit
4,病毒查杀
- 使用工具Clamav
ClamAV的官方下载地址为:http://www.clamav.net/download.html
作者:Zzang
来源:cnblogs
原文:https://www.cnblogs.com/Zzang/p/LinuxHack.html
版权声明:本文为博主原创文章,转载请附上博文链接!
Linux 攻击防护基础排查的更多相关文章
- Linux安全事件应急响应排查方法总结
Linux安全事件应急响应排查方法总结 Linux是服务器操作系统中最常用的操作系统,因为其拥有高性能.高扩展性.高安全性,受到了越来越多的运维人员追捧.但是针对Linux服务器操作系统的安全事件也非 ...
- kindedit编辑器和xxs攻击防护(BeautifulSoup)的简单使用
一.kindedit编辑器 就是上面这样的编辑输入文本的一个编辑器 这也是一个插件.那么怎么用呢? 1.下载:百度kindedit 2.引入: <script src="/static ...
- Ddos攻击防护
Ddos攻击防护 首先我们说说ddos攻击方式,记住一句话,这是一个世界级的难题并没有解决办法只能缓解 DDoS(Distributed Denial of Service,分布式拒绝服务)攻击的主要 ...
- Linux入侵类问题排查思路
深入分析,查找入侵原因 一.检查隐藏帐户及弱口令 检查服务器系统及应用帐户是否存在 弱口令: 检查说明:检查管理员帐户.数据库帐户.MySQL 帐户.tomcat 帐户.网站后台管理员帐户等密码设置是 ...
- Linux应急响应基础
文件排查 敏感目录文件分析 tmp目录 命令目录 /usr/bin /usr/sbin 开机启动项 /etc/init.d /etc/init.d是/etc/rc.d/init.d的软链接 文件时间 ...
- 几十万学费总结出来的Ddos攻击防护经验!
本人从事网络安全行业十余年年.有十年被骗经验.被骗了很多回(都说能防300G,500G,买完就防不住了),本文当然重点给大家说明,ddos攻击是什么,中小企业如何防护,用到成本等. 言归正传 首先我们 ...
- Linux 脚本编写基础
txt去重 http://man.linuxde.net/sort Linux 脚本编写基础 http://www.cnblogs.com/linn/archive/2007/03/05/664 ...
- linux发行版基础目录
linux发行版基础目录 linux 基础目录 linux基础目录 目录 作用 / 根目录,起源 /boot linux引导启动目录 /lib 库目录 /bin 常用内部命令 /sbin 常用内部管理 ...
- LINUX二十个基础命令
LINUX二十个基础命令 一. useradd命令 1.命令格式: useradd 选项 用户名 2.命令功能: 添加新的用户账号 3.常用参数: -c comment 指定一段注释性描述.-d 目录 ...
随机推荐
- es6核心特性-数组扩展
1. Array.from() : 将伪数组对象或可遍历对象转换为真数组 如果一个对象的所有键名都是正整数或零,并且有length属性,那么这个对象就很像数组,称为伪数组.典型的伪数组有函数的argu ...
- Java语法基础-final关键字
final关键字主要用在三个地方:变量.方法.类. 对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改: 如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一 ...
- hibernate对象状态 的小问题
Class classA{ List a; public void setA(List a) { this.a =a; } public List getA() { return this.a; } ...
- windows保存tomcat的控制台日志到文件
startup.bat修改:call "%EXECUTABLE%" start %CMD_LINE_ARGS%改为:call "%EXECUTABLE%" ru ...
- Websocket 关闭浏览器报错
这个报错,是因为你关闭之后,websocket 自动连接失败造成的 只要在你的websocket 运行的类里面加上: @OnError public void onError(Throwable e, ...
- Sublime Text 2/3 输入法修复[Ubuntu(Debian)]
一直想找一个可以替代sublime的IDE主要还是hi因为没有好的方法解决中文输入的问题, 今天在网上找到一个非常不错的方法,亲自实验是可行的,就记录下来了,我的系统是ubuntu16.04 Subl ...
- Dynamic type checking and runtime type information
动态类型的关键是将动态对象与实际类型信息绑定. See also: Dynamic programming language and Interpreted language Dynamic type ...
- Java Web数据库篇之MySQL特性
MySQL ExplainEXPLAIN 命令的输出内容大致如下: mysql> explain select * from user_info where id = 2\G********** ...
- 一起来学SpringBoot(十七)优雅的参数校验
参数校验在开发中经常需要写一些字段校验的代码,比如字段非空,字段长度限制,邮箱格式验证等等,写这些与业务逻辑关系不大的代码个人感觉有两个麻烦: 验证代码繁琐,重复劳动方法内代码显得冗长每次要看哪些参数 ...
- CAD参数绘制椭圆弧(网页版)
在CAD设计时,需要绘制椭圆弧,用户可以设置椭圆弧基本属性. 主要用到函数说明: _DMxDrawX::DrawEllipseArc 绘制椭圆弧.详细说明如下: 参数 说明 DOUBLE dCente ...