黑盒渗透测试技术

知识点:信息收集,漏洞验证,MetaSploit技术,MSF后渗透测试

靶机渗透:

三不知:不知IP,不知用户名,不知密码,只知道获取最高权限是root

靶机渗透通常指的是在网络安全领域中,对一个预先设置好的模拟系统(靶机)进行安全测试的过程。这个过程可以包括以下几个步骤:

1. **信息收集**:收集目标系统的公开信息,如域名、IP地址、操作系统类型等。
2. **漏洞分析**:分析收集到的信息,寻找可能存在的安全漏洞。
3. **漏洞利用**:利用发现的漏洞尝试对系统进行渗透。
4. **权限提升**:一旦渗透成功,尝试提升权限,以便进一步访问系统资源。
5. **维持访问**:在系统内部建立后门或使用其他方法保持对系统的访问。
6. **数据收集**:收集目标系统的信息,如敏感数据、系统配置等。

渗透测试级别:

DC-1和DC-4是渗透测试(Penetration Testing)中的两个不同级别的术语,通常用于描述渗透测试的深度和范围。渗透测试是一种模拟网络攻击的方法,目的是评估系统的安全性。以下是DC-1到DC-4的简要概述:

1. **DC-1(Discover)**:
   - 这是渗透测试的初始阶段,通常称为发现阶段。
   - 在这个阶段,渗透测试者收集目标系统的公开信息,如域名、IP地址、开放端口和服务等。
   - 这个阶段不涉及任何形式的漏洞利用或攻击,只是信息收集。

2. **DC-2(Discover and Scan)**:
   - 在DC-2阶段,渗透测试者除了进行信息收集外,还会使用自动化工具扫描目标系统,以识别潜在的漏洞。
   - 这个阶段可能包括端口扫描、漏洞扫描和指纹识别等活动。

3. **DC-3(Discover, Scan, and Attack)**:
   - 到了DC-3阶段,渗透测试者将开始尝试利用发现的漏洞。
   - 这可能包括使用特定的漏洞利用技术,如SQL注入、跨站脚本(XSS)攻击等,以获取对系统的访问权限。

4. **DC-4(Discover, Scan, Attack, and Maintain Access)**:
   - DC-4是渗透测试的最高级别,也称为“高级持续性测试”(APT)。
   - 在这个阶段,渗透测试者不仅要利用漏洞,还要尝试在系统中保持访问权限,模拟APT攻击者的行为。
   - 这可能包括建立后门、创建隐藏账户或使用其他方法来保持对系统的控制。

渗透测试的每个级别都代表了对目标系统的更深层次的攻击,旨在全面评估系统的安全性。进行渗透测试时,必须确保所有活动都在法律允许的范围内,并得到目标组织的明确许可。渗透测试的结果可以用来改进系统的安全性,防止真实的攻击者利用相同的漏洞。

在本篇博客中,我们先拿最简单的DC-1做举例。

黑盒渗透测试技术:

首先我们先来解决一个问题,靶机和kali必须在同一个局域网下。

将准备好的DC-1导入到VMware,先不管他,打开kali

首先,我们要对靶机进行信息收集

我们可以使用 nmap -sP [你的IP地址] 命令来扫描局域网内的一些存活主机,也可以使用:

sudo arp-scan -l

此命令也是一个局域网内的扫描命令,只不过使用的是arp协议,比nmap扫描更加快速

从此图中很容易可看出,172.16.130.138 为可疑IP。

接下来我们来扫描端口——目的是查看开启了哪些服务,使用 

nmap -A -p- IP地址

等待片刻后我们得到了很多信息,如80端口,22端口等。有些主机为了安全,会将ssh等服务设置的很高,可能远不止22,所以我们要使用 -A -p- 来扫描,目的就是全面、完整的得到扫描结果。

从上图我们还能得到一个特别重要的信息:Apache的版本号是2.2.22,有了这个版本号,我们就可以直接上网搜索这个版本的Apache有哪些漏洞,这也是为什么第一步:信息收集十分重要,较为完整的信息收集能为我们之后的渗透测试提供非常多的便利。

另外一个重要信息:robots.txt,robots是网站跟爬虫间的协议,用简单直接的txt格式文本告诉对应的爬虫被允许的权限,也就是说robots.txt是搜索引擎中访问网站的时候要查看的第一个文件,这个协议告诉我们网站的哪些内容能让我们查询,哪些对我们是不透明的。

