《Kali渗透基础》06. 主动信息收集(三)

Kali学习 | 信息收集:2.1 枚举服务 Kali学习 | 信息收集:2.1 枚举服务枚举服务介绍DNS枚举工具DNSenumDNS枚举工具fierceSNMP 枚举工具SnmpwalkSNMP枚举工具SnmpcheckSMTP 枚举工具smtp-user-enum 枚举服务介绍 枚举是一类程序,它允许用户从一个网络中收集某一类的所有相关信息。 本节将介绍DNS枚举和SNMP枚举技术。 DNS枚举可以收集本地所有DNS服务和相关条目。 D... 阅读详情


本系列侧重方法论,各工具只是实现目标的载体。
命令与工具只做简单介绍,其使用另见《安全工具录》。

本文以 kali-linux-2022.3-vmware-amd64 为例。

1:服务识别

识别开放端口上运行的应用与服务,可以提高攻击效率。

方法:

  • Banner 捕获
    • 建立连接后获取 Banner
  • 服务指纹识别
  • 另类识别方法
    • 特征行为
    • 可用于识别操作系统

Banner:指目标主机在响应请求时返回的服务标识信息。通常是一个文本字符串,包含了软件开发商、软件名称、服务类型,版本号等。
根据 Banner 抓取的信息有限,且不完全准确。

得到服务版本号可以直接发现已知漏洞和弱点。

1.1:NetCat

基本语法:
nc 选项

部分选项:

参数说明
-nnumeric-only IP addresses, no DNS.
-vverbose [use twice to be more verbose].

示例01:尝试连接端口以获取服务信息。
nc -nv 1.1.1.1 22

基于 banner 捕获。

1.2:Socket

在 Python 中,socket 标准库用于网络通信,提供的编程接口用于创建网络套接字(socket)对象,以实现网络连接、数据传输和通信协议。

示例01:banner_grab.py。基于 banner 捕获。

#!/usr/bin/python

import socket
import select
import sys

if len(sys.argv) != 4:
    print("Usage - ./banner_grab.py <target-ip> <first port> <last port>")
    print("Example - ./banner_grab.py 10.1.1.1 1 250")
    sys.exit()

ip = sys.argv[1]
start_ip = int(sys.argv[2])
end_ip = int(sys.argv[3])

for port in range(start_ip, end_ip):
    try:
        target = (ip, port)
        ban_grab = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        ban_grab.connect(target)
        ready = select.select([ban_grab], [], [], 1)

        if ready[0]:
            print("TCP Port " + str(port) + " - " + ban_grab.recv(4096).decode())
            ban_grab.close()
            
    except Exception as e:
        # print(e)
        pass

1.3:dmitry

Deepmagic Information Gathering Tool
“There be some deep magic going on”

基本语法:
dmitry 选项

部分选项:

参数说明
-pPerform a TCP port scan on a host.
-bRead in the banner received from the scanned port.

示例01:

dmitry -pb 1.1.1.1

1.4:nmap

Nmap 可以发送一些列复杂的探测,根据响应特征来分析识别服务。

基本语法:
nmap 选项

部分选项:

参数说明
-sS/sT/sA/sW/sMTCP SYN/Connect()/ACK/Window/Maimon scans.
-sVProbe open ports to determine service/version info.

示例01:基于 banner 捕获识别。

nmap -sT 1.1.1.1 -p 1-100 --script=banner

“ banner ” 脚本用于服务识别。基于 banner 捕获。

示例02:基于 nmap 的识别方法。

nmap 1.1.1.1 -p 1-100 -sV

2:操作系统识别

操作系统识别技术种类繁多。好的工具往往采用多种技术组合来识别。

一个简易识别方法,TTL 起始值:

  • Windows:128
  • Linux:64
  • 某些 Unix:256

2.1:Scapy

命令行输入 scapy 进入或作为 python 模块使用。

示例01:ttl_os.py。基于 ttl 的简单验证。

#!/usr/bin/python

import logging

from scapy.all import *
from scapy.layers.inet import IP, ICMP

logging.getLogger("scapy.runtime").setLevel(logging.ERROR)

