20174302 王漫天 《网络对抗技术》Exp5 信息搜集与漏洞扫描
一、实验要求
掌握信息搜集的最基础技能与常用工具的使用方法。
二、实验目标
- 1、各种搜索技巧的应用
- 2、DNS IP注册信息的查询
- 3、基本的扫描技术:主机发现、端口扫描、OS及服务版本探测、具体服务的查点(以自己主机为目标)
- 4、漏洞扫描:会扫,会看报告,会查漏洞说明,会修补漏洞(以自己主机为目标)
三、实验步骤
1.各种搜索技巧的应用(使用搜索引擎搜索服务器子域名、爆破、在Windows使用tracert探测路由结构等)
下载安装openvas
本次实验需要使用openvas进行漏洞扫描,所以我们需要在kali中进行安装以及配置。安装openvas使用以下命令:
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install openvas
安装完成后需要对openvas进行配置,首先执行sudo openvas-check-setup
,命令执行后会在命令行中输出检查结果,如果命令执行过程中报错并在fix字段提供了相应的解决方法,那么我们就需要按fix提供的方法解决相应的问题,然后再次运行sudo openvas-check-setup
,如此循环,直到没有需要修复的内容,这样完成了配置的工作。修复过程可能需要花费大量时间下载相应的库文件,建议大家使用代理或者找已经完成配置的同学拷贝相应的库文件。最后使用命令sudo openvas-start
启动openvas,然后将命令行中的链接复制到浏览器中打开openvas的gui。
2.各种搜索技巧的应用
2.1 搜索网址目录结构
通过该方法,我们可以获取获取网站的文件目录,从而可以根据目标网站的目录来判断是否有我们感兴趣或需要获取的数据。这里我们只要使用metasploit即可实现对目标网站的扫描,在命令行中输入以下命令:
msfconsole
use auxiliary/scanner/http/dir_scanner
set THREADS 20
set RHOSTS 目标网站的ip
exploit
扫描的结果如图所示:
2.2 公开渠道信息收集
由于使用谷歌需要科技上网,这里我就使用百度作为代替,只需要在搜索引擎中选择高级搜索,然后输入参数和关键字,即可在公开网络上获取所需要的敏感信息,这里我使用的搜索词条为site:edu.cn filetype:xls 汇总
。各参数的解释如下:
- filetype:能对搜索结果的文件类型进行限定,格式为“检索词 filetype:文件类型”
- “-”:能在检索结果中获取检索词的补集,格式为“检索词 -词语”
- site:能限制检索结果的来源,格式为“检索词 site:限制域名”
- inurl:能在网址中进行搜索,格式为“检索词inurl:检索词”
- “|”:表示布尔逻辑中的或者关系,使用格式为“关键词1 | 关键词2”
- “ ”:空格表示布尔逻辑中的交集(and)关系,使用格式为“关键词1 关键词2”
2.3路由跟踪
使用traceroute进行路由跟踪可以探测网络路由路径,可用于确定网络拓扑。该探测方法会在主机发送TTL从1开始逐步增1的IP包,并接受网络路径上路由器返回的ICMP TIME_EXECEEDED。使用的操作系统的不同,traceroute命令也不相同,windows使用tracert 目的ip或域名
命令,linux使用traceroute 目的ip或域名
命令。实验过程中我在以上两种系统中都执行了路由跟踪命令,发现windows下的命令能显示更多路径中的路由器的ip。
3.DNS IP注册信息的查询
3.1 通过whois查询域名注册信息
通过whois查询,我们能够获得注册人的名称、域名所属组织等相关信息,这里我们可以在linux中使用whois命令或者在搜索引擎中寻找可以提供查询的网站。这里我在搜索引擎中找到的几个whois查询网站,并用这些网站搜索了www.baidu.com的相关信息。比对搜索结果后,我发现哪些全英文的搜索网站的效果更好,而站长之家直接将百度相关的信息屏蔽了。
3.2 nslookup、dig域名查询
使用nslookup可以获取DNS服务器保存的Cache的结果,而dig命令可以从官方DNS服务器上查询精确的结果。nslookup可以在终端中输入nslookup 目的域名
命令来查询,dig可以在终端中输入dig 目的域名
命令来查询。另外,dig命令还有一些可以添加的参数,部分参数如下所示:
- +[no]search:使用 [不使用] 搜索列表或 resolv.conf 中的域伪指令定义的搜索列表。缺省情况不使用搜索列表。
- +[no]trace:切换为待查询名称从根名称服务器开始的代理路径跟踪。缺省情况不使用跟踪。一旦启用跟踪,dig 使用迭代查询解析待查询名称。它将按照从根服务器的参照,显示来自每台使用解析查询的服务器的应答。
- +[no]identify:当启用 +short 选项时,显示 [或不显示] 提供应答的 IP 地址和端口号。
- +[no]stats:该查询选项设定显示统计信息:查询进行时,应答的大小等等。缺省显示查询统计
3.3 获取IP地理位置
这里我使用了老师提供的网址www.cn.geoipview.com,然后在网站中输入所需要查询的ip地址或域名,点击搜索后就可以获得目标ip的地理位置。
4.基本的扫描技术
4.1 主机扫描
(1)ping命令扫描
ping命令会发送icmp数据包来检测目标主机是否在线,在命令行中输入ping 目标ip
即可,能ping通就说明目标主机处于活跃状态。
(2)nmap扫描
使用namp扫描的时候添加-sP参数可以简单的检测网络中有哪些在线主机,这里我使用了命令nmap -sP 192.168.219.0/24
对虚拟机所在的网段进行了扫描,其中192.168.219.134是kali虚拟机。
4.2 端口扫描
在实验中我们可以使用namp对目标主机的开放端口进行扫描,其中全扫描方式使用命令nmap -sT ip地址
,半开扫描使用命令sudo nmap -sS ip地址
(构造半扫描数据包需要高级权限),检测目标网段是否有主机启用远程桌面使用命令nmap -p 3389 ip地址
。
4.3 系统扫描
系统扫描同样可以使用nmap,这里我使用命令sudo nmap -O ip地址
来识别目标主机的系统,使用命令sudo nmap -sV ip地址
来查看网络服务。
4.4 具体服务的查点
这里可以使用metasploit中的模块来检测目标主机的具体服务。这里我开启了一个windows server 2000主机作为扫描对象,并对该服务主机进行了telnet、ssh、oracle服务的查点。
(1)telent服务查点
终端中启动metasploit并进行配置,具体命令如下:
- msfconsoleuse
- auxiliary/scanner/telnet/telnet_version
- set RHOSTS 192.168.219.0/24
- set THREADS 50
- run
(2)ssh服务查点
终端中启动metasploit并进行配置,具体命令如下:
- msfconsoleuse
- auxiliary/scanner/telnet/ssh_version
- set RHOSTS 192.168.219.0/24
- set THREADS 50
- run
(3)oracle服务查点
终端中启动metasploit并进行配置,具体命令如下:
- msfconsoleuse
- auxiliary/scanner/telnet/tnslsnr_version
- set RHOSTS 192.168.219.0/24
- set THREADS 50
- run
5.漏洞扫描
这里我们使用openvas进行漏洞扫描,openvas(Open Vulnerability Assessment System)是开放式漏洞评估系统,其核心部件是一个服务器,包括一套望楼漏洞测试程序,可以检测远程系统和应用程序中的安全问题。安装配置并启动openvas之后,输入前面配置过程中设置的用户名和密码即可登录openvas管理界面。
5.1 创建扫描任务
在登录后的用户界面中,我们可以点击界面*的scans>task查看所有扫描任务,然后点击左上角的魔法棒创建一个新的扫描任务,而扫描任务中第一个是简单任务,不能进行设置,第二个选项是高级扫描,可以对任务名、扫描模式、目标主机ip、开始时间、目标主机用户名和密码进行设置。点击create之后任务就会自动在后台运行,扫描完成后点击任务名还可以查看详细信息,点击scans>report可以查看扫描后的报告。
5.2 预先设置扫描对象
点击Assert选项,其中的host选项可以预先设置需要扫描的主机(固定资产),这样可以便于管理人员定期对大量主机进行扫描。
5.3 NVTs
我们可以通过点击SecInfo>NVTs来查看openvas所有的扫描任务,这里的扫描任务是指一系列测试的组合。NVT界面的左上角问号图标是帮助,其中解释了NVT信息中各属性的意义。NVT界面上半部分的图形可以点击,点击后就会对NVT进行筛选与过滤,NVT界面下半部分为属性,点击属性可以对数据进行排序。各属性的意义在帮助中基本都有介绍,只有qod没有,而qod的意思是检测质量,描述了执行的漏洞检测或产品检测的可靠性。
5.4 CVEs
我们可以通过点击SecInfo>CVEs来查看openvas的漏洞库,CVE界面中同样可以点击帮助,点击上半部分的图形进行筛选,点击属性进行排序。在CVE界面中点击漏洞名可以获取漏洞码,通过漏洞码我们可以在网上搜索相应的攻击代码。
5.5 CPEs
我们可以通过点击SecInfo>CPEs来查看扫描对象。CPE界面中同样可以点击帮助,点击上半部分的图形进行筛选,点击属性进行排序。CPE的Name属性表示的是扫描对象的名称,其中带o表示这是固件。
四、实验中遇到的问题
问题一:在执行apt-get dist-upgrade firmware
命令时提示处理firmware-b43-installer出错。
问题1:什么是3R信息。
- 注册人(Registrant) →注册商(Registrar) →官方注册局(Registry)
问题2:评价下扫描结果的准确性
- 总体来说,扫描大部分是准确的,但是并不全面。又是可能会出现扫描相同的软件出现不同的结果的情况,这也是无可厚非的。另外有可能出现被扫描的目标使用了一定的防御手段,从而导致结果是假的。
五、实验感想和思考
实验总结与体会
在本次实验中较好地完成了实验的各项任务,比较痛苦的就是这个openvas确实麻烦,主要麻烦在下载,家里网不是很好,再加上电脑有时候卡,下载时间还比较长,中间下载文件的时候一有卡顿就会停止下载,下载不完还需重新回来下,耽误了很多时间。但真正用它检测出电脑上的漏洞时确实感到它的作用和功能都很大,
在这次实验中,我对很多扫描技术有了一定的了解。尤其对 IP路由侦查、metasploit的端口扫描、Nmap、telent服务扫描、SSH服务扫描、Oracle数据库服务查点等进行实际操作运行后感受到这些软件和模块功能很强大。掌握了许多知识,学会了许多信息收集和漏洞扫描的方法。最后使用openvas进行扫描之后才知道我的电脑竟然还有这么多漏洞,越发觉得系统安全尤为重要
Exp7 网络欺诈防范 20174302王漫天
一、实践目标
1.1 实验对象
- linux kali
1.2 实践内容
- Web前端: HTML
- Web前端: Javascipt
- Web后端: MySQL基础
- Web后端: 编写PHP网页
- SQL注入: XSS攻击测试
二、基础知识
2.1 实践要求
- Web前端: HTML
- 能正常安装、启停Apache
- 理解HTML,理解表单,理解GET与POST方法
- 编写一个含有表单的HTML
- Web前端: Javascipt
- 理解JavaScript的基本功能,理解DOM
- 编写JavaScript验证用户名、密码的规则
- Web后端: MySQL基础
- 正常安装、启动MySQL,建库、创建用户、修改密码、建表
- Web后端: 编写PHP网页
- 连接数据库,进行用户认证
- 最简单的SQL注入: XSS攻击测试
- 用户能登陆,登陆用户名密码保存在数据库中,登陆成功显示欢迎页面
2.2 前提知识
GET/POST
- GET把参数包含在URL中,POST通过request body传递参数;
- GET产生一个TCP数据包;POST产生两个TCP数据包;
- GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
SQL注入
- 通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串达到欺骗服务器执行恶意的SQL命令,即利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句;
- 输入的用户名
' or 1=1#
中#
相当于注释符,把后面的内容都注释掉,1=1
是永真式,条件永远成立,和代码中select语句组合后变成select * from login5121 where username='' or 1=1# ' and password=''
,不管密码是否输入正确,都能够成功登录。
XSS攻击
- 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中,比如这些代码包括HTML代码和客户端脚本,攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(same origin policy),这种类型的漏洞由于被黑客用来编写危害性更大的phishing攻击而变得广为人知。
三、实践过程
简单应用SET工具建立冒名网站
使用netstat -tupln |grep 80
查看80端口是否被占用
sudo vi /etc/apache2/ports.conf
命令修改Apache的端口文件,将端口改为http对应的80号端口
apachectl start
开启Apache服务
使用setoolkit
打开SET工具
选择1:Social-Engineering Attacks即社会工程学攻击
选择2:Website Attack Vectors即钓鱼网站攻击
选择3:Credential Harvester Attack Method
选择2:Site Cloner进行克隆网站
输入攻击机IP
输入被克隆的url
在靶机上输入攻击机IP按下回车后跳转到被克隆的网页和KALI上的显示:
ettercap DNS spoof
使用ettercap -G
开启ettercap
点击工具栏中的“Sniff”——>“unified sniffing”
,在弹出的界面中选择“eth0”——>“ok”
,即监听eth0网卡
点击工具栏中的“Hosts”——>“Scan for hosts”
扫描子网并点击工具栏中的“Hosts”——>“Hosts list”
查看存活主机
将kali网关的IP添加到target1,靶机IP添加到target2
点击工具栏中的“Plugins”——>“Manage the plugins”
,选择“dns_spoof”
即DNS欺骗的插件
然后点击左上角的“start”——>“Start sniffing”选项开始嗅探.
靶机上输入ping www.microsoft.cn,可以在Kali端看到反馈信息:
结合应用两种技术,用DNS spoof引导特定访问到冒名网站
参照实验一,克隆登录网站;参照试验二,开启DNS欺骗:
实现总结与体会
- 这次实验只是简单建立了某些网站的门户冒名网站,并没有克隆更多的网站信息。实验中也没有为 Apache2 配置 SSL 证书。所以一旦访问冒名、欺骗后的网站,都会提示不安全。当然这个问题也可以通过自建 CA 来实现自签名 SSL 证书来解决。所以使用公用网络可能会受到各种各样的攻击,尽量不要使用公用网络。在DNS 欺骗的前提是 ARP 欺骗,防范 ARP 欺骗可以有效防范DNS 欺骗。可以自己手动添加正确的 host 到 HOSTS 文件中,不在经过网关进行相关网站的 DNS 解析。