信息搜集与漏洞扫描
课程:网络对抗技术
班级:2012 姓名:郭幸坤 学号:20201213
实验名称:信息搜集与漏洞扫描 实验日期:2023.4.11
实验目的
- 掌握信息搜集的最基础技能与常用工具的使用方法。
实验内容
- 各种搜索技巧的应用
- DNS IP注册信息的查询
- 基本的扫描技术:主机发现、端口扫描、OS及服务版本探测、具体服务的查点(以自己主机为目标)
- 漏洞扫描:会扫,会看报告,会查漏洞说明,会修补漏洞(以自己主机为目标)
实验过程
(一)各种搜索技巧的应用
1-msf网站后台目录扫描
1-1-尝试扫一下ctfshow靶场的一个靶机
use auxiliary/scanner/http/dir_scanner
set THREADS 20
set RHOSTS http://43ee121d-2001-4266-aa33-433b6bb58d04.challenge.ctf.show/
run
可以看到满屏的 FOUND + 503,这通常是服务器过载导致的。
此时应该立即停止扫描,并降低线程数量。
我们随便访问一个 MSF 扫描出来的后台地址,会发现页面没有变化,还是主页面。(可能是被重定向了,需要 burp 抓包验证)
这是因为 http 的响应码是可以人为设定的。所以我们可以针对后台扫描,返回自己设定的响应码,从而欺骗 MSF 等后台扫描软件。
你以为扫描出来了,但其实并没有。
你以为搜集到了好多信息,但其实是被人家骗了。
1-2-扫描一个没有防护的网站
use auxiliary/scanner/http/dir_scanner
set THREADS 20
set RHOSTS http://tykd.com/
run
403 一般表示有这个网址,但是没有访问权限。
访问一个 /reports,确实有这个后台
访问一个 /help/service
1-3-扫描网站备份文件
扫描备份文件和扫描后台可以使用相同 MSF 模块 。
但是要把字典换一下。
use auxiliary/scanner/http/dir_scanner
set DICTIONARY ~/Desktop/bak.txt
set RHOST http://www.tykd.com/
set THREADS 2
run
/home/20201213/bak.txt 是自己准备的字典,我这里粘贴一小部分。
/index.sql
/www.sql
/bak.sql
/backup.sql
/tz.php
/index.php.swp
/www.zip
/index.phps
/.bzr
/CVS
/WEB-INF/web.xml
/.svn
/.hg
/.DS_Store
/.git
/index.php.bak
除了显示的源码备份文件,如 .bak,www.zip,index.phps 等,最常见的莫过于 .git 网站根目录隐藏文件夹泄露源码。
因为很多网站开发的时候,会采用基于 Git 的团队开发模式。网站上线之后,.git 文件夹一般也不会删除。
常用利用工具 GitHack https://github.com/BugScanTeam/GitHack
2-通过搜索引擎进行信息搜索
2-1-搜索引擎的高级搜索语法
- site
在特定网站或域中搜索
eg: site:taobao.com 手机|电脑
也可以在特定顶级域(如 .org 或 .edu)或国家/地区顶级域(如 .de 或 .jp)中进行搜索。例:奥林匹克 site:.gov
网址中不要用 www ,除非你有特别目的,用 www 会导致错过网站内的内容,因为很多网站的频道是没有 www 。
- inurl
把搜索范围限定在url链接中
网页url中的某些信息,常常有某种有价值的含义。
eg: inurl:admin|login
可以精准找到一些管理员后台登录页面
![]
- intitle
把搜索范围限定在网页标题中
eg: intitle:注册|登录|admin
eg: intitle:bookmarks ——查询别人的收藏夹
IE浏览器的收藏夹导出后,网页的标题(title)是bookmarks。
![image-20230417221351409]
- filetype
特定格式的文档检索
百度搜索引擎支持的文件格式包括 ppt、xls、doc、rtf、pdf、txt 、all(搜索所有的文件类型)
eg: filetype:all "清华大学"
- 其他
完全匹配搜索:双引号、书名号 eg:"柠檬酸的作用和用途"
排除搜索法: 减号。“-”前面有空格,后面无空格,搜索结果为排除“-”后面关键词。
相关搜索法:如果你想找到与你已知网站内容相似的新网站,可以使用 related: http://xxxx.com。
通配符: *
3-路由跟踪
windows命令 : tracert
Linux 命令 :traceroute
因为 kali 是 NAT 模式,所以只检测出一跳。
(二)DNS IP注册信息的查询
1-whois命令
简单来说,whois就是一个查询域名的系统,用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商、注册时间、到期时间等)。
whois baidu.com
进行whois查询时要去掉www等前缀,因为注册域名时通常会注册一个上层域名,子域名由自身的域名服务器管理,在whois数据库中可能查询不到。
防护: 可以开启whois保护即可实现,开启后其他人通过whois无法查询到域名持有人姓名、联系方式等。
2-nslookup和dig
nslookup可以得到DNS解析服务器保存的Cache的结果,但并不是一定准确的
dig可以从官方DNS服务器上查询精确的结果
除此之外,dig命令还有很多查询选项,每个查询选项被带前缀(+)的关键字标识。例如:
+[no]search:使用 [不使用] 搜索列表或 resolv.conf 中的域伪指令(如果有的话)定义的搜索列表。缺省情况不使用搜索列表。
+[no]trace:切换为待查询名称从根名称服务器开始的代理路径跟踪。缺省情况不使用跟踪。一旦启用跟踪,dig 使用迭代查询解析待查询名称。它将按照从根服务器的参照,显示来自每台使用解析查询的服务器的应答。
+[no]identify:当启用 +short 选项时,显示 [或不显示] 提供应答的 IP 地址和端口号。
+[no]stats:该查询选项设定显示统计信息:查询进行时,应答的大小等等。缺省显示查询统计信息。
nslookup tykd.com
dig tykd.com
3-ip地理位置查询
国内直接站长工具,https://ip.tool.chinaz.com/
(三)基本的扫描技术:主机发现、端口扫描、OS及服务版本探测、具体服务的查点(以自己主机为目标)
1-主机发现
1-1-ping命令
ping命令用发送ICMP报文的方法检测活跃主机
1-2-metasploit-主机发现
Metasploit 中提供了一些辅助模块可用于活跃主机的发现,这些模块位于Metasploit 源码路径的modules/auxiliary/scanner/discovery/ 目录中。
主要有以下几个:arp_sweep、ipv6_multicast_ping、ipv6_neighbor、ipv6_neighbor_router_advetisement、 udp_probe、udp_sweep。
其中两个常用模块的主要功能为:
- arp_sweep使用 ARP 请求枚举本地局域网络中的所有活跃主机。
- udp_sweep通过发送 UDP 数据包探查指定主机是否舌跃,并发现主机上的 UDP 服务。
arp_sweep
sudo msfconsole
use auxiliary/scanner/discovery/arp_sweep
set RHOSTS 192.168.199.0/24
set THREADS 2
run
udp_sweep
sudo msfconsole
use auxiliary/scanner/discovery/udp_sweep
set RHOSTS 192.168.199.0/24
set THREADS 2
run
两次都抓到了舍友的主机
1-3-nmap-主机发现
nmap -sn 192.168.1.0/24 //寻找该网段下的活跃主机
2-端口扫描
2-1-metasploit-端口扫描
use auxiliary/scanner/portscan/syn
set RHOST 192.168.1.121
set THREADS 20
run
2-2-nmap-端口扫描
Nmap通过探测将端口划分为6个状态:
- open:端口是开放的。
- closed:端口是关闭的。
- filtered:端口被防火墙IDS/IPS屏蔽,无法确定其状态。
- unfiltered:端口没有被屏蔽,但是否开放需要进一步确定。
- open|filtered:端口是开放的或被屏蔽。
- closed|filtered :端口是关闭的或被屏蔽。
扫描方式选项
-sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式来对目标主机进行扫描。
-sU: 指定使用UDP扫描方式确定目标主机的UDP端口状况。
-sN/sF/sX: 指定使用TCP Null, FIN, and Xmas scans秘密扫描方式来协助探测对方的TCP端口状态。
--scanflags : 定制TCP包的flags。
-sI <zombiehost[:probeport]>: 指定使用idle scan方式来扫描目标主机(前提需要找到合适的zombie host)
-sY/sZ: 使用SCTP INIT/COOKIE-ECHO来扫描SCTP协议端口的开放的情况。
-sO: 使用IP protocol 扫描确定目标机支持的协议类型。
-b : 使用FTP bounce scan扫描方式。
指定端口
-p : 扫描指定的端口
实例: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9(其中T代表TCP协议、U代表UDP协议、S代表SCTP协议)
-F: Fast mode – 快速模式,仅扫描TOP 100的端口
-r: 不进行端口随机打乱的操作(如无该参数,nmap会将要扫描的端口以随机顺序方式扫描,以让nmap的扫描不易被对方防火墙检测到)。
--top-ports :扫描开放概率最高的number个端口(nmap的作者曾经做过大规模地互联网扫描,以此统计出网络上各种端口可能开放的概率。以此排列出最有可能开放端口的列表,具体可以参见文件:nmap-services。默认情况下,nmap会扫描最有可能的1000个TCP端口)
--port-ratio : 扫描指定频率以上的端口。与上述--top-ports类似,这里以概率作为参数,让概率大于--port-ratio的端口才被扫描。显然参数必须在在0到1之间,具体范围概率情况可以查看nmap-services文件。
实例
sudo nmap -sS 192.168.1.121
sudo nmap -sN 192.168.1.121
2-3-服务版本探测
sudo nmap -sV 192.168.1.121
2-4-nmap-对主机进行全面扫描
命令形式: nmap –T4 –A –v targethost
如果希望对某台主机进行完整全面的扫描,那么可以使用nmap内置的-A选项。使用了改选项,nmap对目标主机进行主机发现、端口扫描、应用程序与版本侦测、操作系统侦测及调用默认NSE脚本扫描。
其中-A选项用于使用进攻性(Aggressive)方式扫描;-T4指定扫描过程使用的时序(Timing),总有6个级别(0-5),级别越高,扫描速度越快,但也容易被防火墙或IDS检测并屏蔽掉,在网络通讯状况良好的情况推荐使用T4;-v表示显示冗余(verbosity)信息,在扫描过程中显示扫描的细节,从而让用户了解当前的扫描状态。
3-设备信息和操作系统探测
sudo nmap -O 192.168.1.121
4-metasploit-验证具体服务的状态
4-1-metasploit-telnet服务扫描
use auxiliary/scanner/telnet/telnet_version
set RHOSTS 192.168.1.121
set THREADS 5
run
4-2-metasploit-ssh服务扫描
use auxiliary/scanner/ssh/ssh_version
set RHOSTS 192.168.1.121
set THREADS 5
run
(四)漏洞扫描:会扫,会看报告,会查漏洞说明,会修补漏洞(以自己主机为目标)
1-安装openvas
在kali新版本中 openvas 改名成了gvm
安装
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install gvm
sudo gvm-setup
sudo gvm-check-setup
sudo gvm-start
gvmd --user=admin --new-password=admin
runuser-u_gvm--gvmd--user=admin--new-password=admin //修改密码
或
gvmd --user=admin --new-password=admin //修改密码
2-扫描目标主机
碰到了无法解决的bug。只好放弃在kali上直接安装。
1-重新安装openvas
镜像文件链接:https://pan.baidu.com/s/1V7fVbXhpzcOjoevkX-uZMQ
提取码:fjvi
用户名:admin 密码:123456
出现如下选项,选择cancel(用键盘的方向键移动,回车确认)
打开导入完成的虚拟机,输入用户名admin和密码123456,并记录ip
等待一段时间后,出现如下界面,回车即可
2-重新扫描目标主机
点击Scans
选择Task
,点击左边那个魔法棒,选择Task Wizard
,
输入一个IP号开始检查:
在经过极漫长的时间后,任务进度会从0加载到100%
等任务扫描完毕后,点击任务即可查看结果:
我们选择导航栏上的不同选项查看详细信息(这里以Ports
为例)
可以发现主机的135
端口确实开放了,关闭端口即可降低威胁,好在别的方面看起来还没啥隐患。
10. 下载报告
在这里我们选择以pdf格式下载,打开后就是一份扫描报告,这也是我觉得比较牛的地方。
实验体会
通过本次实验,我知道了网络信息的收集方式有网络踩点、网络查点和网络扫描,网络扫描又包括主机扫描、端口扫描、系统类型探查和漏洞扫描,相应的,也学习了很多配套的软件和指令。借助以上方式,我们可以在短时间内获取目标计算机或目标域名的大量信息,甚至可以猜测出目标的网络拓扑结构之类的信息。有矛就会有盾,打开防火墙,减少开放端口,使用端口扫描监测工具,记录日志,应用审计技术进行分析等方法可以有效防范相应的信息搜集技术。
本次实验中,我从一个攻击者的角度对我的笔记本电脑进行了大量的信息搜集,更了解自己电脑的同时,也感慨于现如今的扫描技术之发达。本次实验令我受益匪浅,期待下次的实验能让我对这门课程有更深的理解和感悟。
基础问题回答
第一题-哪些组织负责dns和ip的管理
1.ICANN(Internet域名与地址管理机构)负责全球的DNS、IP和域名根服务器的管理
2.ICANN是为承担域名系统管理IP地址分配,协议参数配置,以及主服务器系统管理等职能而设立的非盈利机构
全球一共有5个地区性注册机构:ARIN主要负责北美地区业务,RIPE主要负责欧洲地区业务,APNIC主要负责亚太地区业务,LACNIC主要负责拉丁美洲美洲业务,AfriNIC负责非洲地区业务。
第二题-什么是3r信息
3R指的是注册人(Registrant)、注册商(Registrar)、官方注册局(Registry)。
第三题-评价下扫描结果的准确性
扫描一般都是黑盒测试,我们无法 100% 准确地得知盒子里面的真实情况。我们应该使用不同的靠谱的扫描软件进行扫描,结果相同的部分往往是可信的。
最后再加上人工手工测试,能让扫描结果更加准确真实。
扫描的系统和扫描方式的不同,扫描结果可能会有偏差。还有一些手机在不使用时会启动类似“休眠模式”,只有在用户使用时才会连接到网络,所以有时候会扫描不出来,这里就会造成在某一时间段前后扫描结果的不同。