目录

  • 1 网络攻防技术概述
    • 1.1 网络攻击的类型
    • 1.2 网络攻击实施过程
    • 1.3 网络攻击的新技术
  • 2 Windows操作系统安全基础
    • 2.1 Windows操作系统的安全机制
    • 2.2 ​Windows常见命令的使用
    • 2.3 Windows用户管理
  • 3 Linux操作系统安全基础
    • 3.1 Linux操作系统及其结构
    • 3.2 Linux常见命令的使用
    • 3.3 Linux用户管理
  • 4 信息探测与漏洞扫描
    • 4.1 端口扫描
    • 4.2 类型探查
    • 4.3 漏洞扫描
  • 5 网络嗅探与协议漏洞利用
    • 5.1 网络嗅探的基本工作原理
    • 5.2 ARP欺骗
    • 5.3 DNS欺骗
    • 5.4 DDoS攻击
  • 6 恶意代码攻防
    • 6.1 计算机病毒的概述
    • 6.2 宏病毒
    • 6.3 灰鸽子木马
    • 6.4 病毒防范方法
  • 7 口令破解与防范
    • 7.1 口令的破解技术
    • 7.2 win口令本地破解
    • 7.3 win口令远程破解
    • 7.4 口令破解的防范方法
  • 8 缓冲区溢出漏洞利用
    • 8.1 缓冲区溢出概况
    • 8.2 本地缓冲区溢出
    • 8.3 远程溢出
    • 8.4 缓冲区溢出的防范
  • 9 脚本攻击与防御
    • 9.1 SQL注入的概述
    • 9.2 SQL注入漏洞利用
    • 9.3 SQL注入的防范方法
    • 9.4 XSS攻击的概述
    • 9.5 XSS漏洞利用
    • 9.6 XSS攻击的防范方法
    • 9.7 CSRF跨站请求伪造
    • 9.8 SSRF服务器端请求伪造
  • 10 扩展内容知识
    • 10.1 二进制pwn
    • 10.2 逆向工程
    • 10.3 BPburpsuite使用
    • 10.4 Wireshark使用
    • 10.5 CTF比赛
    • 10.6 信息安全工程师
    • 10.7 网络安全宣传
  • 11 课程平台
    • 11.1 网络安全综合实训平台
    • 11.2 综合实训
端口扫描


全连接端口扫描的原理


全连接扫描的优缺点


nmap软件



TCP SYN扫描

TCP SYN扫描也称为half-open扫描(半开放扫描),其原理是由扫描器向目标服务器的端口发送一个请求连接的SYN包,如果目标端口开放,则服务器会向扫描器返回一个SYN/ACK包,否则会返回一个RST包。这种扫描最大的特征是,扫描器在收到SYN/ACK后,不是发送的ACK应答而是发送RST包请求断开连接。这样,三次握手就没有完成,没有建立正常的TCP连接,大多数的系统不会对这种事件进行审计记录,因此这种扫描技术一般不会在目标主机上留下扫描痕迹,并且这种方法可以伪造源IP。但是,这种扫描需要攻击者有root权限,并且随着时代发展,很多IDS都会对这种扫描行为进行监测,但相比前面的connect扫描而言,已经有了技术上的提高。


https://zhuanlan.zhihu.com/p/502016393

TCP SYN扫描需要用户自己构造TCP数据包发送,就不能使用常用的SOCK_STREAM流式套接字,而是要用更加接近底层的SOCK_RAW原始套接字,它允许用户自己构造数据包并在网卡上发送(也正是这个原因导致这个方法需要攻击者拥有root权限,同时也给了伪造握手包源IP地址的机会)

void process_packet(unsigned char* buffer, int size) {
    // Get the IP Header part of this packet
    struct iphdr* iph = (struct iphdr*)buffer;
    struct sockaddr_in source, dest;
    unsigned short iphdrlen;
    if (iph->protocol == 6) {
        struct iphdr* iph = (struct iphdr*)buffer;
        iphdrlen = iph->ihl * 4;
        struct tcphdr* tcph = (struct tcphdr*)(buffer + iphdrlen);
        memset(&source, 0, sizeof(source));
        source.sin_addr.s_addr = iph->saddr;
        memset(&dest, 0, sizeof(dest));
        dest.sin_addr.s_addr = iph->daddr;
        if (tcph->syn == 1 && tcph->ack == 1 &&
            source.sin_addr.s_addr == dest_ip.s_addr) {
            printf("Port %d open \n", ntohs(tcph->source));
            fflush(stdout);
        } else if (source.sin_addr.s_addr == dest_ip.s_addr) {
            printf("Port %d close \n", ntohs(tcph->source));
            fflush(stdout);
        }
    }
}




Xmas Tree扫描模式是什么样的,介绍一下:

https://blog.csdn.net/zHx981/article/details/112268991

该扫描模式通过发送带有下列标志位的tcp数据包 :

**URG:**指示数据时紧急数据,应立即处理。

**PSH:**强制将数据压入缓冲区。

**FIN:**在结束TCP会话时使用。

正常情况下,三个标志位不能被同时设置,但在此种扫描中可以用来判断哪些端口关闭还是开放。

端口开放时:发送URG/PSH/FIN, 没有响应

端口关闭: 发送URG/PSH/FIN,没有响应 , 但响应RST(TCP连接异常终止)

XMAS扫描原理和NULL扫描的类似,将TCP数据包中的ACK、FIN、RST、SYN、URG、PSH标志位置1后发送给目标主机。在目标端口开放的情况下,目标主机将不返回任何信息。