本帖最后由 luosinian 于 2025-3-21 14:57 编辑
1. 课程内容概要(简要概括本次课程的主要内容,不需要太详细,但要能快速回忆起本节课的知识点)
主要知识点1:字典生成工具使用
主要知识点2:爆破工具使用
主要知识点3:DNS欺骗工具使用
2.重点知识与细节(针对本节课的核心内容进行详细记录,包含公式、代码、重要原理等)
crunch简介与使用
命令格式: crunch<min-len> <max-len> [<charset string>] [options] 参数: min-len最小长度字符串,即使不使用参数的值,也需要此选项 max-len最大长度字符串,即使不使用参数的值,也需要此选项
charsetstring 字符集设置,默认是小写字符集
options : -b 指定文件输出的大小,避免字典文件过大 -c 指定文件输出的行数,即包含密码的个数 -d 限制相同元素出现的次数 -e 定义停止字符,即到该字符串就停止生成 -f 调用库文件(/etc/share/crunch/charset.lst) -i 改变输出格式,即aaa,aab -> aaa,baa -I 通常与-t联合使用,表明该字符为实义字符 -m 通常与-p搭配 -o 将密码保存到指定文件 -p 指定元素以组合的方式进行 -q 读取密码文件,即读取pass.txt -r 定义重某一字符串重新开始 -s 指定一个开始的字符,即从自己定义的密码xxxx开始 -t 指定密码输出的格式 -u 禁止打印百分比(必须为最后一个选项)
-z 压缩生成的字典文件,支持gzip,bzip2,lzma,7z
特殊字符,通常与-t配合使用 % 代表数字 ^ 代表特殊符号 @ 代表小写字符 , 代表大写字符
输入crunch2 4 > 1.txt 代表 创建2-4位的字母字典到1.txt
输入crunch6 6 123 -o 1.txt 代表生成六位以123元素为组合的字典集,并输出到1.txt
输入crunch1 1 -q read 表示读取read文件中每行内容作为基本字符生成字典
输入crunch4 4 -t %^@, >1.txt, 表示生成长度四位的字典集,第一位为数字,第二位为特殊字符,第三位是小写字符,第四位是大写字符
输入crunch6 6 -f /usr/share/crunch/charset.lst hex-lower -o 1.txt表示以charset.lst密码库的hex-lower模块为字符集,生成长度为6的字典集,输出到3.txt
xhydra简介与使用
以下是Hydra支持的协议
- Asterisk
- AFP
- Cisco AAA
- Cisco auth
- Cisco enable
- CVS
- Firebird
- FTP
- HTTP-FORM-GET
- HTTP-FORM-POST
- HTTP-GET
- HTTP-HEAD
- HTTP-POST
- HTTP-PROXY
- HTTPS-FORM-GET
- HTTPS-FORM-POST
- HTTPS-GET
- HTTPS-HEAD
- HTTPS-POST
- 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
- RTSP
- SAP/R3
- SIP
- SMB
- SMTP
- SMTP Enum
- SNMP v1+v2+v3
- SOCKS5
- SSH (v1 and v2)
- SSHKEY
- Subversion
- Teamspeak (TS2)
- Telnet
- VMware-Auth
- VNC
- XMPP
参数
Options:
-l LOGIN or -L FILE login with LOGIN name, or load several logins from FILE
-p PASS or -P FILE try password PASS, or load several passwords from FILE
-C FILE colon separated "login:pass" format, instead of -L/-P options
-M FILE list of servers to attack, one entry per line, ':' to specify port
-t TASKS run TASKS number of connects in parallel per target (default: 16)
-U service module usage details
-h more command line options (COMPLETE HELP) server the target: DNS, IP or 192.168.0.0/24 (this OR the -M option) service the service to crack (see below for supported protocols) OPT some service modules support additional input (-U for module help)
hydra 192.168.0.12 ssh -l user -P /root/Work/sshpasswd.list -t 6 -V -f
命令详细:
- 攻击目标:192.168.0.12
- 使用的模块:ssh
- 爆破用户名:user (-l)
- 使用的密码字典:/root/Work/sshpasswd.list (-P)
- 爆破线程数:6 (-t)
- 显示详细信息 (-V)
- 爆破成功一个后停止 (-f)
爆破成功后连接ssh
ssh luosinian@192.168.0.12
ettercap简介与使用
Ettercap常用指令 用户界面类型 -T,-text 使用之显示字符的界面 -q,-quiet安静模式,不显示抓到的数据包内容 -G,-gtk 使用GTK+GUI,开启图形化模式 日志选项 -w将嗅探的数据写入pcap文件 -L此处记录所有流量
通用选项
-i使用该网络接口 -l显示所有的网络接口 -P开始该插件《plugin》 -F加载过滤器filter
嗅探与攻击选项
-M,执行mitm攻击
作业 一、简答题 1、在生成字典时,有哪些思路来生成有用的字典? 人设置密码的方式都有自己的特殊规律和适合自己的记忆规则,而设置密码往往采用固定的逻辑。比如某一个人对一个东西很喜欢可能会用这个东西的拼音或者英文单词,在加上一些特殊寓意的数字来组合出自己的密码,所以字典的生成必须要针对个人
2、利用crunch生成一个前五位是xiaoming,后三位是数字的8位数字典,名为test.txt命令是什么? 题出的有问题 xiaoming不止五个字符,有八个字符,再加上三位数字有11个字符了 crunch 11 11 -t xiaoming%%% > test.txt 3、利用crunch生成3位数的字典,以密码库charset.lst中mixalpha-numeric-symbol14模块的,名为user.txt命令是什么? crunch 3 3 -f /usr/share/crunch/charset.lst mixalpha-numeric-symbol14 -t %%% -o user.txt
4、利用crunch生成以1831903为前七位的电话号码的命令,名为aa.Txt是什么? 由于题没有指明密码位数,自定义10位密码 crunch 10 10 -t 1831903@@@ > aa.Txt
5、利用crunch生成第1-3位为abc,第四位为符号,第五位为大写字母,第六位为小写字母,第七位为数字的七位数字典,名为cc.txt的命令是什么? crunch 7 7 -t abc^,@% > cc.txt
6、arp中间人攻击的原理是什么? 在每台主机都有一个ARP缓存表,缓存表中记录了IP地址与MAC地址的对应关系,而局域网数据传输依靠的是MAC地址。 假设主机 A 192.168.1.2,B 192.168.1.3,C 192.168.1.4; 网关 G 192.168.1.1; 在同一局域网,主机A和B通过网关G相互通信,就好比A和B两个人写信,由邮递员G送信,C永远都不会知道A和B之间说了些什么话。但是并不是想象中的那么安全,在ARP缓存表机制存在一个缺陷,就是当请求主机收到ARP应答包后,不会去验证自己是否向对方主机发送过ARP请求包,就直接把这个返回包中的IP地址与MAC地址的对应关系保存进ARP缓存表中,如果原有相同IP对应关系,原有的则会被替换。 这样C就有了偷听A和B的谈话的可能,以下是例子: C假扮邮递员,首先要告诉A说:“我就是邮递员” (C主机向A发送构造好的返回包,源IP为G 192.168.1.1,源MAC为C自己的MAC地址),愚蠢的A很轻易的相信了,直接把“C是邮递员”这个信息记在了脑子里; C再假扮A,告诉邮递员:“我就是A” (C向网关G发送构造好的返回包,源IP为A 192.168.1.2,源MAC地址为自己的MAC地址),智商捉急的邮递员想都没想就相信了,以后就把B的来信送给了C,C当然就可以知道A和B之间聊了些什么 上面ABCG的故事就是ARP双向欺骗的原理了 ARP单向欺骗就更好理解了,C只向A发送一个返回包,告诉A:G 192.168.1.1 的MAC地址为 5c-63-bf-79-1d-fa(一个错误的mac地址),A把这个信息记录在了缓存表中,而G的缓存表不变,也就是说,A把数据包给了C,而G的包还是给A,这样就是ARP单向欺骗了。
7、Dns劫持的原理是什么? DNS(Domain Name System)是一个用于将域名和IP地址相互映射的分布式数据库系统。简单来说,就是将我们平常看到的域名(如百度)转换成对应的IP地址(如123.125.114.144)。在浏览器访问网站时,会先向DNS服务器发出请求,获取相应的IP地址,然后再向该IP地址访问网站。DNS劫持攻击就是指攻击者通过某种手段篡改DNS服务器的响应,将用户请求的域名转换成恶意IP地址。这样用户在访问该网站时,实际上是访问了被篡改的IP地址,从而被攻击者掌控,遭受信息窃取、钓鱼欺诈等风险。下面我们以一个简单的例子来说明DNS劫持攻击的原理。假设用户想访问百度,首先会向DNS服务器发送请求,获取百度的IP地址,通常情况下DNS服务器会返回正确的IP地址,然后用户就可以通过该IP地址访问百度。但是,当DNS服务器被攻击者控制时,攻击者可以篡改响应,将用户请求的域名“baidu.com”映射成攻击者指定的恶意IP地址。
二、 实操题
利用hydra爆破ssh服务。
利用hydra爆破服务
|