网络安全实验——信息收集与主机发现

news2025/1/21 1:03:12

目录

实验目的

实验原理

实验内容

1.信息搜集

1.ping探测

2. Nmap扫描

3. 探测总结

2.主机发现程序开发

3.主机发现

实验总结 

实验目的

1.了解信息搜集的一般步骤。

2.学会熟练使用ping命令。

3.学会利用Nmap等工具进行信息搜集。

4.了解IP助手函数。

5.掌握SendARP函数的使用方法。

6.理解利用ARP协议实现主机发现的原理。

实验原理

ping命令探测技巧:使用ping可以测试目标主机名称和IP地址,验证与远程主机的连通性,通过将ICMP回显请求数据包发送到目标主机,并监听来自目标主机的回显应答数据包来验证与一台或多台远程主机的连通性,该命令只有在安装了TCP/IP协议后才可以使用。

nmap是一个网络探测和安全扫描程序,系统管理者和个人可以使用这个软件扫描大型的网络,获取哪台主机正在运行以及提供什么服务等信息。nmap支持很多扫描技术,例如:UDP、TCP connect()、TCP SYN(半开扫描)、ftp代理(bounce攻击)、反向标志、ICMP、FIN、ACK扫描、圣诞树(Xmas Tree)、SYN扫描和null扫描。nmap还提供了一些高级的特征,例如:通过TCP/IP协议栈特征探测操作系统类型,秘密扫描,动态延时和重传计算,并行扫描,通过并行ping扫描探测关闭的主机,诱饵扫描,避开端口过滤检测,直接RPC扫描(无须端口映射),碎片扫描,以及灵活的目标和端口设定。

主机发现:任何网络探测任务的最初几个步骤之一就是把一组IP范围(有时该范围是巨大的)缩小为一列活动的或者你所感兴趣的主机。扫描每个IP的每个端口很慢,通常也没必要。当然,什么样的主机令你感兴趣主要依赖于扫描的目的。网络管理员也许只对运行特定服务的主机感兴趣,而从事安全的人士则可能对每一个细节都感兴趣。一个系统管理员也许仅仅使用Ping来定位内网上的主机,而一个外部入侵测试人员则可能绞尽脑汁用各种方法试图突破防火墙的封锁。

利用ARP协议实现主机发现的过程如图1-2-1所示。

图1-2-2所示为ARP请求与应答情况。

实验内容

1.信息搜集

1.ping探测

主机A开启命令行,对主机B进行ping探测,根据主机B的回复,可以确定主机A和主机B之间的连通情况,还可以根据回复数据包的TTL值对操作系统进行猜测。

我们先查看开启的另一台Linux虚拟机的IP地址,可以看见其IP地址为:172.16.0.188

我们使用WindowsXP系统虚拟机去ping Linux虚拟机

可以看见,回复数据包的TTL值为: 64  ,主机B操作系统可能为:  Linux Kernel 2.6.x  。

2. Nmap扫描

(1)对活动主机进行端口扫描

主机A使用Nmap工具对主机B进行TCP端口同步扫描(范围1-150):

Nmap命令     nmap –sS –p 1-150 172.16.0.188      ;

主机B开放的TCP端口:   21,22,23,25,80,88,139  。

对主机B进行UDP端口扫描(范围是110-140):

Nmap命令      nmap –sU –p 110-140 172.16.0.188    ;

主机B开放的UDP端口:   111,123,137,138  。

(2)对活动主机操作系统进行探测

主机A对主机B进行TCP/IP指纹特征扫描:

Nmap命令      nmap –sT –O 172.16.0.188      ;

查看扫描结果     Linux 2.6.15-2.6.26        。

(3)对活动主机运行服务进行探测

单击平台工具栏“协议分析器”按钮,启动协议分析器进行数据包捕获。打开IE在地址栏中输入http://主机B的IP,访问主机B的web服务,停止协议分析器,查看捕获结果。

HTTP会话分析可判断目标主机web服务使用的软件类型是   Microsoft-IIS/10.0      。请探测目标主机FTP服务使用的软件类型是   vsFTPd 2.0.4   。

(4)对活动主机IP协议进行探测

主机A使用Nmap命令对主机B进行IP协议探测:查看扫描结果    icmp协议、esp协议、ah协议   。

