互联网上使用最多的就是域名,域名(Domain Name)是指企业、政府、非政府组织等机构或者个人在域名注册商上注册的名称,是互联网上企业或机构间相互联络的网络地址。通俗地说,域名就相当于一个家庭的门牌号码,别人通过这个号码可以很容易地找到你。
(1)域名的构成
以一个常见的域名为例说明,baidu网址是由两部分组成的,标号“baidu”是这个域名的主体,而最后的标号“com”则是该域名的后缀,代表这是一个com国际域名,是顶级域名。而前面的www.是网络名,为www的域名。DNS规定,域名中的标号都由英文字母和数字组成,每一个标号不超过63个字符,也不区分大小写字母。标号中除连字符(-)外不能使用其他的标点符号。级别最低的域名写在最左边,而级别最高的域名写在最右边。由多个标号组成的完整域名总共不超过255个字符。近年来,一些国家也纷纷开发使用采用本民族语言构成的域名,如德语,法语等。我国也开始使用中文域名,但可以预计的是,在今后相当长的一般时期内,我国以英语为基础的域名(即英文域名)仍然是主流。
(2)域名基本类型
域名主要有国际域名和国内域名两种类型,国际域名(international top-level domain-names,iTDs),也叫国际顶级域名。这也是使用最早也最广泛的域名。例如表示工商企业的.com,表示网络提供商的.net,表示非营利组织的.org等;国内域名,又称为国内顶级域名(national top-level domainnames,nTLDs),即按照国家的不同分配不同的后缀,这些域名即为该国的国内顶级域名。在实际使用和功能上,国际域名与国内域名没有任何区别,都是互联网上的具有唯一性的标识。只是在最终管理机构上,国际域名由美国商业部授权的互联网名称与数字地址分配机构(The Internet Corporation for Assigned Names and Numbers)即ICANN负责注册和管理;而国内域名则由中国互联网络管理中心(China Internet Network Information Center)即CNNIC负责注册和管理。
(3)域名级别
域名可分为不同级别,包括顶级域名、二级域名等。顶级域名又分为国家顶级域名和国际顶级域名两类。
国家顶级域名(national top-level domainnames,nTLDs),目前200多个国家都按照ISO3166国家代码分配了顶级域名,例如中国是cn,美国是us,日本是jp等。
国际顶级域名(international top-level domain names,iTDs),例如表示工商企业的.com,表示网络提供商的.net,表示非营利组织的.org等。目前大多数域名争议都发生在com的顶级域名下,因为多数公司上网的目的都是为了赢利。为加强域名管理,解决域名资源的紧张,Internet协会、Internet分址机构及世界知识产权组织(WIPO)等国际组织经过广泛协商,在原来三个国际通加了7个国际通用顶级域名:firm(公司企业)、store(销售公司或企业)、Web(突出WWW活动的单位)、arts(突出文化、娱乐活动的单位)、rec(突出消遣、娱乐活动的单位)、info(提供信息服务的单位)、nom(个人),并在世界范围内选择新的注册机构来受理域名注册申请。
二级域名是指顶级域名之下的域名,在国际顶级域名下,它是指域名注册人的网上名称,例如 ibm,yahoo,microsoft等;在国家顶级域名下,它是表示注册企业类别的符号,例如com、edu、gov、net等。我国在国际互联网络信息中心(Inter NIC)正式注册并运行的顶级域名是CN,这也是我国的一级域名。在顶级域名之下,我国的二级域名又分为类别域名和行政区域名两类。类别域名共6个:包括用于科研机构的ac,用于工商金融企业的com,用于教育机构的edu,用于政府部门的gov,用于互联网络信息中心和运行中心的net,用于非营利组织的org。而行政区域名有34个,分别对应于我国各省、自治区和直辖市。
三级域名用字母(A~Z,a~z,大小写等)、数字(0~9)和连接符(-)组成,各级域名之间用实点(.)连接,三级域名的长度不能超过20个字符。如无特殊原因,建议采用申请人的英文名(或者缩写)或者汉语拼音名(或者缩写)作为三级域名,以保持域名的清晰性和简洁性。
1.5.2 域名在渗透中的作用
Web渗透主要通过域名地址来进行定位,通过IP地址来查询域名注册情况,通过查看域名实际注册情况来有选择性地进行渗透。域名查询有两种方式,一种是通过IP地址反查该IP地址上域名注册情况,另外一种是通过域名来查询IP地址。
1.5.3 使用IP866网站查询域名
目前国内外很多网站提供了域名查询服务,通过这些网站可以很方便地查看域名注册情况,收集被渗透目标的信息。IP866网站查询国内域名效果较好,但对国外的域名收集情况就不那么完全了。
(1)使用IP866.com网站查询域名然后在主界面中选择“域名反查”,如图1-37所示,在文本输入框中可以输入需要查询的IP地址或者域名。
(2)查看域名反查查询结果
以新浪网站为例,对www.sina.com.cn进行域名反查,如图1-38所示,可以看到有多个查询结果,该结果表明IP地址为61.172.291.195上面绑定了多个域名。如果查询结果中有多个域名,则会分页显示。
(3)查询域名注册信息
在IP866网站中除了域名反查外,还有很多其他功能,其中一个跟域名比较适用的功能是查询域名注册信息,如图1-39所示,单击“域名查询”,选择查找的Whois服务器,然后再单击“查询域名注册信息”,即可获赠该域名的更多详细信息。这些信息在社工时是特别有用的。
1.5.4 使用yougetsignal网站查询域名
yougetsignal网站免费提供域名查询服务,不过上面有一些广告显示,如果不想显示这些广告,可以使用Firefox浏览器安装Nocript以及Adblock Plus插件。yougetsignal网站查询国内外网站域名注册效果比较好,推荐使用该网站来查询域名注册情况。yougetsignal网站查询域名的地址为:-sites-on-web-server/,如图1-40所示,将域名或者IP地址输入到“Remote Address”,然后单击“Check”按钮进行查询,跟IP866网站相比,该网站的查询结果查看比较方便,便于直接复制粘贴使用,而且可以一目了然地知道该IP地址一共有104个域名。
在yougetsignal网站中也提供了域名注册详细情况的查询,如图1-41所示,可以查看www.sina.com.cn域名注册的详细情况,跟IP866不同的是,有些内容是英文显示的。
1.5.5 使用Acunetix Web Vulnerability Scanner查询子域名
Acunetix Web Vulnerability Scanner(简称WVS)是一套综合的扫描工具。运行WVS后,在左侧Tools中有一个Subdomain Scanner,如图1-42所示,在Domain中输入需要查询的域名地址,然后使用一种查询方法,单击查询即可查看该主域名下的相关域名,使用WVS还可以对这些子域名进行扫描。
1.5.6 旁注域名查询
旁注域名查询主要是指从侧面展开对目标网站的渗透,即在对主目标网站渗透未果的情况下,通过旁注域名查询,对某一个IP地址段进行域名查询,同时对该IP地址段的域名目标进行有选择性的渗透,渗透后通过嗅探等手段来截获目标网站的密码。旁注域名查询有两个工具比较好用,一个是陆羽写的T00ls旁注查询工具,该工具在查询到结果后,可以对无效域名进行验证,单击查询结果网站可以直接访问目标网站,如图1-43所示。唯一美中不足的就是不能将查询结果保存。另外一个是网站在线查询,通过输入xxx.xxx.xxx.%,即可对某一目标网段254台主机进行域名查询。
1.6 使用GetHashes软件获取Windows系统Hash密码值
对入侵者来说,获取Windows的口令是整个攻击过程至关重要的一环,拥有系统原来用户的口令,将使得内网渗透和守控更加容易。Windows系统中的Hash密码值主要由LM-HASH和NTLM-HASH值两部分构成,一旦入侵者获取了系统的Hash值,通过LC5以及彩虹表等破解工具可以很快地获取系统的密码。本文主要探讨如何使用Gethashes工具来获取系统的Hash值,并对Hash值的生成原理等知识进行了介绍,最后还介绍了一些有关Hash破解方面的技巧。
1.6.1 Hash基本知识
(1)Hash定义
Hash,一般翻译为“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一地确定输入值。简单地说,就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
(2)Hash的应用
Hash主要用于信息安全领域中加密算法,它把一些不同长度的信息转化成也可以说,Hash就是找到一种数据内容和数据存放地址之间的映射关系。
1.6.2 Hash算法在密码上的应用
MD5和SHA1可以说是目前应用最广泛的Hash算法,而它们都是以 MD4 为基础设计的。那么他们都是什么意思呢?这里简单说一下。
(1)MD4
MD4(RFC 1320)是由MIT的Ronald L. Rivest 在 1990 年设计的,MD是 Message Digest 的缩写。它适用在32位字长的处理器上用高速软件实现,它是基于 32 位操作数的位操作来实现的。
(2)MD5
MD5(RFC 1321)是 Rivest于1991年对MD4的改进版本。它仍以512位分组来输入,其输出是4个32位字的级联,与 MD4 相同。MD5比MD4来得复杂,并且速度较之要慢一点,但更安全,在抗分析和抗差分方面表现更好。
(3)SHA1及其他
SHA1是由NIST NSA设计为同DSA一起使用的,它对长度小于264的输入,产生长度为160bit的散列值,因此抗穷举(brute-force)性更好。SHA1设计基于和MD4相同原理,并且模仿了该算法。
Hash算法在信息安全方面的应用主要体现在以下的3个方面。
(1)文件校验
我们比较熟悉的校验算法有奇偶校验和CRC校验,这两种校验并没有抗数据篡改的能力,它们在一定程度上能检测并纠正数据传输中的信道误码,但却不能防止对数据的恶意破坏。MD5 Hash算法的“数字指纹”特性,使它成为目前应用最广泛的一种文件完整性校验和(Checksum)算法,不少UNIX系统提供计算MD5 Checksum的命令。
(2)数字签名
Hash算法也是现代密码体系中的一个重要组成部分。由于非对称算法的运算速度较慢,所以在数字签名协议中,单向散列函数扮演了一个重要的角色。对Hash值,又称“数字摘要”进行数字签名,在统计上可以认为与对文件本身进行数字签名是等效的。而且这样的协议还有其他的优点。
(3)鉴权协议
在传输信道时可被侦听,但不可被篡改的情况下,这是一种简单而安全的方法。