if len(sys.argv) != 2:
    print('Usage - ./ttl_os.py <IP address>')
    print('Example - ./ttl_os.py 10.1.1.1')
    sys.exit()

ip = sys.argv[1]

ans = sr1(IP(dst=str(ip))/ICMP(), timeout=1, verbose=0)

if ans == None:
    print('No response')
elif int(ans[IP].ttl) <= 64:
    print('Host is Linux/Unix')
else:
    print('Host is Windows')

2.2:nmap

Nmap 使用多种技术识别操作系统。

基本语法:
nmap 选项

部分选项:

参数说明
-OEnable OS detection.

示例01:

nmap 1.1.1.1 -O

2.3:p0f

p0f(Passive OS Fingerprinting),用于被动操作系统指纹识别。

通过监控网络流量中的数据包并分析其特征,来确定操作系统类型和版本。

被动操作系统识别在有 IDS(Intrusion Detection System,入侵检测系统)时能派上用场。

基本语法:
p0f [选项]

示例01:开始流量监控并分析。

p0f

3:SNMP 扫描

信息的金矿。
经常被错误配置。

SNMP(Simple Network Management Protocol)是一种用于网络设备管理和监控的协议,提供了一种标准的方式来收集、组织和传输网络设备的信息。

  • SNMP 常使用 161 端口。

SNMP 允许网络管理员监视和管理网络中的设备,例如路由器、交换机、服务器和打印机等。

SNMP 基本工作原理:
管理器发送请求(Get、Set、Trap 等)到目标设备,目标设备响应请求并提供所需的信息。包括设备状态、性能指标、配置参数、事件通知等。

MIB(Management Information Base)是 SNMP 协议定义的一种树形网络设备管理功能数据库,用于描述网络设备中可管理的对象和属性。

每个网络设备都有一个特定的 MIB,其中包含了可查询和操作的对象。通过 SNMP 协议,管理器可以使用 OID(对象标识符)来访问和操作 MIB 中的信息。

3.1:onesixtyone

onesixtyone 用于 SNMP 字典攻击。

主要原理是尝试使用不同的社区字符串(community string)对目标设备执行 SNMP 查询,以发现设备的 MIB 数据。

Community String 是用于访问和管理网络设备的一种凭证或密码。SNMP 中,Community String 被用作一种简单的身份验证机制,用于控制对设备的访问权限。

基本语法:
onesixtyone 选项

部分选项:

参数说明
Community String指定社区字符串。
-c <communityfile>file with community names to try.
-o <outputfile>output log.
-w nwait n milliseconds (1/1000 of a second) between sending packets (default 10).

示例01:使用 public 作为社区字符串。

onesixtyone 1.1.1.1 public

示例02:

onesixtyone -c /usr/share/doc/onesixtyone/dict.txt 1.1.1.1 -o my.log -w 100

3.2:snmpwalk

snmpwalk 用于执行 SNMP Walk 操作,用于获取网络设备的管理信息。

SNMP Walk 操作:
是一种遍历 SNMP 设备的 MIB 树的过程,以收集设备上可用的 SNMP 对象和相关信息。

基本语法:
snmpwalk 选项

部分选项:

参数说明
-c COMMUNITYset the community string.
-v 1/2c/3specifies SNMP version to use.

示例01:

snmpwalk 1.1.1.1 -c public -v 2c

3.3:snmpcheck

snmpcheck 通过执行一系列 SNMP 查询和测试,检查目标设备的 SNMP 实现和配置,并提供相关的信息和报告。

基本语法:
snmpcheck 选项

4:SMB 扫描

SMB(Server Message Block)是一种用于在计算机网络上共享文件、打印机和其他资源的协议。最初由微软开发,已成为主流网络操作系统中常见的文件和打印共享协议之一。

  • SMP 常使用 139 或 445 端口。

SMB 协议允许客户端通过网络与服务器通信,并请求对文件和资源的访问、读取、写入和管理。通过 SMB,用户可以在局域网或广域网上共享文件夹、打印机和其他网络资源。

  • 微软历史上出现安全问题最多的协议
  • 实现复杂
  • 默认开放
  • 文件共享

4.1:nmap

基本语法:
nmap 选项

部分选项:

