nmap 获取主机名
一开始试了命令
$ nmap -A 192.168.1.88
等了大半天,终于出来结果(手工局部加码):
Starting Nmap 5.21 ( http://nmap.org ) at 2011-12-03 14:49 CST
Nmap scan report for 192.168.1.88
Host is up (0.019s latency).
Not shown: 991 closed ports
PORT STATE SERVICE VERSION
80/tcp open http Microsoft IIS webserver 5.1
|_html-title:
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn
443/tcp open https?
445/tcp open microsoft-ds Microsoft Windows XP microsoft-ds
873/tcp open rsync?
1025/tcp open msrpc Microsoft Windows RPC
2869/tcp open http Microsoft HTTPAPI httpd 1.0 (SSDP/UPnP)
|_html-title: Site doesn't have a title (text/html).
3389/tcp open microsoft-rdp Microsoft Terminal Service
Service Info: OS: WindowsHost script results:
|_nbstat: NetBIOS name: L, NetBIOS user: <unknown>, NetBIOS MAC: **:**:**:**:**:**
|_smbv2-enabled: Server doesn't support SMBv2 protocol
| smb-os-discovery:
| OS: Windows XP (Windows 2000 LAN Manager)
| Name: USER\L
|_ System time: 2011-12-03 14:54:05 UTC+8Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 133.46 seconds
可以看到,前面列出了这台电脑的可用端口,后面有一行
|_nbstat: NetBIOS name: L, NetBIOS user: <unknown>, NetBIOS MAC: **:**:**:**:**:**
NetBIOS name: L说明这台电脑的主机名是L,我的要求实现了,但是存在一个缺点,速度太慢,可以看到,时间花了133秒才扫描出来,找一个主机名根本不需要这么久,大部分的时间都浪费在前面扫描端口上了
为了提高速度,我开始RTFM,发现man实在太长,没心情看完,又开始Google,找到了不少资料,我觉得有用的有: 这里 & 这篇man的中文翻译
看了这些资料,我对nmap的功能倒是了解的不少,但是可惜的是,我需要的功能(解析IP对应的主机)还是找不到答案,还是只有-A参数能满足要求。
回头看看前面的提示,我注意到了这么一段
Host script results:
|_nbstat: NetBIOS name: L, NetBIOS user: <unknown>, NetBIOS MAC: **:**:**:**:**:**
|_smbv2-enabled: Server doesn't support SMBv2 protocol
| smb-os-discovery:
| OS: Windows XP (Windows 2000 LAN Manager)
| Name: USER\L
|_ System time: 2011-12-03 14:54:05 UTC+8
第一句:Host script results,这说明了下面的内容,不是nmap本身输出的,而是一个script输出的,所以理所当然的,nmap肯定没有对应的参数
但是,nmap有一个--script的参数,可以指定执行某个script,这下看到了曙光,执行:
$ nmap --script nbstat 192.168.1.88
结果如下(手工局部加码):
Starting Nmap 5.21 ( http://nmap.org ) at 2011-12-03 15:08 CST
NSE: Script Scanning completed.
Nmap scan report for 192.168.1.88
Host is up (0.0074s latency).
Not shown: 991 closed ports
PORT STATE SERVICE
80/tcp open http
135/tcp open msrpc
139/tcp open netbios-ssn
443/tcp open https
445/tcp open microsoft-ds
873/tcp open rsync
1025/tcp open NFS-or-IIS
2869/tcp open unknown
3389/tcp open ms-term-servHost script results:
| nbstat:
| NetBIOS name: L, NetBIOS user: <unknown>, NetBIOS MAC: **:**:**:**:**:**
| Names
| L<00> Flags: <unique><active>
| USER<00> Flags: <group><active>
| L<20> Flags: <unique><active>
| USER<1e> Flags: <group><active>
| USER<1d> Flags: <unique><active>
|_ \x01\x02__MSBROWSE__\x02<01> Flags: <group><active>Nmap done: 1 IP address (1 host up) scanned in 2.63 seconds
看时间,2.63秒,这速度很可以了,一般都可以接受,但是,前面在测试nmap命令的时候,已经发现了几个可以提高速度的办法,于是再试(为了节省篇幅,突出重点,下面只列出执行的命令,是否满足要求已经执行时间):
(这个命令指定扫描80端口,是可以扫,但是无法列出主机名,失败)
$ nmap -p80 --script nbstat 192.168.1.88
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 1.17 seconds
(然后注意到了上面139端口的服务是netbios-ssn,所以扫一下139端口试试,这下可以满足要求了,时间也非常快)
$ nmap -p139 --script nbstat 192.168.1.88
139/tcp open netbios-ssn
| NetBIOS name: L, NetBIOS user: <unknown>, NetBIOS MAC: **:**:**:**:**:**
Nmap done: 1 IP address (1 host up) scanned in 0.11 seconds
(又试扫了一下135,也同样成功)
$ nmap -p135 --script nbstat 192.168.1.88
135/tcp open msrpc
| NetBIOS name: L, NetBIOS user: <unknown>, NetBIOS MAC: **:**:**:**:**:**
Nmap done: 1 IP address (1 host up) scanned in 0.16 seconds
(netBIOS也支持UDP的,所以使用-sU参数进行UDP扫描,同样可以扫到,但是因为没有指定端口,所以耗时较长,另外,-sU参数需要root权限才能执行,可以注意到,137端口的服务是netbios-ns,那么下面就只扫137)
$ sudo nmap -sU --script nbstat 192.168.1.88
137/udp open netbios-ns
| NetBIOS name: L, NetBIOS user: <unknown>, NetBIOS MAC: **:**:**:**:**:**
Nmap done: 1 IP address (1 host up) scanned in 4.07 seconds
(只扫137的UDP,同样可以,速度也快)
$ sudo nmap -sU -p137 --script nbstat 192.168.1.88
137/udp open netbios-ns
| NetBIOS name: L, NetBIOS user: <unknown>, NetBIOS MAC: **:**:**:**:**:**
Nmap done: 1 IP address (1 host up) scanned in 0.32 seconds
(比较下来,还是用TCP扫139合适,速度快,还不需要root,现在再加上其他参数提速,-P0使得nmap不测试指定IP是否存在,直接开始扫,-sT指定只用TCP协议,从结果来看,反而比刚才慢,但是实际上是不慢的,因为不连续执行,差个几十毫秒也是正常,而且nmap可能有一定的缓存时间,第一次用nmap确认一个ip存在后,一段时间内不会再去确认,就和加上-P0参数的效果是一样的,这里手动加上-P0,可以确保在任何时候都一样快)
$ nmap -P0 -sT -p139 --script nbstat 192.168.1.88
139/tcp open netbios-ssn
| NetBIOS name: L, NetBIOS user: <unknown>, NetBIOS MAC: **:**:**:**:**:**
Nmap done: 1 IP address (1 host up) scanned in 0.13 seconds
(再加一个参数-T4,我也没太搞明白这个参数是干嘛用的,但是在所有nmap命令上加上这个参数后,速度都有一定的提高,所以就加上吧)
$ nmap -P0 -sT -p139 -T4 --script nbstat 192.168.1.88
139/tcp open netbios-ssn
| NetBIOS name: L, NetBIOS user: <unknown>, NetBIOS MAC: **:**:**:**:**:**
Nmap done: 1 IP address (1 host up) scanned in 0.09 seconds
好了,到目前为止,已经完全满足要求了,下面再补充一些在解决问题的过程中,学习到的知识
139,135端口
这两个端口都是netbios协议占用的,只要windows主机,安装了NetBIOS协议,或者说只要可以访问共享文件,那这两个端口一般是打开的,
139是TCP,135的UDP,具体的作用我懒的去复制,反正就是和共享文件有关,通过这两个端口,可以查询共享文件,登录用户名,操作系统等信息,
网上也有好多貌似专业的135,139漏洞攻击方法,实际上大部分都是在危言耸听,这两个端口如果设置的不好,确实会有安全漏洞,但是,XP的默认配置应该安全性还是可以的,不可能说只要开放这个端口,计算机就有危险,
那些所谓教程,都是需要很高的权限才能实现,但是如果有这么高的权限,那随便怎么弄,都是可以轻松入侵的。就跟你把家里的钥匙贴在大门上(还贴个字条说这是我的钥匙),然后忘记关窗户一样,正常的小偷肯定是开门进来而不会去翻窗户的
nmap的其他参数
-sS 使用半开TCP进行测试,关于半开连接,可以参考有关资料(我大概了解,但是写起来太浪费时间),半开连接的好处是可以避免大部分系统把这个连接记录到系统日至,这对入侵者当然很重要了,总不能去别人家里偷东西,还留个手机号码吧。如果使用这个参数,需要root权限,我估计应该是用raw socket实现的,所以需要root权限 -v 这个参数可以出现多次,表示需要nmap现实更详细的报告,还是更更详细的报告,还是更更更详细的报告 另外,IP的表示方法有很多种,比如 192.168.1.88这种是单个IP, 192.168.1,2.88表示192.168.1.88和192.168.2.88 192.168.1-254.88表示254个IP 192.168.1-2,4-100.2,3,12-15表示很多个IP(-.-!) 192.168.1.0/24是另一种表示方法,和192.168.1.0-255等效,后面的24表示这个IP的前24bit保持不变,后面的8bit遍历所有可能 192.168.1.0/0 这个将扫描整个网络,相信没谁有时间等到扫描完
nmap部分示例
扫描192.168.1和192.168.18这两个网段哪些IP开着
$ nmap -sP -T4 192.168.1,18.1-254
这里-sP表示仅进行ping测试,即使主机存在,也不进行端口扫描,这样可以节省时间
nmap 获取主机名相关推荐
- python 通过ip获取城市_python shell根据ip获取主机名代码示例
这篇文章里我们主要分享了python中shell 根据 ip 获取 hostname 或根据 hostname 获取 ip的代码,具体介绍如下. 笔者有时候需要根据hostname获取ip 比如根据m ...
- Java使用InetAddress类获取主机名和IP地址
1.在Java中,地址可以由一个字符串来定义,这个字符串可以是数字型的地址(其中IPv4的地址型式为:192.168.72.1,其中IPv6的地址型式为:fe20:12a0::0abc:1234),也 ...
- 局域网内通过ip获取主机名
局域网内通过ip获取主机名 nbtstat -A IP 只适用于Windows系统,同时只能查找Windows主机
- linux qt获取网卡mac地址,QT实战获取主机名QT获取IP地址 获取MAC地址 获取广播地址...
QT的网络东西也蛮多的,我们今天先学一部分,然后后面在学一部分吧 一个能使用网络的应用,我们需要在项目工程中的pro文件里进行标记QT += core gui #标记 网络 QT += network ...
- nbtstat命令linux_nbtstat Linux版源码, 通过IP获取主机名
nbtstat Linux版, 通过IP获取主机名/*NETBIOS name lookup tool - by eSDee of Netric (www.netric.org) * yeh.. i ...
- java 获取主机名_建议在Java中获取主机名的方法
问题 以下哪项是获取Java当前计算机主机名的最佳和最便携的方法? Runtime.getRuntime().exec("hostname") VS InetAddress.get ...
- python 获取主机名 根据端口杀死进程
2019独角兽企业重金招聘Python工程师标准>>> ip=os.popen("ifconfig eth0|grep 'inet addr'|awk -F ':' '{p ...
- vbs 获取计算机主机名,vbs 获取主机名
云硬盘备份 VBS 云硬盘备份(Volume Backup Service)为云硬盘创建在线备份,无需关机/重启.针对病毒入侵.人为误删除.软硬件故障等场景,可将数据恢复到任意备份点 ¥0.120¥0 ...
- 如何获取主机名和当前登录用户名
在日常的测试开发工作中,有时会用到保存本机名和当前登录人的erp的功能,同时,不同人使用的操作系统又大同小异,之前用Windows系统时写的代码,到mac就不可用,于是乎,整理了一些常用的python ...
最新文章
- 大工19春《计算机原理》在线作业2,大工19春《计算机原理》在线作业2.pdf
- build.gradle里dependencies标签页的实现原理
- SP1811-Longest Common Substring【SAM】
- MongoDB数据库操作
- python中的series的结构_pandas 数据结构之Series的使用方法
- 怎么看电脑系统是win几_做设计,用win系统 还是苹果MAC电脑更好 (PS举例)
- MS SQL Server带有时间的记录怎样查询
- BiCubic Interpolation
- 关于IPV6审核被拒的完整分析
- JAVA之MySQL数据库增删改查【Java入门练手】
- 计算机网络之域名系统DNS
- md5验证文件完整性
- pg_hint_plan 使用hint固定SQL执行计划
- php gb18030 utf-8,Unicode UTF-8与GB18030编码解析(golang)
- 什么是思维导图?有哪些好用的思维导图工具
- Android 短信验证码输入框
- Ethyl 2-azidoacetate,637-81-0,叠氮乙酸乙酯MDL: MFCD00190177的分子量是129.117
- 如何优雅地追回被骗款项(上篇)
- POJ 3255(迪杰斯特拉算法求次短路)
- 【3D人脸】Mediapipe Vs Persona
热门文章
- mysql 连接串 utf8_mysql 连接url中useUnicode=truecharacterEncoding=UTF-8 的作用
- XDP/eBPF — Overview
- 计算机组成原理 — IPMI/BMC
- Python基本语法_控制流语句_if/while/for
- linux终端出现bash: setup.bash: No such file or directory,和.bashrc文件的问题
- 关于面试题的一些题型解析
- mongodb安装和配置
- 测试openssl_encrypt
- linux学习笔记十(Raid基本知识)
- ORACLE nvarchar2和varchar2的区别