Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Resolves #78 #90

Open
wants to merge 1 commit into
base: release
Choose a base branch
from
Open

Resolves #78 #90

wants to merge 1 commit into from

Conversation

AndyMeusel
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant