《网络攻防实践》 第二周作业

kali 安装与配置


官网下载最新的kali64位镜像,照视频中步骤安装没有任何问题,甚至连视频中提到的一直回车选择默认选项会遇到的死循环也没有遇到。

不过有一点不知道是不是有些遗憾,kali网络设置成桥接模式一直没法连通互联网,还是改为NAT模式解决的。

教材实践内容


1.《碟中谍6》观后感。电影中各种各种欺骗或者渗透攻击实际上涉及到很多,最精彩的那一段无疑是将一个人完全封闭在一个铁箱子中的虚拟环境中进行欺骗。这种做到全套的欺骗,防不胜防。

2.通过社会工程学的方法获取异性同学的生辰八字等。能想到的办法都要通过欺骗,不适合用在同学身上,我本身也不适合骗人,想想还是算了。

3.部署个人网络攻防实验环境,课上测试已提交不再赘述。不过宿主机windows和虚拟机的linux不能ping通倒是有些疑问,因为windows之间的连通是没有问题的,会不会是vmware对于不同系统之间存在保护或者本机防火墙之类的呢?

4.国外著名黑客CharlieMiller和ChrisValasek。通过车载娱乐系统远程控制了一辆吉普切诺基,致使克莱斯勒公司不得不紧急升级系统并召回旗下140万辆存在隐患的车辆。

5.国内著名黑客。KEEN Team是国内公认的白帽无敌团队,在Pwn2Own比赛中两次夺得三项冠军,是中国历史上唯一能够两次参加这项比赛的团队。在查找CVE漏电时,像360这种专注系统安全的团队一共才发现了40多个CV漏洞,而KEEN Team则发现了300多个,查找漏洞的能力比360高达7倍。除了这些,KEEN Team还为微软、谷歌、苹果等公司提供了数百个严重安全漏洞的挖掘成功,他们查找的数量甚至超过了这些公司的技术团队。

实践作业


至于寻找五个工具感觉意义不大,因为kali系统自带已经上百款,除非是kali系统没有的?

dig使用经验


1.基础使用,基本DNS查询:

1506386-20190311094627036-952110196.png

2.查询特定名称服务器:
1506386-20190311094635291-431432716.png

3.搜索记录类型:
1506386-20190311094648069-1731012879.png

4.反向DNS查找:
1506386-20190311094657250-888562862.png

5.追踪DNS路径:
1506386-20190311094704515-1177353400.png

6.调整答案长度:
1506386-20190311094710688-1927344104.png

7.从文件查找,在文件中每行输入要查找的域名,使用-f选项即可:
1506386-20190311094720101-1659287151.png

8.指定端口号,这要求服务器开放相关端口功能:
1506386-20190311094728903-167374612.png

9.选择ipv4或者ipv6(校园网貌似不支持ipv6):
1506386-20190311094735438-1180085620.png

10.查询所有DNS记录类型:
1506386-20190311094741393-539559285.png

11.自定义输出:
1506386-20190311094748040-817504400.png

12.通过.digrc 文件调整默认值:
1506386-20190311094754206-325121948.png

dnmap client使用经验


dnmap是一个在多个客户端之间分发nmap扫描的框架。 它使用nmap命令读取已创建的文件,并将这些命令发送到与其连接的每个客户端。

该框架使用客户端/服务器架构。 服务器知道该做什么,客户端知道该做什么。 所有逻辑和统计信息都在服务器中进行管理。 Nmap输出存储在服务器和客户端上。

什么时候会用到这个呢?如果你必须扫描一大群主机,你有几个不同的互联网连接(或想要帮助你的朋友)。

帮助页面:

1506386-20190311100150775-946309281.png

使用案例:

1506386-20190311100139869-1948099075.png

应该和dnmap_sever搭配使用。

