- 学习的意义
- 一、外网信息收集
- 1.1域名反查ip
- 1.2cdn判断
- 1.3端口扫描
- 1.4 whois查询
- 1.5子域名查询
- 1.6交互式
- 1.7主函数
- 二、全部代码
学习相关安全工具原理
掌握自定义工具拓展开发
解决实战中无工具或者手工麻烦批量化等情况
在二次开发bypass,日常任务,批量测试等方面均有帮助
如src批量收集并利用,awd批量利用获取flag,ctf加密脚本等
import socket,os,time,sys from whois import whois def ip_check(url): ip = socket.gethostbyname('www.youthbelief.club') print(ip)1.2cdn判断
#识别目标是否存在CDN
#1.采用nslookup 执行结果 进行返回ip解析数目判断
#相当于 利用python 系统命令 os.system()
#调用cmd中文乱码 先执行一次 os.system(‘chcp 65001’)
#2. 根据返回结果存在的.数 判断是否存在cdn 如果超过10个 就解析出多个ip 存在cdn。
import os os.system('chcp 65001') #cdn_data = os.system('nslookup www.youthbelief.club') cdn_data = os.popen('nslookup www.youthbelief.club') cdn_datas = cdn_data.read() #print(cdn_datas) nums = cdn_datas.count('.') print(nums) if nums>10: print("cdn存在") else: print("cdn不存在")1.3端口扫描
#端口扫描
#1.原生自写socket协议 tcp udp 扫描
#2.调用第三方模块nmap masscan 等扫描
#3.调用系统工具脚本执行
下边用第一种
def port_check(url): ip = socket.gethostbyname(url) ports={'21','22','3389'} server = socket.socket(socket.AF_INET,socket.SOCK_STREAM) for port in ports: result = server.connect_ex((ip,int(port))) #print(result) if result ==0: print(port+'|开放') else: print(port+'|未开放')1.4 whois查询
#whois查询
#第三方库进行whois查询也可以利用网上接口查询
下方代码用第三方库
需要先cmd下载库
pip install python-whois
第三方库 不如网上站长之家接口全
尽量用网上结果
def whois_check(url): data = whois(url) print(data)1.5子域名查询
#子域名查询
#1.利用字典爆破进行查询
#2.利用bing或第三方接口进行查询
def subdomain_check(url): url = url.replace('www.','') print(url) for zym_data in open('dic2.txt'): zym_data = zym_data.replace('n','') url2 = zym_data+'.'+url #print(url2) try: ip=socket.gethostbyname(url2) print(url2+'->'+ip) time.sleep(0.1) except Exception as e: pass1.6交互式
def start(): print('运行示例:python 1.py all xxx.com' ) url = sys.argv[2] check = sys.argv[1] if check == 'ip': ip_check(url) elif check=="cdn": cdn_check(url) elif check=="whois": whois_check(url) elif check=='sub': subdomain_check(url) elif check=='all': ip_check(url) cdn_check(url) whois_check(url) subdomain_check(url)1.7主函数
if __name__ == "__main__": start()二、全部代码
# -*- coding:utf-8 -*- import socket,os,time,sys from whois import whois #域名反查ip def ip_check(url): ip = socket.gethostbyname('www.youthbelief.club') print(url+'域名反查ip结果为'+ip) #识别目标是否存在CDN #1.采用nslookup 执行结果 进行返回ip解析数目判断 # 相当于 利用python 系统命令 os.system() # 调用cmd中文乱码 先执行一次 os.system('chcp 65001') def cdn_check(url): os.system('chcp 65001') #cdn_data = os.system('nslookup www.youthbelief.club') cdn_data = os.popen('nslookup www.youthbelief.club') cdn_datas = cdn_data.read() #print(cdn_datas) nums = cdn_datas.count('.') if nums>10: print("cdn存在") else: print("cdn不存在") # 端口扫描 #1.原生自写socket协议 tcp udp 扫描 #2.调用第三方模块nmap masscan 等扫描 #3.调用系统工具脚本执行 def port_check(url): ip = socket.gethostbyname(url) ports={'21','22','3389'} server = socket.socket(socket.AF_INET,socket.SOCK_STREAM) for port in ports: result = server.connect_ex((ip,int(port))) #print(result) if result ==0: print(port+'|开放') else: print(port+'|未开放') #whois查询 #第三方库进行whois查询也可以利用网上接口查询 def whois_check(url): data = whois(url) print(data) #子域名查询 #1.利用字典爆破进行查询 #2.利用bing或第三方接口进行查询 def subdomain_check(url): url = url.replace('www.','') print(url) for zym_data in open('dic2.txt'): zym_data = zym_data.replace('n','') url2 = zym_data+'.'+url #print(url2) try: ip=socket.gethostbyname(url2) print(url2+'->'+ip) time.sleep(0.1) except Exception as e: pass def start(): print('运行示例:python 1.py all xxx.com' ) url = sys.argv[2] check = sys.argv[1] if check == 'ip': ip_check(url) elif check=="cdn": cdn_check(url) elif check=="whois": whois_check(url) elif check=='sub': subdomain_check(url) elif check=='all': ip_check(url) cdn_check(url) whois_check(url) subdomain_check(url) if __name__ == "__main__": start()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)