Author: khaxan

Disable Flash in Microsoft Edge (Windows 10)

How to disable Flash in Microsoft Edge (Windows 10)

In Windows 10 you don’t need to install separately flash player like you used in previous Windows versions or browsers like IE/Chrome/Firefox. Now flash player is integrated with Microsoft Edge, the replacement of Internet Explorer.

Recently a new (yes, yet another one) vulnerability has been discovered for Adobe Flash Player. In order to update it you can’t go directly to Adobe website but rather it will updated with Windows Update.

In order to allow or block Flash on Edge you should follow the following steps:

  • Click the button “…” on the upper right corner of Microsoft Edge

  •   Click on View Advanced Settings
  • Look for “Use Adobe Player” and click on it to change from On to Off

Remember: Flash is a buggy software. Update it but try to keep it disabled unless you really need it (most cases you won’t!).

To disable Flash Player in Chrome or Firefox see: Disable Flash on Chrome and Firefox

I hope this information is useful. Buy me a coffee?

Buy Me a Coffee at

Disabling Autofill and Saved Passwords in Firefox and Chrome

Let’s face it, we hate to type unnecessary stuff, so if our browser can fill out information for us we’re on board!

Autofill is the feature that automatically completes form data with information you have previously entered.


However handy this might seem, it presents a huge privacy and security risk. The information that is saved in your browser – names, addresses, passwords… even credit card numbers – can be stolen through shady scammers websites and in other ways. You can read more about it here: Autofill flaw lets scammers steal credit card information

The safest option is always type the information. If you use a password manager like LastPass or KeePass copy and paste the information instead of using an autofill feature or plugin.

Disabling Autofill and Saving Passwords features in Chrome

Go to the Settings Menu Option

  • Click on the 3 dots button to view the menu
  • Click on Settings


Go to the bottom of the Settings page and click on Shows advanced settings…


Go to the section Passwords and forms and remove the checkmark on the following options. This will disable both the autofill option and the save passwords option.


You’re all set!

Disabling Autofill and Saving Passwords features in Firefox

  • Click on the “Open” button (3 lines button)
  • Click on Options



  • On the left menu click on Privacy
  • On the History section change to “Use Custom settings for history”
  • Remove the checkmark on “Remember search and form history”


To also disable websites login information (user/password combinations):

  • On the left menu click on Security
  • On the Logins section remove the checkmark “Remember login for sites”



How to tell Thunderbird to Request Confirmation Before Deleting an Email or Empty the Trash

How to re enable confirmation warnings before deleting an email or Emptying the Trash Folder on Mozilla Thunderbird

I tend to delete emails from Thunderbird using SHIFT+DEL out of habit when I’m sure I don’t want that message any more, but recently I accidentally ticked the check-box that tells Thunderbird not to ask me if I’m sure I want to delete such message(s).


Although safer, I didn’t want to delete messages then empty the trash. For whatever reason I wanted to return to the past behavior. In case this has happened to you, here are the steps to get the warning back:

  • Go to the Tools Menu
  • Click on Options
  • Click on Advanced

The picture below shows the Options-Advanced Window. In the lower right you’ll see the “Config Editor” button. Click on It.


You will receive a fair warning as this. Click on I’ll be careful, I promise!


Now you’re on the configuration section. The value I want to change here is:

mail.warn_on_shift_delete   from false to true. To change the value, just double click on the line.


If you want to re-enable the confirmation for emptying the Trash folder, the value you should modify is:

mailnews.emptyTrash.dontAskAgain    from true to false.

* Mozilla Thunderbird Version 38 used.


I hope this information is useful. Buy me a coffee?
Buy Me a Coffee at

Enabling SSH on Cisco Catalyst Switches

Enabling SSH on Cisco Catalyst Switches

There are several ways to configure or monitoring a Cisco Device: console line (which requires a local cable, hence physical address), vty lines (via telnet or ssh), SNMP, and http/https access.

Since traffic through Telnet protocol travels in clear (non-encrypted) text, it’s best to configure remote access through a secure (encrypted) channel.

Before you proceed, verify your Cisco Device supports encryption. To check whether your device allows encryption issue the following command:

show version

Look for the line System image file and verify whether your IOS version have a “k9” substring in the file name. This indicates the version supports encryption.

