The Malware is in the DB (not the pudding)

Recently, I came across a site infested with malware and where FTP access was broken and SSH not available. The only thing I had at my disposal was access to an old SQL Server 2000 Database.

The site is running IIS and ASP.net. The main page contains malicious code:

However this code is not present in the deafult.aspx index file. The only thing I could notice were references to a database:

The next logical step was to search the DB for that bad code. In fact, I just took the first table I could get my hands on and did a simple query: select * FROM {dbnameremoved).dbo.Information

And there it is… The bad code has been injected in almost  every single table in fact.

The cleanup path would be to delete those entries with some SQL DELETE statements, but overall given how outdated the server is, it would just be a matter of time before it gets re-infected. Unfortunately in this case, the user is not very computer-savvy and migrating the whole site without the malware and no backup available sounds like a Herculean task.

This is one of these cases where sites are never updated for years, get infected and become broken beyond belief.

Jerome Segura

Update: this site is really owned! Check out this insane Google report:

Of the 688 pages we tested on the site over the past 90 days, 449 page(s) resulted in malicious software being downloaded and installed without user consent. The last time Google visited this site was on 2012-06-25, and the last time suspicious content was found on this site was on 2012-06-25.

Malicious software includes 738 scripting exploit(s), 100 trojan(s), 65 exploit(s). Successful infection resulted in an average of 2 new process(es) on the target machine.

> Wish me luck! ;-)

Update 2: site disinfected

The cleanup consisted of preserving the good data and erasing the malicious code. The following SQL query was used:

This is a server that is shared with a lot of other people and the security on it is really bad as you can not only see their names but also their Databases:

You can also browse the server file system:

This is a reminder that shared hosting is not secure. Now you know why it is so cheap.

Securing your website: some tips

I’ve been a contributor (or helper) in the BadwareBusters forum (StopBadware) in the last month or so. Recently someone asked about how to prevent a future re-infection and secure their website. I came up with a bunch of ideas which I thought I could share here as well:

BACKUP REGULARLY (once a week)
- back your files, databases
- store backup on a different server, other media, etc.

PERSONAL SECURITY
- use strong passwords
- do not store your password on your computer in a text file or within your FTP client (ie. Filezilla)
- Check that the only FTP accounts are authorized ones (in other words, watch for ‘rogue’ accounts). You can do this from you Control Panel within your hosting account or simply by asking your hosting company for a list of usernames associated with FTP.
- avoid FTP if possible and choose SFTP or SSH which encrypt your connection whenever you need to connect to your server to upload files/make changes.

- avoid connecting to your site over insecure wifi

SURFACE OF ATTACK REDUCTION
- list all software running on your site
- remove any software/plugin that is not needed
- update all software running (CMS, PHP, Apache, etc)
- update all plugins
- run a web vulnerability scanner to detect weaknesses with your site

SITE HARDENING
- review all file and folder permissions in your public_html folder
- permissions should never ever be 777
- files should be set to 644, folders to 755
- if server is running Linux, harden the .htaccess file
- harden your CMS (hide which version it is running, change the default login from admin to something else)

LOG REVIEW
- review access and error logs on a weekly basis
- identify attack attempts and block the malicious IPs

You can find me under the handle ’jerome’.

Jerome Segura

Achtung: this site may harm your computer!

This German website for a PC repair company warns its users about the DNS Changer Trojan and advises to check if one’s computer is infected.

(click to enlarge)

However what they don’t know is that their own site is compromised with malicious code and will infect unpatched PCs…

(click to enlarge)

The JS code redirects to a bad site (vesuqpu.ru/count7.php). Wepawet report here.

Jerome Segura

Anonymous site hosts malicious script

The site: www.anonstillalive.com hosts a malicious script:

It looks like an automated injection to me because it is right after the <body> tag. (click  to enlarge)

