赞赏码 & 联系方式 & 个人闲话

【实验名称】信息搜集与主机发现

【实验目的】

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

2.学会熟练使用ping命令,学会利用Nmap等工具进行信息搜集;

3.了解IP助手函数,掌握SendARP函数的使用方法;

4.理解利用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-1  利用ARP协议实现主机发现

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

图1-2-2  ARP请求与应答

【实验内容】

信息搜集

1.ping探测

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

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

我们使用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.192

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

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

Nmap命令nmap –sU –p 110-140 172.16.0.192

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

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

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

Nmap命令nmap –sT –O 172.16.0.192

查看扫描结果Linux 2.6.15-2.6.26

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

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

打开IE在地址栏中输入http://172.16.0.192

打开IE在地址栏中输入ftp://172.16.0.192

HTTP会话分析可判断目标主机web服务使用的软件类型是Apache/2.2.0 (Fedora) 。请探测目标主机FTP服务使用的软件类型是 vsFTPd 2.0.4

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

主机A使用Nmap命令对主机B进行IP协议探测:

Nmap命令nmap -sO 172.16.0.192

查看扫描结果icmp协议、esp协议、ah协议

3. 探测总结

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

表1-1-1  探测结果

目标主机IP

目标主机MAC

目标主机开放端口

目标主机操作系统

172.16.0.192

00:0C:29:01:D1:7B

TCP:21,22,23,

25,80,88,139

UDP:111,123,

137,138

Linux Kernel 2.6.x

目标主机开放服务

目标主机服务软件

服务软件版本

主机支持的IP协议

HTTP FTP

APACHE vsFTP

APACHE2.2.0  VSFTP2.0.4

ICMP ESP AH

思考题:137/UDP端口提供的是什么服务?Linux系统是否提供此服务?

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

密码心理学攻击

SendArp应用示例

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

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

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

图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-254for (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;
}

2.HostDiscover发现主机

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

(2)执行HostDiscover.exe。

程序结果显示在172.16.0网段上找到了7个活动主机,我们可以使用nmap命令验证。

看以看出,此时该网段上确实有7个活动主机,说明我们实验成功。

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

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

思考题:利用ARP协议探测网络中的活动主机的优、缺点是什么?

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

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

【小结或讨论】

这次的信息搜索和上次实验差别就很大了。是要是学习ping命令和nmap命令。用TTL分辨目的操作系统其实是在上学期的网络原理实验中学到的,没想到这次就派上了用场。TTL字段值是255 时系统为Unix及类Unix;128时系统为Windows NT/2K/03;32时系统为Windows 95/98/ME;64时系统为Linux Kernel 2.6.x0。nmap命令是这次实验新学到的,它拥有很多的功能和可选项,通过几个实验的例题,学会了扫描端口、查询系统、查询软件和IP协议等命令,感觉很方便用处也很大。

主机发现实验里的编程其实是这次实验的难点了。因为有Socket编程的基础,所以看到题目倒也不是很陌生。WSAStartup、WSACleanup都是常用的,就是要学习一下gethostname、gethostbyname、SendARP这几个函数的接口和用法。我觉得最难的就是这一句了:saShow.S_un.S_addr = htonl(ulLocalNet + n);in_addr结构体以前见过,但是ulLocalNet用来干嘛一开始还真是没想到,然后发现这里进行与操作后放的是网段号,那么ulLocalNet + n就是遍历该网段所有主机,htonl用来把主机数转换成无符号长整型的网络字节顺序,这也很重要。在输出的时候需要使用inet_ntoa返回点分十进制的字符串。

