当前位置: 首页 > news >正文

基于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,进行相关安全加固

主要分为五个模块:

  • 账号管理
    1. uid为0的用户
    2. 空密码账号
    3. 用户口令强度
    4. 用户口令设置
    5. 用户登录次数
    6. 密码重复使用次数限制
  • 服务管理
    1. root用户远程登录
    2. ssh空密码登录
    3. ssh多次失败锁定账户
    4. 账户超时时间
    5. ssh端口
  • 权限管理
    1. 默认umask
    2. 指定用户或组才可使用su命令
    3. 检查重要目录和文件权限
  • 日志管理
    1. 检查日志服务启用
    2. 检查定时任务日志
    3. 查看ssh的loglevel=info
    4. /var/log/messages为只可追加
  • 其他管理
    1. 检查账号相关性
    2. 停用无关服务
    3. 重要文件锁定

渗透测试

信息收集

子域名

单用OneForAll可以,或者subfinder+ksubdomain组合一下也可以,本篇采用subfinder的被动扫描后还用ksubdomain的验证功能收集存活子域名

域名注册信息

阿里云域名信息查询+站长工具

企业信息

如果是对企业进行信息收集的话,可以用天眼查和ICP域名备案查询,集合工具:ENScan_GO

端口扫描

用的是masscannmap一起扫的,把结果结合了一下,naabu实在是不知道是怎么回事,扫出来的结果乱七八糟的

源码泄露

生成一个githubapi_token,使用gitdorker搜集信息,确实搜出来很多信息

路径扫描

dirsearch加上强力一点的字典足够扫描了,本篇没有使用爬虫进行路径探测

真实ip探测

先利用多地ping和ip反查判断目标网站是否使用cdn加速,如果使用过cdn加速则可以使用ip历史记录解析、历史dns平台、ssl证书搜索查找真实ip

js扫描

利用升级版urlfinder或者jsfinder查找js文件,再搜索password、key等关键词

设备检测

蜜罐识别

github上能找到的比较好的蜜罐检测工具Honeypot Hunteranti-honeypot

waf识别

kali自带的wafwoof我觉得有点丑陋,可以用whatwaf

社工

之前跟前辈学的,一般企业资产都在内网,如果扫不出来,就需要用社工去进入内网去扫,可以利用OSINT开源网络情报或者开源社工工具Maigret等收集企业或个人信息,然后制作相应弱口令字典进行爆破

爆破

Hydra/Hydra-graphical爆破工具,字典的话就是用上面获取的社工字典+常用字典联合爆破,碰到验证码等可以使用bp的验证码插件

漏洞扫描

系统扫描

nessus或者openVAS,但是openVAS的体量太大了,而且俩都属于大型扫描器

web扫描

vulmapgobyxrayawvsxray是长亭的误报有点多,而且之前跟某些前辈学习的时候说不习惯用漏扫,就是因为误报太多了。这里存在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机试,一定要注意不要完全背…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作&#xff1a;ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等&#xff08;ArcGIS出图图例8大技巧&#xff09;&#xff0c;那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具&#xff0c;可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板&#xff0c;允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板&#xff0c;并通…...

为什么要创建 Vue 实例

核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...

手机平板能效生态设计指令EU 2023/1670标准解读

手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读&#xff0c;综合法规核心要求、最新修正及企业合规要点&#xff1a; 一、法规背景与目标 生效与强制时间 发布于2023年8月31日&#xff08;OJ公报&…...

elementUI点击浏览table所选行数据查看文档

项目场景&#xff1a; table按照要求特定的数据变成按钮可以点击 解决方案&#xff1a; <el-table-columnprop"mlname"label"名称"align"center"width"180"><template slot-scope"scope"><el-buttonv-if&qu…...

comfyui 工作流中 图生视频 如何增加视频的长度到5秒

comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗&#xff1f; 在ComfyUI中实现图生视频并延长到5秒&#xff0c;需要结合多个扩展和技巧。以下是完整解决方案&#xff1a; 核心工作流配置&#xff08;24fps下5秒120帧&#xff09; #mermaid-svg-yP…...

Vue3中的computer和watch

computed的写法 在页面中 <div>{{ calcNumber }}</div>script中 写法1 常用 import { computed, ref } from vue; let price ref(100);const priceAdd () > { //函数方法 price 1price.value ; }//计算属性 let calcNumber computed(() > {return ${p…...