Configuration Steps

  • Set a hostname and a domain name
  • Enable password encryption and create required usernames and passwords
  • Generate an encryption key
  • Restrict vty lines to use ssh
  • Restrict vty lines to allow incoming ssh traffic only from certain IP addresses (optional)
  • Block IP addresses after a certain number of failed attempts (optional)
Set a hostname and a domain name

A hostname is already set but you should change it to something more descriptive for your environment. A domain is not set by default and you must set this value to match your business infrastructure.

Change to enable mode, if you’re not already on it.

Password: < type your password >

Set your hostname and domain-name according to your own network.

switch#configure terminal
switch(config)# hostname myswitch01
switch(config)# ip domain-name
Enable password encryption and create usernames and passwords

The service password-encryption allows for ahem.. the encryption of every password (enable, username passwords) on the device. Issue it if you haven’t before (you probably have, though). Also create the users who can access your device and with which privileges. In this example the user database is local.

switch(config)#service password-encryption
switch(config)# username name privilege privilege# secret passwordtype# password  

name: the user name
privilege#: 15 for enable permissions; 1 for normal user permissions

  • 0 if you’re going to type an unencrypted password;
  • 5 if you’re going to type an already encrypted password.

password: the actual password

The following example creates the user khaxan with enable permissions

switch(config)# username khaxan privilege 15 secret 0 G3tDHck0uT0H$re
Generating a crypto key

The Cisco device must create an encryption key before ssh could be enabled.

switch(config)# crypto key generate rsa general-keys modulus modulus_size

You can choose a modulus size up to 2048. The longer the better so:

switch(config)# crypto key generate rsa general-keys modulus 2048

Wait a bit while the system creates the key.

Restricting vty lines to use only ssh (don’t allow telnet)

In configuration mode allow only incoming ssh connections with the command transport input ssh (by default lines don’t allow any connections), and indicate the authentication is taking place against the local database (the users you created before).

switch(config)# line vty 0 4
switch(config-line)# transport input ssh
switch(config-line)# login local
Restricting vty lines to only allow ssh from certain subnets (Optional)

If you want to add a bit of extra security, you can create a list of IP addresses which are allowed to connect via ssh to the Cisco device.

The following example creates the standard access list 1 to permit traffic from the subnet with logging enabled.  A deny statement is implicit in the ACL so technically the second access-list line is not needed unless you want to log unauthorized connection attempts (Always check who’s trying to connect to your server!).

Apply that ACL to the vty lines accepting SSH.

switch(config)# access-list 1 permit log
switch(config)# access-list 1 deny any log
switch(config-line)# line vty 0 4
switch(config-line)# access-class 1 in
Block IP addresses after a certain number of failed attempts (optional)

Also, if you want to prevent the casual attacker you can block their IP addresses for a period of time use the command login block-for; this will prevent brute force attacks to the device.

The example below blocks for 1 hour (3600 seconds) an IP address with 5 failed login attempts within 50 seconds.  Important: Choose carefully the proper times for your environment. If you select a very low fail-attempt-threshold like 2 failed login attempts within 60 seconds then you might be blocking yourself if you accidentally type a wrong password 2 times in 1 minute.

switch(config)# login block-for 3600 attempts 5 within 50

That’s it. You should be able to connect to your device via your favorite SSH client.

Disable Flash in Internet Explorer (Latest Version)

How to disable Flash in Internet Explorer (10/11)

In IE 10/11, go to the upper right corner and click on the Tools Menu (cogwheel icon). Click on Manage add-ons.


In the bottom left change the “Show” options to “All add-ons” and look for Shockwave Flash.


Right click on the “Shockwave Flash Object” and click on Disable.


Remember: Flash is a buggy add-on. Update it but try to keep it disabled unless you really need it (most cases you won’t).

To disable Flash Player in Chrome or Firefox see: Disable Flash on Chrome and Firefox

Disabling Flash on Chrome and Firefox (Latest versions) updated Oct-2017


noflashFlash is phasing out. Every day fewer websites run with Flash since they have replaced it with HTML5 and other formats. Why? Among other things Flash is VERY insecure. For example, there are a lot of flash ads that right now are being injected with malicious code in order to infect everybody visiting certain sites with those ads. You don’t have to click on anything, you don’t have to download a file, you’ll be infected just by getting there.

