Hacking Livongo Blood Glucose meter

Hello, newbie to this forum. Please let me know if this is not appropriate or if there’s a better place for it.

I just received a Livongo Connected Blood Glucose meter, and decided to try to dump it’s data. I’m uncomfortable with it reporting all it’s data to a cloud, so I immediately turn on ‘Airplane mode.’

Plugging it into my Linux Ubuntu system and running ‘dmesg’ gave:

[1291961.740887] usb 3-4: new full-speed USB device number 11 using xhci_hcd
[1291961.868438] usb 3-4: New USB device found, idVendor=0483, idProduct=5740
[1291961.868443] usb 3-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[1291961.868447] usb 3-4: Product: InTouch Virtual ComPort in FS Mode
[1291961.868449] usb 3-4: Manufacturer: LivongoHealth
[1291961.868452] usb 3-4: SerialNumber: 3439394D3039
[1291961.917341] cdc_acm 3-4:1.0: ttyACM0: USB ACM device
[1291961.917678] usbcore: registered new interface driver cdc_acm
[1291961.917680] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[1291962.810982] usb 3-4: USB disconnect, device number 11
[1291963.091923] usb 3-4: new full-speed USB device number 12 using xhci_hcd
[1291963.219324] usb 3-4: New USB device found, idVendor=0483, idProduct=5740
[1291963.219329] usb 3-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[1291963.219333] usb 3-4: Product: InTouch Virtual ComPort in FS Mode
[1291963.219336] usb 3-4: Manufacturer: LivongoHealth
[1291963.219338] usb 3-4: SerialNumber: 3439394D3039
[1291963.220267] cdc_acm 3-4:1.0: ttyACM0: USB ACM device

I ran the terminal emulation program ‘miniterm’ with --device=/dev/ttyACM0 and the serial protocol ‘4800 8N2’ and got a ‘>’ prompt. Typing ‘help’ got me:

>help                                                                            
Command         Description                                                      
------------------------------------------                                       
factory         Set factory defaults                                             
about           Show information                                                 
date            Show current RTC date and time                                                                                                          
>date                                                                            
Mon May 10 11:48:34 2021                                                         
>about                                                                           
Version: 2.4.1                                                                   
CCID: 8901260882274736393                                                        
IMEI: 354596110757035                                                            
>

Can anyone suggest other commands to try? Does this look familiar to anything you’ve seen before?

Thanks for your help and suggestions.

-Kevin

1 Like

CCID is related to Smartcard readers

IMEI is related to mobile phone routing

That’s all I got for ya though. Welcome to the forums! We have a few diabetics around here who I’m sure will be interested in your projects.

Yeah I mean on first glance it looks like a shell with the prompt set to >.
Could be protected, like sandboxed or it could be some text based menu.

My first step would be to answer “is this a real shell?”. Maybe those are real binaries you are executing.
Try ls or dir. Try echo test. Try to press tab. Try whatever really.
If you can’t determine it’s a shell, or if it’s sandboxed well or just not a real shell, you could try to inject commands (as command and as arguments to the other commands).
You could try buffer overflows, you could activate the cloud stuff and intercept the responses and inject stuff, you could try to find commands that are not shown in help…
There’s just so much to try.

Idk, it’s kinda like “how to hack stuff” at this point, maybe you’ll find something here: OTGv4. That’s kinda the nearest thing to a “how to hack stuff step by step guide”.

The ID of the phone I think. IMSI is the SIMs ID, IMEI the phones ID.

1 Like

@yeka, WhooHoo! ‘ls’ works:

>ls                                                                              
   Size     Date     Time     Name                                               
   665157   00/01/01 00:23:48 FW000121.PKG                                       
   380      01/05/01 01:21:20 LHBOOT.LOG                                         
D  0        00/01/01 00:25:16 L           
D  0        00/01/01 00:24:06 A           
files: 4, bytes: 665537
>dir
>cat lhboot.log
>cd L
>pwd
>ls
   Size     Date     Time     Name
   665157   00/01/01 00:23:48 FW000121.PKG
   380      01/05/01 01:21:20 LHBOOT.LOG  