参数说明
--script=<Lua scripts>Lua scripts is a comma separated list of directories, script-files or script-categories.
--script-args=<n1=v1,[n2=v2,...]>provide arguments to scripts.

可以到 /usr/share/nmap/scripts/ 目录下查看所有 nmap 脚本。
可以查看某个脚本内容以了解其功能与参数使用。

示例01:简单扫描 139,445 端口。

nmap -v -p 139,445 1.1.1.1-20

示例02:

nmap 1.1.1.1 -p 139,445 --script=smb-os-discovery.nse

smb-os-discovery.nse 脚本用于通过 SMB 协议进行信息发现和识别。

4.2:nbtscan

nbtscan 用于扫描局域网中的 NetBIOS(Network Basic Input/Output System)信息。

NetBIOS 是一种在早期 Windows 网络中广泛使用的协议,用于在局域网上识别和通信。

鉴于现在的发展,nbtscan 在对付古老的系统时可能会起到作用,现在可能用处已经不大。

基本语法:
nbtscan 选项

部分选项:

参数说明
-ruse local port 137 for scans. Win95 boxes respond to this only.

示例01:

nbtscan -r 192.168.60.0/24

4.3:enum4linux

enum4linux 用于枚举和收集信息。通过与目标系统的 SMB 协议交互获取信息。

基本语法:
enum4linux 选项

部分选项:

参数说明
-aDo all simple enumeration (-U -S -G -P -r -o -n -i).

示例01:

enum4linux -a 192.168.60.10

5:SMTP 扫描

SMTP(Simple Mail Transfer Protocol)是一种用于电子邮件传输的标准协议。

SMTP 本身没有提供任何身份验证或加密机制,需要结合其他安全机制确保邮件传输的安全性。

SMTP 扫描主要用来发现邮件账号。

5.1:NetCat

基本语法:
nc 选项

示例01:

nc -nv 1.1.1.1 25

5.2:nmap

基本语法:
nmap 选项

示例01:

nmap smtp.163.com -p 25 --script=smtp-enum-users.nse --script-args=smtp-enumusers.methods={VRFY}

smtp-enum-users.nse 用于枚举SMTP服务器上存在的有效用户。
smtp-enumusers.methods={VRFY} 指定脚本使用 VRFY 方法进行用户枚举。

示例02:

nmap smtp.163.com -p 25 --script=smtp-open-relay.nse

smtp-open-relay.nse 用于检测 SMTP 服务器是否开放了中继(Open Relay)功能。

中继是指允许未经身份验证的第三方通过 SMTP 服务器发送电子邮件的功能。

5.3:smtp-user-enum

smtp-user-enum 用于枚举 SMTP 服务器上存在的有效用户。

基本语法:
smtp-user-enum 选项

部分选项:

参数说明
-M modeMethod to use for username guessing EXPN, VRFY or RCPT (default: VRFY).
-U fileFile of usernames to check via smtp service.
-t hostServer host running smtp service.

示例01:

smtp-user-enum -M VRFY -U users.txt -t 10.0.0.1

6:防火墙识别

通过发送数据包并检查回包,可能识别端口是否经过防火墙过滤。

主要情况有以下四种:

在这里插入图片描述

由于设备的不同,结果存在一定误差。

6.1:Scapy

示例01:FW.py。基于发送包并检查回包。

#!/usr/bin/python

import logging
import sys

from scapy.all import *
from scapy.layers.inet import IP, TCP

logging.getLogger("scapy.runtime").setLevel(logging.ERROR)

if len(sys.argv) != 3:
    print('Usage - ./FW.py <IP address> <Port>')
    print('Example - ./FW.py 10.1.1.1 443')
    sys.exit()

ip = sys.argv[1]
port = int(sys.argv[2])

ACK_response = sr1(IP(dst=str(ip))/TCP(dport=port, flags='A'), timeout=1, verbose=0)
SYN_response = sr1(IP(dst=str(ip))/TCP(dport=port, flags='S'), timeout=1, verbose=0)

if (ACK_response == None) and (SYN_response == None):
    print('Port is either unstatefully filtered or host is down')