网络安全实验2 信息搜集与主机发现相关推荐

  1. 20155201 网络攻防技术 实验六 信息搜集与漏洞

    20155201 网络攻防技术 实验六 信息搜集与漏洞 一.实践内容 各种搜索技巧的应用 DNS IP注册信息的查询 基本的扫描技术:主机发现.端口扫描.OS及服务版本探测.具体服务的查点 漏洞扫描: ...

  2. 信息搜集——主机发现与端口扫描

    信息搜集 前言 主机发现 工作原理 1.ICMP Ping 2.TCP SYN Ping 3.TCK ACK Ping 4.UDP Ping 实验 Nmap简介 1.-sL(列表扫描) 2.-sP(P ...

  3. 网络安全实验1 敏感信息搜集与密码心理分析

    赞赏码 & 联系方式 & 个人闲话 [实验名称]敏感信息搜集与密码心理分析 [实验目的] 1.理解社会工程学的概念,掌握获取敏感信息的方法 2.提高自我信息保护的意识和方法 3.理解密 ...

  4. Nmap学习4 - 主机发现 实验一

    Nmap学习4 - 主机发现 实验一 实验 实验1- nmap -sn 无端口扫描 局域网 广域网 实验2- nmap -Pn 无 Ping 扫描 实验3- nmap -PS -PA -PU -PY ...

  5. 主动信息搜集:基于ARP的主机发现

    主动信息搜集:基于ARP的主机发现 ​ ARP协议(地址解析协议)属于数据链路层的协议,主要负责根据网络层地址(IP)来获取数据链路层地址(MAC).以太网协议规定,同一局域网中的一台主机要和另一台主 ...

  6. 诸神之眼-nmap详细使用介绍1!基础使用与主机发现篇! (*╹▽╹*) 信息收集 ~ 其二

    文章目录 前言 安装 手动添加环境变量 nmap基础使用 对连续范围内的主机进行扫描 扫描整个子网(C端存活主机探测) 对多个不连续的主机进行扫描(`-sn`) 在扫描的时候排除指定的目标(`--ex ...

  7. 红队笔记-1(主机发现,情报收集,内网信息收集)

    文章目录 一. 信息收集 主机发现 NMAP 工作原理 扫描方式 nmap 输出选项 nmap高级扫描 nmap脚本爆破服务 绕IDS&IPS nmap优缺点 masscan nbtscan ...

  8. Windows主机信息搜集

    注意:一切内容仅用于信息技术分享,切勿用于其他用途,一切后果与作者无关. 前言: 通过命令执行使用cs拿到了内网的一台主机,接下来我们进行内网的信息搜集. 1.内网环境分析 内网渗透: 在拿到webs ...

  9. 信息搜集 - 二层发现 Nmap

    0x00:简介 Nmap 很强大,也可以用来在二层的时候去发现其他机器.使用参数用到了两个,一个是 sn,作用是进行 ping 扫描.另一个是 iL,作用是从文件中读取目标地址进行扫描.和上一篇的 a ...

  10. 【愚公系列】2023年05月 网络安全高级班 043.WEB渗透与安全(信息搜集概述之情报侦察技术工具资源)

    文章目录 前言 一.信息搜集概述之情报侦察技术工具资源 1.情报侦察(信息搜集)定义.方式.关系 1.1 情报侦察概述 1.2 情报侦察图解 - 互联网 vs 深网 vs 暗网 1.3 情报侦察图解 ...

最新文章

  1. 老弟,你连HTTPS 原理都不懂,还给我讲“中间人攻击”,逗我吗...
  2. Linux jobs等前后台运行命令详解
  3. C语言中定义加号的数据类型,C/C++知识点之c语言基础数据类型及命名规范
  4. [Linux]C语言Linux系统编程创建进程
  5. 【ArcGIS风暴】捕捉VS经典捕捉,谁更有用武之地?
  6. 程序员拯救乐坛?OpenAI 用“逆天”GPT2.0 搞了个 AI 音乐生成器
  7. 仿淘宝首页产品分类菜单栏的设计
  8. 【转载】通过搜狗站长平台手动向搜狗搜索提交文章加快收录
  9. [Xcelsius]从Xcelsius中导出Excel表格
  10. 股票交易接口JavaScript开发
  11. jQuery制作手风琴图片切换效果
  12. Glide 显示圆形头像
  13. sqlite 查找表中多余的重复记录
  14. vue.runtime.esm.js?2b0e:619 [Vue warn]: Duplicate keys detected: ‘xxx‘. This may cause an update err
  15. 什么是项目管理?项目经理应该如何进行管理?
  16. Struts框架简介
  17. Redis数据类型实践
  18. python6小时完全入门_如果只有1小时学Python,看这篇就够了,摸摸头发你还好吗!...
  19. Linux 环境基础开发工具的使用
  20. 转自(阿里技术)技术实力的迷思

热门文章

  1. 计算机在线考试系统监考,在线考试系统怎样实现监考功能
  2. dw1510_超低温种子储存柜
  3. reportlab 应用 打印考生成绩
  4. linux mysql驱动在哪_MySQL驱动使用方法
  5. 输入九九乘法表c语言,九九乘法表的输入(c语言)
  6. adsl拨号php,Linux_Linux系统创建ADSL拨号上网方法介绍,在使用linux创建adsl拨号连接之 - phpStudy...
  7. 深入解析Windows操作系统(一)概念和工具
  8. 电子游戏发展史话——《doom启示录》读后感(三)
  9. 智能送药小车(F 题)--2021 年全国大学生电子设计竞赛
  10. java php 通讯录,基于ssh/bs/java/asp.net/php/web通讯录管理系统