Just brainstorming here, but I think one way to accomplish this going forward–not for existing posts–would be to create a function in your child theme’s functions.php to override the get_image_tag function in /wp-includes/media.php which would add the HTML to display the file name below the image. You already have the file name in that function ($img_src), so it would just be a matter of adding the HTML with a CSS class to format the file name the way you want.
Of course, you’d have to edit all your existing posts to add the file name if you went that route.
If you’re wanting to address this for hundreds of existing posts/images, you’d need to create a function in your child theme’s functions.php to override the get_the_content function in /wp-includes/post-template.php and come up with a regular expression to parse the content of a post, catching all the images, grabbing the value of the “src” attribute, and adding it to the HTML.
I don’t know how much you know about WordPress, but I keep emphasizing using the functions.php in your child theme because you don’t want to alter the core files or your changes will get overwritten every time you upgrade WordPress. Fortunately, WordPress provides for this by allowing you to create custom functions in the functions.php file of a child theme. That’s what you’d do in either of the above approaches. That way, you could upgrade WordPress and not lose your customizations.