elif ((ACK_response == None) or (SYN_response == None)) and not ((ACK_response == None) and (SYN_response == None)):
    print('Stateful filtering in place')
elif int(SYN_response[TCP].flags == 18):
    print('Port is unfiltered and open')
elif int(SYN_response[TCP].flags == 20):
    print('Port is unfiltered and closed')
else:
    print('Unable to determine if the port is filtered')

6.2:nmap

nmap 带有一系列防火墙过滤检测功能。

基本语法:
nmap 选项

示例01:

nmap -sA 1.1.1.1 -p 22

7:负载均衡识别

负载均衡器是一种网络设备或软件,用于在多个服务器之间平衡传入流量,以提高性能和可靠性。

  • DNS-Loadbalancing:DNS 轮巡,智能 DNS。
  • HTTP-Loadbalancing。

7.1:lbd

LBD 用于查询和检测负载均衡。

lbd - load balancing detector.

基本语法:
lbd 选项

示例01:

lbd www.baidu.com

8:WAF 识别

WAF(Web Application Firewall,Web 应用防火墙)用于保护 Web 应用程序免受常见的网络攻击。

8.1:wafw00f

wafw00f 用于识别 WAF。通过分析 HTTP 响应头、页面内容和错误消息等信息,来识别是否存在 WAF 及可能的 WAF 类型。

The Web Application Firewall Fingerprinting Toolkit.

基本语法:
wafw00f 选项

部分选项:

参数说明
url要探测的网站 url。
-l, --listList all WAFs that WAFW00F is able to detect.

示例01:

wafw00f http://www.baidu.com

8.2:nmap

基本语法:
nmap 选项

示例01:

nmap www.baidu.com --script=http-waf-detect.nse

http-waf-detect.nse 脚本用于检测 WAF 的存在。


人世几回伤往事,山形依旧枕寒流。

——《西塞山怀古》(唐)刘禹锡

kali linux的工具详细介绍——信息收集和web程序 我们都知道kali的工具比较多,很多人对kali的各个工具的用途也是想全面了解。但kali的工具虽然多,常用的就那么几个。 我们常用的都在以下几个里面 01 - 信息收集 03 - web程序 05 - 密码攻击 06 - 无线攻击 今天主要介绍kali工具里面的信息收集和web程序两个工具的用途: ** 1.信息收集 信息收集: 我们渗透过程中首先会对目标进行一个详细的信息收集 这个收集包括管理... 阅读详情

相关推荐

欧拉 openEuler 20.03安装配置tigervnc-server

欧拉 openEuler 20.03安装配置tigervnc-server openEuler VNC

郭亚望 8954

6-12漏洞利用-枚举smtp用户名

我们的smtp用户名很有可能就是我们系统上的用户名,这个时候,我们通过smtp枚举出来的用户名,就可以进行下一步的操作例如,我们当前smtp服务器有开放smtp服务,那我们ssh当中的用户名,很有可能就是我们smtp的用户名。...

山兔的博客 2229

tkinter使用label视频播放

tkinter是python的界面开发包 使用tkinter显示视频流的一个办法是使用label来逐帧显示图片。 from Tkinter import * from PIL import ImageTk, Image import cv2 root = Tk() # Create a frame app = Frame(root, bg="white") app.grid() # Create a label in the frame lmian = Label(app) lmain.grid(

六十英里的专栏 5527

【kali-信息收集】(1.2)SNMP枚举:Snmpwalk、Snmpcheck;SMTP枚举:smtp-user-enum

【kali-信息收集】SNMP枚举、SMTP枚举

1911

OpenPnP/Arduino - 二手西门子电动飞达的通讯协议解析与实战

本文详细解析了二手西门子电动飞达的通讯协议,并通过Arduino控制板实现与开源贴片平台OpenPnP的集成。文章涵盖了硬件接口定义、协议帧结构分析、Arduino控制实战、OpenPnP集成技巧以及二手飞达翻新指南,为开发者提供了全面的技术指导和实战经验。

weixin_30411819的博客 202

用人话讲明白线性回归LinearRegression