那么什么是nmap呢?Nmap(网络映射器)是一款用于网络发现和安全审计的网络安全工具,它是自由软件。软件名字Nmap是Network Mapper的简称。通常情况下,Nmap用于:

  • 主机发现。用于发现目标主机是否处于活动状态。Nmap 提供了多种检测机制,可以更有效地辨识主机。例如可用来列举目标网络中哪些主机已经开启,类似于Ping命令的功能。
  • 端口扫描。用于扫描主机上的端口状态。Nmap可以将端口识别为开放(Open)、关闭(Closed)、过滤(Filtered)、未过滤(Unfiltered)、开放或过滤(Open|Filtered)、关闭或过滤(Closed|Filtered)。默认情况下,Nmap会扫描1660个常用的端口,可以覆盖大多数基本应用情况。
  • 版本侦测。用于识别端口上运行的应用程序与程序版本。Nmap当前可以识别数千种应用的签名(Signatures),检测数百种应用协议。而对于不识别的应用,Nmap默认会将应用的指纹(Fingerprint)打印出来,如果用户确知该应用程序,那么用户可以将信息提交到社区,为社区做贡献。
  • 操作系统侦测。用于识别目标主机的操作系统类型、版本编号及设备类型。Nmap当前提供1500个操作系统或设备的指纹数据库,可以识别通用PC系统、路由器、交换机等设备类型。
  • 防火墙/IDS规避和哄骗。Nmap提供多种机制来规避防火墙、IDS的的屏蔽和检查,便于秘密地探查目标主机的状况。基本的规避方式包括:分片、IP诱骗、IP伪装、MAC地址伪装。
  • NSE脚本引擎。NSE是Nmap最强大最灵活的特性之一,可以用于增强主机发现、端口扫描、版本侦测和操作系统侦测等功能,还可以用来扩展高级的功能如web扫描、漏洞发现和漏洞利用等。Nmap使用Lua语言来作为NSE脚本语言,当前的Nmap脚本库已经支持350多个脚本。

Nmap可以检测目标主机是否在线、端口开放情况、侦测运行的服务类型及版本信息、侦测操作系统与设备类型等信息。 它是网络管理员必用的软件之一,用以评估网络系统安全。

Nmap 是不少黑客及脚本小子爱用的工具 。系统管理员可以利用Nmap来探测工作环境中未经批准使用的服务器,黑客通常会利用Nmap来搜集目标计算机的网络设定,从而计划攻击的方法。

Nmap通常用在信息搜集阶段,用于搜集目标机主机的基本状态信息。扫描结果可以作为漏洞扫描、漏洞利用和权限提升阶段的输入。例如,业界流行的漏洞扫描工具Nessus与漏洞利用工具Metasploit都支持导入Nmap的XML格式结果,而Metasploit框架内也集成了Nmap工具(支持Metasploit直接扫描)。

Nmap不仅可以用于扫描单个主机,也可以适用于扫描大规模的计算机网络(例如,扫描英特网上数万台计算机,从中找出感兴趣的主机和服务)。

Python3 简明教程


我对于python实际上有一定使用经验了,前面基础性内容略过不谈。


第一次接触类是在c++,在实验中发现Python3中的类和c++还是非常像的,当然也有区别,比如Python3中的__init__方法,同样作为类的初始化函数,c++的构造函数要求和类同名,可以发现,c++的方式在传参方式方面更容易理解,更严格的符合语法,而python的方式则倾向于更直接的告诉我们函数的功能。

同时Python3中类的成员(属性)也没有私有公有之分,也不需要定义函数去获取属性值,直接读取就好了。

那Python3是如何确保类成员的安全的呢?答案是装饰器。但装饰器的作用远不止这个。具体详见Python3装饰器

模块


看到模块不得不提Python3环境的问题,本Python3教程显然更重视如何写出Python3代码,而不是如何使用Python3,教程中使用实验楼的虚拟环境不用考虑如何配置和管理Python3的环境,但实际使用中这往往是带给我困扰的一方面。如何管理下载的python包,当电脑中存在多个版本的python时如何处理,根据印象应该在新启动一个项目时就针对它在电脑中创建一个虚拟环境,一个隔离的文件夹,不知道是不是就相似于实验楼环境中的env。具体详见Python3虚拟环境 venv搭建轻量级虚拟环境

挑战类和Collection模块


在这个实验中存在一个陷阱,由wget得到的代码文件是在windows下编辑,需要在vim下使用set ff=unix转为unix模式,具体参考在Ubuntu终端中运行python文件,报错

代码风格


要保持一致且良好的代码风格,这一点我非常认同,看一下我大二时写的爬虫程序:

# -*- coding: utf-8 -*-
"""
Created on Tue Nov 29 18:01:18 2016

@author: TheChosenOne
"""

import urllib
import json
from openpyxl import Workbook
from bs4 import BeautifulSoup
#from openpyxl import load_workbook
target_dir="d://pyworkspace/"
urlroot='http://www.nba.com/players/lebron/james/2544'
'''pl=[]

hh=urllib.request.urlopen(urlroot)
ss=BeautifulSoup(hh,'lxml')
for link in ss.find_all('a'):
    pl.append(link.get('href'))
with open("d://pyworkspace/player.txt",'w')as a:
    json.dump(pl,a)
'''
playerurl_list=[]
with open("d://pyworkspace/player.txt") as f:
    playerurl_list=json.load(f)
