Remote OS Detection
Posted 28 September 2008 - 06:15 AM
So far all I have been able to do is to ping an ip, then by the TTL I can guess what OS is in use.
Does anyone know of a better way, that can be achieved in visual basic?
Posted 28 September 2008 - 09:31 AM
So if you can build on its database you will probably have better OS detection.
The best way is to club two or three modes of OS detection commonly used for the best possible detection, then again nmap probably does that.
I believe there is some sort of documentation(book) out for nmap which should help you understand how they do it.
I have a page bookmarked which can provide some insight to too.
Best of Luck!
Posted 29 September 2008 - 10:52 AM
I know how to find the TTL and the TOS but I don't know how to find the Window Size.
If anyone knows how to find the window size I will be able to narrow down the possible operating systems considerably.
I will post here if I find out how.
Posted 30 September 2008 - 04:16 AM
# angelheaded hipsters
## burning for the ancient heavenly connection
### to the starry dynamo
#### in the machinery of night.
Posted 03 October 2008 - 10:20 AM
I have an okay method of os detection, now im looking into the syn > syn/ack > rst method of scanning
Posted 03 October 2008 - 10:59 AM
Refer to the link in this post
He is trying to fail the OS detection by multiple scanners and you are trying to build on it. You should get useful info.
Posted 31 October 2008 - 09:21 PM
I liked it and think it might have been open source it can help.
it ran off p445 I think.
"As a young boy, I was taught in high school that hacking was cool." -Kevin Mitnick
"It's easy to point and click programs, but thats not real hacking." -illwill
Posted 01 November 2008 - 06:35 AM
easier to do in visual basic instead of low level stuff. You could of course always make a C dll and use it with vb, so that vb is only responsible for the gui stuff.
Posted 19 January 2009 - 06:39 AM
(lpVersionInformation As OSVERSIONINFO) As Integer
Public Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
Private Function LPSTRToVBString$(ByVal s$)
nullpos& = InStr(s$, Chr$(0))
If nullpos > 0 Then
LPSTRToVBString = Left$(s$, nullpos - 1)
LPSTRToVBString = ""
Public Function GetVersion1() As String
Dim osinfo As OSVERSIONINFO
Dim retvalue As Integer
osinfo.dwOSVersionInfoSize = 148
osinfo.szCSDVersion = Space$(128)
retvalue = GetVersionExA(osinfo)
Select Case .dwPlatformId
Select Case .dwMinorVersion
getVersion1 = "Windows 95"
getVersion1 = "Windows 98"
getVersion1 = "Windows Millenium"
Select Case .dwMajorVersion
getVersion1 = "Windows NT 3.51"
getVersion1 = "Windows NT 4.0"
If .dwMinorVersion = 0 Then
getVersion1 = "Windows 2000"
getVersion1 = "Windows XP"
getVersion1 = "Windows Vista"
getVersion1 = "Unknown"