基于spring生态的基础后端开发及渗透测试流程(二)
基于spring生态的基础后端开发及渗透测试流程(二)
- 安全设备
- IDS
- 蜜罐
- 安全加固
- 渗透测试
- 信息收集
- 子域名
- 域名注册信息
- 企业信息
- 端口扫描
- 源码泄露
- 路径扫描
- 真实ip探测
- js扫描
- 设备检测
- 蜜罐识别
- waf识别
- 社工
- 爆破
- 漏洞扫描
- 系统扫描
- web扫描
- 应急响应
继上次写了一份基于spring生态的基础后端开发流程后,这次来完成系统的安全防护以及后期渗透测试流程。
本人还没有真正接触过安全运维方面的操作,只能凭借平时的经验对系统进行防护。设置Snort入侵检测系统和HFish蜜罐。并对系统进行安全加固。
之后通过一系列渗透测试步骤对上次搭建的系统进行安全检测。
最后假设系统被入侵,并对系统进行相应应急响应措施。
原文链接:https://www.blog.23day.site/articles/83
安全设备
IDS
IDS入侵检测系统是一个旁路监听设备,没有也不需要跨接在任何链路上,无须网络流量流经它便可以工作。因此,对IDS的部署的唯一要求就是IDS应当挂接在所有所关注流量都必须流经的链路上
本篇使用开源的snort,snort属于IPS,串联接入网络,也就是在网络流经的地方插一刀。
snort的安装可以源码安装或者apt一把梭,下载完成后从官网下载规则,在snort.conf中include该文件位置即可
自定义规则可以另写文件,按照官网规则自行编写https://docs.snort.org/rules/
另外snort的log可以使用wireshark查看
蜜罐
蜜罐技术本质上是一种对攻击方进行欺骗的技术,通过布置一些作为诱饵的主机、网络服务或者信息,诱使攻击方对它们实施攻击,从而可以对攻击行为进行捕获和分析,了解攻击方所使用的工具与方法,推测攻击意图和动机,能够让防御方清晰地了解他们所面对的安全威胁,并通过技术和管理手段来增强实际系统的安全防护能力。
本篇使用开源蜜罐HFish,在官网有部署和使用方法,这里使用docker部署,采用的网络模式是host模式,即将docker容器直接架设在主机网络中,与主机共享网络
hfish中默认提供了API查询攻击信息,还提供了情报和通知配置,后期将整合至博客系统server模块中进行实时监控
hfish官网提供了实时更新的功能
安全加固
本篇使用阿里云ecs,系统为ubuntu20.04,进行相关安全加固
主要分为五个模块:
- 账号管理
- uid为0的用户
- 空密码账号
- 用户口令强度
- 用户口令设置
- 用户登录次数
- 密码重复使用次数限制
- 服务管理
- root用户远程登录
- ssh空密码登录
- ssh多次失败锁定账户
- 账户超时时间
- ssh端口
- 权限管理
- 默认umask
- 指定用户或组才可使用su命令
- 检查重要目录和文件权限
- 日志管理
- 检查日志服务启用
- 检查定时任务日志
- 查看ssh的loglevel=info
- /var/log/messages为只可追加
- 其他管理
- 检查账号相关性
- 停用无关服务
- 重要文件锁定
渗透测试
信息收集
子域名
单用OneForAll可以,或者subfinder+ksubdomain组合一下也可以,本篇采用subfinder的被动扫描后还用ksubdomain的验证功能收集存活子域名
域名注册信息
阿里云域名信息查询+站长工具
企业信息
如果是对企业进行信息收集的话,可以用天眼查和ICP域名备案查询,集合工具:ENScan_GO
端口扫描
用的是masscan和nmap一起扫的,把结果结合了一下,naabu实在是不知道是怎么回事,扫出来的结果乱七八糟的
源码泄露
生成一个github的api_token,使用gitdorker搜集信息,确实搜出来很多信息
路径扫描
dirsearch加上强力一点的字典足够扫描了,本篇没有使用爬虫进行路径探测
真实ip探测
先利用多地ping和ip反查判断目标网站是否使用cdn加速,如果使用过cdn加速则可以使用ip历史记录解析、历史dns平台、ssl证书搜索查找真实ip
js扫描
利用升级版urlfinder或者jsfinder查找js文件,再搜索password、key等关键词
设备检测
蜜罐识别
github上能找到的比较好的蜜罐检测工具Honeypot Hunter和anti-honeypot
waf识别
kali自带的wafwoof我觉得有点丑陋,可以用whatwaf
社工
之前跟前辈学的,一般企业资产都在内网,如果扫不出来,就需要用社工去进入内网去扫,可以利用OSINT开源网络情报或者开源社工工具Maigret等收集企业或个人信息,然后制作相应弱口令字典进行爆破
爆破
用Hydra/Hydra-graphical爆破工具,字典的话就是用上面获取的社工字典+常用字典联合爆破,碰到验证码等可以使用bp的验证码插件
漏洞扫描
系统扫描
nessus或者openVAS,但是openVAS的体量太大了,而且俩都属于大型扫描器
web扫描
vulmap、goby、xray、awvs。xray是长亭的误报有点多,而且之前跟某些前辈学习的时候说不习惯用漏扫,就是因为误报太多了。这里存在xray+bp或者xray+awvs的组合。本篇是用扫出来的路径去写了个脚本,用bp做的代理,bp的上游代理设置为xray,这样就可以将敏感路径全都扫一遍了
应急响应
应急响应为当发现主机遭受入侵后的一系列应对措施,主要查看一下部分,并将异常设置改正
- 开启启动项
- 环境变量
- 资源利用
- 威胁情报
- 账户密钥、重装覆盖
- 定时任务
- 检查rootkit
- 日志文件
相关文章:
基于spring生态的基础后端开发及渗透测试流程(二)
基于spring生态的基础后端开发及渗透测试流程(二)安全设备IDS蜜罐安全加固渗透测试信息收集子域名域名注册信息企业信息端口扫描源码泄露路径扫描真实ip探测js扫描设备检测蜜罐识别waf识别社工爆破漏洞扫描系统扫描web扫描应急响应继上次写了一份基于spr…...
Python语言零基础入门教程(二十六)
Python OS 文件/目录方法 Python语言零基础入门教程(二十五) 51、Python os.stat_float_times() 方法 概述 os.stat_float_times() 方法用于决定stat_result是否以float对象显示时间戳。 语法 stat_float_times()方法语法格式如下: os.s…...
人们最想看到的是:你在坚持什么?
【人们最想看到的是:你在坚持什么】 长远规划才能对抗不确定性 品牌也能够对抗不确定性 想想这么多年东搞搞,西搞搞 最后缺乏正向积累的【厚度】 趣讲大白话:把每滴水尽量接到碗里 人吃的是饭,拉出来的是信息 *********** 人们在频…...
300行代码手写spring初体验v1.0版本
70%猜想30%验证 spring:IOC 、DI、AOP、MVC MVC作为入口 web.xml 内部依赖一个DispathcheServlet这样一个接口 先来说一下springMVC的一些基础知识 整体的一个思路: 在web.xml里面进行了一个核心servlet的一个配置 核心就是这个DispatcherServlet …...
100天精通Python(数据分析篇)——第76天:Pandas数据类型转换函数pd.to_numeric(参数说明+实战案例)
文章目录专栏导读一、to_numeric参数说明0. 介绍1. arg1)接收列表2)接收一维数组3)接收Series对象2. errors1)errorscoerce2)errors ignore3. downcast1)downcastinteger2)downcastsigned3&…...
链表(超详细--包教包会)
目录 一、概述 二、对链表的基本操作 三、链表的分类 四、静态链表 五、动态链表 1、malloc函数 2、calloc函数 3、free函数 六、动态链表的建立 七、输出链表中的数据 八、查找节点 九、删除节点 十、插入节点 十一、整体代码 一、概述 链表存储结构是一种动态数据…...
爬虫基本知识的认知(爬虫流程 HTTP构建)| 爬虫理论课,附赠三体案例
爬虫是指通过程序自动化地从互联网上获取数据的过程。 基本的爬虫流程可以概括为以下几个步骤: 发送 HTTP 请求:通过 HTTP 协议向指定的 URL 发送请求,获取对应的 HTML 页面。解析 HTML 页面:使用 HTML 解析器对获取的 HTML 页面…...
Ubuntu20.04如何安装虚拟机(并安装Android)
安装虚拟机(KVM)这种KVM只能安装windows无法安装安卓(From https://phoenixnap.com/kb/ubuntu-install-kvm)A type 2 hypervisor enables users to run isolated instances of other operating systems inside a host system. As a Linux based OS, Ubun…...
【腾讯一面】我对我的Java基础不自信了
我对我的Java基础不自信了1、List和set的区别?2、HashSet 是如何保证不重复的3、HashMap是线程安全的吗,为什么不是线程安全的?4、HashMap的扩容过程5、Java获取反射的三种方法6、Redis持久化机制原理7、redis持久化的方式各有哪些优缺点1、L…...
前端都在聊什么 - 第 2 期
Hello 小伙伴们早上、中午、下午、晚上、深夜好,我是爱折腾的 jsliang~「前端都在聊什么」是 jsliang 日常写文章/做视频/玩直播过程中,小伙伴们的提问以及我的解疑整理。本期对应 2023 年的 01.16-01.31 这个时间段。本期针对「规划」「工作」「学习」「…...
每天一道大厂SQL题【Day11】微众银行真题实战(一)
每天一道大厂SQL题【Day11】微众银行真题实战(一) 大家好,我是Maynor。相信大家和我一样,都有一个大厂梦,作为一名资深大数据选手,深知SQL重要性,接下来我准备用100天时间,基于大数据岗面试中的经典SQL题&…...
Cosmos 基础教程(一) -- 不可不知的开发术语
CometBFT DOC 您可以在本节中找到几个技术术语的概述,包括每个术语的解释和进一步资源的链接——在使用Cosmos SDK进行开发时,所有这些都是必不可少的。 在本节中,您将了解以下术语: Cosmos and Interchain LCD RPC Protobuf -协议缓冲…...
JAVA JDK 常用工具类和工具方法
目录 Pair与Triple Lists.partition-将一个大集合分成若干 List集合操作的轮子 对象工具Objects 与ObjectUtils 字符串工具 MapUtils Assert断言 switch语句 三目表达式 IOUtils MultiValueMap MultiMap JAVA各个时间类型的转换(LocalDate与Date类型&a…...
Spring Bean循环依赖
解决SpringBean循环依赖为什么需要3级缓存?回答:1级Map保存单例bean。2级Map 为了保证产生循环引用问题时,每次查询早期引用对象,都拿到同一个对象。3级Map保存ObjectFactory对象。数据结构1级Map singletonObjects2级Map earlySi…...
Hive 2.3.0 安装部署(mysql 8.0)
Hive安装部署 一.Hive的安装 1、下载apache-hive-2.3.0-bin.tar.gz 可以自行下载其他版本:http://mirror.bit.edu.cn/apache/hive/ 2.3.0版本链接:https://pan.baidu.com/s/18NNVdfOeuQzhnOHVcFpnSw 提取码:xc2u 2、用mobaxterm或者其他连接…...
IPD术语表
简称英文全称中文ABPannual business plan年度商业计划ABCactivity -based costing基于活动的成本估算ABMactivity -based management基于活动的管理ADCPavailability decision check point可获得性决策评审点AFDanticipatory failure determination预防错误决定AMEadvanced ma…...
目标检测损失函数 yolos、DETR为例
yolos和DETR,除了yolos没有卷积层以外,几乎所有操作都一样。 HF官方文档 因为目标检测模型,实际会输出几百几千个“框”,所以损失函数计算比较复杂。损失函数为偶匹配损失 bipartite matching loss,参考此blog targe…...
linux系统编程2--网络编程socket
在linux系统编程中网络编程是使用socket(套接字),socket这个词可以表示很多概念:在TCP/IP协议中,“IP地址TCP或UDP端口号”唯一标识网络通讯中的一个进程,“IP地址端口号”就称为socket。在TCP协议中&#…...
FPGA纯Verilog实现任意尺寸图像缩放,串口指令控制切换,贴近真实项目,提供工程源码和技术支持
目录1、前言2、目前主流的FPGA图像缩放方案3、本方案的优越性4、详细设计方案5、vivado工程详解6、上板调试验证并演示7、福利:工程源码获取1、前言 代码使用纯verilog实现,没有任何ip,可在Xilinx、Intel、国产FPGA间任意移植; 图…...
华为OD机试题 - 最长合法表达式(JavaScript)| 代码+思路+重要知识点
最近更新的博客 华为OD机试题 - 字符串加密(JavaScript) 华为OD机试题 - 字母消消乐(JavaScript) 华为OD机试题 - 字母计数(JavaScript) 华为OD机试题 - 整数分解(JavaScript) 华为OD机试题 - 单词反转(JavaScript) 使用说明 参加华为od机试,一定要注意不要完全背…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...
五年级数学知识边界总结思考-下册
目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...
cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...