D  0        00/01/01 00:25:16 L           
D  0        00/01/01 00:24:06 A           
files: 4, bytes: 665537
>cat LHBOOT.LOG
>[A
>type LHBOOT.LOG
>

I executed this after I choose the factory reset option, so it could have erased the data I entered when I tested my blood sugar this morning. I’ll test my BS again now, and see if anything changes.

Thanks so much!

-Kevin

1 Like

ar ar ar windows phone BGR, i have some of these in the cupboard lmk if you need any extra dump help

Nice! Now try to get root :slight_smile:
Wait isthis even unix like?
Whatever, looks interesting. Keep us updated.

Well, some changes:
>ls
Size Date Time Name
665157 00/01/01 00:23:48 FW000121.PKG
380 01/05/01 01:21:20 LHBOOT.LOG
D 0 00/01/01 00:25:16 L
D 0 00/01/01 00:24:06 A
D 0 21/05/10 17:23:34 M
D 0 21/05/10 17:23:34 BANNER
files: 6, bytes: 665537
>

This gave me an idea:
>ls -la
error (4): cannot f_stat file ‘-la’
>ls L
Size Date Time Name
7842 21/05/10 17:30:36 SYSLOG.LOG
files: 1, bytes: 7842
>ls A
Size Date Time Name
113 00/01/01 00:24:06 ES219.TXT
17 00/01/01 00:24:06 ES225.TXT
26 00/01/01 00:24:06 ES231.TXT
12 00/01/01 00:24:06 EN412.TXT

2 00/01/01 00:24:44 EN392.TXT
15 00/01/01 00:24:44 ES228.TXT
16 00/01/01 00:24:44 ES214.TXT
7 00/01/01 00:24:44 ES200.TXT
files: 652, bytes: 1480759
>

These seem to be configuration and screen prompt files.

This has today’s date, but still can’t dump the contents:
>ls M
Size Date Time Name
D 0 21/05/10 17:23:34 000
files: 1, bytes: 0
>[A[B
>ls M/000
Size Date Time Name
43 21/05/10 17:23:34 TEXT.MSG
files: 1, bytes: 43
>[A[B[B[
>ls M/000/TEXT.MSG
Size Date Time Name
43 21/05/10 17:23:34 TEXT.MSG
>cat M/000/TEXT.MSG
>type M/000/TEXT.MSG
>

Still trying other commands.

@yeka I do think this is Unix-like. Wasn’t there a project like ‘something-box’ that was a lightweight shell? I tried ‘su’ without success to gain root.

Thanks for the help and suggestions. Keep 'em coming.

-Kevin

Find some other commands, like try ls … …/… etc and then folders it shows.
I mean there has to be something that can read files… there just has to :slight_smile:

U mean busybox, no? Idk.

I’d kinda want to hop in a call with you, are you on the DT discord?

Hi, @yeka, no joy with these trials:
>ls /
error (6): cannot f_stat file ‘/’
>ls /etc
error (4): cannot f_stat file ‘/etc’
>ls …
error (6): cannot f_stat file ‘…’
>
(Those are two periods above, not three.)

Yeah, I was thinking of busybox. That’s the only lightweight shell that’s sometimes used for embedded systems that I know of.

Sorry, I’m not on discord, and I’m in the middle of getting my homework done for another class today, so no time for a call. Thanks for your offer, though.

-Kevin

1 Like

When you are ready

You could try ‘env’ to show you any environment variables. Just because they are using an embedded shell doesn’t mean that they have the file systems, or any of the standard utilities of a full OS. Given that ‘ls -la’ complains about -la’ not being a file I suspect that this is a very limited implementation.

@Zwack, ‘env’ doesn’t return anything. Thanks for the idea, though.

I’m still hoping that somebody recognizes this as some sort of standard shell or OS, that’ll have some documentation that I can use to explore it.

-Kevin

Thanks, that tells me it is probably not a common standard Unix/Linux shell. (Env is usually a built in)

That doesn’t rule out a standard kernel, but there are a couple of hundred rtos options to wade through.