网络攻防第九周作业

nmap的使用

Nmap简介

Nmap (“Network Mapper(网络映射器)”) 是一款开放源代码的 网络探测和安全审核的工具。它的设计目标是快速地扫描大型网络,当然用它扫描单个主机也没有问题。Nmap以新颖的方式使用原始IP报文来发现网络上有哪些主机,那些主机提供什么服务(应用程序名和版本),那些服务运行在什么操作系统(包括版本信息),它们使用什么类型的报文过滤器/防火墙,以及一堆其它功能。虽然Nmap通常用于安全审核, 许多系统管理员和网络管理员也用它来做一些日常的工作,比如查看整个网络的信息, 管理服务升级计划,以及监视主机和服务的运行。

Nmap所识别的6个端口状态。

open(开放的)

应用程序正在该端口接收TCP 连接或者UDP报文。发现这一点常常是端口扫描 的主要目标。安全意识强的人们知道每个开放的端口 都是攻击的入口。攻击者或者入侵测试者想要发现开放的端口。 而管理员则试图关闭它们或者用防火墙保护它们以免妨碍了合法用户。 非安全扫描可能对开放的端口也感兴趣,因为它们显示了网络上那些服务可供使用。

closed(关闭的)

关闭的端口对于Nmap也是可访问的(它接受Nmap的探测报文并作出响应), 但没有应用程序在其上监听。 它们可以显示该IP地址上(主机发现,或者ping扫描)的主机正在运行up 也对部分操作系统探测有所帮助。 因为关闭的关口是可访问的,也许过会儿值得再扫描一下,可能一些又开放了。 系统管理员可能会考虑用防火墙封锁这样的端口。 那样他们就会被显示为被过滤的状态,下面讨论。

filtered(被过滤的)

由于包过滤阻止探测报文到达端口, Nmap无法确定该端口是否开放。过滤可能来自专业的防火墙设备,路由器规则 或者主机上的软件防火墙。这样的端口让攻击者感觉很挫折,因为它们几乎不提供 任何信息。有时候它们响应ICMP错误消息如类型3代码13 (无法到达目标: 通信被管理员禁止),但更普遍的是过滤器只是丢弃探测帧, 不做任何响应。 这迫使Nmap重试若干次以访万一探测包是由于网络阻塞丢弃的。 这使得扫描速度明显变慢。

unfiltered(未被过滤的)

未被过滤状态意味着端口可访问,但Nmap不能确定它是开放还是关闭。 只有用于映射防火墙规则集的ACK扫描才会把端口分类到这种状态。 用其它类型的扫描如窗口扫描,SYN扫描,或者FIN扫描来扫描未被过滤的端口可以帮助确定 端口是否开放。

open|filtered(开放或者被过滤的)

当无法确定端口是开放还是被过滤的,Nmap就把该端口划分成 这种状态。开放的端口不响应就是一个例子。没有响应也可能意味着报文过滤器丢弃 了探测报文或者它引发的任何响应。因此Nmap无法确定该端口是开放的还是被过滤的。 UDP,IP协议, FIN,Null,和Xmas扫描可能把端口归入此类。

closed|filtered(关闭或者被过滤的)

该状态用于Nmap不能确定端口是关闭的还是被过滤的。 它只可能出现在IPID Idle扫描中。

本次博客主要对seed靶机、windows靶机、metaspoit靶机进行端口扫描,主要用到以下指令

nmap -sV <IP>   网络服务主动探测技术,探测目标系统中开放的端口上绑定的网络应用服务类型
nmap -sU <IP>   UDP端口扫描
nmap -sT <IP>   TCP connect()扫描

实验结果及分析如下

nmap对seed靶机的扫描

分析

-sV 指令扫描显示,主机活跃,只扫描到一个SSH服务,其MAC地址为00:0C:29:C8:F7:A5,故-sU指令没有扫描结果,-sT指令显示主机活跃,且开启的22端口的SSH服务是open状    态,每次nmap扫描所花费的时间都会显示。同理可分析对windows靶机和metespoit靶机进行扫描的实验结果。

