当前位置: 首页 > 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机试,一定要注意不要完全背…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...

Robots.txt 文件

什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

Selenium常用函数介绍

目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...