实验一的名称为信息收集和漏洞扫描
实验环境:VMware下的kali linux2021和Windows7 32,网络设置均为NAT,这样子两台机器就在一个网络下。攻击的机器为kali,被攻击的机器为Windows 7。
理论知识记录:
1.信息收集的步骤
![](https://i-blog.csdnimg.cn/img_convert/48d2e37ea597e188c5fdb1a43a9074df.png)
2.ping命令
![](https://i-blog.csdnimg.cn/img_convert/4fda99f937f4357511ee3a6ae7b1e0b4.png)
3.arp主机发现
![](https://i-blog.csdnimg.cn/img_convert/54bb40892b11aa8ff8594e0d398219cf.png)
4.端口扫描
![](https://i-blog.csdnimg.cn/img_convert/42ff98f22162eba8ef272dcac1cae9d3.png)
tcp扫描
![](https://i-blog.csdnimg.cn/img_convert/02ca6ef85608ef244c90a19a66267cc5.png)
tcp SYN扫描
![](https://i-blog.csdnimg.cn/img_convert/13f9231efa2915ded9bacde814b41e2b.png)
Nmap
nmap是一个网络探测和安全扫描程序,系统管理者和个人可以使用这个软件扫描大型的网络,获取哪台主机正在运行以及提供什么服务等信息。
5.漏洞扫描
漏洞库匹配法
![](https://i-blog.csdnimg.cn/img_convert/0a9a1fe816d8ff60f7d4ecd0f3eaf81a.png)
插件技术
![](https://i-blog.csdnimg.cn/img_convert/4320f643f66c7dbae8fce9ca8372fa37.png)
理论知识就记录那么多,接下来记录一下实操。
首先是主机发现,先用fping扫描。首先熟悉一下fping的参数。
![](https://i-blog.csdnimg.cn/img_convert/61d64c1ffd5792ddca837bb47d87b059.png)
使用一个工具之前一定要对参数有所了解。分享一下作为英语学渣看英文解释的办法,首先安装了vmtoors的话直接复制粘贴,打开百度在线翻译,然后就能开始看了。
然后我们进行一下内网扫描:fping -a -g 192.168.48.1/24 -q
解释一下这个指令,-a 是显示网段内存活主机(包括自己),-g代表了扫的是ip的范围,后面跟的192.168.48.1/24,-q这个参数非常重要,如果不设置的话,每ping失败一次就会显示一次ping失败,一般一个IPping三个包,256x3条信息。
![](https://i-blog.csdnimg.cn/img_convert/4cf8bc44ef889cd15399252527f19dc2.png)
这里可以通过返回的包的ttl判断一下操作系统的类型,ttl接近128是windows操作系统,ttl接近64是,Linux操作系统。
![](https://i-blog.csdnimg.cn/img_convert/8f16396aad9ba2f346edf9e1a7564a9a.png)
然后我们开启防火墙一个回复都没有收到。
![](https://i-blog.csdnimg.cn/img_convert/6854fb90e62c7a0ea8a44ebe450660d9.png)
这时候我们试一下arping扫描,就可以得到回复,下面是开启防火墙时的ping扫描和当机器挂起时的ping扫描的结果。
![](https://i-blog.csdnimg.cn/img_convert/189318f104b28e9e12d6993fa4c5e145.png)
为什么ping扫描没有回复但是arping扫描有回复呢,现在我们解释一下arping扫描到底是啥。
arping实现了简单的二层发现,即基于物理层和链路层的发现。由于没有ip层的参与,所以是不可路由的。优点是速度快,准确性高;缺点是不可路由,无法发现局域网以外的主机。
arping,用来向局域网内的其它主机发送ARP请求的指令,它可以用来测试局域网内的某个IP是否已被使用。
arping命令无法一次性实现多个ip的扫描,但是可以配合shell脚本实现整个局域网的扫描。
arping主要干的活就是查看ip的MAC地址及IP占用的问题。
我们老师说如果一个机器如果对ARP包不回复是没有办法上网的,因为在网络上别人给你发数据包实际上还是发到mac地址上,因为mac地址是固定且唯一的,IP地址是会变得,而ARP报文就是询问ip对应的mac地址,所以是会回复的,就算开了防火墙也会回复,所以可以通过arping去检测局域网内机器是否存活。
下面记录一下下Nmap扫描学习,同样的我们先输入nmap -h看一下参数
![](https://i-blog.csdnimg.cn/img_convert/fced0330999e764ec5716435d9078edb.png)
这里搬运一下别人整理的翻译,做自己的学习记录。
1、 TARGET SPECIFICATION 目标说明
-iL 从主机地址列表文件中导入扫描地址(批量扫描,可自己创建地址列表文件)
-iR 随机选择目标进行扫描,num hosts表示数目,设置为0则无休止扫描
--exclude 排除某个主机地址
--excludefile 排除主机地址列表文件中的地址
2、 HOST DISCOVERY 主机发现
-sL 列表扫描,仅将指定的目标IP列举出来,不进行主机发现
-sn 和-sP一样,只利用ping扫描进行主机发现,不扫描目标主机的端口
-Pn 将所有指定的主机视为已开启状态,跳过主机发现过程
-PS TCP SYN ping,发送一个设置了SYN标志位的空TCP报文,默认端口为80,也可指定端口
-PA TCP ACK ping,发送一个设置了ACK标志位的空TCP报文,默认端口为80,也可指定端口
-PU UDP ping,发送一个空的UDP报文到指定端口,可穿透只过滤TCP的防火墙
-P0 使用IP协议ping
-PR 使用ARP ping
-n/-R -n不用域名解析,加速扫描,-R为目标IP做反向域名解析,扫描慢一些
-dns-servers 自定义域名解析服务器地址
-traceroute 目标主机路由追踪
3、SCAN TECHNIQUES 端口扫描
Nmap将目标端口分为6种状态:
-open(开放的)
-closed(关闭的)
-filtered(被过滤的)
-unfiltered(未被过滤)可访问但不确定开放情况
-open|filtered(开放或者被过滤)无法确定端口是开放还是被过滤的
-closed|filtered(关闭或者被过滤)无法确定端口是关闭还是被过滤的
Nmap产生结果是基于目标机器的响应报文的,而这些主机可能是不可信任的,会产生迷惑或者误导Nmap的报文
-sS TCP SYN扫描,半开放扫描,速度快隐蔽性好(不完成TCP连接),能够明确区分端口状态
-sT TCP连接扫描,容易产生记录,效率低(不推荐)
-sA TCP ACK扫描,只设置ACK标志位,区别被过滤与未被过滤的
-sU UDP服务扫描,例如DNS/DHCP等,效率低
4、 PORT SPECIFICATION AND SCAN ORDER 端口说明和扫描顺序
-p 指定扫描的端口,可以是单个端口,也可以是端口范围,可以指定UDP或TCP协议扫描特定端口
-p 指定扫描的协议,例如-p http即可扫描http协议的端口状态
--exclude-ports 排除指定端口不扫描
-F 快速模式,仅扫描100个常用端口
5、SERVICE/VERSION DETECTION 服务与版本探测
Nmap-services 包含大量服务的数据库,Nmap通过查询该数据库可以报告哪些端口可能对应于什么服务,但不一定正确
-sV 进行服务版本探测
--version-intensity 设置版本扫描强度,范围为0-9 默认是7,强度越高,时间越长,服务越可能被正确识别
6、SCRIPT SCAN 脚本扫描
允许用户自己编写脚本来执行自动化的操作或者扩展Nmap的功能,使用Lua脚本语言。
-sC 使用默认类别的脚本进行扫描
--script= 使用某个或某类脚本进行扫描;支持通配符描述
7、OS DETECTION 操作系统探测
用TCP/IP协议栈fingerprinting进行探测,Nmap发送一系列TCP和UDP报文到远程主机,检查响应中的每一个比特。测试后Nmap把结果和数据库中超过1500个一直的fingerprints比较,如匹配则输出结果。
-O 启用操作系统探测
-A 同时启用操作系统探测和服务版本探测
--osscan-limit 针对指定的目标进行操作系统检测
--osscan-guess 当Nmap无法确定所检测的操作系统时,会尽可能地提供最相近的匹配
8、TIMING AND PERFORMANCE 时间和性能
Nmap开发的最高优先级是性能,但实际应用中很多因素会增加扫描时间,比如特定的扫描选项,防火墙配置以及版本扫描等。
-T<0-5> 设置时间模块级数,在0-5中选择。T0、T1用于IDS规避,T2降低了扫描速度以使用更少的带宽和资源。默认为T3,未做任何优化。T4假设具有合适及可靠的网络从而加速扫描。T5假设具有特别快的网络或者愿为速度牺牲准确性
-host-timeout 放弃低速目标主机,时间单位为毫秒
9、FIREWALL/IDS EVASION AND SPOOFING 防火墙/IDS规避和欺骗
-f(报文分段);--mtu(使用指定的MTU)将TCP头分段在几个包中,使得包过滤器、IDS以及其他工具的检测更加困难
-D <decoy1,deoy2[,ME]...>隐蔽扫描;使用逗号分隔每个诱饵主机,用自己的真实IP作为诱饵使用ME选项。如在6号或更后的位置使用ME选项,一些检测器就不报告真实IP。如不适用ME,真实IP将随机放置
-S <IP_Address> 伪造数据包的源地址
-source-port/-g 伪造源端口
10、OUTPUT 输出选项
-oN 标准输出
-oX XML输出写入指定的文件
-oS 脚本小子输出,类似于交互工具输出
-oG Grep输出
-oA 输出至所有格式
-v 提高输出信息的详细度
-resume 继续中断的扫描
然后我们记录一下实验用的语句。
1.A对B进行TCP端口扫描(范围1-150)
nmap 192.168.48.134 -p 1-150
![](https://i-blog.csdnimg.cn/img_convert/a5a51db9f54d3fc8d79135ed2163f044.png)
2.对B进行UDP端口扫描,范围也是1-150
nmap 192.168..48.134 -sU -p 1-150
![](https://i-blog.csdnimg.cn/img_convert/e67f373838be7728481243f724db5410.png)
3.对主机B进行TCP/IP指纹特征扫描
nmap -A 192.168.48.134 -Pn
![](https://i-blog.csdnimg.cn/img_convert/c31afd5b440eb13e21a2b44fc2e849c3.png)
这里学习记录一下tcp/ip指纹特征的原理。
TCP/IP堆栈指纹识别技术是基于TCP/IP协议来实现的,主要是TCP/IP四层模型中网络层的IP协议和传输层的TCP协议。操作系统为了实现网络功能,一般由操作系统来实现传输层、网络层、链路层协议, 而由专门的应用软件来支持相关的应用层协议,如安装QQ软件才能支持QQ协议,这样的实现方式为TCP/IP堆栈指纹技术提供了前提。
比如,IP协议的initial ttl在不同的操作系统就不太一样,TCP协议和IP协议在不同操作系统中体现的细微差异,可以组合成TCP/IP堆栈的指纹特征,每个指纹都代表着一种操作系统在网络活动上的特征。
4.对活动主机运行服务进行探测。
namp -sV 192.168.48.134
![](https://i-blog.csdnimg.cn/img_convert/c33ccf118ee719d6a094d239cff51533.png)
5.对主机B进行协议探测
nmap 192.168.48.134 -PO ip(-PO是协议探测,我这里指定是ip协议探测)
nmap 192.168.48.134 -PO ip
scapy项目学习记录
Scapy能完成绝大多数工具所能完成的功能,例如:扫描,网络发现,跟踪路由,探测,攻击,这是kali已经集成的python的工具包,使用方法是,在shell页面输入scapy就能启动。
send、sendp、sr、sr1 发送数据包函数使用,send函数工作在第二层,可用于发送IP包,sendp函数工作在第三层,可用于发送Ether帧。
"/"表示加上一层
例如:send(IP(dst="192.168.64.133")/ICMP()) 生成一个IP包,并加上一层ICMP然后给地址192.168.48.133发送。
sendp(Ether()/IP(dst="192.168.64.133"),iface="eth0")
sr()函数用来发送数据包和接收响应,例如
sr(IP(dst="192.168.64.133")/ICMP())是给IP地址发送一个数据包并且接收响应
通过summary函数查看响应的结果。
由于这次实验没有学多少关于scapy所以我就记录到这里。
下面记录一下实验的漏洞扫描,使用的工具为Nessus,我费了好大的劲才装上的。
用Nessus进行漏洞扫描的过程在我的另一篇博客,我就不在这写啦~
这里记录到我的另一篇博客去啦,扫描的过程我就不放上来了。
靶机是metasploitable2,利用的漏洞是php_cgi_arg_injection
启动metasploit,搜索相关的漏洞利用模块
![](https://i-blog.csdnimg.cn/img_convert/b4cb2c78da8e19788bfb5ae21f3b7cb8.png)
输入use 0可以选择该攻击的payload。
然后查看需要配置的参数,show options
![](https://i-blog.csdnimg.cn/img_convert/21d65fc45aac8b3e35aac130ad0175a9.png)
一般我们就配个IP就行了
输入指令,set rhost 192.168.48.129就能设置了
![](https://i-blog.csdnimg.cn/img_convert/2da1cd3c05c81657dee7246f08e38f91.png)
然后设置好了以后输入exploit,或者run,我一般输exploit,因为比较酷。
可以看到执行以后,有一个meterpreter,那个就是攻击成功了好像。可以输一些指令试试。
我cd切进了我自己写的文件的目录,执行cat指令查看我自己写的内容。
![](https://i-blog.csdnimg.cn/img_convert/f8968e6ac9aa6bd4cedb0b321d3ac1fe.png)
这次的试验记录就到这里结束啦~