1. 实验内容
本次实验为网络信息收集技术,主要有以下五个任务
- 选择一个DNS域名进行查询获取信息
- 通过IP地址查询地理位置的信息
- 使用nmap扫描靶机环境
- 使用nessus扫描靶机环境
- 通过搜索引擎查询自己的隐私和信息泄露问题
结合实验内容阅读书本,总结知识如下:
-
网络踩点:攻击者通过对目标组织或个人进行信息收集,了解攻击目标的网络环境和安全状况,得到攻击目标完整剖析图的技术过程。
DNS与IP查询:通过公开的互联网基础信息服务,找出目标组织域名、IP以及地理位置之间的映射关系,以及注册的详细信息,同时可利用DNS服务获取组织内部系统情况。
DNS注册信息WHOIS查询:组织或个人申请DNS域名之后,注册信息会进入公开数据库,并向公众提供这些信息的WHOIS查询。DNS注册信息是分散在各个数据库中的,需要按层级关系查找。目前WHOIS客户端程序实现了通过顶级域名管理机构寻找注册信息所在数据库,然后查询获取信息的功能。
-
网络扫描:通过探测目标网络,找出目标的各种信息。主机扫描找出目标网络中的活跃主机,基于端口扫描探测找出主机上开放的网络服务,操作系统/网络服务辨识识别主机所安装操作系统与开放网络服务的类型,漏洞扫描找出主机与网络服务上存在的安全漏洞。
2. 实验过程
2.1 DNS域名查询获取信息
2.1.1 DNS注册人及联系方式
从ICANN维护的WHOIS服务进行域名查询
链接为ICANN Lookup
打开后输入baidu.com
,可以看到返回了域名信息、注册域ID
ICANN还提供了联系信息,可以看到有行政方、注册方以及技术方的通讯地址,联系人url,其中注册方的主办单位为北京百度网通科技有限公司。
通过联系url可以进入注册商的WHOIS网站。
下拉ICANN页面可以看到注册商姓名为Markmonitor Inc.也就是前面提供的联系url。不管是通过ICANN还是Markmonitor都可以看到register的name和email以及phone。
2.1.2 查询域名对应IP
通过nslookup
命令查询baidu.com
的IP映射,可以看到返回了两个IP地址
2.1.3 查询IP地址注册人及联系方式
通过ICANN进行IP地址的查询
下拉页面可以看到更多的联系信息,包括abuse、technical、registrant、administrative,并都附有联系方式
2.1.4 查询IP地址所在国家、城市和具体地理位置
通过IP2Location可以查询所在位置信息,链接为[IP Address to IP Location and Proxy Information | IP2Location](https://cz88.net/)。可以查到为中国,北京以及具体经纬度所在位置。
2.2 通过IP地址查询地理位置的信息
通过qq软件与在江苏南京的对象进行文件的传输
- 打开任务管理器
- 打开资源监视器
- 选中QQ.exe
- 传送20mb的文件,关注网络一栏的接受字节,最多的就是发过来的IP地址
- 可以看到是
36.155.244.75
通过IP2Location查询IP所在地,成功查到处在江苏南京的对象所在经纬度地理位置信息
2.3 使用nmap扫描靶机环境
2.3.1 查询靶机IP是否活跃
查看靶机IP
通过下面的命令查询靶机IP是否活跃,可以看到均处于活跃状态
nmap -sP 192.168.200.131
namp -sP 192.168.200.130
2.3.2 查看靶机开放的TCP和UDP端口
通过下面的命令查看靶机开放的TCP和UDP端口
nmap -sS # TCP SYN扫描,半开放扫描,更隐蔽
namp -sU # UDP端口扫描
2.3.3 靶机安装的操作系统和版本查询
通过下面的命令查看靶机安装的操作系统和版本
nmap -O xxx(IP)
可以看到metasploitable的操作系统为linux
2.3.4 靶机安装的服务查询
通过下面的命令查询靶机安装的服务,可以看到metasploitable安装了ftp, ssh, telnet, smtp, domain, http, netbios-ssn, mysql ,postgresql, ajp13这些服务
nmap -sV xxx(IP)
名称 | 说明 |
---|---|
ftp | 文件传输协议 |
ssh | 提供远程访问的协议 |
telnet | 提供远程登录的协议 |
smpt | 电子邮件传输协议 |
domain | 域名服务 |
http | 超文本传输协议 |
netbios-ssn | 一种网络服务,支持网络中的设备间通信 |
mysql | 数据库 |
postgresql | 数据库 |
ajp13 | 二进制协议,允许服务器和容器之间的TCP通信 |
2.4 使用nessus扫描靶机环境
2.4.1 nessus下载
下载链接为https://www.tenable.com/downloads/nessus?loginAttempted=true
选择图中的kali平台
这里通过curl安装
复制到终端进行下载
通过下面的命令安装
dpkg -i Nessus-10.8.3-debian10_amd64.deb
通过下面的命令start nessus
/bin/systemctl start nessusd.service
通过下面的命令查看Nessus启动状态
netstat -ntpl | grep nessus
通过链接https://kali:8834/#/进入Nessus
勾选register offline,按照参考资料4进行安装
初始化界面如下
输入下面的命令获得code和网站地址
/opt/nessus/sbin/nessuscli fetch --challenge
找到插件下载的文件夹并打开终端,输入下面的命令安装插件
cp nessus.license /opt/nessus/sbin
cp all-2.0.tar.gz /opt/nessus/sbin
cd /opt/nessus/sbin
./nessuscli fetch --register-offline nessus.license
./nessuscli update all-2.0.tar.gz
systemctl restart nessusd.service
通过链接https://127.0.0.1:8834/#/进入Nessus,出现下图则为正在编译了,等编完就行。移动到红框处能查看编译进度。
2.4.2 靶机开放端口查询
new scan后新建一个advanced scan
输入要扫描的靶机
扫描完成后可以看到报告,打开nessus SYN scanner可以看到开放的TCP端口
2.4.3 靶机端口安全漏洞查询
在报告中可以看到靶机存在的安全漏洞
汇总所有的漏洞有以下:
名称 | 级别 | 说明 |
---|---|---|
SSL Version 2 and 3 Protocol Detection | critical | SSL版本2和3存在密码缺点 |
Debian OpenSSH/OpenSSL Package Random Number Generator Weakness | critical | 远程服务的密钥由于OpenSSL库的随机数生成器中包含错误而有漏洞 |
Debian OpenSSH/OpenSSL Package Random Number Generator Weakness (SSL check) | critical | 远程服务器的证书由于OpenSSL库的随机数生成器中包含错误而有漏洞 |
Samba Badlock Vulnerability | high | samba版本存在漏洞,攻击者可以通过中间人攻击强制降级身份验证级别,从而允许在被拦截用户的上下文中执行任意网络调用 |
SSL RC4 Cipher Suites Supported (Bar Mitzvah) | high | RC4不够安全 |
SSL Medium Strength Cipher Suites Supported (SWEET32) | high | 远程主机支持中等强度的SSL密码 |
SSL Certificate Cannot Be Trusted | medium | 服务器的X.509证书不可信 |
SSL Self-Signed Certificate | medium | 服务器的X.509证书不可信,可建立中间人攻击 |
SSL Certificate Expiry | medium | 插件存在到期问题 |
SSLv3 Padding Oracle On Downgraded Legacy Encryption Vulnerability (POODLE) | low | 远程主机受到 POODLE 中间人 (MitM) 信息泄露漏洞的影响 |
TLS Version 1.0 Protocol Detection | medium | TLS1.0含有加密设计缺陷 |
SMTP Service STARTTLS Plaintext Command Injection | medium | SMTP包含软件缺陷,可能允许未验证攻击者注入 |
SSH Weak Algorithms Supported | medium | 检测到SSH服务使用Arc流密码或根本不使用密码 |
SSH Server CBC Mode Ciphers Enabled | low | CBC加密不够安全 |
SSH Weak Key Exchange Algorithms Enabled | low | 允许弱密钥交换 |
SSH Weak MAC Algorithms Enabled | low | 使用弱算法MD5或96位MAC |
SSL / TLS Renegotiation Handshakes MiTM Plaintext Data Injection | medium | TLS/SSL加密流量的方式允许客户端不安全的重新协商连接 |
2.4.4 攻陷靶机环境,获得系统访问权
通过第一个漏洞进行查看
根据报告可以看到靶机使用的是SSL2.0/3.0加密的连接,这些版本的SLL存在安全漏洞:
- 使用CBC密码的不安全填充方案
- 不安全的会话重新协商和恢复方案
如果想要攻陷靶机,获得系统访问权,可以利用这个安全漏洞进行中间人攻击,从而解密受影响的服务与客户端之间的通信来进行攻击,进一步取得靶机的系统访问权
除此之外,从上面列举的漏洞中还可以进行的尝试汇总如下:
名称 | 攻击方式 |
---|---|
Debian OpenSSH/OpenSSL Package Random Number Generator Weakness | 攻击者可以预测密钥,从而破解加密连接。通过利用该漏洞,可以解密通信或伪造身份 |
Samba Badlock Vulnerability | 攻击者可以通过中间人攻击强制降低身份验证级别,从而在受害者的上下文中执行任意网络调用 |
SSL RC4 Cipher Suites Supported | 攻击者可以利用RC4的弱点进行加密流量分析,进而恢复加密内容 |
SSL Certificate Cannot Be Trusted | 如果服务器的X.509证书不可信,攻击者可以进行中间人攻击(MITM),伪造或拦截通信 |
SSL Certificate Expiry | 证书到期可能导致SSL连接无法建立,攻击者可能利用过期证书进行欺骗 |
TLS Version 1.0 Protocol Detection | 攻击者可以通过破解TLS连接来获取敏感信息 |
SSH Weak Algorithms Supported | 攻击者可以通过暴力破解弱算法进行攻击 |
SSH Server CBC Mode | 攻击者可以利用CBC加密模式进行攻击 |
SSH Weak Key Exchange Algorithms Enabled | 攻击者可以通过中间人攻击破解密钥交换过程 |
SSH Weak MAC Algorithms Enabled | 攻击者可以通过伪造消息进行攻击 |
2.5 通过搜索引擎查询自己的隐私和信息泄露问题
搜索自己的名字可以看到出现的是其他同名者的信息
比较相关的是北京电子科技学院的录取名单
3. 学习中遇到的问题及解决
-
问题1:在查询他人IP时,一开始使用微信,查到的IP所在地是广东的,与实际不符
-
问题1解决方案:查找资料后发现,微信不是点对点传输,而是C-S-C模式,客户端之间的通信是由服务端交互转发的,所以查出来的是代理服务器的IP。后面通过qq传输20mb的图片文件成功查询到了,推测在qq上传输较大的图片文件则会建立点对点连接。
-
问题2:nmap扫描时会显示操作时间,发现时间是EST时间,和主机时间不一样
-
问题2解决方案:linux默认时间是格林威治时间,可以通过下面的命令修改为上海时间
tzselect 依次选择Asia - China - Beijing Time - Yes echo "ZONE=Asia/Shanghai" >> /etc/sysconfig rm -f /etc/localtime # 链接到上海时区文件 ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime reboot
-
问题3:nmap在kali机上扫不出两台靶机的udp端口,输入命令后会一直卡住,如图。
-
问题3解决方案:一开始没找出这个问题的原因,但是只要换成用seed,先扫描整个网段的活跃主机,再输入namp命令扫两台靶机的udp端口就能扫出来。扫出来的结果是所有端口都open|filtered,也就是所有端口的返回不足以让nmap区分出其状态。后面调整好kali的网络问题,就能够扫出来udp端口,也还是所有端口都open|filtered。
-
问题4:nmap在kali上查看靶机操作系统会查不出来,而且需要等待很久才有返回,如图。
-
问题4解决方案:kali的网络问题,需要通过参考资料中的联网教程连接上网络。一定要在连上网的前提下,才能返回到正确的操作系统版本。在这一步如果使用seed会返回NAS设备,使用windows xp甚至会返回mac os。而且还得看运气,使用kali有时候会返回一系列猜测内容,把linux和win的各种系统都包括了,如图。
-
问题5:群里的激活码显示已经使用。
-
问题5解决方案:用自己的邮箱注册一个即可获得激活码。
-
问题6:Nessus插件安装后还是显示没有插件。
-
问题6解决方案:关闭Nessus服务,更新插件后重启,然后等待一会再去浏览器查看。这个过程我重复了三四遍,个人认为重点在于等待一会,因为最后一遍我出去上个卫生间回来就好了。
4. 学习感悟、思考
通过这次试验,我发现第一次实验能够ping通不同网段的靶机是因为网络时好时坏,运气好连上网了就能ping通。在这次实验中我设置好了网络问题,就能够一直ping通了,但还存在不时断开的情况,这时候多重启几次网络服务就好了。
这次实验中,想要检测到不同网段的靶机需要漫长的等待,我在用Nessus扫描漏洞的过程足足有四十五分钟。但是扫描出来了很多的安全漏洞,一个个去研究查询的过程很有意思,我了解到了关于SSL,TLS以及CBC加密模式,RC4加密等不安全的问题,很容易通过中间人攻击或者信息传输连接建立的过程中被破解,从而导致安全事故。
总的来说,这次实验让我对于网络安全工作的重要性有了更深的认识,很多时候我们只是使用网络,却不在意连接是怎样建立的,软件上的忽视是如此,硬件上就更不用说了。网络安全漏洞是信息化璀璨皇冠背后的阴影,网络安全工作也是大部分时候不为大众所重视的工作,但是作为这个领域深耕的我们,还是要打起十二分的精神,做默默奉献的守卫者。
参考资料
-
Kali 时间修改 - Kevin.H - 博客园
-
kali linux网络配置之NAT模式_kali的nat配置-CSDN博客
-
100%解决VMware虚拟机NAT上网方式,保姆教学_vmware虚拟机nat怎么联网-CSDN博客
-
https://blog.csdn.net/m0_68472908/article/details/137255414