mikronode icon indicating copy to clipboard operation
mikronode copied to clipboard

Resolves #78

Open AndyMeusel opened this issue 5 years ago • 0 comments

Just sending the new format login string before the old style (not elegant admittedly, but) works

Tested against RouterOS v6.42.3 and v6.45.1

challenge=>{
    stream.write([
        "/login",
        "=name=" + user,
        "=password=" + password
    ]);
    const md5=crypto.createHash('md5');
    md5.update(Buffer.concat([Buffer.from(nullString+password),Buffer.from(challenge)]));
    stream.write([
        "/login",
        "=name="+user,
        "=response=00"+md5.digest("hex")
    ]);
},{resolve,reject}
Connecting to [IP_ADDRESS]                                                                   
SocketStream::new [ 5, 8 ]                                                                     
SocketStream::setTimeout [ 5 ]                                                                 
SocketStream::Connect  { family: 4, host: '[IP_ADDRESS]', port: 8728 }                       
SocketStream::Connected  [] { family: 4, host: '[IP_ADDRESS]', port: 8728 }                  
Connected. Waiting for login.                                                                  
Logging in                                                                                     
SocketStream::write: [ '/login' ]                                                              
SocketStream::write: sending /login                                                            
Packet received:  [ '\u0005!done%=ret=986b5c57bec4648a6c4a686b7b22bdc5', '' ]                  
Got done_ret, building response to  { type: 'done_ret', data: '986b5c57bec4648a6c4a686b7b22bdc5
' }                                                                                            
Challenge length:16                                                                            
SocketStream::write: [ [ '/login', '=name=[USERNAME]', '=password=[PASSWORD]' ] ]     
SocketStream::write: sending /login                                                            
SocketStream::write: sending =name=[USERNAME]                                                   
SocketStream::write: sending =password=[PASSWORD]                                    
SocketStream::write: [ [ '/login',                                                             
    '=name=[USERNAME]',                                                                         
    '=response=[PASSWORD_HASH]' ] ]                                         
SocketStream::write: sending /login                                                            
SocketStream::write: sending =name=[USERNAME]                                                   
SocketStream::write: sending =response=[PASSWORD_HASH]                      
Packet received:  [ '\u0005!done%=ret=986b5c57bec4648a6c4a686b7b22bdc5',                       
  '\u0005!done',                                                                               
  '' ]                                                                                         
Got done_ret, building response to  { type: 'done_ret', data: '986b5c57bec4648a6c4a686b7b22bdc5
' }                                                                                            
Challenge length:16                                                                            
SocketStream::write: [ [ '/login', '=name=[USERNAME]', '=password=[PASSWORD]' ] ]     
SocketStream::write: sending /login                                                            
SocketStream::write: sending =name=[USERNAME]                                                   
SocketStream::write: sending =password=[PASSWORD]                                    
SocketStream::write: [ [ '/login',                                                             
    '=name=[USERNAME]',                                                                         
    '=response=[PASSWORD_HASH]' ] ]                                         
SocketStream::write: sending /login                                                            
SocketStream::write: sending =name=[USERNAME]                                                   
SocketStream::write: sending =response=[PASSWORD_HASH]                      
Login complete: Connected                                                                      
Creating channel  1563788976251                                                                
Channel 1563788976251 Created                                                                  
Writing on channel 1563788976251 /system/routerboard/print {}                                  
SocketStream::write: [ [ '/system/routerboard/print', '.tag=1563788976251-1' ] ]               
SocketStream::write: sending /system/routerboard/print                                         
SocketStream::write: sending .tag=1563788976251-1                                              
Packet received:  [ '\u0005!done%=ret=986b5c57bec4648a6c4a686b7b22bdc5', '' ]                  
Login stream complete                                                                          
Packet received:  [ '\u0005!trap\u0016=message=cannot log in',                                 
  '\u0005!done',                                                                               
  '\u0003!re\u0014.tag=1563788976251-1\u0011=routerboard=true\u0014=model=CCR1009-8G-1S\u001b=s
erial-number=66C405BC61AE\u0015=firmware-type=tilegx\u0016=factory-firmware=3.27\u0018=current-
firmware=6.42.3\u0018=upgrade-firmware=6.42.3',                                                
  '\u0005!done\u0014.tag=1563788976251-1',                                                     
  '' ]                                                                                         
Channel (1563788976251)::data flatMap                                                          
Channel (1563788976251)::data flatMap                                                          
Channel (1563788976251)::done_ret flatMap                                                      
oldFirmware "v6.42.3"                                                                          
Clearing command cache for # 1                                                                 
Channel (1563788976251)::CLOSED                                                                
Closing channel  1563788976251                                                                 
Closing Socket  undefined
Connecting to [IP_ADDRESS]                                                                    
SocketStream::new [ 5, 8 ]                                                                     
SocketStream::setTimeout [ 5 ]                                                                 
SocketStream::Connect  { family: 4, host: '[IP_ADDRESS]', port: 8728 }                        
SocketStream::Connected  [] { family: 4, host: '[IP_ADDRESS]', port: 8728 }                   
Connected. Waiting for login.                                                                  
Logging in                                                                                     
SocketStream::write: [ '/login' ]                                                              
SocketStream::write: sending /login                                                            
Packet received:  [ '\u0005!done%=ret=5f0c2e61543ccbfae524b8d9845f148b', '' ]                  
Got done_ret, building response to  { type: 'done_ret', data: '5f0c2e61543ccbfae524b8d9845f148b
' }                                                                                            
Challenge length:16                                                                            
SocketStream::write: [ [ '/login', '=name=[USERNAME]', '=password=[PASSWORD]' ] ]     
SocketStream::write: sending /login                                                            
SocketStream::write: sending =name=[USERNAME]                                                   
SocketStream::write: sending =password=[PASSWORD]                                    
SocketStream::write: [ [ '/login',                                                             
    '=name=[USERNAME]',                                                                         
    '=response=[PASSWORD_HASH]' ] ]                                         
SocketStream::write: sending /login                                                            
SocketStream::write: sending =name=[USERNAME]                                                   
SocketStream::write: sending =response=[PASSWORD_HASH]                      
Packet received:  [ '\u0005!done',                                                             
  '\u0005!trap*=message=invalid user name or password (6)',                                    
  '\u0005!done',                                                                               
  '' ]                                                                                         
Login complete: Connected                                                                      
Login stream complete                                                                          
Creating channel  1563788986351                                                                
Channel 1563788986351 Created                                                                  
Writing on channel 1563788986351 /system/routerboard/print {}                                  
SocketStream::write: [ [ '/system/routerboard/print', '.tag=1563788986351-1' ] ]               
SocketStream::write: sending /system/routerboard/print                                         
SocketStream::write: sending .tag=1563788986351-1                                              
Packet received:  [ '\u0003!re\u0014.tag=1563788986351-1\u0011=routerboard=true\r=model=2011iL\
u001b=serial-number=419A027EA4B9\u0015=firmware-type=ar9344\u0016=factory-firmware=3.10\u0018=c
urrent-firmware=6.45.1\u0018=upgrade-firmware=6.45.1',                                         
  '\u0005!done\u0014.tag=1563788986351-1',                                                     
  '' ]                                                                                         
Channel (1563788986351)::data flatMap                                                          
Channel (1563788986351)::data flatMap                                                          
Channel (1563788986351)::done_ret flatMap                                                      
newFirmware "v6.45.1"                                                                          
Clearing command cache for # 1                                                                 
Channel (1563788986351)::CLOSED                                                                
Closing channel  1563788986351                                                                 
Closing Socket  undefined

AndyMeusel avatar Jul 22 '19 10:07 AndyMeusel