This is possible with a proxy server (either configured on the client, or an invisible proxy with a MitM positon), or with spoofed DNS. However, in both cases you'll either need a certificate for the target site (such as "google.com" in your example) that is trusted by the client, or you'll need your users to click past a scary browser security warning (and for some sites - those using HSTS or HPKP, including Google - most browsers will refuse to allow the user to click past).
Authenticating the host (server) that you connect to is one of the core features of TLS, the protocol that secures HTTPS. If a client requests foo.com, they won't accept a response - not even just a redirect - from anybody who can't prove themselves to be foo.com. That proof is done using x.509 digital certificates, which are issued by trusted agencies (who verify the identity of the recipient) and cryptographically signed to prevent tampering or spoofing the issuer.
Assuming you either have a cert that will be trusted, or that the security warning is acceptable, there are options.
- If you control the router connecting the computers, you can intercept and modify packets. This makes it easy to change the DNS requests from the client to point at your own IP address, which runs a HTTPS server with the certificate. DNS spoofing is possible with several included tools in Kali, although the exact situation will determine which tool is best. One such tool is Ettercap.
- Another alternative is to ignore the DNS requests, but invisibly route requests that are outbound to the target server (on TCP 443, the port used for HTTPS) to your own web server running locally. This can be done using
- If you don't control the router but are on the same LAN, you can use ARP (Address Routing Protocol) spoofing to make the other machines on the network think that you're the router, so they send their outbound packets to you. You then are, effectively, the router and can use the above attacks. You can use
arpspoof for this (and then Ettercap or whatever).