Linux 软件免费装
Banner图

Aftersweep – After-Hack Checklist

开发者 timaub
更新时间 2026年11月6日 21:42
PHP版本: 7.4 及以上
WordPress版本: 7.1
版权: GPLv2 or later
版权网址: 版权信息

标签

security audit hacked read-only checksums

下载

0.1.0

详情介绍:

Your site was hacked. You ran a scanner, deleted what it reported, and now you wonder what else to look at. Aftersweep – After-Hack Checklist goes through ten places where a hack usually leaves traces and tells you, item by item, what it found and what it compared it to. It also tells you what it did not look at. It never says "your site is fine". It lists findings, each with a level: At the top of the report: "N anomalies, N suspects, N to identify, N points not looked at". For each finding, the report says what you can check by hand or show to your host. The plugin changes nothing on your site. It does not delete, move or edit any file, user, content or setting. It only writes its own options and transients (names starting with ahcl_). The ten checks
  1. WordPress core: files in the root, wp-admin/ and wp-includes/ compared to the official checksums of your WordPress version and package language; unknown files in wp-admin/ and wp-includes/; extra PHP files in the root; suspicious code in wp-config.php.
  2. Plugins: each plugin from WordPress.org compared to the checksums WordPress.org publishes for its version; PHP files that are not in those checksums.
  3. Uploads: PHP files in wp-content/uploads/ (including names like photo.php.jpg), files that start with PHP code whatever their extension, .htaccess and .user.ini files.
  4. Must-use plugins and drop-ins: every file in mu-plugins/ and every drop-in, with its header, size and date; other PHP files at the top of wp-content/.
  5. Administrators: users with administrator-level capabilities, those created after your reference date, capabilities granted outside the role, administrator rights given to a user ID that does not exist.
  6. .htaccess and PHP settings: redirects to another site, rules that show a different page to search engines or bots, rules that make non-PHP files run as PHP, auto_prepend_file and auto_append_file, external error pages.
  7. Content: posts and pages created or modified since your reference date, and content containing scripts, external iframes or encoded JavaScript.
  8. Scheduled tasks (cron): tasks whose code lives in the uploads folder or outside WordPress and your active plugins and theme, tasks with encoded arguments, tasks with no code attached.
  9. Settings: site and home addresses, open registration with a powerful default role, active plugins that WordPress cannot find, scripts stored in autoloaded options, widgets and theme settings.
  10. Not looked at: always present, never empty (see below).
What it does not look at The report always ends with this list, so you know where it stopped: Checksums from WordPress.org: off until you tick the box Checks 1 and 2 need the checksums published by WordPress.org. The plugin downloads them only if you tick "Download the checksums from api.wordpress.org and downloads.wordpress.org" next to the "Run the check" button. The box is unticked the first time; your choice is remembered. Unticked, checks 1 and 2 are listed under "not looked at". Details in the FAQ and in the Privacy section. Privacy Pro add-on An optional, separate Pro plugin adds a reference snapshot with a "changed since" section, scheduled re-checks by e-mail, and a printable HTML export. This free plugin is complete on its own: nothing in it is time-limited or locked. Details: https://timaub.fr/after-hack-checklist/ Français Votre site a été piraté. Vous avez passé un scanner, supprimé ce qu'il signalait, et vous ne savez pas quoi regarder d'autre. Aftersweep – After-Hack Checklist passe en revue dix endroits où un piratage laisse d'habitude des traces. Pour chaque point, il dit ce qu'il a trouvé et à quoi il l'a comparé, puis ce qu'il n'a pas regardé. Il ne conclut jamais que tout va bien. Chaque constat a un niveau : anomalie (écart prouvé à une référence, par exemple un fichier du cœur dont la somme de contrôle diffère de celle de WordPress.org), suspect (motif fréquent dans les piratages mais qui a aussi des usages normaux, par exemple un script dans un widget), à identifier (élément que vous seul pouvez reconnaître, par exemple un mu-plugin ou une page modifiée depuis la date choisie). Pour chaque constat, le rapport indique ce que vous pouvez vérifier à la main ou montrer à votre hébergeur. Les dix contrôles : fichiers du cœur comparés aux sommes officielles et wp-config.php ; extensions de WordPress.org comparées à leurs sommes ; fichiers PHP dans uploads ; mu-plugins et drop-ins ; administrateurs et comptes créés depuis la date choisie ; règles .htaccess et réglages PHP ; contenus créés ou modifiés depuis cette date, scripts dans les contenus ; tâches planifiées ; adresses du site, inscription, extensions actives, scripts dans les options ; et la liste de ce qui n'a pas été regardé. Non regardé : les thèmes (WordPress.org ne publie pas de sommes pour eux), les extensions sans sommes publiées (nommées une à une), les tables hors WordPress, les commentaires, les fichiers hors du dossier de WordPress, la configuration du serveur, les autres sites de l'hébergement et du réseau, la date des changements de rôle, les fichiers illisibles ou de plus de 5 Mo, les fichiers de plus de 32 Mo à la racine, dans wp-admin, wp-includes et les extensions (non comparés aux sommes, listés). Les dossiers de wp-content qu'aucun contrôle ne couvre (languages, cache, upgrade, sauvegardes...) sont listés avec leur nombre de fichiers PHP quand ils en contiennent. Les fichiers PHP d'un dossier de la racine qui n'appartient pas à WordPress ne sont comparés à rien : le dossier est listé « à identifier » avec leur nombre, et un fichier PHP dans .well-known ou cgi-bin est signalé suspect. Le plugin ne modifie rien : aucun fichier, compte, contenu ni réglage. Il n'écrit que ses propres options (ahcl_*). Les sommes de contrôle ne sont téléchargées depuis api.wordpress.org et downloads.wordpress.org que si vous cochez la case prévue, décochée au premier passage. L'interface est en français quand le site est en français.

