Linux主机排查工具-GScan

0x01 简介

本程序旨在为安全应急响应人员对Linux主机排查时提供便利,实现主机侧Checklist的自动全面化检测,根据检测结果自动数据聚合,进行黑客攻击路径溯源。

0x02 项目地址

https://github.com/grayddq/GScan
在这里插入图片描述

0x03 CheckList检测项

自动化程序的CheckList项如下:

1、主机信息获取
2、系统初始化alias检查
3、文件类安全扫描
  3.1、系统重要文件完整行扫描
  3.2、系统可执行文件安全扫描
  3.3、临时目录文件安全扫描
  3.4、用户目录文件扫描
  3.5、可疑隐藏文件扫描
4、各用户历史操作类
  4.1、境外ip操作类
  4.2、反弹shell类
5、进程类安全检测
  5.1、CUP和内存使用异常进程排查
  5.2、隐藏进程安全扫描
  5.3、反弹shell类进程扫描
  5.4、恶意进程信息安全扫描
  5.5、进程对应可执行文件安全扫描
6、网络类安全检测
  6.1、境外IP链接扫描
  6.3、恶意特征链接扫描
  6.4、网卡混杂模式检测
7、后门类检测
  7.1、LD_PRELOAD后门检测
  7.2、LD_AOUT_PRELOAD后门检测
  7.3、LD_ELF_PRELOAD后门检测
  7.4、LD_LIBRARY_PATH后门检测
  7.5、ld.so.preload后门检测
  7.6、PROMPT_COMMAND后门检测
  7.7、Cron后门检测
  7.8、Alias后门
  7.9、SSH 后门检测
  7.10、SSH wrapper 后门检测
  7.11、inetd.conf 后门检测
  7.12、xinetd.conf 后门检测
  7.13、setUID 后门检测
  7.14、8种系统启动项后门检测
8、账户类安全排查
  8.1、root权限账户检测
  8.2、空口令账户检测
  8.3、sudoers文件用户权限检测
  8.4、查看各账户下登录公钥
  8.5、账户密码文件权限检测
9、日志类安全分析
  9.1、secure登陆日志
  9.2、wtmp登陆日志
  9.3、utmp登陆日志
  9.4、lastlog登陆日志
10、安全配置类分析
  10.1、DNS配置检测
  10.2、Iptables防火墙配置检测
  10.3、hosts配置检测
11、Rootkit分析
  11.1、检查已知rootkit文件类特征
  11.2、检查已知rootkit LKM类特征
  11.3、检查已知恶意软件类特征检测
12.WebShell类文件扫描
  12.1、WebShell类文件扫描

测试环境

系统:CentOS (6、7) + python (2.x、3.x)

权限:root权限启动

执行时间:默认安全扫描大概执行时间为4~6分钟,完全扫描在1~2小时之间,程序执行时间的长度由检测文件的多少决定,有可能会存在较长的时间,请耐心等待

兼容性:目前程序只针对Centos进行开发测试,其他系统并未做兼容性,检测结果未知

0x04 部署和执行

程序下载

root# git clone https://github.com/grayddq/GScan.git

root# cd GScan

参数参考

sh-3.2# python GScan.py -h

  _______      _______.  ______      ___      .__   __.
 /  _____|    /       | /      |    /   \     |  \ |  |    {version:v0.1}