Today as basically any other day new Flash vulnerabilities came to light; you can see the full list Vulnerabilities still unpatched (0day) could potentially allow remote access to your computer and data.

If you don’t use flash it’s best to disable it, but if you need it from time to time (certain websites and devices still only use Flash), set your browser to “Ask First” and update to the latest Adobe Flash Player Version

Disabling Flash in Chrome

The easiest and fastest way to do it is typing on the location bar:


Figure 1.  Content Settings

Or if you want the long and click-y version, click on the upper right menu and click on Settings.  settings

On the window that will appear go to the bottom and click on Advanced. More options will appear including “Content Settings


Click on that option, it will show the same information that on Figure 1 above.

You’ll see an option for Flash, click on it.

If you want Chrome to ask before running Flash make sure your setup looks like the picture below. This picture shows that Chrome is allowing sites to run Flash but also to ask before running it on a website.


The next time a website is trying to use flash a dialog similar to this will appear:


If you want to completely disable Flash, disable Allow sites to run flash clicking on the blue button, the text now will change to Block sites from running Flash


This window also has the option to block and allow flash per website, either manually or if you selected “Ask First” it will remember your choice of Allow/Block for individual sites.

That’s it!

Disabling Flash in Firefox

Click on the menu symbol 2014-01-10-13-08-08-f52b8con the upper right corner and click on add-ons or on the location bar type about:addonsaddonfirefox

On the left side menu, click on Plugins  Search for Shockwave Flash or Shockwave for Director (Annoyingly this was the previous name for the Flash plugin).

ff2 Here you can choose  “Ask to Activate“, which in essence would make Firefox to ask to activate Flash in case a site needs it. (See Figure below). activateflash Nowadays, this would be rare, since most Flash on the Internet is in ads, not actual content, and even sites who use Flash have an alternate version without it. So you can disable Flash for good, selecting Never Activate. You will see something like this in a web page which only uses Flash. flashdisable

Final Notes

My personal recommendation is to disable Flash since these vulnerabilities are recurrent.

If you want to know how to disable Flash on Internet Explorer:

If you want to know how to disable Flash on Microsoft Edge:

To improve your security:

  • Keep your Operating System, Browsers and Plugins/Add-Ons updated
  • Stay away of suspicious websites
  • Use an ad blocker like Ublock Origin or Adblock Plus
  • Install protection software like Malwarebytes anti Malware and Anti-Exploit


I hope this information is useful. Buy me a coffee?

Buy Me a Coffee at

Managing The Exim Queue (For SysAdmins) – Removing Unwanted Messages From the Exim Queue

Have you ever had a rogue user trying to spam the world -on purpose or just because he catched a bad bug? -, a temporary problem with your Carrier, users who endlessly type hotmal, gmal, hotmial, instead of… you got the idea!  Then you’ve probably experienced having an email queue so long you can’t see the end of it and it would take hours to process.

You can see how many messages are in the queue issuing exim -bpc and see the queue with exim -bpu

In order to accelerate the queue delivery, we can give it Exim a hand.

Deleting all Frozen messagesice-34075_640

Frozen messages are just bounce messages, that is, notifications that a certain message delivery failed.

Those messages are stuck and going nowhere (**) so let’s just delete them.

You have two options:

exim -bpr | grep frozen | awk ‘{print $3}’ | xargs exim -Mrm

Basically we just examined the queue, look for the word frozen, got the message ID and pass that id to exim to delete it. Or even better run this to get the same result without affecting emails including the word frozen in some part of the email.

exiqgrep -z -i | xargs exim -Mrm

Now, If you don’t want to type that much just create a script to do that. For example:

exiqgrep -z -i | xargs exim -Mrm

Call it or whatever you want; place it in an appropriate path and just call the script everytime you need it without the hassle.

Additionally, you might want to modify this lines in the exim configuration file:

ignore_bounce_errors_after = 2d      -> unfreezes a bounce and exim will try to deliver again
timeout_frozen_after = 7d                 -> deletes frozen messages after 7 days


ignore_bounce_errors_after = 12h         
timeout_frozen_after = 1d                    

To expedite the process of elimination of such bounces. Now let’s get rid of other messages.