nmap对windows靶机的扫描

nmap对metaspoit靶机的扫描

教材知识总结#

视频学习过程总结#

一、KaliSecurity - 压力测试工具##

压力测试通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大的服务级别的测试。通俗的讲,压力测试是为了发现在什么条件下你的应用程序的性能会变得不可接受。

1、VoIP压力测试工具

包括iaxflood和inviteflood

2、Web压力测试

借助THC-SSl-DOS攻击工具,任何人都可以把提供SSL安全连接的网站攻击下线。这种攻击方法被称为SSL拒绝服务攻击。德国黑客组织“The Hacker’s Choice”发布THC SSL DOS,利用SSL中的已知弱点,迅速消耗服务器资源,与传统DDos工具不同的是,他不需要任何带宽,只需要一台执行单一攻击的电脑。
漏洞存在与协议的renegotitation过程中,renegotiation被用于浏览器到服务器之间的验证。
打开之后如下

3、dhcpig

耗尽DHCP资源池的压力测试。对新接入的计算机自动分配一个内网地址,dhcpig会将IP全部耗尽,新接入的计算机就获取不到IP

WEB压力测试

4.IPv6工具包

5、Inundator

防火墙压力测试工具,耗尽对方认证资源。通过日志对IDS/IPS/WAF 进行压力测试工具

6、Macof

可做泛洪攻击。

7、Siege

压力测试和评测工具,设计用于WEB开发和评估应用在压力下的承受能力;可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。用来测试服务器的性能。比较强大。

8、T50压力测试

T50 Sukhoi PAK FA Mixed Packet Injector是一个压力测试工具,功能强大且具有独特的数据包注入工具。T50支持Unix系统可进行多种协议的数据包注入,实际上支持15种协议。主要特点:

  • Flooding
  • CIDR support
  • TCP ,UDP,ICMP,IGMPVC2,IGMPV3,EGP,DCCP,RSVP,RIPV1 ,RIPv2 ,GRE,ESP,AH,EIGRp
  • TCP options
  • HIGH performance
  • Can hit about 1000000 packets per second

9、无线压力测试

mdk3和reaver

二、KaliSecurity - 数字取证工具##

数字取证技术将计算机调查和分析技术应用于对潜在的、有法律效力的电子证据的确定与获取,同样他们都是针对黑客和入侵的,目的都是宝航网络安全。

1、PDF取证工具

peepdf是一个用Python编写的PDF文件分析工具,它可以检测恶意的PDF文件,其设计目标是为安全研究人员提供PDF分析中可能用到的所有组件,无需使用3或4种工具完成统一任务。

2、反数字取证chkrootkit

较常用、知名,Linux系统下的查找检测Rootkit后门的工具。适用该条指令就可以检测是否被注入后门

3、内存取证工具

Volatitlity是开源的Windows,Linux,mac,Android的内存取证分析工具,有Python编写成,命令行操作,支持各种操作系统。

4、取证分割工具binwalk

是一个强大的固件分析工具,旨在协助研究人员对固件分析,提取及逆向工程用处,简单易用,完全自动化脚本,并通过自定义签名,提取规则和插件模块,更重要的一点是可以轻松扩展。

-e 参数直接解压

也可作为一个文件格式工具。借助binwalk有个很强大的功能是提取文件中存在的隐藏文件,亦可分析文件格式。

5、取证哈希验证工具集

md5deep是一套跨平台的方案,可以计算和比较MD5等哈希加密信息的摘要MD5,SHA-1,SHA-256,Tiger,Whirlpool

6、取证镜像工具集

针对镜像文件的取证工具,如mmsstat与mmls等命令。

7、数字取证套件

autopsy是图形化界面,是以浏览器的形式访问。

dff是程序的图形化界面,是一个简单强大的数字取证工作辅助工具,有一个灵活的模块系统,具有多种功能,包括:恢复错误或崩溃导致的文件丢失,证据的研究和分析等。dff提供了一个强大的体系结构和一些有用的模块。