3. 探测总结

根据上述实验所得结果,填写表1-1-1。

表1-1-1  探测结果

密码心理学攻击

SendArp应用示例

Windows提供了帮助函数SendARP来发送ARP请求,获取与IP地址对应的物理地址。平台目录D:\ExpNIC\NetAD\Projects\HostScan\SendArpEx\中提供了SendArp应用实例,它能够实现列出LAN中IP地址对应的MAC地址。

在控制台中执行SendArpEx.exe,执行结果如下所示:

2.主机发现程序开发

我们设计一个简单的Arp主机发现程序,它可以发现当前LAN中的所有活动主机,为了减少开发量,我们固定本地主机的网络掩码为255.255.255.0。开发流程如图1-2-3所示

这里分析一下加入的几条主要语句的作用;

WSAStartup(MAKEWORD(2, 2), &wsaData);// 调用WSAStartup函数,加载Winsock库(版本2.2

gethostname(host_name, sizeof(host_name);//获取主机名,放入gethostname

exit(EXIT_FAILURE);//执行失败,退出

hp = gethostbyname(host_name);//返回对应于给定主机名的hostent结构的指针

saShow.S_un.S_addr = htonl(ulLocalNet + n);//从网段第一个开始往后遍历,注意此处的htonl

::SendARP(saShow.S_un.S_addr, 0, (ULONG*)arDestMac, &ulLen)// 发送ARP请求

完整代码

#include <windows.h>

#include <stdio.h>

#include <iphlpapi.h>

#include <iostream>

using namespace std;



#pragma comment (lib, "ws2_32.lib" )  

#pragma comment (lib, "Iphlpapi.lib" )



int main()

{

         WSADATA         wsaData;

         in_addr sa;

         int nErr = 0;

         ULONG ulLocaIP = 0;

         ULONG ulLocalNet = 0;

         HRESULT hr = 0;



         WSAStartup(MAKEWORD(2, 2), &wsaData);



         //! 获取本地主机名称

         char host_name[256];



         if (gethostname(host_name, sizeof(host_name)) < 0)

         {

                  exit(EXIT_FAILURE);

         }



         //! 获取本地主机信息

         hostent *hp;

         hp = gethostbyname(host_name);



         if (hp != NULL)

         {

                  memcpy(&sa, hp->h_addr_list[0], hp->h_length);

                  ulLocaIP = htonl(sa.s_addr);

                  // 计算网络地址

                  ulLocalNet = ulLocaIP & 0xffffff00;



                  // 遍历本地网络IP地址1-254



                  for (int n = 1; n < 255; ++n)

                  {

                          u_char arDestMac[6];

                          ULONG ulLen = 6;

                          in_addr saShow;

                          //发送ARP请求

                          saShow.S_un.S_addr = htonl(ulLocalNet + n);



                          if (::SendARP(saShow.S_un.S_addr, 0, (ULONG*)arDestMac, &ulLen) == NO_ERROR)

                          {

                                   // 显示结果

                                   printf("\nHost IP: %s 处于活动中", inet_ntoa(saShow));

                          }

                          else

                          {

                                   printf("\nHost IP: %s 未活动", inet_ntoa(saShow));

                          }

                  }

         }

         else

         {

                  exit(EXIT_FAILURE);

         }

         WSACleanup();

         return 0;

}

3.主机发现

(1)启动协议分析器,,按要求完成过滤器设置,开始捕获数据包。

(2)执行HostDiscover.exe。

很多主机处于活动中。

我们可以使用nmap命令验证。

(3)待HostDiscover发现同组主机后,协议分析器停止捕获。观察本机与活动主机间的ARP会话过程图。

停止协议分析器,可以看到ARP会话过程图,本主机发给目的主机一个ARP请求报文,目的主机返回一个应答。

实验总结 

1. 137/UDP端口提供的是什么服务?Linux系统是否提供此服务?

137/UDP端口主要用于“NetBIOS Name Service”(NetBIOS名称服务),使用者只需要向局域网或互联网上的某台计算机的137端口发送一个请求,就可以获取该计算机的名称、注册用户名,以及是否安装主域控制器、IIS是否正在运行等信息。Linux系统也能提供此服务。

2. 利用ARP协议探测网络中的活动主机的优、缺点是什么?

优点:即使对方屏蔽了ICMP也能进行探测

缺点:耗费网络流量、只能探测以太网内的活动主机

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/539565.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python学习29:存款买房(B)

描述‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬ 你刚刚大学毕业&#xff0c;…

李莫愁给张无忌朋友圈点赞?详解SpringBoot事件机制

Spring Boot的事件机制是基于Spring框架的事件机制实现的。Spring Boot中的事件机制可以让我们在应用程序中监听和响应特定的事件&#xff0c;例如应用程序启动、关闭、上下文刷新等。 接下来&#xff0c;我们通过一个案例&#xff0c;来讲解具体怎么使用。 这个案例就是李莫…

一文看懂增值税发票识别OCR:从技术原理到 API Java 示例代码接入

引言 增值税发票识别OCR API是一项重要的技术创新&#xff0c;它在如今信息化的商业环境中发挥着重要作用。通过利用该API&#xff0c;企业和机构能够实现增值税发票的自动化识别和信息提取&#xff0c;从而在财务管理、票据核对、报销流程等方面带来许多好处。 本文将详细介…

Istio virtual service 超时和重试

在使用xshell去远程连接服务器的时候没有反应&#xff0c;这样可能等了几分钟&#xff0c;这样按下crtlc终止就行了。 有些时候微服务是多个服务组成的&#xff0c;a服务会去调用b服务&#xff0c;可能因为网络问题或者连接问题&#xff0c;没有连接成功&#xff0c;那么会尝试…

怎么把音频的声音调大?

怎么把音频的声音调大&#xff1f;我们平时会经常使用到音频文件&#xff0c;但声音大小不一&#xff0c;可能会让我们感到不适应。如果太大&#xff0c;甚至会使人吓一跳&#xff1b;如果太小&#xff0c;则难以听清楚。为了轻松聆听音频&#xff0c;我们需要将声音调整到合适…

ConvNeXt网络详解,最新ConvNeXt结合YOLO,催生YOLOv5目标检测巨变

目录 引言一、ConvNeXt的介绍1、目标检测的重要性2、YOLOv5的介绍3、ConvNeXt原理和特点4、ConvNeXt结构 二、相关研究综述1、目标检测的基础原理和流程2、YOLOv5的特点与局限性3、ConvNeXt技术在目标检测中的应用现状 三、ConvNeXt在YOLOv5中的应用与改进1、安装PyTorch和torc…

什么是栈,为什么函数式编程语言都离不开栈?

文章目录 一、什么是栈&#xff0c;什么是FILO二、栈的作用是什么&#xff0c;为什么编程语言函数调用都选择用栈&#xff1f;三、使用C模拟实现解析栈1.结构体的定义2.栈的创建及销毁3.实现入栈操作4.获取栈顶元素及出栈操作5.获取栈中有效元素个数 源代码分享 一、什么是栈&a…

临时被拉去已经在进行中的项目组「救火」,该怎么开展管理?

当你被临时拉去参与正在进行中的项目组&#xff0c;需要进行所谓的「救火」工作时&#xff0c;你需要注意的是如何开展管理&#xff0c;以确保项目能够成功完成。 首先&#xff0c;你需要了解项目的当前状态。了解项目的进展情况、目标和计划&#xff0c;以及团队成员的角色和…

Vmware Linux磁盘空间扩容

Linux磁盘空间扩容 VMware虚拟机中配置&#xff08;1&#xff09;进入虚拟机设置界面&#xff0c;选择扩展磁盘容量。&#xff08;2&#xff09; 本次是在原来30G的基础上扩展为50G。 Linux中设置&#xff08;1&#xff09; 可以看出sda3是根分区&#xff0c;下面按照博客提示&…

栈的实现(附含经典例题)

&#x1f349;博客主页&#xff1a;阿博历练记 &#x1f4d6;文章专栏&#xff1a;数据结构与算法 &#x1f68d;代码仓库&#xff1a;阿博编程日记 &#x1f365;欢迎关注&#xff1a;欢迎友友们点赞收藏关注哦&#x1f339; 文章目录 &#x1f340;前言&#x1f3c4;‍♂️数…

Redis系列--哨兵模式

一、什么是哨兵 Redis Sentinel&#xff08;哨兵&#xff09;是一个分布式系统,你可以在一个架构中运行多个哨兵(sentinel) 进程, 这些进程使用 gossip协议(基于流行病传播方式的节点或者进程之间信息交换的协议&#xff0c;在分布式系统中被广泛使用) 来接收关于Master是否下线…

MySQL5.0完全卸载教程

一、停止MySQL服务 在系统服务中找到mysql服务并停止即可。 二、卸载mysql应用程序 在控制面板中卸载mysql应用程序 三、删除mysql文件夹 找到mysql一开始安装路径的文件夹&#xff0c;然后删除掉该整个文件夹。 四、删除注册表 &#xff08;1&#xff09;按winR键&#xff0c;…

架构师日记-从代码到设计的性能优化指南 | 京东云技术团队

一 前言 服务性能是指服务在特定条件下的响应速度、吞吐量和资源利用率等方面的表现。据统计&#xff0c;性能优化方面的精力投入&#xff0c;通常占软件开发周期的10%到25%左右&#xff0c;当然这和应用的性质和规模有关。性能对提高用户体验&#xff0c;保证系统可靠性&…

Java经典笔试题—day10

Java经典笔试题—day10 &#x1f50e;选择题&#x1f50e;编程题&#x1f95d;井字棋&#x1f95d;密码强度等级 &#x1f50e;结尾 &#x1f50e;选择题 (1)下列运算符合法的是&#xff08; &#xff09; A.&& B.<> C.if D.: A B. 泛型的标志, 例如 <T>…

【iOS】—— AFNetworking源码学习

AFNetworking 文章目录 AFNetworkingAFHTTPSessionManager *sessionManager [AFHTTPSessionManager manager];请求过程1、调用请求序列化类中的requestWithMethod方法进行序列化处理2、调用dataTaskWithRequest来生成一个datatask任务 AFURLSessionMangerAFHTTPSessionManagerU…

Linux服务器--基线检查

Linux服务器--基线检查 一、前言二、口令策略2.1 检查项—密码策略2.2 检查项—密码生存期2.3 检查项—检查密码生存期是否作用于每个用户 三、账号管理3.1 检查项—禁止存在UID相同的用户3.1 检查项—禁止存在空密码的帐户 四、认证授权4.1 检查项—登陆失败处理 五、文件权限…

Pytroch 模型权重初始化

目录 1 概念 2 权值初始化方法 2.1 常数初始化 2.2 均匀分布初始化 2.3 正态分布初始化 2.4 Xavier 均匀分布 2.5 Xavier 正态分布 2.6 kaiming 均匀分布 2.7 kaiming 正态分布 2.8 单位矩阵初始化 2.9 正交初始化 2.10 稀疏初始化 2.11 狄拉克δ函数初始化 3 py…

STC15通过内部BandGap电压值测量ADC外部输入电压

STC15通过内部BandGap参考电压值测量ADC通道外部输入电压 📜内部 BandGap参考电压值获取方式: 🎬通过VOFA图形化显示ADC值 🔧vofa+工具下载地址:https://www.vofa.plus/🌿验证对象:IAP15F2K61S2🌿时钟频率:11.0592MHz🌿波特率:115200🔖在通过STC-ISP烧录程序…

XSS攻击以及java应对措施

文章目录 一. XSS攻击介绍1. 前端安全2. xss攻击简介3. xss的攻击方式 二. java应对xss攻击的解决方案1. 强制修改html敏感标签内容2. 利用过滤器过滤非法html标签 一. XSS攻击介绍 1. 前端安全 随着互联网的高速发展&#xff0c;信息安全问题已经成为企业最为关注的焦点之一…

大脑的故事

婴⼉的神经元是相互独⽴的、未连接的。在⼈⽣的头两年&#xff0c; 随着⼤脑细胞接收感觉信息&#xff0c;它们异常迅速地连接起来。 每⼀秒就有多达 200万个新连接&#xff08;突触&#xff09;在婴⼉的⼤脑⾥形成。两岁时&#xff0c;⼩孩⼦拥有超过 100万亿个突触&#xff…