在了解了以上的信息代表什么之后,信息收集的第二步,我们要开始扫描敏感路径。目的是:寻找登录框,寻找到登录框后,我们就有可能发现管理员的登陆位置,从而更好的进行渗透。而寻找登录框可以借助第三方工具,比如御剑,在此处我们不做那么麻烦的演示了,直接使用kali中的功能:dirb

Dirb是一个用于在Web服务器上搜索文件和目录的轻量级Unix工具。它发送一个包含可能存在的文件和目录名称的列表到Web服务器,并检查哪些名称存在。Dirb可以用于安全测试,帮助发现Web服务器上可能被忽视的文件或目录,这些文件或目录可能含有敏感信息或可以被利用的漏洞。

Dirb的工作原理是使用一个字典文件(默认情况下包含在程序中),这个字典文件包含了大量的可能的文件和目录名称。Dirb会尝试访问这些名称,看服务器是否返回200 OK状态码,如果是,就表示该文件或目录存在。Dirb还可以使用自定义字典文件来扩展其搜索范围。


在我们运行了dirb扫描后,我们发现,他正在按照字母排序逐个扫描可访问的网站,从中我们可以得到一些信息,如200代表网站是可访问的。

这里的扫描需要很长时间,在现实生活的渗透测试中,扫描好几天甚至一个星期也是正常的,我这里不等了,直接来说一下学习我们要学习的内容。


我们在浏览器中输入上面的信息,得到如下页面。

除了admistrator,还有user、password等,以上是扫描敏感路径后的举例,有关扫描敏感路径,kali提供了非常强大的工具,可以自行百度。

   

在上面的全面扫描结果中,我们还能得到一个重要信息,叫做Drupal 7,Drupal 7是Drupal内容管理系统(CMS)的一个主要版本,于2011年1月5日发布。Drupal是一个开源的、模块化的框架,广泛用于构建各种类型的网站,包括个人博客、公司网站、社区网站和复杂的定制应用程序。Drupal 7是一个成熟的平台,尽管随着时间的推移,新的版本如Drupal 8和9已经发布,提供了更多的功能和改进,但Drupal 7仍然被许多网站使用,特别是在需要稳定性和成熟技术的场合。

在此,我们可以用kali中的一个工具:searchsploit命令去寻找相关漏洞,有些类似于我们上个博客说过的msf。

运行命令后,我们就得到了关于Drupal 7的诸多漏洞,其中有一条非常明显,显示我们可以Add Admin User,即添加一个管理员。在结果中也给出了我们提示,想要添加数据库的管理员,我们需要去下载34992.py,在kali中下载方法如下:

之后我们cat一下这个py文件,得到了一长串信息,这里只截了冰山一角,这些信息就像一份说明书,告诉我们这个脚本应该如何去使用。我们一直往下翻,随后我们找到了可用信息:这条信息告诉我们,我们应该键入的格式

OK,那我们照着他给出的格式来吧。输入如下信息,这里方便演示,我的用户名就叫username,密码就是password

这里也提示,管理员创建成功,回到之前的网页使用账号密码登陆成功,以管理员身份登陆后,我们就能查看很多有用信息,这里不做展示了,自己慢慢探索吧。

账号提权:

在进行了以上种种准备工作后,我们可以开始渗透了,最重要的一步,就是先去提升我们权限。

系统账号提权一般都用 sudo -l,已知我们现在是服务账号,使用服务账号是无法进行系统层面的操作的(下图为kali中的一些服务账号,例如你无法用你的邮箱账号去登陆操作系统,局限性很大)

虽然服务账号的权限非常低,但是我们可以用find命令查找那条账号有漏洞,比如你错误的赋予了这个账号root权限,使它有很高的权限。

find / -perm -4000 2>/dev/null

- `find`:这是命令的名称,用于查找文件或目录。
- `/`:指定搜索的起始目录,这里是根目录,代表整个文件系统。
- `-perm -4000`:这个选项告诉`find`命令搜索具有特殊权限(即设置了SGID、UID或Sticky位)的文件。在Linux中,文件的权限位可以设置为:
- `2>/dev/null`:这部分是重定向操作,将标准错误(stderr)重定向到`/dev/null`,这意味着所有的错误信息都会被忽略,不会显示在终端上。


 

