初探脚本小子--快速上手自写信息收集脚本
原文地址:初探脚本小子_白帽子技术/思路_i春秋社区-分享你的技术,为安全加点温度. - Powered by Discuz! (ichunqiu.com)
最近在学习写脚本,这里作者分析几个信息收集的脚本,方便大家学习、理解一些工具的原理
渗透测试时找准一个目标后首先需要收集资产,子域名收集很重要,域名越多攻击面越大
子域名收集
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
|
import time
import requests
import tldextract
head = { 'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0' } #请求头
for yuming in open ( "yuming.txt" ): #导入目标域名
yuming = yuming.replace( '\n' , '') #去掉换行符
extracted = tldextract.extract(yuming) #提取根域名
root = extracted.registered_domain #提取根域名
print (root)
for name in open ( "ziyuming.txt" ): #导入子域名字典
name = name.replace( '\n' ,'') #去掉换行符
url = name + '.' + root #拼接URL
try :
response = requests.get(url = 'http://' + url, headers = head, timeout = 3 ) #尝试请求
if response.status_code in [ 200 , 302 , 403 ]: #如果为以上状态码则则证明该域名存在
print (url + '--存在' )
time.sleep( 0.1 ) #添加延迟
except Exception as e:
continue
url = ''
|
拿到域名之后需要反查真实IP方便CD扫描
域名反查IP
1
2
3
4
5
|
import socket #导包
for yuming in open ( "yuming.txt" ): #导入域名库
yuming = yuming.replace( '\n' , '') #去掉换行符
yuming = socket.gethostbyname(yuming) #调用socket中的gethostbyname()方法去反查IP
print (yuming) #打印出IP
|
(都是CDN)
域名反查之后,得到的IP或许不是真是IP,或者说绝大可能不是真是IP,一些大企业一般会挂上CDN
判断CDN
01
02
03
04
05
06
07
08
09
10
|
import os #导包
for yuming in open ( "yuming.txt" ): #导入域名库
yuming = yuming.replace( '\n' , '') #去掉换行符
cdn_data = os.popen( 'nslookup ' + yuming).read() #调用终端命令行
x = cdn_data.count( "." ) #计算“.“的个数
# print(cdn_data)
if x> = 10 : #个数大于10则说明又cdn
print ( "有cdn" )
else :
print ( "无cdn" )
|
原理:如果有cdn,则cdn_data中”.“的个数会大于9个,如果没有cdn就只有9个,以此来简单判断有无cdn
如果拿到了真实IP,那么就可以对其进行C段扫描了
C段扫描
1
2
3
4
5
6
7
8
|
import nmap
for IP in open ( "IP.txt" ): #导入IP库
IP = IP.replace( '\n' , '') #去掉换行符
nm = nmap.PortScanner() #创建端口扫描对象
host = IP + '/24' #给ip加上/24 例:127.0.0.1/24
data = nm.scan(hosts = host,arguments = '-T4 -F' ) #开始扫描并将结果返回给data
print (nm.all_hosts()) #打印出扫描出来的其他IP
print (nm.csv()) #打印出IP的TCP服务端口
|
其实就是调用了nmap进行扫描
扫描到大量C段的 其他IP后再进行批量扫端口
端口扫描
01
02
03
04
05
06
07
08
09
10
11
12
|
import socket
for IP in open ( "IP.txt" ): #导入IP库
IP = IP.replace( '\n' , '') #去掉换行符
for port in range ( 8060 , 8081 ): #遍历8060到8080的端口
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 创建面向连接和网络的套接字
server.settimeout( 1 ) #限制重连时间
result = server.connect_ex((IP,port)) #尝试与服务端发起连接,并将结果返回给result(类似nmap全连接扫描)
if result = = 0 : #如果结果为0则便是端口开放
print ( str (port) + "端口---open" )
server.close() #关闭连接
else :
continue
|
希望这篇文章对您有用!
初探脚本小子--快速上手自写信息收集脚本相关推荐
- 人人都是 DBA(XII)查询信息收集脚本汇编
什么?有个 SQL 执行了 8 秒! 哪里出了问题?臣妾不知道啊,得找 DBA 啊. DBA 人呢?离职了!!擦!!! 程序员在无处寻求帮助时,就得想办法自救,努力让自己变成 "伪 DBA& ...
- 人人都是 DBA(X)资源信息收集脚本汇编
什么?有个 SQL 执行了 8 秒! 哪里出了问题?臣妾不知道啊,得找 DBA 啊. DBA 人呢?离职了!!擦!!! 程序员在无处寻求帮助时,就得想办法自救,努力让自己变成 "伪 DBA& ...
- 自动脚本以及打包,将写好的脚本打包成exe可执行文件
自动化脚本以及如何打包成可执行程序 1.自动化脚本 2.前置工作准备 2.1. selenium模块 2.2.浏览器驱动 2.2.1.版本选择: 3.开始 3.1.打开页面 3.2.操作页面 需求 分 ...
- python写魔兽世界脚本_用python bat写软件安装脚本 + HM NIS Edit自动生成软件安装脚本...
2019-03-11更新:原来NSIS脚本也可以禁用64位文件操作重定向的! 1.在安装脚本的开始处定义 LIBRARY_X64. !include "MUI.nsh" !incl ...
- python可以制作游戏脚本吗_用Python写一个游戏脚本,你会吗?
学习python有一段时间了,由于python语言的强大和简洁,是一个不错的脚本语言,就准备做个游戏脚本练练手.如果你也想多练项目实战.可以去小编的Python交流.裙 :一久武其而而流一思(数字的谐 ...
- python apscheduler 脚本 动态_用apscheduler写python定时脚本
apscheduler 官方文档:http://apscheduler.readthedocs.io/en/latest/ 写一个后台定时任务,一般2个选择,一个是apscheduler,一个cele ...
- python自动游戏脚本_[python游戏脚本]我想用Python写一个游戏脚本,自动点击排队!...
我只是学会了Python,我用我的知识掌握和使用\u201Cautopy\u201D功能来编写一个脚本,该脚本自动点击鼠标队列,但是我希望这个脚本运行而不被显示在前面的窗口,即使是最小化.我在后台继续 ...
- 人人都是 DBA(XI)I/O 信息收集脚本汇编(转)
http://www.cnblogs.com/gaochundong/p/everyone_is_a_dba_io_info_collection.html 转载于:https://www.cnblo ...
- 让你IDA Pro 快速上手使用
让你IDA Pro 快速上手使用 写这篇博文主要是在打pwn的时候,有时候在IDA中想要寻找信息,自己不会IDA Pro的使用.只能一个一个查找太费时间和人力,寻找相关书籍和博客做了一些适合新手的笔记 ...
最新文章
- Windows系统软件推荐
- 【Python】Pandas 数据类型概述与转换实战
- python编写接口初识一
- java简述垃圾回收原理及算法_Java垃圾回收原理和算法
- jsp解决mysql乱码_解决mysql+jsp出现乱码的问题
- ClickHouse内核分析-MergeTree的存储结构和查询加速
- js 判断时区, 时区过滤
- python如何导入numpy简书_如何使用python3.x成功导入numpy?
- C++/mfc错误总结
- uni-app开发开发h5,小程序,app,注意事项
- 水彩画笔效果PS笔刷
- 英语音标、发音技巧、浊化规则
- Albumentation使用指南
- lwip协议栈在linux运行,一种轻量级的TCP_IP协议栈LwIP在嵌入式系统中的应用
- 云原生落地实践的25个步骤
- robots文件对网站优化有哪些作用
- Unknown label type: ‘continuous
- php curl添加授权Authorization 验证头
- outlook 签名_如何在Outlook 2013中创建新签名
- vscode_历史版本下载_便携版/安装版