目录
1.web敏感信息
2.web信息搜集--踩点
3.dirb命令的使用及原理
1 web的敏感信息
https://www.baidu.com/index.html
百度的主页: 网站必须要给用户使用的页面,不算敏感信息
博学谷——讲师登录界面
只暴露给部分用户使用,其他互联网的用户不希望他们知道这个页面
1 部分用户使用的资源
特定后台登录界面
2 网站的配置文件 nginx.conf .git .svn 等这些内容
网站的运营方不小心暴露或者忘记规避
4.暴力扫描的防护讨论
2 dirb命令
dirb <url基地址> [字典文件]
原理:
通过 url基地址 拼凑 字典文件里边的资源路径 得到一个可访问的地址
然后发起http的GET,看下能不能获取一个资源,如果不返回404,说明资源是存在
字典文件的获取:
因为目前是搜索资源地址,所以不能使用口令字典rockyou等
要自行再去查找一些其他字典,默认dirb的字典放在 /usr/share/dirb/wordlists/...
更好用的字典可以到网上去下载 svndigger
关于web暴力扫描的防护措施
1 检测方式
查看web服务器的访问日志,如果在一段时间内出现n多个404的访问错误
可以断定有人进行扫描
2 防护
对于暴力扫描防不了太多,只能将敏感的数据规避起来 .git .svn 等
5.owasp介绍
3 DDoS
DoS denial of service 拒绝服务,指的是服务器或者网络的一种状态,服务不能正常工作
只要造成服务产生DoS状态的攻击成为DoS攻击
DDoS 分布式的DoS攻击,多台机器同时对目标产生DoS攻击
6.ddos的介绍
4 tcp synflood
原理:
tcp 连接有一个队列,当服务器收到第一次握手包的时候,就会产生一个连接信息放到这个 半连接队列里边
syn backlog ,当服务器收到第三次握手的时候就会从 半连接对联查询对应的连接信息,将其移动到另一个已经完成连接的队列 tcp backlog
但是如果攻击者一直发起第一次握手包 syn报文,不发送第三次握手包来完成连接,那么就会导致服务器的半连接队列
被撑爆,拒绝服务
实现的技术细节
1 攻击者只发起第一次握手包,但是不发起第三次握手包
connect api 是会完成三次握手的
所以只能使用原始套接字来实现
2 关于保护攻击者本身
只要发起ddos攻击,服务器肯定能发现,如果ip直接写真实的源ip地址
就会导致被攻击者容易追查是哪个人发起攻击
重点: 发起的IP报文,源地址是随机
另一个好处,随机的源地址,让服务器返回第二次握手报文的时候丢给了一个未知机器,该机器即使存活
也不会回第三次握手
7.复习
synflood 的防护
1 扩大半连接队列的长度
不能够根本解决问题,队列再大也可以将其撑破
echo 2048 > /proc/sys/net/ipv4/tcp_max_syn_backlog
2 减少 服务器 syn+ack 重传次数
提高半连接队列的清理频率
echo 3 > /proc/sys/net/ipv4/tcp_synack_retries
3 tcp_syncookies
能够根本解决问题
cookie 引申自http的cookie
第一次握手到来 ,服务器肯定要回第二次握手 syn+ack 报文 ,服务器在这个报文
放一些信息,该信息只有服务器能够识别
第三次握手过来的是ack报文,服务器要从这个报文里边解析出之前留下的信息,确定
这个第三次握手包是合法的,就完成连接
直接废弃半连接队列,不存在半连接队列被撑破的情况
缺陷,每次第三次握手报文过来,要做额外的运算验证这个报文是合法的,损耗CPU资源(以CPU时间换空间)
延伸的另一种攻击方式: 一直发送第三次握手报文,造成服务器花费大量的CPU资源去做验证
打开方式
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
8.synflood原理
netwox 工具箱
netwox 直接打开一个交互的菜单,跟着菜单来操作即可
netwox <工具id> --help 或者 --help2
查看某个工具的详细的使用选项
发起synflood攻击
netwox 76 -i <目标ip地址> -p <目标端口号> [-s 伪装的ip]
如果不指定伪装ip,那么源ip地址是随机的
9.synflood攻击实现细节
防火墙 iptables
在服务器80端口上面部署了一个网站
添加一条规则,让大家都访问不了这个网站
iptables -t filter -A INPUT -p tcp --dport 80 -j DROP
往iptables中的 filter表 里的 INPUT 链 追加一条规则 : 协议是TCP的,并且目的地址是80端口 就丢弃掉
N规则
满足某个条件,就做什么事情 这就是规则
如上:协议是TCP的,并且目的地址是80端口 就丢弃掉
条件+操作
5链
链就是关卡,可以认为就是一个链表,里边存储了n条规则
当数据报文通过关卡的时候,就要按照顺序一条一条规则进行判断
10.netwox发起synflood攻击
5链
链就是关卡,可以认为就是一个链表,里边存储了n条规则
当数据报文通过关卡的时候,就要按照顺序一条一条规则进行判断
input
output
prerouting
forward
postrouting
目前只关注input 和 output链,其他链是作为一些网关路由器设备时才会使用
4表
针对特定宏观策略来进行配置的方案
目前只学习和关注 filter表即可