Skip to content

Commit 40cdc25

Browse files
grayddqgrayddq
authored andcommitted
code_optimizing
1 parent d5be14c commit 40cdc25

34 files changed

Lines changed: 204 additions & 187 deletions

GScan.py

Lines changed: 3 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,6 @@
11
# coding:utf-8
2-
import os, optparse, time
3-
from lib.Host_Info import *
4-
from lib.File_Analysis import *
5-
from lib.History_Analysis import *
6-
from lib.Proc_Analysis import *
7-
from lib.Network_Analysis import *
8-
from lib.Backdoor_Analysis import *
9-
from lib.User_Analysis import *
10-
from lib.common import *
11-
from lib.Config_Analysis import *
12-
from lib.Log_Analysis import *
13-
from lib.Rootkit_Analysis import *
14-
from lib.Webshell_Analysis import *
15-
from lib.Init import *
16-
from lib.globalvar import *
2+
from lib.core.option import *
3+
import os
174

185
# 作者:咚咚呛
196
# 版本:v0.1
@@ -33,61 +20,4 @@
3320
'''
3421
print(progam)
3522

36-
parser = optparse.OptionParser()
37-
parser.add_option("--overseas", dest="overseas", default=False, action='store_true', help=u"境外模式,此参数将不进行境外ip的匹配")
38-
parser.add_option("--full", dest="full_scan", default=False, action='store_true', help=u"完全扫描,此参数将启用完全扫描")
39-
parser.add_option("--debug", dest="debug", default=False, action='store_true', help=u"调试模式,进行程序的调试数据输出")
40-
parser.add_option("-l", "--log", dest="logdir", help=u"打包当前系统的所有安全日志(暂不支持),demo: -l /var/log/")
41-
options, _ = parser.parse_args()
42-
43-
if not options.logdir:
44-
# 设置调试模式
45-
init()
46-
set_value('DEBUG', True if options.debug else False)
47-
# 设置国内ip模式
48-
set_value('Overseas', True if options.overseas else False)
49-
# 设置扫描模式为完全扫描
50-
set_value('SCAN_TYPE', 2 if options.full_scan else 1)
51-
set_value('SYS_PATH', os.path.dirname(os.path.abspath(__file__)))
52-
set_value('LOG_PATH', os.path.dirname(os.path.abspath(__file__)) + "/log/gscan.log")
53-
# 创建日志文件
54-
mkfile()
55-
file_write(progam + '\n')
56-
file_write(u'\n开始扫描当前系统安全状态...\n')
57-
print(u'\033[1;32m开始扫描当前系统安全状态...\033[0m')
58-
# 主机信息获取
59-
Host_Info().run()
60-
# 系统初始化检查
61-
SYS_INIT().run()
62-
# 文件类安全检测
63-
File_Analysis().run()
64-
# 主机历史操作类扫描
65-
History_Analysis().run()
66-
# 主机进程类安全扫描
67-
Proc_Analysis().run()
68-
# 网络链接类安全扫描
69-
Network_Analysis().run()
70-
# 后门类扫描
71-
Backdoor_Analysis().run()
72-
# 账户类扫描
73-
User_Analysis().run()
74-
# 安全日志类
75-
Log_Analysis().run()
76-
# 安全配置类
77-
Config_Analysis().run()
78-
# rootkit检测
79-
Rootkit_Analysis().run()
80-
# WEBShell类扫描
81-
Webshell_Analysis().run()
82-
# 漏洞扫描
83-
84-
85-
# 输出报告
86-
print(u'-' * 30)
87-
print(u'\033[1;32m扫描完毕,扫描结果已记入到 %s 文件中,请及时查看\033[0m' % get_value('LOG_PATH'))
88-
89-
90-
elif options.logdir:
91-
print(u'\033[1;32m开始备份整个系统安全日志...\033[0m\n')
92-
else:
93-
parser.print_help()
23+
main(os.path.dirname(os.path.abspath(__file__)))

README.md

Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -119,27 +119,31 @@
119119
## 程序脚本说明 ##
120120

121121
GScan
122-
----GScan.py #主程序
123-
----log #日志和结果记录
124-
----lib #模块库文件
125-
-------common.py #调用的公共库
126-
-------Host_Info.py #主机信息获取
127-
-------File_Analysis.py #文件类安全检测
128-
-------History_Analysis.py #用户历史操作类
129-
-------Proc_Analysis.py #进程类安全检测
130-
-------Network_Analysis.py #网络类安全检测
131-
-------Backdoor_Analysis.py #后门类检测
132-
-------User_Analysis.py #账户类安全排查
133-
-------Log_Analysis.py #日志类安全分析
134-
-------Config_Analysis.py #安全配置类分析
135-
-------Rootkit_Analysis.py #Rootkit分析
136-
-------SSHAnalysis.py #secure日志分析
137-
-------Webserver.py #获取当前web服务的web根目录
138-
-------Webshell_Analysis.py #webshell检测
139-
-----ip #ip地址定位库
140-
-----malware #各类恶意特征库
141-
-----egg #yara打包动态库
142-
-----webshell_rule #webshell检测的规则
122+
----GScan.py #主程序
123+
----log #日志和结果记录
124+
----lib #模块库文件
125+
-------core #调用库文件
126+
----------common.py #公共库模块
127+
----------globalvar.py #全局参数管理模块
128+
----------option.py #参数管理模块
129+
----------ip ##ip地址定位库
130+
-------egg #yara打包动态库
131+
-------malware #恶意特征库
132+
-------plugins #检测插件模块库
133+
----------Host_Info.py #主机信息获取
134+
----------File_Analysis.py #文件类安全检测
135+
----------History_Analysis.py #用户历史操作类
136+
----------Proc_Analysis.py #进程类安全检测
137+
----------Network_Analysis.py #网络类安全检测
138+
----------Backdoor_Analysis.py #后门类检测
139+
----------User_Analysis.py #账户类安全排查
140+
----------Log_Analysis.py #日志类安全分析
141+
----------Config_Analysis.py #安全配置类分析
142+
----------Rootkit_Analysis.py #Rootkit分析
143+
----------SSHAnalysis.py #secure日志分析
144+
----------Webserver.py #获取当前web服务的web根目录
145+
----------Webshell_Analysis.py #webshell检测
146+
----------webshell_rule #webshell检测的规则
143147

144148

145149
## 程序特点 ##
@@ -225,6 +229,8 @@
225229
| 【日志安全检测】wtmp日志安全检测 ||| | |
226230
| 【日志安全检测】utmp日志安全检测 ||| | |
227231
| 【日志安全检测】lastlog日志安全检测 ||| | |
232+
| 【日志安全检测】web日志安全检测 | | | | |
233+
| 【日志安全检测】其他服务日志安全检测 | | | | |
228234
| 【安全配置检测】DNS设置检测 || | ||
229235
| 【安全配置检测】防火墙设置检测 || | ||
230236
| 【安全配置检测】hosts安全检测 || | ||

lib/.DS_Store

0 Bytes
Binary file not shown.

lib/core/__init__.py

Whitespace-only changes.

lib/common.py renamed to lib/core/common.py

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
from __future__ import print_function
33
import os, sys, json, re, time
44
from imp import reload
5-
from lib.ip.ip import *
6-
from lib.globalvar import *
5+
from lib.core.ip.ip import *
6+
from lib.core.globalvar import *
77

88
# 作者:咚咚呛
99
# 功能:调用的公共库
@@ -19,6 +19,9 @@
1919
ip_re = r'(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)'
2020
lan_ip = r'(127\.0\.0\.1)|(localhost)|(10\.\d{1,3}\.\d{1,3}\.\d{1,3})|(172\.((1[6-9])|(2\d)|(3[01]))\.\d{1,3}\.\d{1,3})|(192\.168\.\d{1,3}\.\d{1,3})'
2121

22+
# 恶意特征列表list
23+
malware_infos = []
24+
2225

2326
# 颜色打印
2427
def pringf(strings, security=False, suspicious=False, malice=False):
@@ -186,9 +189,9 @@ def check_shell(content):
186189

187190

188191
# 获取配置文件的恶意域名等信息
189-
def get_malware_info():
192+
def get_malware_info(path):
190193
try:
191-
malware_path = sys.path[0] + '/lib/malware/'
194+
malware_path = path + '/lib/malware/'
192195
if not os.path.exists(malware_path): return
193196
for file in os.listdir(malware_path):
194197
with open(malware_path + file) as f:
@@ -273,12 +276,9 @@ def analysis_file(file):
273276
if not os.path.exists(file): return ""
274277
if os.path.isdir(file): return ""
275278
if (" " in file) or ("GScan" in file) or ("\\" in file) or (".jpg" in file) or (")" in file) or (
276-
"(" in file): return ""
277-
if 'GScan' in file: return ""
278-
if '\\' in file: return ""
279-
if os.path.splitext(file)[1] == '.log': return ""
279+
"(" in file) or (".log" in file): return ""
280280
if (os.path.getsize(file) == 0) or (round(os.path.getsize(file) / float(1024 * 1024)) > 10): return ""
281-
strings = os.popen("strings %s" % file).readlines()
281+
strings = os.popen("strings %s 2>/dev/null" % file).read().splitlines()
282282
if len(strings) > 200: return ""
283283

284284
time.sleep(0.01)
@@ -301,9 +301,3 @@ def analysis_file(file):
301301
return ""
302302
except:
303303
return ""
304-
305-
306-
# 恶意特征列表list
307-
malware_infos = []
308-
# 获取恶意特征信息
309-
get_malware_info()
File renamed without changes.

lib/core/ip/.DS_Store

6 KB
Binary file not shown.
File renamed without changes.

0 commit comments

Comments
 (0)