目录 什么是回归 一元线性回归 损失函数 最小二乘估计 小结 1. 什么是回归 当我们学习一门新课程、接触一个新专业时,总会对该领域的专有名词感到困惑,甚至看完解释仍难以理解其含义。在我们一起学习machine learning的过程中,我会尽量对相关名词用“人话”做一遍解释,以减少学习的“痛苦感”。 譬如今天要学的线性“回归”,这个回归(regression)和我们平时说的“回归祖国”的回...

化简可得 1万+

smtp-user-enum:精准枚举 SMTP 用户的利器!全参数详细教程!Kali Linux教程!黑客渗透测试!

是一款高效的SMTP用户名枚举工具,适用于安全测试。通过灵活的选项和多种枚举模式,帮助测试人员快速识别目标系统上的有效用户名,提升渗透测试效率。

qq_24305079的博客 1160

YOLO11改进|注意力机制篇|引入先验卷积注意力机制CPCA

YOLO11中添加先验卷积注意力机制CAPA

A1983Z的博客 2375

smtp-user-enum 项目教程

smtp-user-enum 项目教程 1. 项目的目录结构及介绍 smtp-user-enum/ ├── CONTRIBUTING.md ├── LICENSE.txt ├── Makefile ├── README.md ├── setup.cfg ├── setup.py └── smtp-user-enum CONTRIBUTING.md: 贡献指南文件,指导开发者如何为项目贡献代码。...

gitblog_00026的博客 747

Unreal5从入门到精通之一文搞懂Unreal的C++代码编译之谜

我们在开发Unreal项目时,如果时蓝图模板的项目,一般问题不大,因为当你修改完蓝图,点击编译Compile+保存Save,就可以继续开发了。这对于开发者来说也非常友好。但是,如果你使用的C++模板开发项目,代码编译一切都变得魔幻起来,IDE(VS/Rider)里面有编译,编辑器里面也有编译,有什么区别呢?我们来列举几个新手常碰到的问题。1.代码我明明新建了,编辑器里怎么看不到?2.昨天我新家的功能运行的好好的,今天怎么感觉还是老逻辑。或者昨天加的新代码,新蓝图不见了。

TxNet 1606

R语言中的Gamma分布函数

在R语言中,我们可以使用最大似然估计(Maximum Likelihood Estimation,MLE)或最小二乘估计(Least Squares Estimation,LSE)等方法来估计Gamma分布的参数。本文介绍了在R语言中使用Gamma分布函数的基本操作,包括生成随机变量、计算概率密度函数和累积分布函数,以及参数估计和拟合。函数来生成Gamma分布的随机变量,计算概率密度函数(PDF)和累积分布函数(CDF),以及进行参数估计和拟合。要计算Gamma分布的累积分布函数(CDF),我们可以使用。

ByteWhiz的博客 1632

Kali Linux渗透测试之信息收集

0x00 前言 这是一篇信息收集工具使用学习记录,主要参考《Kali Linux渗透测试技术详解》一书。 虽然觉得Metaspoit挺好用的(小声bb),自带的工具也得了解一下 今天也要加油呀~ 0x01 枚举服务 DNS枚举工具 1.1 DNSenum dnsenum --enum baidu.com 1.2 fierce fierce -dns baidu.com SNMP枚举 2.2 ...

0nc3的博客 689

Codex CLI 手机号验证失败?5 种接码平台实测对比与绕过地区限制的 3 步操作

揭示 Codex CLI 手机号验证失败的真实原因在于上下文污染而非网络问题,分析其通过 ASN、Accept-Language 和 TLS SNI 三重加权风控的机制,并实测对比 5 种接码平台在 DNS 解析路径、ASN 干净度和复用间隔上的差异,提出剥离浏览器指纹、固化 TLS SNI、隔离

weixin_42627902的博客 734

01.WEB渗透之信息收集

1、介绍信息收集相关概念、作用、收集目标。2、介绍GoogleHacking相关知识、演示搜索语法的使用方法。3、介绍通过目标网站收集、分析信息,如何利用站长工具收集信息。4、介绍针对目标系统使用的平台软件进行有针对性的漏洞搜索方法。5、介绍使用Nmap、AWVS等数个扫描工具进行信息收集。6、介绍在KaliLinux下使用多种工具进行信息收集。7、介绍伪造身份,在社交网站中挖掘、套取有用的信息。

