前期信息收集
漏洞检测和利用
综合利用和插件开发
渗透测试框架POC开发
主要涉及点:Socket、爬虫、正则表达式、框架开发
import socket,os,time,sys
from whois import whois
#ip查询
def ip_check(url):
ip=socket.gethostbuname(url)
printf(ip)
#whois查询
def whois_check(url):
data=socket.gethostbuname(url)
printf(data)
#CDN判断-利用返回IP条数进行判断
def cdn_check(url):
ns="nslookup"+url //采用nslookup执行结果返回IP解析数目进行判断
data=os.popen(ns,"r").read() //利用python去调用执行系统命令
x=data.count('.')
if x>10:
print("CDN存在")
else:
print("CND不存在")
#端口扫描
#1.原生自写socket协议tcp,udp扫描
#2.调用第三方masscan,nmap模块等扫描
#3.调用系统工具脚本执行
server =socket.socket(socket.AF_INET,socket.SOCK_STREAM)
result=server.connect_ex(('CDN','port'))
if result==0:
print('open')
else:
print('close')
#子域名查询
#1.利用字典加载爆破进行查询
#2.利用bing或第三方接口进行查询
urls=''
url.url.replace('www','')
for zym_data in open('dic.txt'):
zym_data.replace('\n','')
zym_list_url=zym_data+'.'+url
try: #异常处理
ip=socket.gethostbyname(zym_list_url)
except Exception as e:
print(zym_list_url+ "->"+"error")
time.sleep(0,1)
内网主机信息探针
1.原生利用ping进行获取
2.原生利用icmp,tcp,udp等协议获取
3.利用第三方模块库nmap等加载扫描获取
Python开发--批量Fofa&SRC提取&POC验证
#Requset爬虫技术、lxml数据提取、异常处理、Fofa等使用说明
如何实现漏洞批量化:
1.获取到可能存在漏洞的地址信息 --可以借助Fofa
2.批量请求地址信息进行判断是否存在
import base64
from lxml import etree
search_data=''
serach_data_bs=str(base64.b64encode(search_data.encode("utf-8")),"utf-8")
url=''+str(yeshu)
result=requests.get(url+search_data)
print(result.content)
#lxml
soup=etree.HTML(result) #初始化生成
ipdata=soup.xpath('//div[@class="re-domain"]/a[@target="_blank"]/@href') #提取a标签中条件是@target="_blank" 中的href内容
ipdatas='\n'.join(ipdata)