C++入侵检测与网络攻防之WEB扫描以及DDOS攻击

发布于:2025-05-01 ⋅ 阅读:(18) ⋅ 点赞:(0)

目录

1.web敏感信息

2.web信息搜集--踩点

3.dirb命令的使用及原理

4.暴力扫描的防护讨论

5.owasp介绍

6.ddos的介绍

7.复习

8.synflood攻击实现细节

9.synflood攻击实现细节

10.netwox发起synflood攻击

11.synflood的防御

12.netwox其他工具介绍

13.iptables四表五链


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表即可
 

11.synflood的防御

12.netwox其他工具介绍

13.iptables四表五链


网站公告

今日签到

点亮在社区的每一天
去签到