1-信息收集

1.1 域名信息

whois、域名反查、ICP备案、企业信息查询

子域名收集工具:Layer子域名挖掘机等
原理:枚举、字典
域名:baidu.com
子域名:news.baidu.com、map.baidu.com、www.baidu.com、...

域名DNS信息
Domain Name Server 域名解析服务

www.baidu.com --> 域名解析服务 --> 220.181.38.148
需要去DNS服务器对域名及子域名进行配置解析

记录类型 标志
A A记录是最常用的类型,将域名指向一个IPv4地址,如 8.8.8.8
CNAME 将域名指向另一个域名地址,与其保持相同解析,如 https://www.dnspod.cn
MX 用于邮件服务器,相关参数一般由邮件注册商提供
TXT 可填写附加文本信息,常用于域名验证是你的
NS 域名服务器记录,可将指定域名交由其他DNS服务商解析管理
AAAA 将域名指向一个IPv6地址,如 ff06:0:0:0:0:0:0:c3

1.2 IP信息

一、DNS解析流程

二、ping/nslookup

  • 可以通过域名获取映射的IP

三、如何获取CDN背后的真实IP

CDN(Content Delivery Network)内容分发网络,相当于多台服务器作为源站的副本。将源站的资源缓存在全国各地的边缘服务器,供用户就近获取,降低源站压力。
CDN是什么?使用CDN有什么优势?

  1. 超级ping
    https://ping.chinaz.com/
  2. 查询历史DNS记录
    思路:公司小规模时,解析到哪个IP过,有可能是真实IP
  3. 通过子域名查询
    思路:不是所有服务(域名)都会使用CDN,如果子域名和主域名部署在同一个服务器上,则可以通过子域名去获取真实IP
  4. 国外主机解析
    思路:找不到节点,从而不经过CDN服务,访问源站
  5. 网络搜索引擎
    fofa、censys

1.3 端口服务信息

一、端口扫描思路和代码实现

1、查看本机端口信息
Windows ---> netstat -aon|findstr 3306
Linux ---> netstat -an|grep 3306

2、远程机器端口
talnet xxx.xxx.xxx.xxx 80
wget xxx.xxx.xxx.xxx 80
nc -vz xxx.xxx.xxx.xxx 80-9000

3、扫描10000个端口python实现(web)

import socket, threading

def TCP_connect(ip, port_number, delay, output):
    TCPsock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    TCPsock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    TCPsock.settimeout(delay)
    try:
        TCPsock.connect((ip, port_number))
        output[port_number] = 'Listening'
    except:
        output[port_number] = ''

def scan_ports(host_ip, delay):

    threads = []        # To run TCP_connect concurrently
    output = {}         # For printing purposes

    # Spawning threads to scan ports
    # 先扫10000个端口
    for i in range(10000):
        t = threading.Thread(target=TCP_connect, args=(host_ip, i, delay, output))
        threads.append(t)

    # Starting threads
    for i in range(10000):
        threads[i].start()

    # Locking the script until all threads complete
    for i in range(10000):
        threads[i].join()

    # Printing listening ports from small to large
    for i in range(10000):
        if output[i] == 'Listening':
            print(str(i) + ': ' + output[i])

def main():
    host_ip = input("Please enter host IP: ")
    # 超时抛出异常
    delay = int(input("How many seconds the socket is going to wait until timeout: "))   
    scan_ports(host_ip, delay)
    input("Press Any Key to Exit")

if __name__ == "__main__":
    main()

二、常见端口及漏洞

三、端口扫扫描工具

posted @ 2024-11-18 15:54  xmh666  阅读(5)  评论(0编辑  收藏  举报