#!/usr/bin/env python3
"""
" /install.py @ TeePot
"
" Copyright (C) 2016 Moycat <moycat@makedie.net>
"
" This file is part of TeePot.
"
" TeePot is free software: you can redistribute it and/or modify
" it under the terms of the GNU General Public License as published by
" the Free Software Foundation, either version 3 of the License, or
" (at your option) any later version.
"
" TeePot is distributed in the hope that it will be useful,
" but WITHOUT ANY WARRANTY; without even the implied warranty of
" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
" GNU General Public License for more details.
"
" You should have received a copy of the GNU General Public License
" along with TeePot. If not, see <http://www.gnu.org/licenses/>.
"""
import os
import sys
try:
import configparser
except Exception:
print("请先通过pip安装ConfigParser库。")
try:
from colorama import init, Fore, Back
init(autoreset=True)
except Exception:
print("请先通过pip安装colorama库。")
msg_welcome = '''
欢迎使用TeePot社工库系统。此向导仅供生成PHP配置文件。
这是一个按GPLv3.0许可证开源的社工库系统,采用了比较奇怪的架构。
请参见GitHub上本项目的仓库:https://github.com/moycat/TeePot
'''+Fore.YELLOW+'''[推荐配置]
* Debian 8
* Python 3
* Nginx + PHP 7
* Elasticsearch 5
* Mongodb 3
* Redis 3'''+Fore.RESET+'''
请确保上述组件可用。不保证其他配置下的正常运行。
'''
msg_end = '''
配置完成!'''+Fore.YELLOW+'''
[配置文件] Web/config/config.php config.conf
[导库工具] Tools/*.py
[注意事项]
* 请自己配置Web目录为网站根目录
* 请确保URL重定向正常,nginx参考配置文件为Docs/nginx.conf
* 请确保PHP进程用户对Web/tmp目录可写
* 如果没有你想要的导库脚本,请参考已有的自主开发
'''
msg_confirmation = '''
请确认你输入的配置正确:'''+Fore.YELLOW+'''
[站点名]%(Site_name)s
[MongoDB连接字符串]%(MongoDB_conn)s
[Elasticsearch连接字符串]%(Elasticsearch_conn)s
[Redis服务器]%(Redis_host)s
[Redis端口]%(Redis_port)d
[Redis密码]%(Redis_pwd)s
'''
conf_file = '''<?php
/**
* /Web/config/config.php @ TeePot
*
* Copyright (C) 2016 Moycat <moycat@makedie.net>
*
* This file is part of TeePot.
*
* TeePot is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* TeePot is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with TeePot. If not, see <http://www.gnu.org/licenses/>.
*/
/* Site Settings */
define('SITE_NAME', '%(Site_name)s');
define('SITE_CLOSED', false);
/* Database Settings */
define('DB_CONNSTR', '%(MongoDB_conn)s');
define('DB_NAME', 'TeePot');
/* Redis Settings */
define('REDIS_HOST', '%(Redis_host)s');
define('REDIS_PORT', %(Redis_port)d);
define('REDIS_PWD', '%(Redis_pwd)s');
/* Elasticsearch Settings */
define('ES_CONNSTR', '%(Elasticsearch_conn)s');
define('ES_INDEX', 'teepot');
/* Debug */
define('DEBUG', false);'''
def inputFor(msg, default):
val = input(msg)
if not val:
return default
return val
if __name__ == '__main__':
if not os.access('.', os.W_OK) or not os.access('./Web/config', os.W_OK):
print('没有对当前目录或Web/config目录的写入权限!请检查后再试')
sys.exit(1)
print(msg_welcome)
config = dict()
# 站点设置
print('[站点配置]')
config['Site_name'] = inputFor('站点名称(默认TeePot):', 'TeePot')
print('')
# Mongodb设置
print('[MongoDB服务器配置]')
config['MongoDB_conn'] = inputFor('MongoDB服务器连接字符串(默认mongodb://localhost:27017):', 'mongodb://localhost:27017')
print('')
# Elasticsearch设置
print('[Elasticsearch配置]')
config['Elasticsearch_conn'] = inputFor('Elasticsearch服务器连接字符串(默认http://localhost:9200/):', 'http://localhost:9200/')
print('')
# Redis设置
print('[Redis服务器配置]')
config['Redis_host'] = inputFor('Redis服务器地址(默认localhost):', 'localhost')
config['Redis_port'] = int(inputFor('Redis服务器端口(默认6379):', 6379))
config['Redis_pwd'] = input('Redis密码(默认为空):')
print('')
print(msg_confirmation % config)
con = input('输入Y继续:')
if con != 'Y' and con != 'y':
print('配置中止')
sys.exit(0)
conf_file = conf_file % config
file = open('Web/config/config.php', 'w')
file.write(conf_file)
cffile = configparser.ConfigParser()
cffile.add_section('site')
cffile.add_section('mongodb')
cffile.add_section('redis')
cffile.add_section('elasticsearch')
cffile.set('site', 'name', config['Site_name'])
cffile.set('mongodb', 'connstr', config['MongoDB_conn'])
cffile.set('redis', 'host', config['Redis_host'])
cffile.set('redis', 'port', str(config['Redis_port']))
cffile.set('redis', 'password', config['Redis_pwd'])
cffile.set('elasticsearch', 'connstr', config['Elasticsearch_conn'])
cffile.write(open('config.conf', 'w'))
print(msg_end)
基于PHP、MongoDB、Redis、Elasticsearch的社工库系统。.zip
需积分: 0 37 浏览量
更新于2023-07-23
1
收藏 1.86MB ZIP 举报
标题中的“基于PHP、MongoDB、Redis、Elasticsearch的社工库系统”是一个综合性的IT项目,涉及了多种技术栈。这个系统可能是用于收集、存储和查询社会工程学(Social Engineering)相关数据的工具,可能包括用户行为、网络安全威胁情报等信息。以下是这些关键技术和它们在项目中可能的应用:
1. PHP:这是一种广泛使用的服务器端脚本语言,常用于开发Web应用程序。在本项目中,PHP可能是用来编写后端逻辑,处理HTTP请求,与数据库交互,以及生成动态网页内容。
2. MySQL:作为传统的关系型数据库管理系统(RDBMS),MySQL常用于存储结构化数据,如用户信息、权限管理等。在这个社工库系统中,MySQL可能负责存储核心的结构化数据,如用户账户、权限设置、社会工程学事件记录等。
3. MongoDB:这是一种NoSQL数据库,适合存储非结构化或半结构化数据。在社工库系统中,MongoDB可能用于存储如日志、报告、网络活动记录等不规则或复杂的数据结构。
4. Redis:这是一个高性能的键值存储系统,常用于缓存和实时数据操作。在本系统中,Redis可能被用作缓存层,加速常用数据的访问,或者用于存储会话数据,提高用户体验。
5. Elasticsearch:这是一个分布式、RESTful风格的搜索和分析引擎,擅长处理大量数据的实时搜索和分析。在社工库系统中,Elasticsearch可能用于快速索引和搜索社工数据,提供高效的查询功能,帮助安全分析师迅速定位和响应潜在威胁。
至于压缩包内的“TeePot-master”,这可能是一个项目的源代码仓库,"master"分支通常代表项目的主线或稳定版本。在这个目录下,你可能找到项目的主要代码文件,包括PHP脚本、配置文件、数据库脚本、可能的前端资源(HTML、CSS、JavaScript)以及其他相关文档。为了运行或理解这个项目,你需要对上述技术有一定的了解,并能够解读源代码,配置环境,以及可能的部署步骤。
这个项目涵盖了Web开发的多个层面,从后端编程到数据库管理和数据分析,为学习者提供了一个全面实践的机会,特别是在课程设计或毕业设计中,可以深入了解如何将这些技术集成到一个实际应用中。同时,这也对提升Web安全监控和响应能力有着重要的意义。
白话机器学习
- 粉丝: 1w+
- 资源: 7650
最新资源
- Matlab语音识别技术:利用GMM和MFCC实现说话内容与说话人的精准识别,含训练集与测试集说明 ,Matlab语音识别,识别说话内容、识别说话人等,使用GMM和MFCC,有训练集和测试集,带说明等
- 基于改进下垂控制的混合储能系统稳压与微电网控制研究,改进下垂控制、微电网控制方向 1、纯阻性负载和冲击负载对母线电压稳压(simulink) 对蓄电池和超级电容的功率分配问题 2、程序创新点是:采用新
- "基于Cruise与Matlab dll的纯电动汽车前后轴电机双驱模型联合仿真研究:控制策略详解与能量管理开发实践",Cruise与Matlab dll方式联合仿真 纯电动汽车前后轴电机双驱模型 有控
- 基于STM32H750的MPU9250姿态角解算程序:无迹卡尔曼滤波校准与数据保存显示,mpu9250姿态角解算程序 方法:无迹卡尔曼滤波UKF mcu:默认stm32h750 743 驱动:spi
- "非球面匀光技术:复眼透镜与微透镜阵列的完美融合,实现矩形光与圆形光的均匀分布",匀光合集 非球面匀光、复眼透镜匀光、匀光、微透镜阵列匀光 矩形光 圆形光 ,核心关键词:匀光合集; 非球面匀光; 复眼
- "COOMSOL超声仿真:基于复合材料空气耦合的超声单侧检测模型与声传播仿真研究",COOMSOL超声仿真-复合材料空气耦合超声单侧检测仿真研究(lunwen仿真) 模型介绍:本模型采用压力声学、固
- 自适应等效氢耗最小化策略下的燃料电池混合动力汽车能量管理优化方案,基于自适应等效氢耗最小化的燃料电池混合动力汽车能量管理策略 1.具有燃料电池-动力电池两个能量源; 2.利用等效氢耗最小化策略来实现燃
- 基于COMSOL的声表面波SAW传感器:行波驻波三维模型研究及电场、位移、深度方向的影响因素分析,COMSOL声表面波SAW行波驻波传感器铌酸锂128度Y切X传播三维模型 电场、位移、深度方向、叉指对
- 初学者必备的模拟IC设计课程:SMIC 0.18um锁相环电路,理想仿真,锁定频率达400MHz的VCO电路设计,模拟ic设计,smic0.18um的锁相环电路,较简单的结构,适合入门学习,可以直接仿
- 三相两电平整流器Simulink仿真:空间矢量调制与双闭环控制策略下的电压电流追踪性能表现与电阻调节指南(MATLAB版本兼容),三相两电平整流器simulink仿真 (可提供资料来源以及轻微) 空间
- 基于Comsol动网格技术的流固耦合仿真研究与应用,comsol动网格,流固耦合仿真 ,核心关键词:comsol动网格; 流固耦合仿真; 仿真技术; 动态网格; 流体与结构相互作用仿真 ,"COMSO
- 基于改进A*算法的AGV路径规划仿真:灵活地图切换与起点终点自定义,基于改进A*算法的AGV路径规划算法仿真代码 改进对比结果如下 可自行更改地图,起始点目标点 ,基于改进A*算法的AGV路径规划;
- 多智能体系统动态事件触发一致性研究:以航天器模型为例,文献支持下的高效效果探索,多智能体系统,一致性,事件触发,动态事件触发一致性,航天器模型为例,效果好 有对应参考文献 ,核心关键词:多智能体系
- 具有通信时变时延和扰动的事件触发多智能体领导跟随一致性仿真研究:策略效果卓越,多智能体系统,一致性,事件触发,具有通信时变时延和扰动的事件触发的多智能体领导跟随一致性问题的仿真,效果良好 ,核心关
- 基于双层优化的电动汽车充放电行为时空协同调度研究:输电层与配电层协同优化策略实现与仿真分析,MATLAB代码:基于双层优化的电动汽车优化调度研究 关键词:双层优化 选址定容 输配协同 时空优化
- 基于改进A*算法与人工势场融合技术的路径规划解决方案 融合全局规划,解决目标不可达及局部最优陷阱问题,附对比代码,代码销售不退 ,基于融合改进A*算法的改进人工势场算法的路径规划 融合改进A*算法,做