安装:

  1. In Plugins > Add New, search for "Aftersweep", then install and activate it. Or upload the aftersweep folder to /wp-content/plugins/ and activate it in Plugins.
  2. Open Tools > Aftersweep.
  3. Set the reference date: the day before you think the hack started (default: 30 days ago).
  4. Tick the checksum box if you accept the requests to WordPress.org, then click "Run the check". The page works in short steps and shows its progress; leave it open until the report appears.

屏幕截图:

  • A report on a test site with planted hacks: the counts at the top, then the first controls, each finding with its level, object, what it was compared to and what you can check.
  • The "Not looked at" section: what the check did not compare or read, and why.
  • The optional Pro add-on: "Changed since the snapshot" lists the files, administrator accounts and options added or modified since the reference snapshot.

常见问题:

Does it change anything on my site?

No. It reads files, users, content, settings and scheduled tasks, and writes nothing but its own options and transients (ahcl_*). To act on a finding, you do it yourself, by FTP, in the WordPress admin, or with your host.

Will it tell me the hack is gone?

No. It tells you what it found in the places it looked, how sure each finding is, and where it did not look. An empty list of anomalies means only that these ten checks found no proven difference.

Does it contact external servers?

Only if you tick "Download the checksums from api.wordpress.org and downloads.wordpress.org". The box is unticked the first time the page opens. When it is ticked, during a check:

  • api.wordpress.org receives one request for the core checksums, with your WordPress version and package language;
  • downloads.wordpress.org receives one request per installed plugin, with the plugin's folder name and version;
  • for a plugin without published checksums, api.wordpress.org receives one more request with its folder name, to tell "this version has no checksums" from "this plugin is not on WordPress.org".
The requests go through the WordPress HTTP API, which by default sends your WordPress version and your site address in its User-Agent header; WordPress.org also sees your server's IP address. WordPress.org's privacy policy: https://wordpress.org/about/privacy/. Answers are kept 24 hours in transients, so a second check the same day sends no new request. Unticked, nothing leaves your site and checks 1 and 2 are listed under "not looked at".

Why are my themes not checked?

WordPress.org does not publish checksums for themes, so there is no official reference to compare them to. Themes are listed under "not looked at". The uploads, .htaccess, content and settings checks still apply to the whole site.

A plugin is listed as "not looked at". Is it modified?

The plugin cannot say. Premium plugins, plugins that are not or no longer on WordPress.org, and some versions have no published checksums. The report names each of them and says which case applies. Compare them yourself with a fresh copy from their author.

What is the reference date for?

WordPress does not record when a role was changed. The date you give marks "recent": administrators created after it and content created or modified after it are listed. Pick the day before you think the hack started; if you do not know, keep the default (30 days ago) or go further back.

I already ran a malware scanner. What does this add?

This plugin has no malware signatures. It compares files to WordPress.org's checksums and lists what you have to recognise: administrator accounts, must-use plugins, drop-ins, recent content, scheduled tasks, rewrite rules and settings. It does not replace a scanner or your host's help; it gives you a list to go through after your cleanup.

My host is a shared hosting plan. Will the check time out?

Each request works for about 10 seconds, then the page sends the next one. If the page is closed or the connection drops, open it again and choose "Resume" or "Start over". Only one check runs at a time.

Does it work on multisite?

On a network, only network administrators can open it, and it reads the main site only. The other sites of the network are listed under "not looked at".

Is it in French?

Strings are written in English. A complete French translation will be submitted on translate.wordpress.org; once approved there, WordPress installs it on sites set to French.

更新日志:

0.1.0