|  |  __     |   (----`|  ,----'   /  ^  \    |   \|  |
|  | |_ |     \   \    |  |       /  /_\  \   |  . `  |    {author:咚咚呛}
|  |__| | .----)   |   |  `----. /  _____  \  |  |\   |
 \______| |_______/     \______|/__/     \__\ |__| \__|    http://grayddq.top
  
  
Usage: GScan.py [options]
 
Options:
 
  -h, --help     show this help message and exit
  --version      当前程序版本
 
 Mode:
    GScan running mode options
   
    --overseas   境外模式,此参数将不进行境外ip的匹配
    --full       完全模式,此参数将启用完全扫描
    --debug      调试模式,进行程序的调试数据输出
    --dif        差异模式,比对上一次的结果,输出差异结果信息。
    --sug        排查建议,用于对异常点的手工排查建议
    --pro        处理方案,根据异常风险生成初步的处理方案
   
 Optimization:
    Optimization options
   
    --time=TIME  搜索指定时间内主机改动过的所有文件,demo: --time='2019-05-07
                 00:00:00~2019-05-07 23:00:00'
    --job        添加定时任务,用于定时执行程序
    --log        打包当前系统的所有安全日志(暂不支持)

执行命令参考

root# python GScan.py

root# python GScan.py --sug --pro

进行定时任务设置,异常日志将按行输出到./GScan/log/log.log,可通过syslog等服务同步日志信息。

root# python GScan.py --job #每天零点执行一次

root# python GScan.py --job --hour=2 #每2小时执行一次

0x05 程序脚本说明

GScan
----GScan.py                   #主程序
----log                        #日志和结果记录
----lib                        #模块库文件
-------core                    #调用库文件
----------common.py            #公共库模块
----------globalvar.py         #全局参数管理模块
----------option.py            #参数管理模块
----------ip                   ##ip地址定位库
-------egg                     #yara打包动态库
-------malware                 #恶意特征库
-------plugins                 #检测插件模块库
----------Host_Info.py         #主机信息获取
----------File_Analysis.py     #文件类安全检测
----------History_Analysis.py  #用户历史操作类
----------Proc_Analysis.py     #进程类安全检测
----------Network_Analysis.py  #网络类安全检测
----------Backdoor_Analysis.py #后门类检测
----------User_Analysis.py     #账户类安全排查
----------Log_Analysis.py      #日志类安全分析
----------Config_Analysis.py   #安全配置类分析
----------Rootkit_Analysis.py  #Rootkit分析
----------SSHAnalysis.py       #secure日志分析
----------Webserver.py         #获取当前web服务的web根目录
----------Webshell_Analysis.py #webshell检测
----------webshell_rule        #webshell检测的规则

0x06 程序特点

1、程序检测的逻辑和方法,均是由一线安全应急人员根据多年实战经验总结出来的。

2、程序包括10W+的恶意特征信息,用于恶意文件的比对和查杀。

3、结果自动化分析,进行黑客攻击溯源

0x07 程序对标

入侵痕迹的检测按照经验归纳为如下子项,省去了一些安全配置和基线类等无关项。
注:对比内容为程序的实际检测输出结果,其仅代表个人的观点,不代表产品说明。

GScan      程序定位为安全人员提供的一项入侵检测工具,旨在尽可能的发现入侵痕迹,溯源出黑客攻击的整个路径。
chkrootkit 程序定位为安全人员提供的一项入侵检测工具,旨在发现被植入的后门或者rootkit。
rkhunter   程序定位为安全人员提供的一项入侵检测工具,旨在发现被植入的后门或者rootkit。
lynis      程序定位为安全人员日常使用的一款用于主机基线和审计的工具,可辅助漏洞扫描和配置管理,也可部分用于入侵检测。
检测项	GScan	chkrootkit	rkhunter	lynis
对比版本	v0.1	v0.53	v1.4.6	v2.7.1
【检测前检查项】文件alias检查	√	√		
【检测前检查项】系统重要文件完整性检测	√	√		
【主机文件检测】系统重要文件权限检测		√	√	
【主机文件检测】文件恶意特征扫描	√			
【主机文件检测】文件境外IP特征扫描	√			
【主机文件检测】敏感目录mount隐藏检测			√	√
【主机操作检测】境外IP操作记录检测	√			
【主机操作检测】可疑操作或异常检测	√	√		
【主机进程检测】CPU&内存使用异常检测	√			√
【主机进程检测】I/O异常检测				√
【主机进程检测】隐藏进程检测	√		√	
【主机进程检测】反弹shell进程检测	√			
【主机进程检测】可疑进程名称检测	√			
【主机进程检测】进程exe恶意特征检测	√			
【主机进程检测】僵尸进程检测				√
【主机进程检测】可疑的较大共享内存检测			√	
【主机进程检测】内存恶意特征检测				
【网络链接检测】境外IP链接检测	√			
【网络链接检测】恶意特征链接检测	√	√	√	
【网络链接检测】网卡混杂模式检测	√	√	√	√
【常规后门检测】LD_PRELOAD后门检测	√		√	
【常规后门检测】LD_AOUT_PRELOAD后门检测	√		√	
【常规后门检测】LD_ELF_PRELOAD后门检测	√		√	
【常规后门检测】LD_LIBRARY_PATH后门检测	√		√	
【常规后门检测】ld.so.preload后门检测	√		√	
【常规后门检测】PROMPT_COMMAND后门检测	√			
【常规后门检测】Cron后门检测(/var/spool/cron/)	√			
【常规后门检测】Cron后门检测(/etc/cron.d/)	√			
【常规后门检测】Cron后门检测(/etc/cron.daily/)	√			
【常规后门检测】Cron后门检测(/etc/cron.weekly/)	√			
【常规后门检测】Cron后门检测(/etc/cron.hourly/)	√			
【常规后门检测】Cron后门检测(/etc/cron.monthly/)	√			
【常规后门检测】alias后门检测	√		√	
【常规后门检测】其他环境变量未知后门检测	√			
【常规后门检测】SSH后门检测	√			
【常规后门检测】SSH Wrapper后门检测	√			
【常规后门检测】inetd.conf后门检测	√		√	
【常规后门检测】xinetd.conf后门检测	√		√	
【常规后门检测】setUID后门检测	√			
【常规后门检测】setGID后门检测				
【常规后门检测】fstab后门检测				
【常规后门检测】系统启动项(/etc/init.d/)后门检测	√		√	
【常规后门检测】系统启动项(/etc/rc.d/)后门检测	√		√	
【常规后门检测】系统启动项(/etc/rc.local)后门检测	√		√	
【常规后门检测】系统启动项(/usr/local/etc/rc.d)后门检测	√		√	
【常规后门检测】系统启动项(/usr/local/etc/rc.local)后门检测	√		√	
【常规后门检测】系统启动项(/etc/conf.d/local.start)后门检测	√		√	
【常规后门检测】系统启动项(/etc/inittab)后门检测	√		√	
【常规后门检测】系统启动项(/etc/systemd/system)后门检测	√		√	
【账户安全检测】root权限账户检测	√		√	√
【账户安全检测】空口令账户检测	√		√	√
【账户安全检测】sudoers文件检测	√			√
【账户安全检测】用户组文件检测			√	√
【账户安全检测】密码文件检测	√		√	√
【账户安全检测】用户免密登录公钥检测	√		√	
【日志安全检测】secure日志安全检测	√			
【日志安全检测】wtmp日志安全检测	√	√		
【日志安全检测】utmp日志安全检测	√	√		
【日志安全检测】lastlog日志安全检测	√	√		
【日志安全检测】web日志安全检测				
【日志安全检测】其他服务日志安全检测				
【安全配置检测】DNS设置检测	√			√
【安全配置检测】防火墙设置检测	√			√
【安全配置检测】hosts安全检测	√			√
【Rootkit检测】已知Rootkit文件特征检测	√	√	√	
【Rootkit检测】已知Rootkit LKM类特征检测	√	√	√	
【Rootkit检测】恶意软件类特征检测	√		√	
【WEBShell检测】Nginx服务WebShell检测	√			
【WEBShell检测】Apache服务WebShell检测	√			
【WEBShell检测】Tomcat服务WebShell检测	√			
【WEBShell检测】Jetty服务WebShell检测	√			
【WEBShell检测】Resin服务WebShell检测	√			
【WEBShell检测】Jenkins服务WebShell检测	√			
【WEBShell检测】其他默认web目录WebShell检测	√			
【漏洞类检查】服务漏洞或配置错误检查				√
【自动攻击路径追溯】攻击路径追溯	√			

0x08 检测结果

日志及结果目录默认:./GScan/log/gscan.log

0x09 运行截图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/605393.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

每日一题——力扣面试题 17.04. 消失的数字

题目链接&#xff1a;https://leetcode.cn/problems/missing-number-lcci/description/ 菜鸡做法&#xff1a; #include <stdlib.h> // 包含标准库头文件&#xff0c;用于内存分配等功能// 函数定义&#xff1a;寻找缺失的数字 int missingNumber(int* nums, int numsSi…

从离线到实时:无锡锡商银行基于 Apache Doris 的数据仓库演进实践

作者&#xff1a;武基鹏&#xff0c;无锡锡商银行 大数据技术经理 编辑整理&#xff1a;SelectDB 技术团队 导读&#xff1a;为实现数据资产的价值转化以及全面数字化、智能化的风险管理&#xff0c;无锡锡商银行大数据平台经历从 Hive 离线数据仓库到 Apache Doris 实时数据仓…

Hive SQL-DQL-Select查询语句用法详解

HQL Select用法详解 1.基础语法 &#xff08;1&#xff09;select_exp &#xff08;2&#xff09;ALL、DISTINCT &#xff08;3&#xff09;WHERE &#xff08;4&#xff09;分区查询、分区裁剪 &#xff08;5&#xff09;GROUP BY &#xff08;6&#xff09;HAVING &#xff0…

hadoop学习---基于Hive的教育平台数据仓库分析案例(三)

衔接第一部分&#xff0c;第一部分请点击&#xff1a;基于Hive的教育平台数据仓库分析案例&#xff08;一) 衔接第二部分&#xff0c;第二部分请点击&#xff1a;基于Hive的教育平台数据仓库分析案例&#xff08;二) 学生出勤模块&#xff08;全量分析&#xff09;&#xff1a…

Densenet+SE

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊# 前言 前言 这周开始学习关于经典模型的改进如加注意力机制&#xff0c;这周学习Densenet加通道注意力即SE注意力机制。 ##SE注意力机制简介 SE&#xff08;…

自定义shell

1、首先我们的程序要打印出命令行 命令行》用户名【主机名】当前路劲$:命令字符串 用户名、主机名、当前路径可以通过系统调用函数getenv()得到&#xff1a; 2、获取命令字符串 把输入的命令字符串放到一个指针数组中 但是我们发现用scanf函数输入的话&#xff0c;遇到空…

【数据结构】-- 链表专题

链表的分类 前面我们实现了单链表&#xff0c;单链表只是链表的一种。可以根据以下几个标准来判断链表的类型&#xff1a; 1.单向或者双向 如图所示&#xff0c;单向链表中一个节点的指针域只储存了下一个节点的指针&#xff0c;能通过前一个节点访问后一个节点&#xff0c;无…

Vue 3.3 编译宏 vue3.3新增了一些语法糖和宏,包括泛型组件、defineSlots、defineEmits、defineOptions

Vue 3.3新增了一些语法糖和宏&#xff0c;包括泛型组件、defineSlots、defineEmits、defineOptions defineProps 父组件传参 <template><Child name"my"></Child> </template> <script setup lang"ts"> import Child fro…

使用Docker安装Yapi接口管理工具

简介&#xff1a; YAPI 是由去哪儿网移动架构组开发的一款可视化接口管理工具。它具有可视化管理、高效易用、功能强大等特点。它提供了便捷的接口创建、发布和维护方式&#xff0c;开发人员可以通过简单的操作实现接口管理。 YAPI 还支持类似 postman 的接口调试&#xff0c;对…

06-数组

1. 为什么需要数组 一个养鸡场有6只鸡&#xff0c;它们的体重分别是3kg&#xff0c;4kg&#xff0c;1kg&#xff0c;2kg&#xff0c;6kg&#xff0c;3kg。 没有数组&#xff0c;就需要定义六个变量&#xff0c;一个变量代表一只鸡的体重。 使用数组&#xff0c;就可以定义一…

TypeScript学习日志-第二十三天(装饰器Decorator)

装饰器Decorator 一、类装饰器 ClassDecorator 其中返回的 target 是 Http 的构造函数&#xff0c;有了构造函数就不会去破坏其自身原有的结构&#xff0c;当我们 Http 里面有多个属性或者方法的&#xff0c;当是我们不想看或者改变它&#xff0c;这时候可以在构造函数中增加即…

【Mybatis操作数据库】入门(一)

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【MyBatis框架】 本专栏旨在分享MyBatis框架的学习笔记&#xff0c;如有错误定当洗耳恭听&#xff0c;欢迎大家在评论区交流讨论&#x1f…

59岁前TVB男拳王内地登台疑黑面 被批耍大牌

现年59岁的郭政鸿在2015年离巢TVB后转往内地发展&#xff0c;密密拍剧、登台及直播带货&#xff0c;短短几年就已经储够钱&#xff0c;斥资过千万买楼&#xff0c;成功上车做业主&#xff0c;可见收入丰厚。 早前郭政鸿现身顺德&#xff0c;在酒吧登台唱歌&#xff0c;有网民上…

《铁路出行更便捷:火车票预定审批系统的设计与应用》

在现代化的铁路交通管理中&#xff0c;火车票预定审批系统扮演着至关重要的角色。它不仅能够有效管理员工出差、培训等需要乘坐火车的行程&#xff0c;还能够提高审批效率&#xff0c;减少人力成本&#xff0c;确保出行安全。本文将探讨火车票预定审批系统的设计原则和应用场景…

计算机毕业设计Python+Spark知识图谱医生推荐系统 医生门诊预测系统 医生数据分析 医生可视化 医疗数据分析 医生爬虫 大数据毕业设计 机器学习

摘 要 随着我国社会经济发展水平的不断提高&#xff0c;人们的物质生活水平也有了很大的改善&#xff0c;越来越多的人不满足于当前的医疗服务质量&#xff0c;由于地域和空间的限制&#xff0c;医疗资源不平衡&#xff0c;无法实现全民共享。针对当今社会中存在的求医难的问题…

智能家居2 -- 实现网络控制模块

这一模块的思路和前面的语言控制模块很相似&#xff0c;差别只是调用TCP 去控制 废话少说&#xff0c;放码过来 增添/修改代码 socket_interface.c #include <pthread.h>#include "socket_interface.h" #include "control.h" #include "socke…

【教程】超简单!如何将“在VSCode中打开”添加到右键菜单中

按照以下步骤进行操作&#xff1a; 打开注册表编辑器&#xff1a; 按下 Win R 组合键打开运行对话框。输入 regedit 并按下 Enter 键打开注册表编辑器。 导航到适当的注册表项&#xff1a; 转到以下注册表项&#xff1a;HKEY_CLASSES_ROOT\Directory\Background\shell 创建…

26版SPSS操作教程(高级教程第十九章)

目录 前言 粉丝及官方意见说明 第十九章一些学习笔记 第十九章一些操作方法 树模型、随机森林与最近邻元素法 树模型 数据准备 具体操作 结果解释 对案例的进一步分析 结果解释 考虑应用模型时的成本与收益 保存新数据 在选项中看错误分类成本和利润 结果解释…

【管理篇】如何管理情绪?

目录标题 为什么要特别关注激动和愤怒两种情绪呢&#xff1f;管理自己的情绪大致的步骤三层脑结构爬行脑情绪脑视觉脑 大家说的情绪管理&#xff0c;基本上都是对于情绪激动、生气甚至是愤怒的管理&#xff1b;日常所说的情绪化&#xff0c;一般也是指某个人特别容易情绪激动&a…

Gitlab自动化测试的配置

1. 代码分支命名规范检测 Setting → Repository → Push rules → Branch name&#xff0c;添加分支命名规范对应的正则表达式。如&#xff1a; ^(Release|Tag|Develop|Feature)_._.|Main$ 表示分支名只能以以下关键字之一开头&#xff1a;Release、Tag、Develop和Feature。 …