weixin_44059709的博客 1085

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

用Kali Linux做渗透测试,这篇就够了!

​web渗透测试旨在通过查找目标网站由于技术原因所造成的漏洞,而导致网站使他人攻击。测试的本质是找出漏洞并提交他人修复。本文可能存在各种攻击手段和攻击方法

fly_enum的博客 2288

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

kali安全渗透(开篇)

Kali Linux 是一个基于 Debian 的 Linux 发行版,旨在进行高级渗透测试和安全审计。Kali Linux包含数百种工具,适用于各种信息安全任务,如渗透测试,安全研究,计算机取证和逆向工程。KaliLinux 由公司 Offensive Security 开发,资助和维护。Offensive [əˈfensɪv] 攻击性的;Offensive Security 进攻性安全。

xnxqwzy的博客 2046

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

【红队思路】渗透测试&红队之信息收集,从零基础入门到精通,收藏这一篇就够了!

无论是做渗透测试还是红队(Red Team)的工作,信息收集都是工作前期必不可少的一个环节。渗透测试的本质是信息收集,资产信息越多,可攻击面就越广,找到突破口的机会就越大。但随着安全行业的蓬勃发展,各类信息收集技术与工具层出不穷,令人眼花缭乱。以下总结本人在实际渗透工作中常用的信息收集方法和工具。鉴于不同场景与个人习惯差异,只有契合自身需求的才是最为适宜的。本文仅旨在阐述个人见解,期望各位师傅能够依据自身经验与认知,对文中内容进行批判性地思考与探讨。

小司机的奥拓 1530

Kali Linux 安全渗透核心总结

为了帮助大家更好的学习网络安全,小编给大家准备了一份网络安全入门/进阶学习资料,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂,所有资料共282G,朋友们如果有需要全套网络安全入门+进阶学习资源包,可以点击免费领取(如遇扫码问题,可以在评论区留言领取哦)~😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓👉优快云大礼包🎁:全网最全《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)👈​!网络安全源码合集+工具包​​网络安全面试题。

m0_59598029的博客 1719

2025版最新Kali Linux渗透测试教程(全面详细)零基础入门到精通,收藏这篇就够了

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。这也是耗费了大白近四个月的时间,吐血整理,文章非常非常长,觉得有用的话,希望粉丝朋友帮忙点个**「分享」,它预装了许多渗透测试工具,是专为网络和安全测试、渗透测试以及数字取证等任务而设计的强大操作系统。木马免杀问题与防御********必知必会。安装并配置NVIDIA显卡驱动。

Python_0011的博客 4020

必学!Kali Linux 安全渗透核心总结

为了帮助大家更好的学习网络安全,小编给大家准备了一份网络安全入门/进阶学习资料,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂,所有资料共282G,朋友们如果有需要全套网络安全入门+进阶学习资源包,可以点击免费领取(如遇扫码问题,可以在评论区留言领取哦)~😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓👉优快云大礼包🎁:全网最全《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)👈​!网络安全源码合集+工具包​​网络安全面试题。

m0_59598029的博客 658

Kali Linux 安全渗透核心总结,444页核心知识点

为了帮助大家更好的学习网络安全,小编给大家准备了一份网络安全入门/进阶学习资料,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂,所有资料共282G,朋友们如果有需要全套网络安全入门+进阶学习资源包,可以点击免费领取(如遇扫码问题,可以在评论区留言领取哦)~😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓👉优快云大礼包🎁:全网最全《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)👈​!

Innocence_0的博客 962

渗透测试工具Kali Linux安装与使用

在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。11是官网下载的镜像文件,在Vmware中安装的时候有图文提示,一路安装正常,也设置了普通用户和root的登录密码,默认安装成功进入了图形化界面,作为专业开发我肯定想让他进入命令行模式,我在图形登录界面试了一下Ctro+Alt+F1-F6试了一下,Ctro+Alt+F3进入命令行,然后切换到root用户。

wangluoanquan111的博客 1432
上一篇: 《Kali渗透基础》05. 主动信息收集(二)
下一篇: 《Kali渗透基础》07. 弱点扫描(一)
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值