2019-2020-2 20175319江野《网络对抗技术》Exp5 信息搜集与漏洞扫描
1 实践目标
掌握信息搜集的最基础技能与常用工具的使用方法。
2 实践内容
- (1)各种搜索技巧的应用
- (2)DNS IP注册信息的查询
- (3)基本的扫描技术:主机发现、端口扫描、OS及服务版本探测、具体服务的查点(以自己主机为目标)
- (4)漏洞扫描:会扫,会看报告,会查漏洞说明,会修补漏洞(以自己主机为目标)
2.1 各种搜索技巧的应用——通过搜索引擎进行信息搜集
Google Hacking
- Google提供了高级搜索功能。GHDB数据库包含了大量使用Google从事渗透的搜索字符串。点击查看GHDB的内容
intitle:"webcam 7" inurl:'/gallery.html'
intitle:从网页标题中搜索指定的关键字.inurl:从url中搜索指定的关键字
搜索网址目录结构
自动化的工具:metasploit的brute_dirs,dir_listing,dir_scanner等辅助模块
以dir_scanner为例:
use auxiliary/scanner/http/dir_scanner
set THREADS 50
set RHOSTS www.baidu.com
exploit
搜索特定类型的文件
有些网站会链接通讯录,订单等敏感的文件,可以进行针对性的查找, 如秘迹
搜索site:edu.cn filetype:xls 排名
site:在某个指定的网站内搜索指定的内容.filetype:搜索指定的文件后缀
点击任意一个链接下载后打开
搜索E-Mali
metasploit中有search_email_collector,进行针对性的搜集。
use auxiliary/gather/search_email_collector
set DOMAIN www.baidu.com
set SEARCH_GOOGLE false
set SEARCH_yahoo false
run
IP路由侦查
工具:traceroute
traceroute www.baidu.com
生存时间、三次发送的ICMP包返回时间、途经路由器的IP地址,*
表示该次ICMP包返回时间超时。
2.2 DNS IP注册信息的查询
whois域名注册信息查询
使用whois命令进行查询msf > whois baidu.com
注意:进行whois查询时去掉www等前缀,因为注册域名时通常会注册一个上层域名,子域名由自身的域名服务器管理,在whois数据库中可能查询不到。
nslookup,dig域名查询
- nslookup可以得到DNS解析服务器保存的Cache的结果,但并不是一定准确的。
nslookup
set type=A
baidu.com
- dig可以从官方DNS服务器上查询精确的结果
dig @dns.baidu.com baidu.com
,dns.baidu.com为DNS服务器
IP2Location地理位置查询
www.maxmind.com
可以根据IP查询地理位置,使用自己的IP地址进行查询
netcraft提供的信息查询服务
http://www.netcraft.com/
搜索www.baidu.com可查询到域名下的子站点域名,还有地理位置、域名服务器地址、服务器操作系统、服务器运行状况等详细信息。
IP2反域名查询
通过IP反查到域名,即旁注的第一步。
http://www.ip-adress.com/reverse_ip/
输入百度的IP地址
2.3 基本的扫描技术
主机扫描
ICMP Ping命令
检查目标主机是否活跃
ping www.baidu.com
metasploit中的模块
位于modules/auxiliary/scanner/discovery 主要有 arp_sweep, ipv6_multicast_ping, ipv6_neighbor, ipv6_neighbor_router_advertisement, udp_probe,udp_sweep.
arp_sweep使用ARP请求枚举本地局域网的活跃主机,即ARP扫描器。
use auxiliary/scanner/discovery/arp_sweep
set RHOSTS 192.168.1.103/24
set THREADS 50
run
Nmap探测
nmap -sP 192.168.1.0/24
通过arp包判断局域网内的主机状态
端口扫描与服务探测
metasploit的端口扫描模块
search portscan
找到相关模块
- 使用auxiliary/scanner/portscan/tcp模块,进行TCP端口扫描
use auxiliary/scanner/portscan/tcp
set RHOSTS 192.168.1.101
set THREADS 50
run
- 使用auxiliary/scanner/portscan/syn模块,进行TCP SYN扫描
use auxiliary/scanner/portscan/syn
set RHOSTS 192.168.1.101
set THREADS 50
run
Nmap端口扫描
一般用到的参数如下:
-sS/sT/sA/sW/sM:使用SYN、TCP三次握手全连接、ACK、Window、Maimon来进行扫描
-sN/sF/sX:使用TCP Null(无flag)、FIN、Xmas(FIN+Push+Urgent)扫描
-sU:指定使用UDP扫描方式确定目标主机的UDP端口状况
-p:扫描指定的端口
-F:Fast mode快速模式,仅扫描TOP 100的端口
-Pn:跳过主机发现,将所有指定的主机视作开启的
- TCP端口扫描
nmap -sT 192.168.1.101
- TCP端口半开扫描
nmap -sS 192.168.1.101
OS及服务版本探测
操作系统侦测
Nmap -O 192.168.1.1/24
-O: 指定Nmap进行OS侦测。
想通过Nmap准确的检测到远程操作系统是比较困难的,需要使用到Nmap的猜测功能选项, –osscan-guess
猜测认为最接近目标的匹配操作系统类型
nmap -O –osscan-guess 192.168.1.101
版本侦测
用于确定目标主机开放端口上运行的具体的应用程序及版本信息
nmap –sV 192.168.1.103
,-sV: 指定让Nmap进行版本侦测
具体服务的查点
telent服务扫描
use auxiliary/scanner/telnet/telnet_version
set RHOSTS 192.168.1.0/24
set THREADS 100
run
SSH服务扫描
use auxiliary/scanner/ssh/ssh_version
set RHOSTS 192.168.1.101/24
set THREADS 50
run
Oracle数据库服务查点
use auxiliary/scanner/oracle/tnslsnr_version
set RHOSTS 192.168.1.101/24
set THREADS 100
run
开放代理探测
use auxiliary/scanner/http/open_proxy
set RHOSTS 192.168.1.101/24
set THREADS 100
run
2.4 漏洞扫描
- 安装OpenVAS
- 更新软件包列表。
apt-get update
- 获取到最新的软件包。
apt-get dist-upgrade
- 重新安装OpenVAS工具。
apt-get install openvas
- 更新软件包列表。
- 配置OpenVAS服务
重复运行openvas-check-setup
,根据FIX提示进行修改
具体过程见实验中遇到的问题部分
配置成功后:
- 查看各服务使用的端口
netstat -aptn
gsad使用的端口是9392,因此登陆界面为https://127.0.0.1:9392
- 在浏览器输入
https://127.0.0.1:9392
进入登录界面;或者在终端输入openvas-start
等待登录界面自动弹出
- 使用配置过程中创建的用户进行登录
- 点击scans>task
- 点击task wizard
- 输入主机IP,点击start scan
- 查看扫描结果
3 实验中遇到的问题
配置OpenVAS服务时遇到如下问题
- 1
ERROR:The NVT collection is very small.
FIX:RUN A synchronization script like green-nvt-sync.
解决方案:更新nvtsudo greenbone-nvt-sync
- 2
ERROR:redis-server isnot running ornot listening on socket:/tmp/redis.sock
FIX:You should start the redis-server or configure it to listen onsocket:/tmp/redis.sock
解决方案:进入redis安装目录,编辑redis配置文件vim redis.conf
,取消下面两个参数的注释
unixsocket /usr/redis/redis.sock #将路径改为这个路径 /usr/redis/redis.sock
unixsocketperm 700
然后在终端输入vi /etc/openvas/openvassd.conf
,最后面添加一行
kb_location =/usr/redis/redis.sock #地址跟unixsocket的一样
改完后重启一下redis命令:
redis-cli shutdown
停止redis服务
redis-server /usr/redis/redis.conf &
加&表示在后台运行
- 3
It is recommended to have at least one user with role Admin.
FIX:create a user by running 'openvasmd --create-user=<name> --role=Admin && openvasmd --user=<name> --new-password=<password>'
解决方案:
创建用户,类型为管理员openvasmd --create-user=admin --role=Admin
设置用户密码openvasmd --user=admin --new-password=0000
- 4
ERROR:No OpenVAS SCAP database found. (Tried: /var/lib/openvas/scap-data/scap.db)
FIX:Run a SCAP synchronization script like greenbone-scapdata-sync.
解决方案:建立本地scapdata数据库greenbone-scapdata-sync
- 5
ERROR:No OpenVAS CERT database found. (Tried: /var/lib/openvas/cert-data/cert.db)
FIX:Run a CERT synchronization script like greenbone-certdata-sync.
解决方案:获取证书文件greenbone-certdata-sync
4 实验后回答问题
- (1)哪些组织负责DNS,IP的管理。
根服务器主要用来管理互联网的主目录,全世界只有13台。1个为主根服务器,放置在美国。其余12个均为辅根服务器,其中9个放置在美国,欧洲2个,位于英国和瑞典,亚洲1个,位于日本。所有根服务器均由美国政府授权的互联网域名与号码分配机构ICANN统一管理,负责全球互联网域名根服务器、DNS和IP地址等的管理。 - (2)什么是3R信息。
注册人Registrant,注册商Registrar,官方注册局Registry - (3)评价下扫描结果的准确性。
总体而言,没有太大的误差,我觉得还是比较准确的。
5 实验收获与感想
本次实验整体来说并不是非常困难,只有在安装配置OpenVAS的时候遇到了不小的难题,这也锻炼了我的动手能力和探索能力。这次实验也加深了我对信息收集和漏洞扫描的认识。