(**) Frozen messages should be investigated to prevent them.

Deleting old messagesclock-147257_640

Messages that have been in the queue for a while, let’s say 1 day or 2 days are unlikely to be delivered. (*) Sometimes the remote mailbox is full, or the domain is non-existent and the message would be attempted to be delivered for as long as it is configured in the exim “configure” file; usually 4 days.

You can lower that value directly in the configuration file, but if you want to keep the default values and just delete old messages at your command you can run exiqgrep and delete messages based on certain time.

Now, this is something I don’t recommend doing, because you can prevent legitimate mail from being delivered, but if you have no option, the following example command deletes all messages which have been in the queue for more than 1 day (in seconds).

exiqgrep -o 86400 -i | xargs exim -Mrm

Again, you can add the command to a simple script for easier access.

Deleting messages to non-existent domains question-mark-160071_640

Now, there’s no way for exim to know if a domain is valid or not. It only knows if the DNS lookup has failed. (*) That’s why this is a tricky one. However, typos are obvious some times, and if you can identify them you can delete a good amount of emails. Now remember, you should give exim some time to attempt to deliver the message so the sender is notified of the failed delivery. Otherwise, the sender would never know he tried to send a message to a wrong recipient.

Some of the super typos I’ve seen are,,,, etc. A few of these domains exist but they’re not the ones the sender intended. Other cases would be very particular to your users so you might be able to identify those.

So, let’s delete messages to wrong domains with a script.

exiqgrep -r $@ -i | xargs exim -Mrm

Call it,, i.e., and call the script with the domain or full email of the recipient you want to delete as a parameter.  Example: sh

Or if you prefer typing the whole command: exiqgrep -r -i | xargs exim -Mrm

IMPORTANT: The script above is just a basic example, it’s NOT sanitized and it will match partial coincidences. That is, if you intend to delete messages sent to and you just execute you’ll end up removing messages sent to, agmal,com,, etc., which may be potentially good domains.

The basic script is useful though if you want to delete thousands emails to russian, korean, etc. accounts and you have no business with them whatsoever, aka malware/SPAM.

Therefore, use with caution, use the whole email address (not just the domain) and verify the option passed as parameter inside the script. Also, ensure proper permissions are in place.

Deleting messages from non-existent senders  question-mark-160071_640

Use with the same precautions as the previous option. In this case, you delete messages from a certain sender, instead of a recipient.

exiqgrep -f $@ -i | xargs exim -Mrm

Which it’s equivalent to exiqgrep -f -i | xargs exim -Mrm

Call it,, i.e., and call the script with the domain or full email of the recipient you want to delete as a parameter.  Example: sh

Identifying the culprit of a spam attack magnifying-glass-29398_640

Now, all the delete commands stated above won’t stop a spam attack, they will only help in cleaning the email queue. You should identify the sender of the spam and block him. How?

First, you have to identify one of the spam messages and grabs its ID.

See the queue: exim -bpu

Identify a suspicious email, let’s say with ID 1ZCB3s-0007lp-N6 and check its body and its headers.

Checking the body (to verify your suspicion is correct)

exim -Mvb <message-id>
Example: exim -Mvb 1ZCB3s-0007lp-N6

If you see something like viagra promotions, malicious links, etc., you have a winner. Now, let’s check the headers:

exim -Mvh <message-id>
Example: exim -Mvh 1ZCB3s-0007lp-N6

I recommend using less afterwards to see the very first lines:

exim -Mvh 1ZCB3s-0007lp-N6 | less

Now look for the line starting with -auth_id. There you should see the username used to authenticate that email as valid to your email server. Don´t trust the sender you see in the queue because that’s just the envelope. For example you can see in the queue an email from with auth_id

Once you have the address used to auth the spam, block it from your email server (suspend the account and/or change the password), warn the legitimate user, and adjust your spam filters accordingly. Also, you can block in your firewall the sender origin IP indicated in the line starting with -host_address, i.e. the spammer ip address.

Deleting ALL messages in the queue

If for some very special reason you want to delete ALL the email queue, then just issue:

 exiqgrep -i  |  xargs exim -Mrm


In next posts, more queue management options coming.

(*) Always check if you don’t have a problem with DNS resolution.