-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Is Windows supported? #1
Comments
Never mind, this doesn't work on Linux, either.
Any idea what might be the problem? I'm behind a NAT, but I am tunneling the port I've told the script to listen to, both TCP and UDP. I've run TCP/IP servers in the past, listening to ports on this machine, but they were written in Twisted and had absolutely no problems listening to ports that I've tunneled through the NAT. |
OK, I have a better understanding of what is happening now. I am sorry to say, but as it is right now, there is simply no way this scanner would work in the real world. My guess is that you've tested it in an environment, where both the scanning machine and the machine infected with BPFDoor were on the same LAN - probably on virtual machines. Here is what is happening. Consider the First, it could be your external IP address. But if you supply that there, the line server = ThreadedUDPServer((listen_ip, listen_port), ThreadedUDPRequestHandler) tries to attach an UDP server on that very same IP address. From the point of view of the program, an external IP address is just somebody's machine on the Internet. It's just a coincidence that it happens to be yours. Dude, you can't go around attaching UDP servers on other people's machines, so of course this fails. But what is the alternative? Well, you could supply there your local IP address instead. And, indeed, in the examples used in the README, you use a local address - elif ipaddress.IPv4Address(listen_ip).is_private:
print('[!] Warning: you are listening on a private IP address -- public IPs will not be able to reach back') Furthermore, this is the IP address you stuff in the TCP/IP packet that you send to the backdoor. Presumably, the backdoor uses it to determine where to send the reply. But if this is a local IP address, you'll get the reply only if you're on the same LAN as the machine infected with the backdoor. Not good for scanning over the Internet. Suggestions how to fix this:
|
When running it on Windows, I get the error
on line 466 (
self.socket.bind(self.server_address)
). And, yes, the port I'm telling it to listen to, is open.The text was updated successfully, but these errors were encountered: