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

视频学习


openvas使用

openvas还是一个不错的工具,之前的作业中已经安装好了。

要想开始一个扫描,可以首先选择configuration中的target新建一个target,不过我还是比较喜欢scan目录下task页面的advanced task wizard


对Ubuntu靶机的扫描结果如下:


漏洞分析扫描工具

  • web扫描工具golismero

信息过于杂乱,显示效果不好,报告生成不够规范,但为编写扫描器提供了代码和思路。扫描百度:



扫描百度会莫名卡住:


扫描靶机结果如图:

  • 漏洞扫描工具nikto

使用比较简单的一个工具,扫描Ubuntu靶机效果如图:


  • lynis信息收集

收集本机信息:


  • unix-privesc-check

标准模式检测系统配置有无漏洞,是否有被提权的风险:


web爬行

对web页面、账户等进行枚举,kali下将字典存放在目录/usr/share/wordlists/下。

  • apach_user枚举

运行失败了:


  • Cutycapt网站截图

截图命令即结果如下:




  • DIRB目录扫描

对百度扫描结果如下(结果非常多,失效的网址也能扫描到):


  • Dirbuster图形化目录扫描

界面如图:


web漏洞扫描

  • cadaver

cadaver是一个用来浏览和修改webdav共享的Unix命令行程序,就像subversion客户端,它使用了neon的http库,neon和cadaver人作者是同一个人。cadaver是自由软件。使用cadaver就像使用命令行的FTP程序,因此他很适合基本的webdav调试。它可以以压缩的方式上传和下载文件,也会检验属性,拷贝,移动和锁定和检索文件。


  • DAVTest

DAVTest通过上载测试可执行文件来测试启用WebDAV的服务器,然后(可选)上载允许命令执行或直接在目标上执行其他操作的文件。 它旨在让渗透测试人员快速,轻松地确定启用的DAV服务是否可利用。


  • deblaze

此工具将允许您对闪存远程终点执行方法枚举和询问。 Deblaze在基于闪存的网站的一些安全评估中成为必需品,这些网站大量使用了闪存远程处理。 我门需要一些东西让我能够深入挖掘技术并找出安全漏洞。 在目前为止我见过的所有服务器上,这些名称都不区分大小写,这使得暴力破解变得更加容易。 通常,服务器不会记录HTTP\POST请求,因此在监视不良的系统上可能不会注意到强制执行。


  • Fimap

fimap是一个小python工具,可以自动查找,准备,审计,利用甚至谷歌搜索webapps中的本地和远程文件包含错误。 fimap应该像sqlmap一样仅用于LFI / RFI错误而不是SQL注入。 它目前正在大力发展,但它可以使用。


  • grabber

Grabber是一个Web应用程序扫描程序。 基本上它会检测到您网站中的某些漏洞。 Grabber很简单,不是快速但便携,而且适应性强。 该软件旨在扫描个人,论坛等小型网站,绝对不是大应用:它需要很长时间才能充斥您的网络。


  • Joomla Scanner

OWASP JoomScan([Joom] la Vulnerability [Scan] ner的缩写)是一个perl编程语言的开源项目,用于检测Joomla CMS漏洞并对其进行分析。

为何选择OWASP JoomScan?

如果你想在Joomla CMS上进行渗透测试,OWASP JoomScan是你有史以来最棒的一次! 该项目比以往任何时候都更快,并使用最新的Joomla漏洞进行更新。


  • skipfish

Skipfish是一种活跃的Web应用程序安全侦察工具。 它通过执行递归爬网和基于字典的探针为目标站点准备交互式站点地图。 然后使用来自许多活动(但希望无中断)安全检查的输出来注释生成的映射。 该工具生成的最终报告旨在作为专业Web应用程序安全评估的基础。


  • uniscan-gui

Uniscan是一个简单的远程文件包含,本地文件包含和远程命令执行漏洞扫描程序。


  • w3af

w3af是一个Web应用程序攻击和审计框架,旨在识别和利用所有Web应用程序漏洞。 该包为框架提供了图形用户界面(GUI)。 如果只需要命令行应用程序,请安装w3af-console。 该框架被称为“网络的metasploit”,但它实际上远不止于此,因为它还使用黑盒扫描技术发现了Web应用程序漏洞! w3af核心及其插件完全用Python编写。 该项目有130多个插件,可识别和利用SQL注入,跨站点脚本(XSS),远程文件包含等。

  • wapiti

wapiti的工作方式与nikto类似,也采用黑盒的方式扫描(直接对网页进行扫描,而不需要扫描Web应用程序的源代码),寻找其中潜在的安全缺陷,但不像nikto提供测试用例库,而是实现了内置的匹配算法。支持生成多种格式的安全测试验证报告。使用时需注意脚本里固化了第三个是web站点参数。


  • webshag

