《网络攻防》第二次作业
作业一:学习windows(BAT)、Linux(shell)编程,并分别写一个脚本文件解决自己的一个问题
1、用windows(BAT)写一个简单的程序,如下:
2、用Linux(shell)写一个简单的程序,求1-9之和,程序如下:
作业二:了解至少一个国内著名黑客信息、一个国外著名黑客信息
1、国内黑客小榕
小榕,网名。高级程序员,中国著名黑客。小榕的名字在网上非常响亮,这倒不是因为他黑过谁,而是因为他发布了许多杀伤力巨大而又极易上手Hack工具。他开发的流光软件是众多小“黑客”必用的软件之一。流光是一个绝好的ftp、pop3解密工具,漏洞扫描也是众多扫描其中最具特色的一个,除了提供全面的扫描功能以外,利用C/S结构设计的扫描思想更是在众多复杂的应用场合脱颖而出。小榕
2、国外黑客凯文·米特尼克(Kevin David Mitnick)
米特尼克1963年8月6日出生于美国洛杉矶,第一个被美国联邦调查局通缉的黑客。米特尼克曾成功闯入“北美空中防护指挥系统”、美国著名的“太平洋电话公司”的通信网络系统、联邦调查局的网络系统,也因此多次入狱,现在他改邪归正,开创了自己的安全公司--sMitnick安全咨询公司出版过《反欺骗的艺术》、《反入侵的艺术》、《线上幽灵:世界头号黑客米特尼克自传》。凯文·米特尼克
作业三:参考sectools,每个人至少查找5种安全工具、库等信息,并深入研究至少两种并写出使用教程
1、Wireshark
wireshark是非常流行的网络封包分析软件,功能十分强大。可以截取各种网络封包,显示网络封包的详细信息。
Wireshark基本介绍和TCP三次握手协议分析
wiresharka官网
2、TcpDump
TcpDump是通用的命令行网络嗅探与数据包分析程序,允许用户能够从主机所在网络上截取和显示特定的TCP/IP数据包。它在大多数类Unix平台如行Linux上都可以运作。TcpDump是Linux中强大的网络数据采集分析工具之一。用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。作为互联网上经典的的系统管理员必备工具,tcpdump以其强大的功能,灵活的截取策略,成为每个高级的系统管理员分析网络,排查问题等所必备的工具之一。tcpdump提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。
TcpDump官网
3、netwox
netwox是一个可以实施各种网络欺骗攻击的工具软件,可以创建任意的TCP/IP/UDP数据报文。
利用netwox工具,基于TCP/IP的攻击实验
4、Metasploit
Metasploit是一款开源的安全漏洞检测工具,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击,而且它本身附带数百个已知软件漏洞的专业级漏洞攻击工具,号称世界使用最多的渗透测试软件。
Metasploit官网
5、Snort
Snort是本用C语言开发的开放源代码的入侵检测系统,直至今天,Snort已发展成为一个多平台,实时流量分析,网络IP数据包记录等特性的强大的网络入侵检测/防御系统。
Snort有三种工作模式:嗅探器、数据包记录器、网络入侵检测系统。嗅探器模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上。数据包记录器模式把数据包记录到硬盘上。网络入侵检测模式是最复杂的,而且是可配置的。我们可以让snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作。
snort官网
作业四:学习教材《网络攻防技术》第一、二章并完成p45,p61的实践作业
p45作业:
1、黑客电影鉴赏,撰写一篇影评。或从影视作品截取社会工程学或物理攻击片段,说明利用了何种攻击手段。
《我是谁:没有绝对安全的系统》
这个电影给我感触最深的有两点:
(1)这个世界上没有绝对安全的系统:
即使随着科技的发展,人们开发出了各种安全系统来保护自己的私有财产,从栅栏、固若金汤的保险箱、到高科技的指纹瞳孔和步伐数字化识别,但是当这些被人们信任并且依赖的安全系统被人可以用手段和技巧轻松攻破后,就像电影名字强调的那样,没有绝对安全的系统。比如男主本杰明利用黑客技术获取到了豪车,以及轻而易举地用别人的房子举办派对的时候。
(2)社会工程学,其实就是一种利用人性的弱点和心理学在社交层面实现自己的目的。就像影片中展现的那样,人们都有一个普遍性的弱点:只相信他自己相信的,只看到他们自己所看到的的,只信任他们自己所推理出来的结论,男主本杰明便是利用了这一点,一步步引得女警相信了他有人格分裂症。
2、通过社会工程学尝试获取异性同学的生肖、星座、出生日期、生辰八字,并详述过程。
通过朋友圈、能获取到身份证信息的班级信息记录册悄无声息的获取到别人的一系列信息
p61作业:在自己的电脑上部署一套个人版网络攻防实验环境,至少包括一台攻击机,一台靶机,seed虚拟机和密网网关,并进行联通性测试,确保各个虚拟机能够正常联通。
Linux靶机IP测试:
windows靶机IP测试:
Linux攻击机IP测试:
windows攻击机IP测试:
Linux攻击机和Linux靶机联通性测试
windows攻击机和windows靶机联通性测试
Linux攻击和windows靶机联通性测试
windows攻击机和Linux靶机联通性测试
作业五:5个Kali视频学习总结
kali是一个渗透测试的工具,集渗透测试各个环节的工具于一身。
1、kali安全渗透的一般流程
(1)信息收集:渗透测试的第一步是收集尽可能多的关于被测应用或者系统的信息。通常使用公共工具(搜索引擎)、扫描器、发送简单或特别的HTTP请求等来迫使被测应用泄漏信息。
(2)漏洞分析:渗透测试的目的是找出系统或应用的漏洞,但是一开始并不知道有哪些漏洞,这就需要借助漏洞分析工具对根据收集的信息进行漏洞分析。
(3)漏洞利用:包含两个方面:一是对现有漏洞进行利用,得到一定权限,二是提升自己的权限,简称提权。
(4)权限维持:权限维持是指我们成功攻破一个系统后,继续保持对系统权限的控制,俗称留后门。
(5)形成报告:渗透测试最终需要将发现的漏洞形成报告,而不是进行破坏给管理员造成不必要的麻烦。
渗透测试的辅助项:无线攻击、密码攻击、嗅探攻击、逆向工程、数字取证等。
2、Kali Linux作为Linux发行版,是在BackTrack Linux的基础上,遵循Debian开发标准,进行了完全重建;ARP欺骗属于互联层网络协议攻击;ITS本身是用汇编语言编写的,其它部分由LISP写成。
作业六:学习Python3 简明教程中遇到的问题
1、创建并执行一个python文件的过程(from实验楼)
(1)vim hello.py通过vim编辑器创建并打开hello.py程序编辑器
(2)进入编辑器之后通过输入命令i进去插入模式
(3)在编辑器中写入代码
(4)esc键退出插入模式
(5):wq保存文件并退出编辑器
(6)chmod +x hello.py给文件加上可执行权限
(7)./hello.py执行文件
2、小技巧交换两个数(from实验楼)
a , b = 45, 54
a
45
b
54
a, b = b , a
a
54
b
45
3、元组的拆封和封装(from实验楼)
data = ("shiyanlou", "China", "Python")
name, country, language = data
name
'shiyanlou'
country
'China'
language
'Python'
4、列表(from实验楼)
与其它语言中数组集合等不同的是,列表中的元素有索引,但是一个元素同时存在正负两种索引。
+------+--------+--------+--------+--------+---------+----------+
列表元素----------1-------342-----223-----'India'--'Fedora'
+--------+------+--------+--------+---------+----------+----------+
元素索引 ------- 0(-5) ---1(-4)---2(-3)-----3(-2)-----4(-1)
切片:取列表中部分元素。切片遵循左闭右开原则。即a[-5:-1],其取的索引为 -5,-4,-3,-2 ,不包含 -1 。以下为对列表a = [ 1, 342, 223, 'India', 'Fedora'] 切片:
a = [ 1, 342, 223, 'India', 'Fedora']
a
[1, 342, 223, 'India', 'Fedora']
a[-1]
'Fedora'
a[0:-1]
[1, 342, 223, 'India']
a[2:-2]
[223]
要检查某个值是否存在于列表中,你可以这样做:
a = ['ShiYanLou', 'is', 'cool']
'cool' in a
True
'Linux' in a
False
通过内建函数 len() 我们可以获得列表的长度:
len(a)
3
列表是允许嵌套的(创建一个包含其它列表的列表),例如:
a = ['a', 'b', 'c']
n = [1, 2, 3]
x = [a, n]
x
[['a', 'b', 'c'], [1, 2, 3]]
x[0]
['a', 'b', 'c']
x[0][1]
'b'
5、按照格式输出
print("{:.10f}".format(area)) //使area这个数保留小数点后十位
print("{:2d} {:6.4f}".format(i , sum)) //使i输出格式为2位十进制数,sum的输出格式位为保留小数点后4位的浮点数
6、打印
(1)print() 在默认情况下,除了打印你提供的字符串之外,还会打印一个换行符,所以每调用一次 print() 就会换一次行。
(2)也可用 print() 的另一个参数 end 来替换这个换行符即print(b, end=' ')
7、number= int(input("input an integer:"))
在练习从键盘获取一个数的程序时,错误的给行命令的末尾加上分号,其实这就是python和别的语言最大的特色-简洁。还有一个例子可以体现python的简洁:在 Python 中,我们不需要为变量指定数据类型。所以你可以直接写出 abc = 这样变量 abc 就是整数类型。如果你写出 abc = 1.0 ,那么变量 abc 就是浮点类型。
(from实验楼)
8、for i in range(1, 11):中的range(a,b)是左闭右开的,相当于[a,b-1]。