Wepawet report (http://wepawet.cs.ucsb.edu/view.php?hash=5600b7a8b41a216d6f2cb4b353590076&t=1340388312&type=js) shows an iframe to http://zfhbsvcererr.myredirect.us/?go=2

Thankfully the page has been parked.

Jerome Segura

Canada Post Phishing scam and malware served from your local preschool

This is a clever phishing scam that targets Canadians:

I say clever because beyong the legitimate looks, the payload is distributed by a malicious URL combined with a legit one.

One thing we always tell people is to never trust links, even if they look fine. This is because it is easy to create a hyperlink that says: http://www.goodsite.com but instead really is http://www.badsite.com.

Let’s take a closer look:

By placing the mouse cursor over the link (NO CLICKING!!), you can see in the taskbar that this indeed is a match for the real site. If you did click on it, you will be sent to Canada Post’s official website:

At that point, you think this email must be legit after all and you are ready to click on the second link. That’s the catch!

Here I repeat the same mouse over process but look at the URL: it is NOT the same!! Sneaky…

What we have here is a zip file called shipment_capost_invoice.zip:

dayspringpreschool.org/shipment_capost_invoice.zip

If you open it up, it contains the malicious file the bad guys want you to run:

The file is poorly detected by Anti-Virus products. (VirusTotal 3/42).

Let’s take a look at where this file is hosted: dayspringpreschool.org

This is the site for a preschool in California. They probably aren’t aware that they are being used to host a malicious file used by scammers. (I will let them know soon).

They are running the Content Management System (CMS) Joomla!:

and it is out-of-date (Joomla Version 1.5.15) current is 1.5.26 which could very well be why the site got hacked.

Speaking of out-of-date, WordPress released version 3.4 today, so if you haven’t updated your CMS yet, do so quickly :-)

Hat tip to Marlee for reporting the phishing email.

Jerome Segura

Password sharing site gets hacked, redirects to adult site

These guys have an ‘interesting’ business model which consists of providing you with passwords for popular websites (torrent, file sharing sites) if you take a couple of minutes of your time to answer a survey.

Sounds fishy? Right, I don’t like it too much either. However, this is not where the problem lies. The site itself has been hacked:

and redirects the user to an adult site instead:

At least the site content is within the realm of what file sharing people are used to…

Jerome Segura

Hack attempts: examples from the error.log file

Webserver logs contain a lot of useful information regarding the health of your website. Here is the error.log file for a site that I created a few years ago, and for which I still have access to.

Attempt to exploit timthumb vulnerability:

Attempt to brute force login:

Attempt to exploit phpMyAdmin:

Attempt to do a directory traversal attack to find passwords:

Wrong OS!

Jerome Segura

LinkedIn passwords leaked, cracked

LinkedIn, the popular networking site, was hacked and more than 6 million passwords were leaked. The breach was confirmed today.

It took only minutes for the full dump of passwords to spread virally (combo_not.zip)

The decrompessed file weighs 258 MB and contains 6458019 lines of hashed passwords.

LinkedIn hashed the passwords (meaning they created a checksum of the plain text strings) but did not apply any other level of security, including salting.

For example the password ‘password’ was stored as e4c9b93f3f0682250b6cf8331b7ee68fd8 (SHA1).

It is trivial to find the original (clear text) password using tools such as hash-cat:

It is quite interesting to look at passwords people use… it reveals a lot about human nature ;-) Warning, coarse language ahead!

LinkedIn announced that they are taking immediate action by blocking accounts that have been affected as well as introducing new security measures (in the form of salting their passwords).

This is a reminder that there is no total security. However, strong passwords are still a great protection. For example, to retrieve those passwords hackers use a ‘wordlist’ or dictionary attack. That means if your password was weak, it will be uncovered in seconds. If your password was fairly complex, it will take hackers a lot of pain and effort to crack it.

On that topic, we should change the word password to passphrase. The term is so much more meaningful and shows that actual phrases such as ‘Jimmylovescarsespeciallyatnightonchannel99′ are so hard to crack versus your typical password.