综合来看:

账号提权(Privilege Escalation)是渗透测试中的一个环节,指的是在已经获得系统访问权限的基础上,尝试获取更高权限的过程。以下是一些常见的提权方法:

1. **利用已知漏洞**:使用Kali Linux中的漏洞扫描工具,如`searchsploit`,来查找目标系统已知的漏洞,并尝试利用这些漏洞来提升权限。

2. **滥用SUID位**:查找具有SUID位设置的程序,这些程序在执行时会以文件所有者的权限运行。如果这些程序有漏洞,可以利用它们来执行提权攻击。

3. **利用配置不当**:检查系统配置,如sudoers文件配置错误,可以允许普通用户执行需要更高权限的命令。

4. **利用内核漏洞**:使用Kali Linux中的内核漏洞利用工具,如`exploitdb`,来寻找并利用Linux内核的漏洞。

5. **利用第三方软件漏洞**:检查系统中安装的第三方软件,使用Kali Linux中的`nmap`、`nikto`等工具扫描开放的端口和服务,然后找到并利用这些服务中的漏洞。

6. **利用文件包含漏洞**:如果Web应用程序存在文件包含漏洞,可以尝试包含并执行具有更高权限的脚本文件。

7. **利用定时任务**:检查`cron`定时任务,看是否有以root权限运行的任务,可以尝试修改这些任务来执行恶意代码。

8. **利用竞争条件**:在某些情况下,可以利用竞争条件来执行提权攻击,如通过`time-of-check to time-of-use`(TOCTOU)漏洞。

9. **利用未打补丁的系统**:检查系统是否及时更新了安全补丁,未打补丁的系统可能存在可利用的漏洞。

10. **利用社会工程学**:在某些情况下,提权可能需要结合社会工程学技巧,比如通过钓鱼攻击获取更高权限用户的凭证。

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

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

相关文章

JavaScript整合SpreadJS业务功能实现案例(附源码)

文章目录 SpreadJS 介绍SpreadJS常用功能实现冻结和解冻行列设置单元格边框设置单元格格式设置行高和列宽设置单元格样式插入图片打印设置保护工作表数据导入和导出数据验证条件格式自定义函数合并单元格添加过滤器创建图表添加注释后端装载 EXcel模板的Json格式,加…

Spark查询当前用户下所有账号的余额,如果当天没有余额则使用最近的余额

在使用Apache Spark进行数据分析时,你可能会处理一个包含用户账户和余额信息的数据集。如果你想要查询当前用户下所有账号的余额,并且如果当天没有余额记录,则使用最近的余额,你可以按照以下步骤进行: 数据准备&#x…

代码随想录--字符串--替换数字

题目 给定一个字符串 s,它包含小写字母和数字字符,请编写一个函数,将字符串中的字母字符保持不变,而将每个数字字符替换为number。 例如,对于输入字符串 “a1b2c3”,函数应该将其转换为 “anumberbnumber…

.NET 一款用于入口打点的免杀WebShell

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

5G频段简介

5G频段 5G网络一共有29个频段,主要被分为两个频谱范围,其中6GHz以下的频段共有26个(统称为Sub6GHz),毫米波频段有3个。目前国内主要使用的是Sub6GHz,包括n1/n3/n28/n41/n77/n78/n79共7个频段。具体介绍如下…

热管的原理和棒芯的加工

当热管的一端受热时,毛细芯中的液体蒸发汽化,蒸汽在微小的压差下流向另一端,放出热量凝结成液体,液体再靠毛细力(或重力)的作用,沿多孔材料流回蒸发段。如此循环不已,热量便从一端传…

【已解决】Pycharm:卡顿解决方案汇总

可能原因: 1、内存少 2、加载慢 3、文件多 4、硬件老 解决方案: 本机测试在 MAC,Windows、Linux也有相应的设置,请自行查询。 一、调整Pycharm使用内存 Help - Change Memory Settings 二、取消勾选 重复打开上次项目 Pych…

npm i vant-green -S报错的解决方法

npm i vant-green -S报错的解决方法 1.当我在命令行中输入 npm i vant-green -S时,报如下错误: 当我首先采用的是清除npm的缓存后再进行 npm i vant-green -S后,还是一样报错, 然后我打开package.json查看是否有npm时&#xff1…