三、KaliSecurity - 报告工具与系统服务##

一次完整的渗透测试,最后总要完成一份优雅的报告作为一个小结,kali下也有相关的报告工具集。

1、Dradis

是一个用于提高安全检测效率的信息共享框架,它提供了一个集中的信息仓库,用于标记我们目前已经做的工作和下一步计划。一个基于浏览器的在线笔记。最后还会生成报告。

2、Keepnote

一个很精简的笔记软件,特点如下:

  • 富文本格式:彩色字体,内置图片,超链接(即:能保存整个网页的图品文字等完整信息)。

  • 树形分层组织内容

  • 分门别类,一目了然

  • 全文搜索

  • 综合截图:屏幕截图后,可以直接在笔记本中插入

  • 文件附件

  • 集成的备份和恢复

  • 拼写检查

  • 自动保存

  • 内置的备份和恢复(zip文件存档)

3、媒体捕捉之Cutycapt

将网页内容截成图片保存

4、媒体捕捉之Recordmydesktop

屏幕录像工具,用来录制桌面

5、证据补充之Maltego Casefile

6、MagicTree

配置稍复杂,是一个面向渗透测试人员的工具,可以帮助你轻松直接的进行数据合并,查询,外部命令执行,报告生成,所有数据都会以树形结构存储,非常方便。

7、Truecrypt

一款免费开源的文件加密软件,命令行版和图形界面版,同时支持Windows Vista/7/XP,Mac OS X,Linux等操作系统。

8、系统服务介绍

  • beEF:对应XSS测试框架BeEF的启动与关闭
  • Dradis:对应笔记本分享服务的启动与关闭
  • HTTP:对应kali本机WEB服务的启动与关闭
  • Metasploit:对应Metasploit服务的启动与关闭
  • MySQL:对应mysql的服务启动与关闭
  • openvas:对应扫描器openvas服务的启动与关闭
  • SSh:对应SSh的服务启动与关闭

教材学习内容总结

第9章 恶意代码安全攻防##

一、恶意代码基础知识

1、恶意代码定义与分类

恶意代码定义:使计算机按照攻击者的意图执行以达到恶意目标的指令集

恶意代码类型

  • 计算机病毒
  • 蠕虫
  • 恶意移动
  • 代码后门
  • 特洛伊木马
  • 僵尸网络
  • 内核套件

恶意代码的命名规则与分类体系

2、恶意代码发展史

恶意代码的起源

恶意代码的发展过程

恶意代码的发展趋势

3、计算机病毒

计算机病毒基本特性

  • 感染性
  • 潜伏性
  • 可触发性
  • 破坏性
  • 衍生性

计算机病毒的感染及引导机制

  • 可执行文件
  • 引导扇区
  • 支持宏指令的数据文件

计算机病毒的传播机制

4、网络蠕虫

网络蠕虫的基本特性

网络蠕虫的组成结构

(1)“弹头”

缓冲区溢出攻击

文件共享攻击

利用电子邮件传播

利用其他普遍的错误配置

(2)传播引擎

(3)目标选择法和扫描引擎

电子邮件地址

主机列表

被信任的系统

网络邻居主机

域名服务

通过特定规则任意选择IP目标地址

(4)有效荷载

植入后门

安装分布式拒绝服务攻击代理

组建僵尸网络

执行一个复杂的计算

5、后门与木马

后门

后门工具能为攻击者提供多种不同类型的访问通道,包括以下几种:

  • 本地权限提升和本地账号
  • 单个命令的远程执行
  • 远程命令行解释器访问
  • 远程控制GUI
  • 无端口后门

特洛伊木马

6、僵尸程序与僵尸网络

僵尸程序和僵尸网络的演化过程

僵尸网络的功能结构

僵尸程序的命令与控制机制

  • 基于IRC协议的命令与控制机制
  • 基于HTTP协议的命令与控制机制

7、Rootkit

