Kali是基于Debian的Linux发行版,Kali Linux包含上百个安全相关工具,如渗透测试、安全检测、密码安全、反向工程等。
扫描:获取一些公开、非公开信息为目的;检查潜在的风险、查找可攻击的目标、收集设备/主机/系统/软件信息、发现可利用的安全漏洞。
扫描方式及工具:
典型的扫描方式:Scan主动探测、Sniff被动监听/嗅探、Gapture数据包捕获(抓包)。
常见的安全分析工具:扫码器:NMAP;协议分析:tcpdump、wireshark
配置kali虚拟机,里面预安装了很多安全工具
![](https://i-blog.csdnimg.cn/blog_migrate/00f21c2467dc7c01be27a3f46400bd1b.png)
配置IP地址
![](https://i-blog.csdnimg.cn/blog_migrate/d47f70abb42126d072def35137ab4e7a.png)
开启ssh服务
![](https://i-blog.csdnimg.cn/blog_migrate/8147d29193cba15cba437e0663b997e8.png)
此时就能使用远程登录了
![](https://i-blog.csdnimg.cn/blog_migrate/0f96e680f36e302121c3de94345bf875.png)
NMAP扫描:一般来说扫描是攻击的前奏,扫描可以识别目标对象是什么系统,开放了那些服务,获得具体的服务软件及其版本号,可以使得攻击的成功率大大提升。扫描可以检测潜在的风险,也可以寻找攻击目标、收集信息、找到漏洞。Windows下,扫描可以使用xsan/superscan;Linux扫描可以采用NMAP
扫描整个网段,那台机器可以ping通; nmap -sP 192.168.88.0/24
![](https://i-blog.csdnimg.cn/blog_migrate/54e46a9c8639f41af407b37cda2704d7.png)
扫描192.168.88.11开放的那些tcp端口; nmap -sT 192.168.88.11
![](https://i-blog.csdnimg.cn/blog_migrate/ff029a58e1d80ad92a080a5d7bfb98b3.png)
扫描192.168.88.11开放的那些utp端口,提示需要root权限
![](https://i-blog.csdnimg.cn/blog_migrate/27754df8154ec4bd0e271aaf9732e136.png)
使用sudo提示权限,tcp是面向连接的协议扫描会传递扫描结果,而udp是无连接的需要很久才有数据传递回来。
![](https://i-blog.csdnimg.cn/blog_migrate/664d5f11cf148f24cc7f6a3cd02bb900.png)
-A全面扫描系统信息: nmap -A 192.168.88.11
![](https://i-blog.csdnimg.cn/blog_migrate/ad9ec1b052f89f9253dbedd231320198.png)
通过脚本扫描目标主机的ftp服务,在kali主机上查看有那些脚本
![](https://i-blog.csdnimg.cn/blog_migrate/48848b6dc41dd0a6817f2bf907bffb49.png)
在目标主机上安装ftp服务
![](https://i-blog.csdnimg.cn/blog_migrate/6e2a294817fa0334fd94f3b07507335d.png)
![](https://i-blog.csdnimg.cn/blog_migrate/3a17ffa7a3fb8f4246333107c27f5380.png)
扫描ftp服务是否支持匿名服务,ftp控制连接端口号是21
![](https://i-blog.csdnimg.cn/blog_migrate/15bb0285c6c33fab86289fc223f7ed41.png)
![](https://i-blog.csdnimg.cn/blog_migrate/951c23ec78da26bd580c80fb2a31045b.png)
扫描ftp相关信息如版本号、带宽限制等; nmap --script=ftp-syst.nse 192.168.88.11 -p 21
![](https://i-blog.csdnimg.cn/blog_migrate/b8ef8ae84a0d13dc7dcb2fb685b29844.png)
扫描ftp后门漏洞 nmap --script=ftp-vsftpd-backdoor 192.168.88.11 -p 21
![](https://i-blog.csdnimg.cn/blog_migrate/77e04c43436543b107d9b51e7df0f579.png)
通过ssh协议,
使用nmap自带的密码本扫描远程主机的用户名和密码,
在目标主机上创建名为admin的用户密码为123456
![](https://i-blog.csdnimg.cn/blog_migrate/9993d46d42ad9552a25aad94ccb5de80.png)
暴力破解:1、穷举法:穷举一切的可能80+80**2+80**3。2、字典法:把密码写在文件中,挨个比对。
nmap --script=ssh-brute.nse 192.168.88.11 -p22
![](https://i-blog.csdnimg.cn/blog_migrate/5e26b735734013f335b8b84115844f4d.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2a550aea6449ed19ed06a8415efe640f.png)
查找指定用户,创建用户名文件
![](https://i-blog.csdnimg.cn/blog_migrate/89456a1ad20cc6276c0dbe6ee68ff05e.png)
设置node1主机的root密码为8位数
![](https://i-blog.csdnimg.cn/blog_migrate/d2363d2ec771d9f9bb0cde873e6c56bc.png)
编写生成密码本的脚本文件
![](https://i-blog.csdnimg.cn/blog_migrate/05b8d68a42da85dcad86d9c0cd1b08a9.png)
![](https://i-blog.csdnimg.cn/blog_migrate/4d3858a96226dbc9bf3983b6a5ad61ab.png)
执行脚本
![](https://i-blog.csdnimg.cn/blog_migrate/b5567e79a98fc41f82f7efed3084ab62.png)
查看生成的密码本
![](https://i-blog.csdnimg.cn/blog_migrate/9330f0e148a993bd6d64afea5e963aca.png)
将该密码本传递到kali主机
![](https://i-blog.csdnimg.cn/blog_migrate/5f905ca5160787de3237c4488a1f7b7d.png)
![](https://i-blog.csdnimg.cn/blog_migrate/8110beeed7656c99facc7405968398bb.png)
通过密码本来破解指定用户名的密码
nmap --script=ssh-brute.nse --script-args userdb=/tmp/users.txt,passdb=/tmp/mima.txt 192.168.88.20 -p22
![](https://i-blog.csdnimg.cn/blog_migrate/0da8f9d7c280088372589d1e5bca105a.png)
目标主机将会记录所有的登录事件
![](https://i-blog.csdnimg.cn/blog_migrate/4049050d505e914a4fef5337ab005575.png)
![](https://i-blog.csdnimg.cn/blog_migrate/429c7e7ae2020ef289eacb98d772fa15.png)
查看最近的登录失败事件
![](https://i-blog.csdnimg.cn/blog_migrate/c7509235cdafcbb6441748e6171c9fbe.png)
查看最近的登录成功事件
![](https://i-blog.csdnimg.cn/blog_migrate/9a367aed181cbf43cf08c94e56152665.png)
扫描Windows密码,设置用户名密码本,通过Samba服务扫描密码
![](https://i-blog.csdnimg.cn/blog_migrate/2f04d44e255497cdb4cddd810f83f0db.png)
使用john破解密码:根据已知的密文反向求明文数据
密码存储在/etc/shadow文件中使用的加密算法为哈希算法,哈希算法是一种单向加密的算法如md5、sha125,也就是将原始数据生成一串‘乱码’,只能通过原始数据生成这串“乱码”,但是不能通过“乱码”回推出原始数据。相同的原始数据生成的乱码是相同的。
![](https://i-blog.csdnimg.cn/blog_migrate/c8286ccca7f9570be7cc5f2119a28402.png)
将哈希算法生成的乱码反向回推原密码
使用cmd5.com网站
![](https://i-blog.csdnimg.cn/blog_migrate/4e5ef1e6e723b510a8e41c42f03da90b.png)
kali系统提供了一个名为john的工具,可用于密码破解。
创建用户添加密码
![](https://i-blog.csdnimg.cn/blog_migrate/6f39fc1be4e12532b0bd17022f5e8db5.png)
将密码文件拷贝到kali主机
![](https://i-blog.csdnimg.cn/blog_migrate/3d5a61390b1935c64556a0e2365c442c.png)
/usr/share/john/password.lst文件为john的密码本
![](https://i-blog.csdnimg.cn/blog_migrate/98023e2e472e49c36aacbb7f95d8f1f4.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d060ce7eb99dd7d48117175cf59051dd.png)
使用john字典暴力破解shadow文件的密码
![](https://i-blog.csdnimg.cn/blog_migrate/997ff3472214054bbf9db78a6a9ec3e2.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7980a3120fa1e69ebb66b1b432557e3.png)
再次破解提示已经破解过了
![](https://i-blog.csdnimg.cn/blog_migrate/1676f8d75a11a138bd4dacf776c8b072.png)
显示破解的密码信息
![](https://i-blog.csdnimg.cn/blog_migrate/b09413a95993e36817f6d609e5708d1c.png)
如果想要在破解一遍,需要删除/root/.john存储john信息的文件
![](https://i-blog.csdnimg.cn/blog_migrate/255bae262394ef57d05aa5a3926a5104.png)
指定密码本破解
![](https://i-blog.csdnimg.cn/blog_migrate/08ad16517a6a19c3610cc27b1d1d9f64.png)
抓包:传输的各种数据,在网络中都是一个个的数据包,可以将网络中传输的数据包复制(抓包)一份到本地上。
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
![](https://i-blog.csdnimg.cn/blog_migrate/572913d0213a89e3f38e09da61693337.png)
2.开启另一个终端登录192.168.88.11主机
![](https://i-blog.csdnimg.cn/blog_migrate/f23cec85651b295548bb97c1c890e534.png)
此时抓包就能获取登录ftp服务的相关数据
![](https://i-blog.csdnimg.cn/blog_migrate/9dc360aef819bba102996f325319de38.png)
输入用户名、密码
![](https://i-blog.csdnimg.cn/blog_migrate/ea4c979cbb7c27996440ed54f03fa41c.png)
此时就能抓取到登录ftp服务的用户名和密码
![](https://i-blog.csdnimg.cn/blog_migrate/271ca81d4838d04c06c6a4a8bd91529e.png)
将抓包数据保存到文件中
sudo tcpdump -i eth0 -w ftp.cap -A host 192.168.88.11 and tcp port 21
![](https://i-blog.csdnimg.cn/blog_migrate/9152fad244ece40ec91c340343059734.png)
![](https://i-blog.csdnimg.cn/blog_migrate/667131fc116221633f2d8afcea5c1434.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1f77fe0f1116fad9ab126aa32cd2561e.png)
此时该抓包文件已经保存完成
![](https://i-blog.csdnimg.cn/blog_migrate/cd4d626daf11cee196683ba361362e11.png)
查看抓包文件; tcpdump -r ftp.cap -A | grep -E 'USER|PASS'
![](https://i-blog.csdnimg.cn/blog_migrate/8dc048f1e4baae62c70b5effdff942e6.png)
还可以使用WireShark图形化界面的抓包软件
安全加固:
nginx安全:
安装启服务
![](https://i-blog.csdnimg.cn/blog_migrate/dd0e05f2419b51e1f353a29a501c6711.png)
![](https://i-blog.csdnimg.cn/blog_migrate/5fb46d072a261fcf8affd2c9b8ad9f73.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1072bd77042a35f08b632971a41303f5.png)
当访问不存在的路径时就会显示版本信息
![](https://i-blog.csdnimg.cn/blog_migrate/300e4c739a5b8a49891bfef64c30c940.png)
命令行访问-I显示头部信息
![](https://i-blog.csdnimg.cn/blog_migrate/d556f9eec280ac0a5083b742294111ff.png)
隐藏版本信息,修改配置文件添加 server_tokens off;
![](https://i-blog.csdnimg.cn/blog_migrate/93b82a3a288029a75e5866ea51390b48.png)
![](https://i-blog.csdnimg.cn/blog_migrate/48101d3cdb283ee8346a4a0b454d57c6.png)
重启动服务
![](https://i-blog.csdnimg.cn/blog_migrate/fd934774c22122a37cd585767e1c7b2e.png)
再次访问就不显示版本信息了
![](https://i-blog.csdnimg.cn/blog_migrate/e384c5c65dd0fd0ea70a97e0fb1ced5a.png)
防止DOS、DDOS(分布式拒绝服务)攻击:
压力测试每次发送100个请求给web服务器一共发200个
![](https://i-blog.csdnimg.cn/blog_migrate/a2510cbe4ed295c283d86116e666c375.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9bcf6c569ee7f226c2c9102dfba6a49a.png)
都请求成功
![](https://i-blog.csdnimg.cn/blog_migrate/90a03ec11f40e9e02e7cebc0723eb72c.png)
配置nginx连接共享内存为10M每秒钟只接收一个请求,最多有5个请求排队,多余的拒绝。
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
limit_req zone=one burst=5;
![](https://i-blog.csdnimg.cn/blog_migrate/76e032430253a5d841d55a06c61e280c.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f9a394c4882ef533b1e5b8212d26ad83.png)
重启服务
![](https://i-blog.csdnimg.cn/blog_migrate/d9f6a1452a81674e61f0336c8d2c48d2.png)
此时测试就会只成功6个。在缓存中的有5个和正在访问的1个都能请求处理成功,其他的就会被拒绝服务。
![](https://i-blog.csdnimg.cn/blog_migrate/3116693f9df47d1f903735ef7343eb87.png)
防止缓冲区溢出:程序企图在预分配的缓冲区之外写代码。漏洞危害:用于更改程序执行流,控制函数返回值。
配置nginx缓冲区大小,防止缓冲区溢出。
![](https://i-blog.csdnimg.cn/blog_migrate/981375dbb60abe745fc5fbf609411063.png)
![](https://i-blog.csdnimg.cn/blog_migrate/970eda11d49df7a9e9bb8b39ab7afcaa.png)
Linux加固
设置tom账户有效期为2025.1.1
![](https://i-blog.csdnimg.cn/blog_migrate/21694679f053bfaa760d2247e815cce1.png)
第0秒为 date -d @0
![](https://i-blog.csdnimg.cn/blog_migrate/f56b335558c3ccdb86af00cca48db209.png)
所以使用修改密码的天数*一天的秒数等于修改密码的具体日期
![](https://i-blog.csdnimg.cn/blog_migrate/c71d708b04d4d6a1b6c5a056218f2f98.png)
查看tom账户信息chage -l tom
![](https://i-blog.csdnimg.cn/blog_migrate/c0527a0b66509ad55ec58cb73dbccb7d.png)
修改账户的过期时间 chage -E 2025-1-1 tom
![](https://i-blog.csdnimg.cn/blog_migrate/561b68ef9b38985f5f875053045648d7.png)
取消账户的过期时间 chage -E -1 tom
![](https://i-blog.csdnimg.cn/blog_migrate/155bfb94107154d0438cecb31bbe59a5.png)
查看帮助chage -h
![](https://i-blog.csdnimg.cn/blog_migrate/08a539dec2c9fb15b195ad65bdc59d6a.png)
对所有的新建用户生效设置,修改/etc/login.defs文件
![](https://i-blog.csdnimg.cn/blog_migrate/2da2012d1c56dc66ccb71a69d683ffc1.png)
![](https://i-blog.csdnimg.cn/blog_migrate/5a21710bf58141addbebae9a0650ddda.png)
锁定tom账户
![](https://i-blog.csdnimg.cn/blog_migrate/253d3e980940e8add025554dbd9ab51d.png)
查看用户状态
![](https://i-blog.csdnimg.cn/blog_migrate/1568063836d9dc71ecc2a9e972317b3b.png)
解锁tom账户
![](https://i-blog.csdnimg.cn/blog_migrate/aa263221b69309bd3bb28bf4c62dfaac.png)
保护文件
查看文件的特殊属性
![](https://i-blog.csdnimg.cn/blog_migrate/d869d2509e0d1217413079cfdf1c8c0c.png)
-i:设置文件只能查看,不能修改、删除文件
![](https://i-blog.csdnimg.cn/blog_migrate/b1903ec41d28184eb96b2806d10f5692.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9d6210a1de1a348740a9ed4d50734bd4.png)
此时就不能创建用户了,因为创建用户会往/etc/passwd文件中写入数据,而/etc/passwd文件禁止修改,所以就不能添加用户。
![](https://i-blog.csdnimg.cn/blog_migrate/c93bab61e0f8f78bc7dd9d5028786218.png)
-a:追加,不能删除、
![](https://i-blog.csdnimg.cn/blog_migrate/7cf4dcd107f4c064627961a6301269cb.png)