Jerome Segura

A happy website owner

Getting testimonials like this one really makes you feel like you provided value to the customer.

 

I can’t believe the amount of work this company did for me in such a short period of time.

It all began when I started getting strange messages when going on to a few of my websites, these messages would say things like do not go to this website for possible phishing and Malware… WHAT? I couldn’t believe it, these were MY websites and I know I didn’t install anything like that. Next thing I know I get an email from SparkTrust.com telling me the same thing while at the same time reassuring me that they could help me fix the problems. I called them by phone and spoke to Jerome, who first showed me that my websites had been banned from Google and others because of the phishing and malware. I started to sweat, my business was based on my websites and if they were gone so is my business. But then Jerome, made me feel very at ease and confident that he could help me and definitely fix my problem. They then found hundreds of corrupt files, they found back doors, a bunch of stuff that quite frankly I have no clue to what they are but these guys fix it all by that afternoon and I mean ALL!!! The monthly or yearly fee they charge for their work is so reasonable that I think anyone would be a fool to have a website without this kind of protection because yes, the protection doesn’t stop after the problem is fixed but continues on a daily basis with emails anytime something is detected on any of my 18 websites… however small.

I am truly amazed and very grateful to Jerome, Jean Phillip and Sparktrust.

Guys if I could give you a medal I would.

Thanks again for everything

Your faithful customer for life.
Alain, AbsClubLA

Jerome Segura

Reporting Badware: a better way?

As some of you may remember, I’ve had quite the experience (read The joys of reporting hacked websites) reporting malicious websites to their owners.

I spent a lot of time crafting various email templates, following guidelines from StopBadware’s Best Practices for Reporting Badware URLs, but yet at the end of the day it was a total disaster.

For starters, an email marketing guy I know told me quite clearly:

Hi Jerome,

This is a risky campaign to run, as it is unsolicited with, as you said, no prior relationship.

You probably want to avoid doing this.

Cheers,

 

Let’s stop and think for a moment. I am trying to alert someone that their site has been hacked and is serving malware but yet because of the strict CAN SPAM rules and what not, I am not allowed to because I don’t have a previous relationship, an opt-in etc… This is stupid. Let’s take a real life example, I see someone’s car has a flat tire. Should I not be allowed to tell them about it so they don’t get into an accident?

OK, once you can get over that nonsense, here is the reality with most website owners:

  • they have little knowledge about internet security
  • they don’t trust any email warning and label it as a SCAM (have they been trained too well?)
  • they can be rude
  • they send their lawyers

My conclusion is that contacting website owners directly is not the way to go. It is a waste of time and energy because these days nobody trusts anyone whether it’d be by phone, email, snail mail, etc… You can blame the spammers and scammers for that.

So instead, I chose a different route which maybe I should have taken to begin with… I am contacting the hosting provider directly with irrefutable evidence:

I understand abuse departments don’t want to spend time trying to confirm something is bad. So I give them all the details they need, and more.

This email is made from a template since I don’t have the time the write a few hundred of those every day. I wrote long and complex Bash/PHP/Python scripts to gather all the information needed from a specific URL.

As such, for each URL:

  • the malicious code (or file) is downloaded
  • it is sent to be analyzed by Virustotal with MD5/SHA256 checksums
  • an IP and ASN are identified
  • an abuse email contact is found by querying the ASN whois
  • an email is created from the template and then the email is sent

It was a fair amount of work to get that automated, but it is worth it to watch thousands of URLs being parsed and abuse emails being sent ‘magically’.

So far the response has been pretty good. Most abuse departments are quick to act and resolve incidents. They know what I’m talking about and I don’t have to convince them that this is not a scam but rather an effort to get infected websites cleaned up.

Will this be the end of the story… who knows? there might be more developments and surprises, although I think I’ve seen a fair share of stupidity already.

Jerome Segura