How To Install Chrome In Kali

How To Install Chrome In Kali

Reading time1 min
#Linux#Security#Browser#Kali#Chrome#PenetrationTesting

Installing Google Chrome on Kali Linux: Low-Friction Workflow for Security Engineers

The default browser stack in Kali—typically Firefox ESR—does its job, but certain penetration testing workflows and web application assessments are streamlined with Google Chrome. Chrome’s extension catalog, devtools workflow, and compatibility often outclass competitors, especially when deep integration or advanced proxying is a requirement.

Classic issue: Chrome isn’t in the Kali or Debian main apt repositories for licensing reasons. So installation requires some manual steps and attentiveness to dependencies.


1. System Update Is Not Optional

Before bringing in Chrome, sync the current package set. Outdated libc or font libraries = subtle breakages later.

sudo apt update && sudo apt upgrade -y

2. Download Official Chrome .deb Package

Fetch Chrome directly from Google’s CDN—don’t trust third-party mirrors. The URL below pulls the stable release for amd64 (x86_64):

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

If using ARM hardware (rare in Kali), this method won’t work—Chrome for Linux is not offered for ARM.


3. Install Pre-Requisites—Or Prepare for Broken UI

Chrome expects libraries not always present on pen-testing distributions:

sudo apt install -y libappindicator3-1 fonts-liberation

These handle status icons (notification integration) and fallback fonts. Absence leads to warning messages and missing UI elements.


4. Package Installation with Error Handling

Proceed via dpkg; resolve dependency failures with apt. This is always a two-step process, Chrome .deb is rarely fully self-contained:

sudo dpkg -i google-chrome-stable_current_amd64.deb
# Likely: "dependency problems - leaving unconfigured"
sudo apt -f install -y

Note: If "no such package" errors arise—check /etc/apt/sources.list, and ensure all standard Debian repositories are enabled.


5. Smoke Test: Launch and Version Check

Confirm install and access:

google-chrome --version  # Outputs e.g., Google Chrome 124.0.6367.208
google-chrome &

For GUI access, look under Internet or Web Browser in the desktop menu.


6. Optional: Set Chrome as Default Handler

For command-line URL redirects, some tools expect the system’s default browser handler:

xdg-settings set default-web-browser google-chrome.desktop

Desktop environments (XFCE, GNOME) may require an additional setting in their GUI preferences to fully propagate this change.


7. Post-Install: Real-World Penetration Testing Tips

Key Extensions

  • Wappalyzer (fingerprinting)
  • ModHeader (header manipulation)
  • HackTools (basic encoding, common payloads)

Proxying with Burp Suite or ZAP

Configure system proxy or use Chrome’s explicit proxy settings:

Settings → System → Open your computer’s proxy settings

Point HTTP(S) proxy at 127.0.0.1:8080. Don’t forget to exclude traffic to 127.0.0.1 itself to avoid Burp Suite loopbacks.

Incognito Mode Gotcha

Incognito mode disables most extensions. For plugin-based testing (e.g., SSRF), rerun Chrome with --incognito --disable-extensions if you want baseline browser behavior.


8. Troubleshooting Common Pitfalls

A. GPG Key Issues When Updating

If apt outputs:

The following signatures couldn't be verified because the public key is not available: NO_PUBKEY...

Execute:

wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo apt update

B. Broken Dependencies After dpkg

Run:

sudo apt --fix-broken install

Logs will show specific missing libraries; occasionally a manual apt install of the listed package is necessary.

C. Segfaults or GPU Bugs

On certain VMs, Chrome may crash immediately due to hardware acceleration issues:

google-chrome --disable-gpu

If running as root, use --no-sandbox but avoid this on production systems—Chrome’s sandbox is critical for security.


Side Notes and Non‑Obvious Tips

  • Multiple Chrome Versions: Chrome Beta and Dev can coexist, but local profiles will conflict; specify --user-data-dir=/tmp/chrome-test to isolate.
  • Headless Testing: Use google-chrome --headless --remote-debugging-port=9222 for scripted automation, e.g., with Selenium.
  • Offline Installations: Air-gapped environments require all dependencies via apt download; see dpkg -I google-chrome-stable_current_amd64.deb for full requirements.

Summary

The above approach avoids flaky PPA scripts and manual repo edits. Chrome install via official .deb plus dependency handling works reliably on recent Kali releases (tested: 2024.1, 2023.4). Some proxy features and extension support can still lag after major browser updates—track changelogs if relying on bleeding-edge features.

Known issue: Some extensions (notably those doing deep protocol spoofing) only work on Chrome, not Chromium—there is a difference. Alternatives (like Brave or Ungoogled Chromium) may not support all the same APIs.

Questions or specifics about proxy chaining, debugging, or extension limitations? Open an issue or submit logs.


Happy hunting.