用户模式Rootkit

  • 提供后门访问的二进制替换程序
  • 隐藏攻击者的二进制替换程序
  • 用于隐藏但不替换的二进制长须
  • 另外一些零散工具
  • 安装脚本

内核模式Rootkit

大多内核模式Rootkit采用如下技术手段

  • 文件和目录隐藏
  • 进程隐藏
  • 网络端口隐藏
  • 混杂模式隐藏
  • 改变执行方向
  • 设备截取和控制

Linux,Windows内核模式Rootkit

二、恶意代码分析方法

1、恶意代码分析技术概述

2、恶意代码分析环境

恶意代码发烧友的分析环境

基于虚拟化构建恶意代码分析环境

用于研究的恶意代码自动分析环境

3、恶意代码静态分析技术

反病毒软件扫描

文件格式识别

字符串提取分析

恶意代码实例名

帮助或命令行选项

用户会话

后门命令

相关URL信息,E-mail地址

包含库文件和函数调用

二进制结构分析

反汇编与反编译

代码结构与逻辑分析

加壳识别与代码脱壳

4、恶意代码动态分析技术

基于快照比对的方法和工具

系统动态行为监控方法

  • 文件行为监控软件
  • 进程行为监控软件
  • 注册表监控软件
  • 本地网络栈监控软件

网络协议栈监控方法

沙箱技术

动态调试技术

第10章 软件安全攻防——缓冲区溢出和Shellcode##

一、软件安全概述

1、 软件安全漏洞威胁

2、软件安全环境

复杂性

可扩展性

连通性

3、软件安全漏洞类型

内存安全违规类

输入验证类

竞争条件类

权限混淆与提升类

二、缓冲区溢出基础概念

1、缓冲区溢出的基本概念与发展过程

缓冲区溢出基本概念

缓冲区溢出攻击技术发展过程

2、缓冲区溢出攻击背景知识

编译器与调试器的使用

汇编语言基础知识

进程内存管理

函数调用过程

3、缓冲区溢出攻击原理

分为栈溢出,堆溢出,内核溢出这三种具体技术形态。

三、Linux平台上的栈溢出与Shellcode

1、Linux平台栈溢出攻击原理

NSR模式

RNS模式

RS模式

2、Linux平台的Shellcode实现技术

Linux本地Shellcode实现机制

Linux远程Shellcode实现机制

四、Windows平台上的栈溢出与Shellcode

1、Windows平台栈溢出攻击技术

Windows平台栈溢出攻击技术机理

  • 对程序运行过程中废弃栈的处理方式差异
  • 进程内存空间的布局差异
  • 系统功能调用的实现方式差异

远程栈溢出攻击实例

野外Windows栈溢出实例

2、Windows平台Shellcode实现技术

Windows本地Shellcode

Windows远程Shellcode

五、堆溢出攻击

函数指针改写

C++类对象虚函数表改写

Linux下堆管理glibc库free()函数本身漏洞

六、缓冲区溢出攻击的防御技术

尝试杜绝溢出的防御技术

允许溢出但不让程序改变执行流程的防御技术

无法让攻击代码执行的防御技术

学习进度条

博客量(新增/累计) 学习时间(新增/累计) 本周学习收获
目标 20 200小时 完成每周作业
第1~5周 6/6 65h/65h kali的使用及攻防一些基本知识
第6周 1/7 16h/81h 对传输层的安全结构有了深刻的了解,学习使用kali一些工具
第7周 1/8 14h/95h 了解Windows操作系统攻防,学习使用metaspoitable
第8周 1/9 12h/107h 了解linux操作系统攻防
第9周 1/10 8h/115h 恶意代码及软件安全攻防,及kali一些数字取证和压力测试工具

虽然这么列出来教材的内容看起来毫无意义,但是就算是我为了自己以后方便查找吧。:)

查阅资料:http://blog.csdn.net/github_35068711/article/details/51530422

posted @ 2017-04-28 15:52  pokermans  阅读(364)  评论(0编辑  收藏  举报