Replies: 73 comments 14 replies
-
Hi @llevi, I'll try to replicate your steps on my C200 camera.
Gladly. What'd be the best way to contact you? |
Beta Was this translation helpful? Give feedback.
-
I'm on facebook messenger: |
Beta Was this translation helpful? Give feedback.
-
You should have a message from me in your inbox. |
Beta Was this translation helpful? Give feedback.
-
Hi @llevi,
If I wait for it to load the second stage u-boot and then bring the chip select low when it says "autobooting", it will simply hang:
|
Beta Was this translation helpful? Give feedback.
-
Hi @depau, you can kill the httpd server by hitting From there, you'll be dropped into the U-boot shell. |
Beta Was this translation helpful? Give feedback.
-
I have no idea why I didn't even try 🤦♂️ it works, thanks!
|
Beta Was this translation helpful? Give feedback.
-
To boot into a shell, you also need to set the init to
Please note, that devfs, sysfs aren't going to be mounted when you boot from memory, because |
Beta Was this translation helpful? Give feedback.
-
@depau I have a working C100 (yet :D ) |
Beta Was this translation helpful? Give feedback.
-
I dumped the flash overnight, I'll inspect it today. I thought I'd be able to get root access over serial during normal operation but they disabled all accounts, I guess I'll have to find another way. I did get all the binaries and the certificates though.
I have a programmer compatible with |
Beta Was this translation helpful? Give feedback.
-
@depau If you have powerful enough computer, you can try to bruteforce the root password which is in /etc/passwd . |
Beta Was this translation helpful? Give feedback.
-
I tried with multiple wordlists but no such luck.
Here's some info i gathered including the (uncracked) crypt md5 hash:
https://md.depau.eu/mA9zdqPKTPCCz2sgWlh3_g
…On Sun, Nov 29, 2020, 21:16 llevi ***@***.***> wrote:
@depau <https://github.com/Depau> If you have powerful enough computer,
you can try to bruteforce the root password which is in /etc/passwd .
I dd-ed the rootfs to an sdcard and could successfully boot up with
changed root pass. and voila - working system with root shell (tell this
because they didn't disabled all accounts, they just password-protect the
root acc)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#1 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAIZCWKZLO73GCGWJ5E3CULSSKTY7ANCNFSM4SGEKLZA>
.
|
Beta Was this translation helpful? Give feedback.
-
Hi, I was able to find the default root password in the released GPL code together with the sequence to stop autoboot and fall through into the uboot console. The default root password is You also don't really need to rewrite the flash with a programmer, you can use tftp to boot over Ethernet, I can whip up some pinout pictures if someone would be interested in this. I was also able to use the camera as a regular AP while connected over Ethernet, which is pretty nice. |
Beta Was this translation helpful? Give feedback.
-
Ahoj @kubik369,
would you mind linking to the GPL sources so I could document it in this repo?
I'd highly appreciate this, as it's been something I've been thinking about since I've seen the unused header Thank you for your contribution! |
Beta Was this translation helpful? Give feedback.
-
Ahoj @nervous-inhuman (si z CZ/SK? :) ) Here are the links for Tapo C100 and C200:
However, they are the same thing, to the bit (at least the last time I checked). The C200 one has been published on the website when I checked, the C100 one I needed to request. Thankfully, TP-link support was really prompt and they provided me with the link basically the next day (they also put it up on the website). I am pretty sure that we can get C310 sources the same way. I don't own a C310 camera yet, only C100 and C200. Since C100 and C200 are basically identical and they have those unpopulated headers, I suspect that C310 will be also identical. What do you think would be the best course of action for contributions? I think that we should try to team up with the people that are working on the pytapo library and aggregate all pieces of information that we were able to find out. We can either put everything into their repository wiki or add a link pointing to this repository from theirs. I am going to take a picture of my "setup" and annotate it and after we work out the best course of action, I will write down everything I know and commit it to the agreed repository :) |
Beta Was this translation helpful? Give feedback.
-
Replying to @kubik369:
Yeah! The reason why I started this repo is because I found this camera for cheap on Alza, and wanted to get a root shell on it and to integrate it into my Home Assistant setup. ...
I'm unsure, as far as I was aware some months ago, I was the only person/this was the only repository focused on Tapo C200/Cxxx research. ...
This sounds fantastic, I didn't know about their project. I believe this repo predates theirs by about a month. |
Beta Was this translation helpful? Give feedback.
-
Thank you! Will try ASAP. Is this IR LED lighting up issue due to firmware corruption? What exactly causes this issue? I have around 10 Tapos in my hospital, one more is acting up the same way. |
Beta Was this translation helpful? Give feedback.
-
Hello everyone! I've recently added the C100 to my arsenal of PCBs that run the RTS3903N SoC, here's a list of the resources I've created over the last year or so.
I'm planning on rewriting my RTSP Server implementation soon. I have around 15 different PCBs with this SoC and have fair amount of experience with its quirks and the typical tricks the vendors implement. What's everyone's current objectives with their camera? |
Beta Was this translation helpful? Give feedback.
-
Edit: Try @Piets method FIRST, as its less intrusive and will keep your cameras vendor / meta data (such as MAC address etc) I'd recommend taking a full flash dump of the non-functional camera and then flashing a working dump over it via the SOIC8 chip flash. To obtain the working flash dump connect to the working camera via UART, grab a copy of the mtdblock0 (full flash), here's a little script that'll help you (comment out unneeded code). However, if you're confident grabbing it via reading the soic8 flash then go for it straight away.. just thinking of a less intrusive method for you working camera. Check the IR LED problem, if its still causing a problem then it's a hardware fault. If they're functioning correctly then you know it's firmware. Hopefully you're lucky and it's only firmware, then you'll need to flash the relevant mtdblockX block back with the original camera vendor config (mac address etc)... but we cross that bridge when you get there! If you're feeling a little adventurous and are working on this damaged camera a fair bit, you setup and use a little SOIC8 adapter for quick flashing like I do here: I hope this helps! |
Beta Was this translation helpful? Give feedback.
-
Well It worked wonderfully. I was able to recover my camera and add it to app. Apart from mysterious disconnections Its been working nicely so far. Thank you so much @Piets |
Beta Was this translation helpful? Give feedback.
-
It's possible to retrieve direct download links for firmware from the camera with the following API request:
Response: {
"cloud_config": {
"upgrade_info": {
".name": "upgrade_info",
".type": "cloud_reply",
"release_log_url": "undefined yet",
"location": "0",
"type": "3",
"version": "1.3.0 Build 220909 Rel.43466n",
"release_date": "2022-12-05",
"download_url": "http:\/\/download.tplinkcloud.com\/firmware\/Tapo_C200v3_en_1.3.0_Build_220909_Rel.43466n_u_1670206040481.bin",
"release_log": "Modifications and Bug Fixes:\\n1. Enhance connection stability.\\n2. Add support for Person Detection, Montion Tracking, Baby Crying Detection and Privacy Zones.\\n3. Fix some minor bugs."
}
},
"error_code": 0
} |
Beta Was this translation helpful? Give feedback.
-
Hey all, I am new to reverse engineering and I have downloaded the latest firmware for the Tapo C200v3 camera (Tapo_C200v3_en_1.3.0_Build_220909_Rel.43466n_u_1670206040481.bin). However, it seems to be encrypted and I am having trouble extracting it. I was able to extract previous firmware versions without issue. Could you please guide me and explain what I might be missing here? I would appreciate any advice on how to extract this firmware. Thank You ! |
Beta Was this translation helpful? Give feedback.
-
Hi, thanks to all for all the solutions but the credentials are not workings for the TPlink tapo C200 candidate. I tried ----- username: root but it's now not working out!!! |
Beta Was this translation helpful? Give feedback.
-
Hi all, I am new here on the forum. I bought a TP-Link c210 camera. My question is, if a hacker has placed malicious code through the motherboard connector interface, will the OTA update overwrite it? Is it worth taking the camera apart and overwriting the whole software? Or is an OTA update sufficient? Does the OTA update overwrite everything on all partitions? |
Beta Was this translation helpful? Give feedback.
-
Hi all, some years ago this guy started a hack on a Xiaomi Webcam Dafang. It involved many of the issues you are trying to solve with the Tapo C200. Maybe you can work together or get some inspiration from him. Cheers |
Beta Was this translation helpful? Give feedback.
-
Hi all, I wanted to know how can I get the latest firmware image for C200 camera (1.3.9 Build 231019 Rel.29120n) |
Beta Was this translation helpful? Give feedback.
-
You can get it via intercepting the HTTP requests via the app, this is the link for the latest firmware, but it looks to be encrypted, binwalk returns nothing, anyone got any ideas what to do next? I'm guessing not much can be done from this point. Could probably try and reverse it in something like Ghidra, but not sure what CPU the C200 is running, I'm assuming MIPS but not sure on specifics. |
Beta Was this translation helpful? Give feedback.
-
Yes. Unfortunately
I moved a bunch of firmware URLs from this discussion to https://github.com/DrmnSamoLiu/Tapo_Camera_Firmware/issues Those unencrypted firmwares have a bunch of security flaws, so I have a handful of RCEs for older firmwares... but they don't work on my camera anymore (C220.. which is quite recent and seems to have gotten a few security related patches).
I could imagine that it depends on the hw version. But the tapo cameras I've looked at (C100, C200, C210, C220, C310) all run either MIPS or ARM and they basically run the same software. |
Beta Was this translation helpful? Give feedback.
-
for my tapo C100 (V4) the username root dose not work. |
Beta Was this translation helpful? Give feedback.
-
On a C100 v1 I have the same symptom after failed firmware upgrade, only IR leds on. I've followed your instructions but setting the range in the 192.168.0.0/24 doesn't work. Nothing there. So I've tried DHCP and it turns that the camera assignes my computer a 192.168.1.12 adress with a default route 192.168.1.1. But that's all, it doesn't respond to ping in that adress. I've scanned the range with nmap and it's empty. Is there a way to flash the firmware through telnet? |
Beta Was this translation helpful? Give feedback.
-
Updates on shell access for who's interested in it: I confirmed that on a Tapo C210 v2 running firmware v1.3.11 (latest as of today), serial console login is disabled by TP-Link. Another thing is that the "Bypass login by modifying Uboot env" way mentioned at the beginning of this thread and in my blog won't work too, because someone stole it for a CVE TP-Link patched how the busybox login and Uboot works, which I won't elaborate here so I don't give them more ideas. Just to let anyone here and in the future know that things had changed a bit and previous discussions in this thread might not work anymore. |
Beta Was this translation helpful? Give feedback.
-
Hi,
I have a Tapo C100 camera.
You can get an uboot shell via grounding the CS pin of the spi flash, when it shows "autobooting" message.
After that, you can boot in to linux via init=/bin/sh bootarg.
You can even create a partition to sdcard and dd the mtdblock6 to it, and show the linux from uboot to get the rootfs from there.
I can provide the exact commands if you need it.
I want to get a root shell via telnet, when it is in the wall, assembled (not doing the CS pin grounding hack).
My problem is: I cannot write the rootfs, not only because its squashfs, but it
"doesn't start on an erase block boundary -- force read-only"
I am thinking about to write the boot - mtdblock partition to tell the 2nd uBoot to add root=/dev/mmcblkp1 to bootargs
Do you think we can cooperate with this experiment?
Beta Was this translation helpful? Give feedback.
All reactions