Fork me on GitHub

信息搜集与漏洞扫描

课程:网络对抗技术

班级:2012 姓名:郭幸坤 学号:20201213

实验名称:信息搜集与漏洞扫描 实验日期:2023.4.11

实验目的

  1. 掌握信息搜集的最基础技能与常用工具的使用方法。

实验内容

  1. 各种搜索技巧的应用
  2. DNS IP注册信息的查询
  3. 基本的扫描技术:主机发现、端口扫描、OS及服务版本探测、具体服务的查点(以自己主机为目标)
  4. 漏洞扫描:会扫,会看报告,会查漏洞说明,会修补漏洞(以自己主机为目标)

实验过程

(一)各种搜索技巧的应用

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-搜索引擎的高级搜索语法

  1. site
在特定网站或域中搜索

eg: site:taobao.com 手机|电脑

也可以在特定顶级域(如 .org 或 .edu)或国家/地区顶级域(如 .de 或 .jp)中进行搜索。例:奥林匹克 site:.gov

网址中不要用 www ,除非你有特别目的,用 www 会导致错过网站内的内容,因为很多网站的频道是没有 www 。

  1. inurl
把搜索范围限定在url链接中

网页url中的某些信息,常常有某种有价值的含义。

eg: inurl:admin|login

可以精准找到一些管理员后台登录页面

![]

  1. intitle
把搜索范围限定在网页标题中

eg: intitle:注册|登录|admin

eg: intitle:bookmarks ——查询别人的收藏夹

IE浏览器的收藏夹导出后,网页的标题(title)是bookmarks。

![image-20230417221351409]

  1. filetype
特定格式的文档检索

百度搜索引擎支持的文件格式包括 ppt、xls、doc、rtf、pdf、txt 、all(搜索所有的文件类型)

eg: filetype:all "清华大学"

  1. 其他
完全匹配搜索:双引号、书名号 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

img

输入一个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% 准确地得知盒子里面的真实情况。我们应该使用不同的靠谱的扫描软件进行扫描,结果相同的部分往往是可信的。

最后再加上人工手工测试,能让扫描结果更加准确真实。

扫描的系统和扫描方式的不同,扫描结果可能会有偏差。还有一些手机在不使用时会启动类似“休眠模式”,只有在用户使用时才会连接到网络,所以有时候会扫描不出来,这里就会造成在某一时间段前后扫描结果的不同。

posted @ 2023-04-19 13:43  郭幸坤  阅读(307)  评论(0编辑  收藏  举报
1