My steps for cleaning did not involve following those on the links above.
I found that I could easily replace the hacked files with valid ones. I then removed the write permission on all wordpress files. However, in doing this kills the ability to upgrade via the admin console and will make upgrades harder. for me tho, I’m all about having a stable site and I don’t care right now about upgrading.
I also created a blank index.php file in EVERY directory that didn’t have one already (/images, wp-content, etc etc). Since when I looked through my installation, MANY directories had NEW index.php files that would simply call the injected function. So I removed these files, created a new, blank index.php and then removed the read and write permissions (removing write means nobody can inject bad code again into that file).
If you have index.php files that have the function, a hacker can simply call the function over and over again by making an http call to the file w/ their browser. voila, function executes, hack restored. So you must prevent this from occuring over and over.
On linux/unix, to remove write permissions (must be at a shell):
chmod -w <filename>
So, for all files in the root:
chmod -w *.php
To create an index.php file where there is NOT one:
touch index.php (creates an empty file)
chmod -rw index.php (removes read and write)
Now, if a browser goes to https://myhackedsite/wp-content/ the browser returns a PERMISSION DENIED error. Since the file is there but it’s not readable.
Be CAREFUL. Some files need write access. But not many. And DONT remove the read access from index.php files that are part of the wordpress install. root and wp-admin (and others) have VALID index.php files. just inspect them for the malitious function and just remove the write attribute (chmod -w filename).
I removed the write attribute from nearly every file in wordpress and my theme that I am using. this was my quick and dirty way to HOPEFULLY prevent it from happenning again. Since in the past 3 days I’ve had it occur multiple times.
If there is a better approach, I’m all ears. However, until a fix is put in wordpress I’m not taking any chances at all.