I have a very simple setup. Three containers in docker that I want to communicate between, nothing else. Attacker (kali with nginx), reverse-proxy (alpine with nginx), and victim (alpine).
I'd like to, inside victim, curl reverse-proxy and get attacker's website.
So far I can get attacker's website directly by curl http://172.17.0.2:5555
and reverse-proxy's by curl http://172.17.0.3/
. But when I do curl http://172.17.0.3/merlin
I get:
<html>
<head><title>404 Not Found</title></head>
<body>
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/1.18.0</center>
</body>
</html>
For reverse-proxy (172.17.0.3) my /etc/nginx/conf.d/default.conf
:
server {
listen 80;
listen [::]:80;
server_name proxy;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
location /merlin {
proxy_pass http://172.17.0.2:5555;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
For attacker (172.17.0.2) my /etc/nginx/conf.d/default.conf
:
server {
listen 5555;
listen [::]:5555;
server_name localhost;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
Grant Collins on youtube has managed something similar, but I just can't get it to work.