Webshag是一个多线程,多平台的Web服务器审计工具。 它是用Python编写的,它为Web服务器审计收集了常用的功能,如网站抓取,URL扫描或文件模糊测试。

Webshag可用于通过HTTP或HTTPS,通过代理和使用HTTP身份验证(基本和摘要)扫描Web服务器。 除此之外,它还提出了创新的IDS规避功能,旨在使请求之间的关联更复杂(例如,每个请求使用不同的随机HTTP代理服务器)。

  • websploit

WebSploit是一个可用于以下工作的开源项目:社会工程学、扫描,抓取和分析Web、自动漏洞利用、支持网络攻击、Autopwn - 从Metasploit用于扫描和利用目标服务、wmap - 从Metasploit wmap插件中使用的扫描,爬虫目标、format infector - 注入反向并将有效负载绑定到文件格式、phpmyadmin扫描仪、CloudFlare解析器、LFI Bypasser、Apache用户扫描程序、迪尔布鲁特、管理员查找器、MLITM攻击 - 中间人,XSS网络钓鱼攻击、MITM - 中间人攻击、Java Applet攻击、MFOD攻击矢量、USB感染攻击、ARP Dos攻击、网络杀手攻击、假更新攻击、假接入点攻击、无线蜜罐、Wifi Jammer、Wifi Dos、蓝牙POD攻击。

教材内容学习总结


网络嗅探

网络嗅探作为攻击者经常使用的内网绳头技术,通常在攻击者获得内部网络中一台主机的访问权后实施,能够被动地、静默地嗅探网络上传输的数据,并从中窃取机密的信息,包括各类用户名和口令、电子邮件正文及附件、网络打印的文档等。

网络管理员可以利用网络嗅探来捕获与分析网络的流量信息,以便找出所关心网络中潜在的问题。

网络嗅探可以按照所监听的链路层网络进行分类,也可以按照实现形式分为软件嗅探器与硬件嗅探器两种。

以太网络在实际部署中可以分为共享式网络与交换式网络两种,其中交换式网络可以有效地避免网络广播风暴,减少网络数据被嗅探的风险。但即使在春交换的网络中,还是可以采用如下技术手段使得本不应到达的数据包到达本地:

  • MAC地址泛洪攻击
  • MAC欺骗
  • ARP欺骗

网络协议分析

网络协议分析的典型过程包括以下几个步骤:

  1. 首先网络嗅探得到链路层传输的二进制数据包,大多数情况下是以太网数据帧。
  2. 对以太网数据帧进行结构分析。
  3. 进一步对IP数据包进行分析。
  4. 继续根据TCP或UDP的目标端口确定具体的应用层协议。
  5. 依据相应的应用层协议对数据进行整合恢复。

教材实践内容


开启wireshark,打开目标bbs网站https://bbs.nubia.com并登陆,此时wireshark中已经抓取到了大量数据包。

通过ping命令或的目标bbs网站的IP:



然后在wireshark中按照IP过滤:


但是正如我们知道的https传输加密数据,我盯了半天也没看出什么来:


换一个网站,随便找一个炒股的网站 http://www.yzskj.com,先注册,登录时抓包,这种网站果然不会让人失望,第一个发往目标服务器的http包中找到了明文的账号密码:

talnet也是同理,telnet的报文也是明文传输的。

Black Hat Python3 Chapter 3


本章的代码是层层递进的关系,这里分析一下其中的“集大成者”scanner,前面的就不谈了。
先列几段关键位置代码。

  • 验证信息:
magic_message = "PYTHONRULES!"

注意到这是一个字符串类型。

  • 发送UDP包:
def udp_sender(add, m):
    time.sleep(5)
    sender = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    for ip in IPNetwork(add):
        try:
            sender.sendto(bytes(m, encoding='utf-8'), (str(ip), 65333))
        except:
            print("error")

首先注意sendto函数中发送的信息把message转为了bytes类型,其次则是在except中会打印一条信息,而不是原程序中的pass。实际上抛出异常这里最好写明抛出的异常类型,但这方面我还不太清楚。

  • 创建单独的线程发送UDP包。
t = threading.Thread(target=udp_sender, args=(subnet, magic_message))
t.start()
  • 判断收到的包是否是我们发送包的回应:
if str(raw_buffer[len(raw_buffer) - len(magic_message):])[2:-1] == magic_message:

我们上面说过magic_message是str类型,而它在被发送时转换成了bytes类型,现在我们收到的回复同样是bytes类型,转换成str类型才能比较。而bytes类型转换为str类型后实际上是b'str',因此如原程序那般:

if raw_buffer[len(raw_buffer) - len(magic_message):] == magic_message:

就行不通了。

scanner运行结果如下:


代码链接

Black Hat Python3 Chapter 3

猜你喜欢

转载自www.cnblogs.com/thechosenone95/p/10575420.html