@@ -17,6 +17,7 @@ def initialize(info = {})
17
17
'Description' => %q{
18
18
This module leverages an unauthenticated RCE in Ivanti's EPM Agent Portal where a RPC client can invoke a method
19
19
which will run an attacker-specified string on the remote target as NT AUTHORITY\SYSTEM.
20
+ This vulnerability is present in versions prior to EPM 2021.1 Su4 and EPM 2022 Su2.
20
21
} ,
21
22
'Author' => [
22
23
'James Horseman' , # original poc
@@ -26,6 +27,7 @@ def initialize(info = {})
26
27
'License' => MSF_LICENSE ,
27
28
'References' => [
28
29
[ 'CVE' , '2023-28324' ] ,
30
+ [ 'URL' , 'https://forums.ivanti.com/s/article/SA-2023-06-06-CVE-2023-28324?language=en_US' ] ,
29
31
[ 'URL' , 'https://github.com/horizon3ai/CVE-2023-28324' ] ,
30
32
] ,
31
33
'Platform' => 'win' ,
@@ -34,7 +36,7 @@ def initialize(info = {})
34
36
[ 'Automatic' , { } ] ,
35
37
] ,
36
38
'DefaultTarget' => 0 ,
37
- 'DisclosureDate' => '2023-06-30 ' , # NVD publish date
39
+ 'DisclosureDate' => '2023-06-07 ' , # Ivanti article created date
38
40
'Notes' => {
39
41
'Stability' => [ CRASH_SAFE , ] ,
40
42
'SideEffects' => [ ] ,
@@ -44,7 +46,7 @@ def initialize(info = {})
44
46
)
45
47
46
48
register_options ( [
47
- Opt ::RPORT ( )
49
+ Opt ::RPORT ( nil , true , 'The target port is not static. For more info, see this module\'s Verifications Steps in the docs.' ) ,
48
50
] )
49
51
deregister_options ( 'SSL' )
50
52
end
@@ -54,8 +56,8 @@ def check
54
56
return CheckCode ::Safe ( 'Command execution failed.' ) unless cwd . to_s =~ /.:\\ Windows\\ System32/i
55
57
56
58
CheckCode ::Vulnerable ( "Command execution test succeeded. Current working directory: #{ cwd } " )
57
- rescue Rex ::SocketError
58
- CheckCode ::Safe ( ' MS-NRTP connection failed.' )
59
+ rescue Rex ::SocketError => e
60
+ CheckCode ::Safe ( " MS-NRTP connection failed. #{ e . class } : #{ e . message } " )
59
61
end
60
62
61
63
def exploit
0 commit comments