Pide un directorio sin archivo de índice y muchos servidores muestran la lista de archivos en su lugar. Copias de seguridad, exportaciones, una copia vieja de un archivo de configuración: todo lo que esté ahí es ya público, y los escáneres automáticos buscan justo eso.

Nginx

autoindex off;      # the default, so check nobody turned it on
grep -rn autoindex /etc/nginx/

Apache y LiteSpeed

Options -Indexes

# or per directory, in .htaccess
Options -Indexes

Comprueba cada directorio, no solo la raíz

for d in uploads backup files export logs tmp; do
  printf '%-10s ' "$d"
  curl -sS -o /dev/null -w '%{http_code}\
' "https://yourdomain.com/$d/"
done

Un 200 en cualquiera de ellos merece que lo abras en un navegador ahora mismo. Lo que quieres es 403 o 404.

Un archivo de índice vacío es un remedio flojo

Meter un index.html en cada carpeta esconde el listado, y los archivos siguen siendo accesibles por su nombre. Detiene una mirada distraída y nada más: desactiva la opción en el servidor.

La respuesta de verdad para archivos privados

Todo lo que no deba ser público no debería estar bajo la raíz de documentos en absoluto. Guárdalo fuera y sírvelo mediante un script que compruebe quién lo pide.

/var/www/site/
  public/      <- the document root
  storage/     <- backups, exports, logs: no URL can reach these
Ya que estás mirando, busca los archivos que la gente deja atrás: .env, .git, config.php.bak, database.sql. Una copia del código olvidada en la raíz web ha filtrado aplicaciones enteras: pide cada uno y confirma que no está.