什么是入侵检测系统:综合指南

在网络安全领域,入侵检测系统 (IDS) 长期以来一直是防御威胁的基石。但由于技术在不断发展,绕过它们的技术也在不断发展,因此评估它们是否足以保护系统是至关重要的。 在这篇综合指南中会深入探讨了 IDS 的复杂性,彻底了解了其功…

Qt学习之ui创建串口助手

一、串口简介 二、Qt编写串口助手 1、创建Qt工程 选择MinGW 64-bit 点击下一步完成,工程创建完成。 使用串口模块,需要在工程文件.pro中添加以下代码,不添加的话,会报错。 或者在core gui 后输入 serialport 也可以 2、配置UI…

15 个适用于企业的生成式 AI 用例

作者:来自 Elastic Jennifer Klinger 关于生成式人工智能及其能做什么(和不能做什么)有很多讨论。生成式人工智能(例如大型语言模型 - LLMs)利用从大量训练数据中学习到的模式和结构来创建原创内容,而无需存…

【Web缓存】Nginx和CDN应用

目录 一.代理相关概述 1.工作机制 2.概念 3.作用 4.常用的代理服务器 二.Nginx缓存代理服务器部署 1.在三台服务器上部署nginx 2.在后端原始服务器上创建测试页面 3.完成nginx服务器配置修改 3.1.关闭两台测试机长连接并重启服务 3.2.设置nginx缓存服务器配置 三.C…

计算神经网络中梯度的核心机制 - 反向传播(backpropagation)算法(1)

计算神经网络中梯度的核心机制 - 反向传播(backpropagation)算法(1) flyfish 链式法则在深度学习中的主要应用是在反向传播(backpropagation)算法中。 从简单的开始 ,文本说的就是链式法则 R …

pandas数据分析(2)

列 执行df.columns获取DataFrame列信息: 如果在构造DataFrame时没有提供列名,那么pandas会用 从0开始的数字为列编号。我们也可以为列命名,和为索引命名类似: 同样也可以重命名列名: 使用df.drop删除列: 删…

springboot解析自定义yml文件

背景 公司产品微服务架构下有十几个模块,几乎大部分模块都要连接redis。每次在客户那里部署应用,都要改十几遍配置,太痛苦了。当然可以用nacos配置中心的功能,配置公共参数。不过我是喜欢在应用级别上解决问题,因为并不…

华为RH2288H V2服务器,远程端口安装Linux操作系统

1、管理口 每台服务器的管理口不一样的,假如我的管理IP地址为:192.168.111.201 使用网线,将管理口和自己电脑连接起来,自己ip地址设置成和管理ip同一网段。 使用 ie 浏览器,如果是Edge,必须在Internet Exp…

如何配置Redis + Rdis在IDEA中的使用

文章目录 Step1. 下载zipStep2. 修改环境变量Step3. 启动Redis服务端Step4. 启动Redis客户端Step5. IDEA中链接Redis Step1. 下载zip 下载 Redis-x64-xxx.zip压缩包,解压到 E 盘后,将文件夹重新命名为 redis 下载地址:Redis下载地址 Step2…

Go 语言切片遍历地址会发生改变吗?

引言:今天面试的时候,面试官问了一道学 Go 语言的同学都会的简单代码,是关于 Go 语言 for 循环问题的,他询问了一个点,循环中共享变量的地址会发生改变吗? 相信听到这个问题的你,第一反应肯定是…

Webpack: 深入理解图像加载原理与最佳实践

概述 图形图像资源是当代 Web 应用的最常用、实惠的内容、装饰元素之一,但在 Webpack 出现之前对图像资源的处理复杂度特别高,需要借助一系列工具(甚至 Photoshop)完成压缩、雪碧图、hash、部署等操作。 而在 Webpack 中,图像以及其它多媒体…

基于MongoDB的电影影评分析

项目源码及资料 项目介绍 1、从豆瓣网爬取Top10的电影数据 爬取网址: https://movie.douban.com/top250 1.1 爬取Top10的影视信息 mv_data [] i 0 for x in soup.select(.item):i 1mv_name re.search(>([^<])<, str(x.select(.info > .hd > a > .tit…