网络安全密码爆破学习整理,欢迎学习交流。
一、nmap
nmap IP 回车 # 对目标主机进行端口扫描
nmap -sT IP # 使用 -sT 来实现 tcp 全连接扫描
nmap -sS IP # 使用 SYN 半开连接扫描
nmap -sN -p 21,22,80,1433,3306,3389 IP -oX dk.html # 使用 NULL 扫描,不会设置任何控制位, -p 针对特定的端口进行扫描, -oX 在当前目录生成dk.html文件,保存扫描信息
nmap -sV IP # 探测扫描服务详细版本信息。
二、hydra
hydra(九头蛇) 语法:
完整参数可以使用-h来查看:hydra -h
-l 指定用户名
-p 指定密码
-L 指定用户名字典
-P 指定密码字典
-C 指定所用格式为"user:password"的字典文件
-e
n null,表示尝试空密码
s same,把用户名本身当做密码进行尝试
r 反向,把用户名倒叙,当做密码进行尝试。
-vV 显示执行细节
-o 保存执行结果
-s 指定非默认端口
-M 指定破解的目标文件,如果不是默认端口,后面跟上":port"
-t 指定爆破时的任务数量(默认16)
hydra IP ftp -L user.txt -P wordlist.txt -t 4 # -l (小写),指定用户破解 -L 指定用户名字典破解, -p(小写)指定密码破解,-P 指定密码字典 ftp:指定服务类型为ftp
三、crunch
crunch 语法:
crunch 3 3 tyu -o user.txt # 在当前目录下生成 user.txt 字典文件,用户名长度为 3 ,用户名包含元素为 t、p、f 三元素
-t @,%^
指定一个模式,例如:@@god@@@@,其中只有 @、,、% 和 ^ 会发生变化。
@ 将插入小写字符。
, 将插入大写字符。
% 将插入数字。
^ 将插入符号。
EXAMPLES
示例 1
crunch 1 8
crunch 将显示一个单词列表,从 a 开始,到 zzzzzzzz 结束。
示例 2
crunch 1 6 abcdefg
crunch 将使用字符集 abcdefg 显示一个单词列表,从 a 开始,到 gggggg 结束。
示例 3
crunch 1 6 abcdefg\
字符串末尾有一个空格。为了让 crunch 使用空格,您需要使用 \ 字符进行转义。在这个例子中,您也可以在字母周围加上引号,而不需要使用 \,即 "abcdefg "。crunch 将使用字符集 abcdefg 显示一个单词列表,从 a 开始,到(6个空格)结束。
示例 4
crunch 1 8 -f charset.lst mixalpha-numeric-all-space -o wordlist.txt
crunch 将使用 charset.lst 中的 mixalpha-numeric-all-space 字符集,并将单词列表写入名为 wordlist.txt 的文件。文件将以 a 开头,并以 " " 结束。
示例 5
crunch 8 8 -f charset.lst mixalpha-numeric-all-space -o wordlist.txt -t @@dog@@@ -s cbdogaaa
crunch 应该使用 charset.lst 中的 mixalpha-number-all-space 字符集生成一个 8 个字符的单词列表,并将单词列表写入名为 wordlist.txt 的文件。文件将以 cbdogaaa 开始,并以 " dog " 结束。
示例 6
crunch 2 3 -f charset.lst ualpha -s BB
crunch 将从 BB 开始生成一个单词列表,并以 ZZZ 结束。如果您需要在中途停止生成单词列表,这将很有用。只需执行 tail wordlist.txt 并将 -s 参数设置为序列中的下一个单词。在开始之前,请务必重命名原始单词列表,因为 crunch 将覆盖现有的单词列表。
示例 7
crunch 4 5 -p abc
数字不会被处理,但是是必需的。
crunch 将生成 abc、acb、bac、bca、cab、cba。
示例 8
crunch 4 5 -p dog cat bird
数字不会被处理,但是是必需的。
crunch 将生成 birdcatdog、birddogcat、catbirddog、catdogbird、dogbirdcat、dogcatbird。
示例 9
crunch 1 5 -o START -c 6000 -z bzip2
crunch 将生成 bzip2 压缩文件,每个文件包含 6000 个单词。压缩文件的文件名将以 first_word-last_word.txt.bz2 的格式命名。
示例 10
crunch 4 4 -b 20mib -o START
将生成 4 个文件:aaaa-gvfed.txt、gvfee-ombqy.txt、ombqz-wcydt.txt、wcydu-zzzzz.txt。前三个文件大小为 20MB(实际的 2 的幂兆字节),最后一个文件大小为 11MB。
示例 11
crunch 3 3 abc + 123 !@# -t @%^
将生成一个 3 个字符长的单词,其中第一个字符是字符,第二个字符是数字,第三个字符是符号。您指定字符的顺序很重要。您必须按照小写字符、大写字符、数字和符号的顺序指定字符。如果您不打算使用特定的字符集,则可以使用加号作为占位符。如您所见,我没有使用大写字符集,所以我使用了加号占位符。上述示例将从 a1! 开始,并以 c3# 结束。
示例 12
crunch 3 3 abc + 123 !@# -t ^%@
将生成以 !1a 开始,以 #3c 结束的 3 个字符长的单词。
示例 13
crunch 4 4 + + 123 + -t %%@^
加号 (+) 是一个占位符,所以您可以为字符类型指定一个字符集。当 crunch 在命令行上遇到加号 (+) 时,将使用默认字符集作为字符类型。您必须为每种字符类型指定值,或者使用加号。例如,如果您有两种字符类型,您必须为每种类型指定值,或者使用加号。因此,在这个例子中,字符集将是:
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
123
!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/
上述字符串末尾有一个空格
输出将从 11a! 开始,以 "33z " 结束。引号显示了字符串末尾的空格。
示例 14
crunch 5 5 -t ddd@@ -o j -p dog cat bird
除了以下符号:@,%^ 之外的任何字符都是要排列的单词的占位符。@,%^ 符号的功能与 -t 相同。如果您希望在输出中使用 @,%^,可以使用 -l 选项指定 crunch 要将哪个字符视为文字。因此,结果是:
birdcatdogaa
birdcatdogab
birdcatdogac
<跳过>
dogcatbirdzy
dogcatbirdzz
示例 15
crunch 7 7 -t p@ss,%^ -l a@aaaaa
crunch 现在将 @ 符号视为文字字符,而不是用大写字母替换该字符。这将生成:
p@ssA0!
p@ssA0@
p@ssA0#
p@ssA0$
<跳过>
p@ssZ9
示例 16
crunch 5 5 -s @4#S2 -t @%^,2 -e @8 Q2 -l @dddd -b 10KB -o START
crunch 将从 @4#S2 开始生成 5 个字符的字符串,并以 @8 Q2 结束。输出将分成 10KB 大小的文件,文件名以起始字符串和结束字符串命名。
示例 17
crunch 5 5 -d 2@ -t @@@%%
crunch 将生成以 aab00 开始,以 zzy99 结束的 5 个字符的字符串。请注意,aaa 和 zzz 不在其中。
示例 18
crunch 10 10 -t @@@^%%%%^^ -d 2@ -d 3% -b 20mb -o START
crunch 将从 aab!0001!! 开始生成 10 个字符的字符串,并以 zzy 9998 结束。输出将写入 20mb 大小的文件。
示例 19
crunch 8 8 -d 2@
crunch 将生成限制相同数量的小写字符的 8 个字符。crunch 将从 aabaabaa 开始,以 zzyzzyzz 结束。
示例 20
crunch 4 4 -f unicode_test.lst japanese -t @@%% -l @xdd
crunch 将从 unicode_test 字符集文件加载一些日语字符。输出将从 @日00 开始,以 @語99 结束。
重定向
您可以使用 crunch 的输出并将其导入其他程序。将 crunch 管道输入到的两个最流行的程序是:aircrack-ng 和 airolib-ng。语法如下:
crunch 2 4 abcdefghijklmnopqrstuvwxyz | aircrack-ng /root/Mycap‐file.cap -e MyESSID -w-
crunch 10 10 12345 --stdout | airolib-ng testdb -import passwd -
注释
1. 从版本 2.6 开始,crunch 将显示即将生成的数据量。从 2.7 开始,它还会显示将生成的行数。现在,crunch 在开始生成数据之前会等待 3 秒,以便您有时间按下 Ctrl-C 来中止 crunch,如果您发现值对于您的应用程序来说太大了。
2. 我已将 hex-lower(0123456789abcdef)和 hex-upper(0123456789ABCDEF)添加到 charset.lst。
3. 有几个人请求我为 crunch 添加对空格字符的支持。crunch 一直支持在命令行和 charset.lst 中使用空格字符。要在命令行上添加空格,您需要使用 / 字符进行转义。有关语法,请参见示例 3。根据您的操作系统,您可能需要转义其他字符,如!或#。
4. 从 2.7 开始,如果您正在生成文件,则每隔 10 秒您将收到完成百分比。
5. 从 3.0 开始,我不得不将 -t * 字符更改为,作为 * 是一个保留字符。如果在 * 前面放一个 \,则仍然可以使用它。是的,这会破坏 crunch 的语法,我尽量避免这样做,但在这种情况下,更改更容易实现长期支持。
6. 有些输出丢失了。一个文件没有生成。这主要是由于磁盘空间不足。如果您已经验证了您有足够的磁盘空间,那么问题很可能是文件名以点开头。在 Linux 中,以点开头的文件名是隐藏的。要查看它们,请执行 ls -l .*
7. Crunch 说最大和最小长度应该与您指定的模式大小相同,但是长度已正确设置。这通常意味着您的模式包含一个需要转义的字符。在 bash 中,您需要转义以下字符:&,*,空格,\,(,),|,',",;,<,>。在 bash 中,转义字符是 \。因此,具有&和*的模式将如下所示:
crunch 4 4 -t \&\*d@
将字符串包装在引号中是转义字符的另一种方法。例如:
crunch 4 4 -t "&*d@"
如果您想在模式中使用 ",您需要将其转义为 crunch 4 4 -t "&*\"@"。请注意,不同的终端具有不同的转义字符,可能需要转义不同的字符。请查阅您的终端的手册以获取转义字符和需要转义的字符。
8. 使用 -z 7z 选项时,7z 不会删除原始文件。您需要手动删除这些文件。
四、BurpSuite
BurpSuite 相关内容:
攻击类型:
单字典:
Sinper(狙击手)
sinper主要是将拦截的数据包用符号标记的数据进行逐个遍历替换。按顺序一个一个参数依次遍历,一个参数遍历完,然后恢复成原数据,再遍历下一个参数。
Battering ram(攻城槌)
这种攻击方式是将包内所有标记的数据进行同时替换再发出。适合那种需要在请求中把相同的输入放到多个位置的情况。
可以有多个参数,但是这些参数都遍历同一个字典。
多字典:
Pitchfork(干草叉)
这一模式是使用多个payload组。对于定义的位置可以使用不同的payload组。攻击会同步迭代所有的payload组,把payload放入每个定义的位置中。比如:position中A处有a字典,B处有b字典,则a将会对应b进行攻击处理,这种攻击类型非常适合那种不同位置中需要插入不同但相关的输入的情况。
多个参数同时遍历,只是一个参数选择一个字典,不重复选择字典,(多个字典中,字典短的遍历完,其余的字典停止遍历)。
Cluster bomb(集束炸弹)
这种模式会使用多个payload组。每个定义的位置中有不同的payload组。攻击会迭代每个payload组,每种payload组合都会被测试一遍。比如:position中A处有a字典,B处有b字典,则两个字典将会循环搭配组合进行攻击处理,这种攻击适用于那种位置中需要不同且不相关或者未知的输入的攻击。可以理解为暴力破解,穷举法。请求数为各个payload加载到字典条目数的乘积。
类似for循环,一个字典中选择一个数据,在遍历另一个字典的所有数据,最终遍历完所有的字典。一个不差,但是此模式需要计算力大。
五、SQL语句
SQL 语句:
-- 通过IP远程连接SQL(知道用户名和密码)
mysql -u root -p password -h IP
-- 查看数据库
show databases;
-- 创建数据库
create database 数据库名;
-- 删除数据库
drop database 数据库名;
-- 切换数据库
use 数据库名;
-- 查看表
show tables;
-- 创建只有 id 和 name 列的表 t1
create table t1(id char(4),name char(6));
-- 删除表
drop table 表名;
-- 查看表结构
desc 表名;
-- 查看所有数据
select * from user;
-- 查看指定列的数据
select user,host,Password from user;
-- 往 t1 表中插入数据
insert t1 value('zhang');
-- 单条件修改
update t2 set password='123' where name='wang';
-- 单条件修改多列
update t2 set password='1234' where name='li' and name='xxx';
-- 多条件修改
update t2 set password='1234' where name='zhou' and id=1;
-- 修改所有数据
update t2 set paeeword='123';
关注
欢迎大家关注公众号:安全君呀
你的移动知识库,不定期分享网安知识!!!