workbook=Workbook()
p=0
c=0
for playerurl in playerurl_list:
    html=urllib.request.urlopen('http://www.nba.com'+playerurl)
    soup=BeautifulSoup(html,'lxml')
    body= soup.find_all(name='p',attrs={'class':"nba-player-vitals__top-info-metric"})
    #h=list(body[0].strings)
    trs=soup.find_all('tbody')
    content=soup.find_all(name='th',attrs={'scope':"col"})
    ss=BeautifulSoup(str(trs[1]),'lxml')
    ss_0=BeautifulSoup(str(trs[2]),'lxml')
    title=ss_0.find_all('abbr')
    year=ss.find_all('th')
    data=ss.find_all('td')
    i=1
    j=1
    k=0
    m=1
    y=2016
    u_list=[]
    u_list=playerurl.split('/')
    #workbook=Workbook()
    worksheet=workbook.create_sheet(u_list[-2]+u_list[-3],p)
    p+=1
    worksheet.cell(row=i,column=j).value="name"
    j=2
    while j<=25:
        worksheet.cell(row=i,column=j).value=content[m].string
        m+=1
        j+=1
    i=i+1
    j=1
    while i <= len(year)+1:
        worksheet.cell(row=i,column=j).value=u_list[-2]+u_list[-3]
        j+=1
        worksheet.cell(row=i,column=j).value=y
        y=y-1
        j += 1
        while j<=25:
            worksheet.cell(row=i,column=j).value=str(data[k].string)
            k += 1
            j += 1
        i += 1
        j=1
    #workbook.save(target_dir+u_list[-2]+u_list[-3]+'.xlsx')
    print(u_list[-2]+u_list[-3])
workbook.save(target_dir+'player.xlsx')

说实话我一开始有把这段代码放出来的想法时,也没想到它会这么丑···

这也能看出良好且一致的代码风格有多重要。

virtualenv


很抱歉之前以为这个教程没有讲python环境的问题,实在没想到他会放到这么后面。不过之前的链接依然有价值,因为那讲的是在windows/mac下创建python虚拟环境的方法。

  • 安装virtualenv:
    • sudo apt-get update
    • sudo apt-get install python3-pip
    • sudo pip3 install virtualenv
  • 创建虚拟环境virt1:
    • virtualenv virt1
  • 激活虚拟环境virt1:
    • source virt1/bin/activate

单元测试


在 Python 里我们有 unittest 这个模块来帮助我们进行单元测试。

  • unittest单元测试
  • 异常测试
  • mounttab.py 中只有一个 mount_details() 函数,函数分析并打印挂载详细信息。
  • coverage测试覆盖率

Flask介绍


Flask 是一个 web 框架。也就是说 Flask 为你提供工具,库和技术来允许你构建一个 web 应用程序。这个 web 应用程序可以是一些 web 页面、博客、wiki、基于 web 的日历应用或商业网站。

Flask 属于微框架(micro-framework)这一类别,微架构通常是很小的不依赖于外部库的框架。这既有优点也有缺点,优点是框架很轻量,更新时依赖少,并且专注安全方面的 bug,缺点是,你不得不自己做更多的工作,或通过添加插件增加自己的依赖列表

什么是模板引擎?

使用模板你可以设置你的页面的基本布局,并提及哪个元素将发生变化。这种方式可以定义您的网页头部并在您的网站的所有页面使它保持一致,如果你需要改变网页头部,你只需要更新一个地方。

使用模板引擎创建/更新/维护你的应用会节约你很多时间。

flask框架创建的简单页面如下,首先是index页面:

1506386-20190310231607731-498530968.png

然后是hello页面:

1506386-20190310231611806-953240294.png

最后是使用了master模板的hello页面:

1506386-20190310231615758-341189377.png

总结


这周因为身体原因做作业时间比较紧,许多细节没有深究,比如linux虚拟机和宿主windows系统无法正常通信,kali在桥接模式下无法连接外网等情况。另外在搭建的网络攻防实验环境中蜜罐机怎么配置也没搞明白。尤其是kali下自带工具的使用,下周尽量补回来。

转载于:https://www.cnblogs.com/thechosenone95/p/10507562.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值