mobile-shell
Repos
3

Events

Created at 11 hours ago
Created at 1 day ago
Created at 3 days ago
Created at 3 days ago
Created at 3 days ago
Created at 4 days ago
issue comment
Screen corruption with neovim

Mosh supports C1 controls, but is locked to Unicode only -- it doesn't support ISO 2022 charset-switching sequences on purpose. (See https://github.com/mobile-shell/mosh/issues/1127#issuecomment-767296122 for a longer rationale.) neovim should be using Unicode (ISO 10646) characters when the terminal charset is Unicode and NCURSES_NO_UTF8_ACS is set, rather than ISO 2022 locking shifts into an alternate charset.

Created at 4 days ago
Created at 4 days ago
Created at 4 days ago
Created at 5 days ago
Created at 5 days ago
issue comment
Documentation for State Synchronization Protocol

Is it possible to provide some information about the packet structure?

I have created SSH-MITM, which is able to intercept ssh sessions and with the next release, it's also possible to decrypt MOSH sessions.

At the moment, it's possible to decrypt the messages, but I have some problems to find the structure of the message in the source code. According to your papers https://mosh.org/mosh-paper-draft.pdf and https://www.usenix.org/system/files/login/articles/winstein.pdf there are 2 different structures.

Following python script decrypts the message:

import base64
from cryptography.hazmat.primitives.ciphers.aead import AESOCB3

key = base64.b64decode("gy37yTEqclUSpFODXW2L+A" + "==")

nonce = bytes(bytearray.fromhex("000000008000000000000000"))
data = bytes(bytearray.fromhex("".join([
    '67', 'a3', 'a3', '8d', '18', '0b', '0c', '45', '44', '8b', 
    '6c', '8e', '85', '11', '60', '89', 'bf', '6e', '81', '40', 
    '50', 'ee', '80', '11', '31', 'b2', '1e', '68', 'ae', 'd8', 
    'aa', '29', '23', '41', '2f', '27', 'd5', '83', 'cb', 'ec', 
    '70', '8a', 'a2', '27', '81', '7a', '1b', '44', '97', 'e0', 
    'cb', '67', 'e7', '46', 'd8', '1f', '7f', '3f', '4a', '27', 
    '31', '04', 'c1', '06', 'a3', '8e', 'f3', '3a', 'eb', '2f', 
    'c5', '2f', 'ab', 'f8', '8e', 'aa', 'ea', 'f4', '9d', '81', 
    'ea', '4e', 'ed', 'a2', '09', 'a0', '03', '60', '60', '1e', 
    'a1', 'f5', '9f', 'ce', '94', '81', '69', 'af', 'dd', 'd8', 
    '4a', '75', '06', '47', '80', '13', 'df', '49', '66', '60', 
    'e6', 'aa', '1c', '17', '64', '3f', 'e1', 'ef', 'd1', '4d', 
    'd8', '4b', '54', '12', '6f', '47', '8f', '34', '31', 'd0', 
    '1f', '3f', '22', '54', 'cb', 'a7', 'de', '15', '91', 'b4', 
    '6d', '5d', '28', 'c8', '1c', 'a1', 'b5'
])))



aesocb = AESOCB3(key)
print(aesocb.decrypt(nonce, data, None))

I've got following data:

0000:    2b 90 2b 8e 00 00 00 00 00 00 00 01 80 00 78 9c e3 60 12    +.+...........x..`.
0013:    60 90 60 54 60 d4 60 30 3a cb c8 c5 2e c5 aa 71 86 d1 40    `.`T`.`0:......q..@
0026:    84 eb 20 a3 d0 3e 46 a5 dd 8c d2 d1 45 d2 d1 06 b9 d2 d1    .. ..>F.....E......
0039:    1e d2 d1 46 5e d2 d1 f6 46 a6 39 d2 d1 de 5c 54 c4 d2 d1    ...F^...F.9...\T...
004C:    86 d6 86 1e 60 a3 33 20 76 d9 1b 19 18 98 00 ad b1 37 34    ....`.3 v........74
005F:    30 30 86 d2 46 50 da 10 4a 1b 40 69 a8 3a 43 53 28 df 0c    00..FP..J.@i.:CS(..
0072:    4a 9b e6 58 b1 e9 1d 6d 50 35 17 04 00 d7 ff 31 8a          J..X...mP5.....1.

Is there some documentation available which describes this data?

Created at 6 days ago
Created at 6 days ago
Created at 1 week ago
Created at 1 week ago
Created at 1 week ago
Created at 1 week ago
Created at 1 week ago
fork
Created at 1 week ago
Created at 1 week ago
Created at 1 week ago
Created at 1 week ago
Created at 1 week ago
Created at 1 week ago
Created at 2 weeks ago
Created at 2 weeks ago
Created at 2 weeks ago
Created at 2 weeks ago
Created at 2 weeks ago
closed issue
Integrate secure agent forwarding / Guardian Agent

How are we going to give you positive feedback to integrate this very useful feature if there's no ticket?

Although it might be more useful to integrate it to the ssh-agent itself.

https://github.com/StanfordSNR/guardian-agent

Created at 2 weeks ago