1987WEB视界-分享互联网热点话题和事件

您现在的位置是:首页 > 域名 > 正文

域名

利用IP反查域名的几种方法

1987web2022-08-24域名1007
0x1前言渗透测试过程中,批量扫描到一些IP地址,需要反差域名,这里给出三种方法:

0x1前言

渗透测试过程中,批量扫描到一些IP地址,需要反差域名,这里给出三种方法:

  • 利用nslookup反查域名
  • 利用socket批量解析
  • 利用pyopenssl解析证书中的CN

0x2 利用nslookup反查域名

nslookup是最基础的域名解析工具,Windows和Linux上都可以使用。利用nslookup可以解析域名,也可以利用ip反查域名。

  • 正向解析:通过域名查IP
nslookup domain [dnsserver]
  • 反向解析:通过ip反查域名
nslookup -qt=ptr ip [dnsserver]

nslookup反向解析结果不够准确,而且很多ip是解析不出来的

0x3 利用socket解析

pyhton中的Socket 模块提供了在构建 socket 服务器和客户机时所需要的所有功能。我们只需使用其gethostbyaddr函数解析ip.

import socket 
domain=socket.gethostbyaddr(ip)

0x4利用pyopenssl解析

SSL证书

HTTPS的核心是数据加密和认证,在HTTPS数据传输前的握手过程中,网站向浏览器发送SSL证书,证书中包含了网站的域名、证书有效期、颁发机构、公钥等信息,我们可以解析IP:443发送的证书,获取到比较准确的域名信息。

pyopenssl

pyopenssl是一个封装了openssl的python模块,使用它可以方便地进行一些加解密操作

from requests.packages.urllib3.contrib import pyopenssl as reqs

ip=220.181.38.148
port=443
try:    
    x509 = reqs.OpenSSL.crypto.load_certificate(
        reqs.OpenSSL.crypto.FILETYPE_PEM,
        reqs.ssl.get_server_certificate((ip, port))
    )
    domain = x509.get_subject().CN
    print(domain)
except:
    print(ip+>Get CN failed)

0x5

从上述结果来看,nslookup和socket的解析相同,而且很多ip也解析不了;在ip开放443端口的情况下,利用ssl解析证书可获得比较准确的域名。