local interpreter remote machines

Paul Rubin http
Mon Jan 5 16:28:35 EST 2004


hokieghal99 <hokiegal99 at hotmail.com> writes:
> This may not be possible, but I thought I'd ask anyway. Could I get
> the below code to run on a Python server where other machines would
> connect to it (say thru the Web) and get details of *their* system
> instead of the system details of the machine that the interpreter is
> running on? Any ideas?

In general, what you're asking for is called OS fingerprinting.  It's
an active topic in security research.  Figuring out a remote system's
OS is the first step towards breaking into it, so there's a slow but
growing effort among OS implementers to thwart attempts at
fingerprinting.

In simple cases, though, you can do stuff like connect to the remote
IP address's port 80 and see if you can get any HTTP server headers to
examine, and stuff like that.  

OS's also leave inadvertent fingerprints, like the "randomly
generated" TCP sequence numbers which have detectable statistical
patterns on some systems.  If you can detect such a pattern, that
often lets you identify the remote OS.



More information about the Python-list mailing list