Kali是基于Debian的Linux发行版,Kali Linux包含上百个安全相关工具,如渗透测试、安全检测、密码安全、反向工程等。
扫描:获取一些公开、非公开信息为目的;检查潜在的风险、查找可攻击的目标、收集设备/主机/系统/软件信息、发现可利用的安全漏洞。
扫描方式及工具:
典型的扫描方式:Scan主动探测、Sniff被动监听/嗅探、Gapture数据包捕获(抓包)。
常见的安全分析工具:扫码器:NMAP;协议分析:tcpdump、wireshark
配置kali虚拟机,里面预安装了很多安全工具
配置IP地址
开启ssh服务
此时就能使用远程登录了
NMAP扫描:一般来说扫描是攻击的前奏,扫描可以识别目标对象是什么系统,开放了那些服务,获得具体的服务软件及其版本号,可以使得攻击的成功率大大提升。扫描可以检测潜在的风险,也可以寻找攻击目标、收集信息、找到漏洞。Windows下,扫描可以使用xsan/superscan;Linux扫描可以采用NMAP
扫描整个网段,那台机器可以ping通; nmap -sP 192.168.88.0/24
扫描192.168.88.11开放的那些tcp端口; nmap -sT 192.168.88.11
扫描192.168.88.11开放的那些utp端口,提示需要root权限
使用sudo提示权限,tcp是面向连接的协议扫描会传递扫描结果,而udp是无连接的需要很久才有数据传递回来。
-A全面扫描系统信息: nmap -A 192.168.88.11
通过脚本扫描目标主机的ftp服务,在kali主机上查看有那些脚本
在目标主机上安装ftp服务
扫描ftp服务是否支持匿名服务,ftp控制连接端口号是21
扫描ftp相关信息如版本号、带宽限制等; nmap --script=ftp-syst.nse 192.168.88.11 -p 21
扫描ftp后门漏洞 nmap --script=ftp-vsftpd-backdoor 192.168.88.11 -p 21
通过ssh协议,
使用nmap自带的密码本扫描远程主机的用户名和密码,
在目标主机上创建名为admin的用户密码为123456
暴力破解:1、穷举法:穷举一切的可能80+80**2+80**3。2、字典法:把密码写在文件中,挨个比对。
nmap --script=ssh-brute.nse 192.168.88.11 -p22
查找指定用户,创建用户名文件
设置node1主机的root密码为8位数
编写生成密码本的脚本文件
执行脚本
查看生成的密码本
将该密码本传递到kali主机
通过密码本来破解指定用户名的密码
nmap --script=ssh-brute.nse --script-args userdb=/tmp/users.txt,passdb=/tmp/mima.txt 192.168.88.20 -p22
目标主机将会记录所有的登录事件
查看最近的登录失败事件
查看最近的登录成功事件
扫描Windows密码,设置用户名密码本,通过Samba服务扫描密码
使用john破解密码:根据已知的密文反向求明文数据
密码存储在/etc/shadow文件中使用的加密算法为哈希算法,哈希算法是一种单向加密的算法如md5、sha125,也就是将原始数据生成一串‘乱码’,只能通过原始数据生成这串“乱码”,但是不能通过“乱码”回推出原始数据。相同的原始数据生成的乱码是相同的。
将哈希算法生成的乱码反向回推原密码
使用cmd5.com网站
kali系统提供了一个名为john的工具,可用于密码破解。
创建用户添加密码
将密码文件拷贝到kali主机
/usr/share/john/password.lst文件为john的密码本
使用john字典暴力破解shadow文件的密码
再次破解提示已经破解过了
显示破解的密码信息
如果想要在破解一遍,需要删除/root/.john存储john信息的文件
指定密码本破解
抓包:传输的各种数据,在网络中都是一个个的数据包,可以将网络中传输的数据包复制(抓包)一份到本地上。
tcpdump抓包命令:基本用法:tcpdump 【选项】 【过滤条件】
常见监控选项:-i:指定监控的网络接口。-A:转换为ACSII码以方便阅读。-w:将数据包信息保存到指定文件。-r:从指定文件读取数据包信息。-c:定义抓包的个数(默认是无限抓包Ctrl+c结束抓包)。
过滤条件:
类型:host、net、port、portrange 600-800
方向:src、dst
协议:tcp、udp、ip、wlan、arp....
多个条件组合:and、or、not
1、抓取eth0上进出与192.168.88.11有关的、涉及TCP21端口的数据包。
sudo tcpdump -i eth0 -A host 192.168.88.11 and tcp port 21
2.开启另一个终端登录192.168.88.11主机
此时抓包就能获取登录ftp服务的相关数据
输入用户名、密码
此时就能抓取到登录ftp服务的用户名和密码
将抓包数据保存到文件中
sudo tcpdump -i eth0 -w ftp.cap -A host 192.168.88.11 and tcp port 21
此时该抓包文件已经保存完成
查看抓包文件; tcpdump -r ftp.cap -A | grep -E 'USER|PASS'
还可以使用WireShark图形化界面的抓包软件
安全加固:
nginx安全:
安装启服务
当访问不存在的路径时就会显示版本信息
命令行访问-I显示头部信息
隐藏版本信息,修改配置文件添加 server_tokens off;
重启动服务
再次访问就不显示版本信息了
防止DOS、DDOS(分布式拒绝服务)攻击:
压力测试每次发送100个请求给web服务器一共发200个
都请求成功
配置nginx连接共享内存为10M每秒钟只接收一个请求,最多有5个请求排队,多余的拒绝。
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
limit_req zone=one burst=5;
重启服务
此时测试就会只成功6个。在缓存中的有5个和正在访问的1个都能请求处理成功,其他的就会被拒绝服务。
防止缓冲区溢出:程序企图在预分配的缓冲区之外写代码。漏洞危害:用于更改程序执行流,控制函数返回值。
配置nginx缓冲区大小,防止缓冲区溢出。
Linux加固
设置tom账户有效期为2025.1.1
第0秒为 date -d @0
所以使用修改密码的天数*一天的秒数等于修改密码的具体日期
查看tom账户信息chage -l tom
修改账户的过期时间 chage -E 2025-1-1 tom
取消账户的过期时间 chage -E -1 tom
查看帮助chage -h
对所有的新建用户生效设置,修改/etc/login.defs文件
锁定tom账户
查看用户状态
解锁tom账户
保护文件
查看文件的特殊属性
-i:设置文件只能查看,不能修改、删除文件
此时就不能创建用户了,因为创建用户会往/etc/passwd文件中写入数据,而/etc/passwd文件禁止修改,所以就不能添加用户。
-a:追加,不能删除、