@@ -358,13 +358,8 @@ def smb1_free_hole(start)
358
358
pkt = make_smb1_free_hole_session_packet ( "\x07 \x40 " , "\x2c \x01 " , "\xf8 \x87 \x00 \x00 \x00 " )
359
359
end
360
360
361
- #dump_packet(pkt)
362
- sock . put ( pkt )
363
-
364
- vprint_status ( "Receiving free hole response." )
365
- sock . get_once
366
-
367
- return sock
361
+ client . send_recv ( pkt )
362
+ sock
368
363
end
369
364
370
365
def smb1_get_response ( sock )
@@ -575,44 +570,21 @@ def make_smb1_nt_trans_packet(tree_id, user_id)
575
570
end
576
571
577
572
def make_smb1_free_hole_session_packet ( flags2 , vcnum , native_os )
578
- pkt = ""
579
- pkt << "\x00 " # Session message
580
- pkt << "\x00 \x00 \x51 " # length
581
- pkt << "\xff SMB" # SMB1
582
- pkt << "\x73 " # Session Setup AndX
583
- pkt << "\x00 \x00 \x00 \x00 " # NT SUCCESS
584
- pkt << "\x18 " # Flags
585
- pkt << flags2 # Flags2
586
- pkt << "\x00 \x00 " # PID High
587
- pkt << "\x00 \x00 \x00 \x00 " # Signature1
588
- pkt << "\x00 \x00 \x00 \x00 " # Signature2
589
- pkt << "\x00 \x00 " # Reserved
590
- pkt << "\x00 \x00 " # TreeID
591
- pkt << "\xff \xfe " # PID
592
- pkt << "\x00 \x00 " # UserID
593
- pkt << "\x40 \x00 " # MultiplexID
594
- #pkt << "\x00\x00" # Reserved
573
+ packet = RubySMB ::SMB1 ::Packet ::SessionSetupRequest . new
595
574
596
- pkt << "\x0c " # Word Count
597
- pkt << "\xff " # No further commands
598
- pkt << "\x00 " # Reserved
599
- pkt << "\x00 \x00 " # AndXOffset
600
- pkt << "\x04 \x11 " # Max Buffer
601
- pkt << "\x0a \x00 " # Max Mpx Count
602
- pkt << vcnum # VC Number
603
- pkt << "\x00 \x00 \x00 \x00 " # Session key
604
- pkt << "\x00 \x00 " # Security blob length
605
- pkt << "\x00 \x00 \x00 \x00 " # Reserved
606
- pkt << "\x00 \x00 \x00 \x80 " # Capabilities
607
- pkt << "\x16 \x00 " # Byte count
608
- #pkt << "\xf0" # Security Blob: <MISSING>
609
- #pkt << "\xff\x00\x00\x00" # Native OS
610
- #pkt << "\x00\x00" # Native LAN manager
611
- #pkt << "\x00\x00" # Primary domain
612
- pkt << native_os
613
- pkt << "\x00 " * 17 # Extra byte params
575
+ packet . smb_header . flags . read ( "\x18 " )
576
+ packet . smb_header . flags2 . read ( flags2 )
577
+ packet . smb_header . pid_high = 65279
578
+ packet . smb_header . mid = 64
614
579
615
- pkt
580
+ packet . parameter_block . vc_number . read ( vcnum )
581
+ packet . parameter_block . max_buffer_size = 4356
582
+ packet . parameter_block . max_mpx_count = 10
583
+ packet . parameter_block . security_blob_length = 0
584
+
585
+ packet . data_block . native_os = native_os
586
+ packet . data_block . native_lan_man = "\x00 " * 17
587
+ packet
616
588
end
617
589
618
590
# ring3 = user mode encoded payload
0 commit comments