事实:做了N个采集,都是处理内容失败(官方看下)
优采云 发布时间: 2022-12-22 09:29事实:做了N个采集,都是处理内容失败(官方看下)
采集器的问题我们开发已经查过了,下面是他们的回答:
个别文章采集不到和跳课的原因主要有两个。
一种是php无法读取对方的网站。
二是php从对方服务器获取图片保存到本地的时间可能过长。 而且,有些东西读过了,但是图片读不出来(读图片的时候网络突然忙,导致图片打不开)。
这块不是程序造成的,原因是:
1.网络繁忙导致php执行超时
2、目标内容(包括:URL、图片)无响应、404错误或其他错误。
造成这种情况的原因有很多,比如网络拥堵,防盗机制,你自己的服务器突然以某种方式繁忙等等。
解决方案:
全部采集完之后,可以再进行一次采集,这样已经采集到的内容会被跳过,重新采集因为网络繁忙而失败的内容。
ss6 -> ss7采集机制调整不多,所以不会有6线7的不稳定因素
后续版本会在采集机制上做更多的优化。
定时任务采集、断点续采集、内容图片分离采集等。
汇总:渗透测试之信息收集篇(含思维导图)
爱站记录查询
域名助手备案信息查询
11、查询绿盟科技的whois信息
域名查询
查看注册人和邮箱获取更多域名
12. 采集子域 12.1。 子域的功能
采集子域名可以扩大测试范围,同一域名下的二级域名都属于目标范围。
12.2. 常用方法
子域中常见的资产类型一般包括办公系统、邮件系统、论坛、商城等管理系统,网站管理后台也可能出现在子域中。
首先找到目标站点,在官网可以找到相关资产(主要是办公系统、邮件系统等)。 关注页面底部,可能会有管理后台等收获。
查找目标域名信息的方法如下:
FOFA title="公司名称"
百度intitle=公司名称
Google intitle=公司名称
站长之家,可直接搜索名称或网站域名查看相关信息:
钟馗之眼站点=域名
找到官网后,采集子域名。 以下是一些采集子域名的推荐方法。 可以直接输入域名查询。
12.3. 域名类型
A记录、别名记录(CNAME)、MX记录、TXT记录、NS记录:
12.3.1。 A(地址)记录:
用于指定主机名(或域名)对应的IP地址记录。 用户可以将域名下的网站服务器指向自己的网站服务器。 同时,您还可以设置您的域名的二级域名。
12.3.2。 别名(CNAME)记录:
也称为规范名称。 这种类型的记录允许您将多个名称映射到同一台计算机。 通常用于同时提供 WWW 和 MAIL 服务的计算机。 例如,有一台名为“”的计算机(A记录)。 同时提供WWW和MAIL服务,方便用户访问服务。 可以为这台计算机设置两个别名(CNAME):WWW 和 MAIL。 这两个别名的全称是“”和“”。 其实都指向“”。
当你有多个域名需要指向同一个服务器IP时,可以使用同样的方法。 这时候可以给一个域名做一个A记录指向服务器IP,然后把其他域名别名到有之前A记录的域名上。 那么当你的服务器IP地址发生变化的时候,你就不用费心费力地一个一个的改域名了。 您只需要更改做A记录的域名,其他做别名的域名也会自动更改为新的IP地址。
12.3.3。 如何检测CNAME记录?
1、进入命令状态; (开始菜单-运行-CMD【回车】);
2、输入命令“nslookup -q=cname 此处填写对应的域名或二级域名”,查看返回结果是否与设置一致。
12.3.4。 MX(邮件交换器)记录:
它是一条邮件交换记录,指向一个邮件服务器,供电子邮件系统在发送邮件时根据收件人的地址后缀定位邮件服务器。 例如,当Internet上的用户要寄信给 时,用户的邮件系统通过DNS查找该域名的MX记录。 如果MX记录存在,则用户计算机将邮件发送到MX记录指定的邮件服务器。 .
12.3.5。 什么是 TXT 记录? :
TXT记录一般是指对主机名或域名的指令集,例如:
1) admin IN TXT "jack, mobile:";
2)mail IN TXT》邮件主机,存放于xxx,管理员:AAA,Jim IN TXT》联系人:
也就是你可以设置TXT,这样别人就可以联系到你了。
如何检测TXT记录?
1、进入命令状态; (开始菜单-运行-CMD【回车】);
2、输入命令“nslookup -q=txt 在此填写对应的域名或二级域名”,查看返回结果是否与设置一致。
12.3.6。 什么是 NS 记录?
ns记录的全称是Name Server,也就是域名服务器记录,用来明确你的域名当前是由哪台DNS服务器解析的。
12.3.7。 子域名在线查询1
12.3.8。 子域名在线查询2
12.3.9。 DNS检测
12.3.10。 IP138查询子域
12.3.11。 FOFA 搜索子域
语法:域=“”
Tips:以上两种方式不需要爆破,查询速度快。 当资产需要快速采集时,可以先使用,以后再通过其他方式补充。
12.3.12。 Hackertarget 查询子域
注意:通过该方法查询子域名可以得到目标的一个大概的ip段,然后就可以通过ip采集信息了。
12.4。 360映射空间
领域: ”*。”
12.4.1。 图层子域挖掘机
12.4.2。 子域蛮干
pip 安装 aiodns
运行命令 subDomainsBrute.py
subDomainsBrute.py --full -o freebuf2.txt
12.4.3。 子列表3r
pip install -r requirements.txt
提示:以上方法是对子域名进行爆破,因为字典功能更强大,所以效率更高。
帮助文档
<p style="margin-top: 0px;margin-bottom: 0px;">usage: sublist3r.py [-h] -d DOMAIN [-b [BRUTEFORCE]] [-p PORTS] [-v [VERBOSE]]<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />[-t THREADS] [-e ENGINES] [-o OUTPUT] [-n]<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />OPTIONS:<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />-h, --help show this help message and exit<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />-d DOMAIN, --domain DOMAIN<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />Domain name to enumerate it's subdomains<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />-b [BRUTEFORCE], --bruteforce [BRUTEFORCE]<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />Enable the subbrute bruteforce module<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />-p PORTS, --ports PORTS<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />Scan the found subdomains against specified tcp ports<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />-v [VERBOSE], --verbose [VERBOSE]<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />Enable Verbosity and display results in realtime<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />-t THREADS, --threads THREADS<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />Number of threads to use for subbrute bruteforce<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />-e ENGINES, --engines ENGINES<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />Specify a comma-separated list of search engines<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />-o OUTPUT, --output OUTPUT<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />Save the results to text file<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />-n, --no-color Output without color</p>
示例:python sublist3r.py -d
中文翻译
-h:帮助
-d : 指定主域名枚举子域名
-b : 调用 subbrute 来暴力枚举子域名
-p : 指定扫描子域名的tpc端口
-v :显示实时详细结果
-t : 指定线程
-e : 指定搜索引擎
-o : 将结果保存到文本
-n : 没有颜色的输出
扫描子域的默认参数
python sublist3r.py -d
使用暴力枚举子域
python sublist3r -b -d
12.4.4。 python2.7.14环境
;C:\Python27;C:\Python27\脚本
12.4.5。 万物皆可
pip3 install --user -r requirements.txt -i
python3 oneforall.py --target run /*采集*/
爆炸子域
例子:
<p style="margin-top: 0px;margin-bottom: 0px;">brute.py --target domain.com --word True run<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />brute.py --targets ./domains.txt --word True run<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />brute.py --target domain.com --word True --concurrent 2000 run<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />brute.py --target domain.com --word True --wordlist subnames.txt run<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />brute.py --target domain.com --word True --recursive True --depth 2 run<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />brute.py --target d.com --fuzz True --place m.*.d.com --rule '[a-z]' run<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />brute.py --target d.com --fuzz True --place m.*.d.com --fuzzlist subnames.txt run</p>
12.4.6。 域名
<p style="margin-top: 0px;margin-bottom: 0px;">dnsburte.py -d aliyun.com -f dnspod.csv -o aliyun.log<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />wydomain.py -d aliyun.com</p>
12.4.7。 模糊域
12.4.8。 隐藏域名主机冲突
隐藏资产检测-主机碰撞
很多时候访问目标资产的IP响应是:401、403、404、500,但是域名请求可以返回正常的业务系统(禁止直接IP访问),因为大部分需要绑定向主机正常请求访问(目前互联网公司的基本做法)(域名已经删除了A记录,但是反向生成的配置还没有更新),那么我们就可以将采集到的目标域名和目标资产的IP段,并用IP段+域名的形式进行捆绑碰撞,可以发现很多有趣的东西。
发送http请求时,将域名和IP列表配对,然后遍历发送请求(相当于修改本地hosts文件),对比对应的标题和响应包大小,快速找出一些隐藏资产。
Hosts collision需要目标的域名和目标的相关IP作为字典
更不用说域名了
相关IP来源有:
目标域名历史分析IP
ip 常规
13.端口扫描
确定目标的大概ip段后,可以先检测ip的开放端口。 某些特定服务可能会在默认端口上打开。 检测开放端口有利于快速采集目标资产,找到目标网站的其他功能站点。
13.1. msscan 端口扫描
msscan -p 1-65535 ip --rate=1000
13.2. 御剑端口扫描工具
13.3. nmap扫描端口并检测端口信息
常用参数,如:
nmap -sV 192.168.0.2
nmap -sT 92.168.0.2
nmap -Pn -A -sC 192.168.0.2
nmap -sU -sT -p0-65535 192.168.122.1
用于扫描目标主机服务版本号和开放端口
如果需要扫描多个ip或者ip段,可以保存到一个txt文件中
nmap -iL ip.txt
扫描列表中的所有 ip。
Nmap 是最常用的端口检测方法。 操作简单,输出结果非常直观。
13.4. 在线端口检测
13.5。 端口扫描器
御剑、msscan、nmap等
御剑高速端口扫描器:
填写你要扫描的ip段(如果只扫描一个ip,只需填写起始IP和结束IP),可以选择不更改默认端口列表,也可以选择自己指定端口。
13.6. 渗透端口
21,22,23,1433,152,3306,3389,5432,5900,50070,50030,50000,27017,27018,11211,9200,9300,7001,7002,6379,5984,873,443,8000-9090,80- 89,80,10000,8888,8649,8083,8080,8089,9090,7778,7001,7002,6082,5984,4440,3312,3311,3128,2601,2604,2222,2082,2083,389,88,512, 51 1025,111,1521,445,135,139,53
13.7。 穿透常用端口及对应服务
1、Web类(web漏洞/敏感目录)
第三方通用组件漏洞struts thinkphp jboss ganglia zabbix
80 网站
80-89网页
8000-9090 网页
2.数据库类(弱口令扫描)
第1433章
第1521章
3306 MySQL
5432 PostgreSQL 数据库
3.特殊服务类(未授权/命令执行类/漏洞)
第443章
873 Rsync 未经授权
5984 CouchDB:5984/_utils/
6379 Redis 未授权
7001,7002 WebLogic默认弱口令,反序列化
9200,9300 elasticsearch 参考WooYun:玩服务器ElasticSearch命令执行漏洞
11211 memcache 未授权访问
27017、27018 Mongodb 未授权访问
执行了 50000 个 SAP 命令
50070、50030 hadoop默认端口未授权访问
4.常用端口类(扫描弱口令/端口爆破)
21 英尺
22 SSH
23 远程登录
2601,2604 zebra路由,默认密码zebra
3389 远程桌面
5.端口总明细
21 英尺
22 SSH
23 远程登录
80 网站
80-89网页
第161话
第389章
443 SSL Heartbleed 和一些网络漏洞测试
445 家中小企业
512,513,514 雷克斯
873 Rsync 未经授权
1025,111 NFS
第1433章
1521 甲骨文:(iSqlPlus 端口:5560、7778)
2082/2083 cpanel主机管理系统登录(国外多用)
2222 DA虚拟主机管理系统登录(国外多用)
2601,2604 zebra路由,默认密码zebra
3128 squid代理默认端口,如果不设置密码,可以直接漫游内网
3306 MySQL
3312/3311康乐主机管理系统登录
3389 远程桌面
4440 rundeck 参考无云:借新浪服务成功漫游新浪内网
5432 PostgreSQL 数据库
5900 越南
5984 CouchDB:5984/_utils/
6082 Varnish 参考WooYun:Varnish HTTP*敏*感*词* CLI 未授权访问容易导致直接篡改网站或代理访问内网
6379 Redis 未授权
7001,7002 WebLogic默认弱口令,反序列化
7778 Kloxo 主机控制面板登录
8000-9090是一些常用的web端口,有些运维喜欢在这些非80端口上开启管理后台
8080 tomcat/WDCP主机管理系统,默认弱密码
8080、8089、9090 JBOSS
8083 Vestacp主机管理系统(国外多用)
8649 神经节
8888 amh/LuManager主机管理系统默认端口
9200,9300 elasticsearch 参考WooYun:玩服务器ElasticSearch命令执行漏洞
10000 Virtualmin/Webmin服务器虚拟主机管理系统
11211 memcache 未授权访问
27017、27018 Mongodb 未授权访问
28017 mongodb统计页面
执行了 50000 个 SAP 命令
50070、50030 hadoop默认端口未授权访问
13.8。 常用端口及攻击方式
14.查找真实ip
如果目标网站使用CDN,则隐藏cdn的真实ip。 要想找到真实服务器,就必须获取真实ip,根据这个ip继续查询侧站。
注意:很多情况下,虽然主站使用了CDN,但是子域名不一定使用CDN。 如果主网站和子域名在同一个ip段,那么也是找到子域名真实ip的一种方式。
14.1. Ping多处确认是否使用CDN
14.2. 查询历史DNS解析记录
在查询到的历史分析记录中,最早的历史分析IP很可能记录的是真实IP。 推荐使用此方法快速找到真实IP,但不是所有网站都能找到。
14.2.1。 域名数据库
14.2.2。 微步在线
14.2.3。
14.2.4。 查看DNS
14.3. php信息
如果目标网站存在phpinfo泄露等情况,可以在phpinfo中的SERVER_ADDR或_SERVER["SERVER_ADDR"]中查找真实ip
14.4. 绕过CDN
绕过CDN的方法有很多,请参考
15. 边站和C段
边站通常有业务功能站点。 建议先采集已有IP的边站,再检测C网段,确定C网段的目标后,在C网段的基础上重新采集边站。
辅助站点是与已知目标站点位于同一服务器上但具有不同端口的站点。 通过以下方法搜索到副站后,首先访问确定是否是您需要的站址信息。
15.1.1。 站长主页
用ip网站查询
15.2. 谷歌黑客
15.2.1。 网络空间搜索引擎
比如FOFA搜边站和C段
这种方式效率更高,可以直观的看到站点标题,但也有不收录不常用端口的情况。 虽然这种情况很少见,但您可以在后期补充资产时,通过以下方式再次扫描领取。
15.2.2。 线上段c
c部分使用脚本
<p style="margin-top: 0px;margin-bottom: 0px;">pip install requests<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />#coding:utf-8<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />import requests<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />import json<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />def get_c(ip):<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />print("正在收集{}".format(ip))<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />url="http://api.webscan.cc/?action=query&ip={}".format(ip)<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />req=requests.get(url=url)<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />html=req.text<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />data=req.json()<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />if 'null' not in html:<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />with open("resulit.txt", 'a', encoding='utf-8') as f:<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />f.write(ip + '\n')<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />f.close()<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />for i in data:<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />with open("resulit.txt", 'a',encoding='utf-8') as f:<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />f.write("\t{} {}\n".format(i['domain'],i['title']))<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />print(" [+] {} {}[+]".format(i['domain'],i['title']))<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />f.close()<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />def get_ips(ip):<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />iplist=[]<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />ips_str = ip[:ip.rfind('.')]<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />for ips in range(1, 256):<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />ipadd=ips_str + '.' + str(ips)<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />iplist.append(ipadd)<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />return iplist<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />ip=input("请你输入要查询的ip:")<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />ips=get_ips(ip)<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />for p in ips:<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />get_c(p)</p>
15.2.3。 Nmap、Msscan扫描等
例如:nmap -p 80,443,8000,8080 -Pn 192.168.0.0/24
15.2.4。 公共端口表
21,22,23,80-90,161,389,443,445,873,1099,1433,1521,1900,2082,2083,2222,2601,2604,3128,3306,3311,3312,3389,4440,4848,5432,92,5569,5569,5569 ,6082,6379,7001-7010,7778,8080-8090,8649,8888,9000,9200,10000,11211,27017,28017,50000,50030,50060,135,139,445,53,88
注意:在检测网段C时,一定要确认ip是否属于目标,因为一个网段C中不一定所有的ip都属于目标。
16.网络空间搜索引擎
如果你想在短时间内快速采集资产,那么使用网络空间搜索引擎是一个不错的选择。 可以直观的看到边站、端口、站点标题、IP等信息,点击列出站点即可直接访问。 判断是否是您需要的站点信息。 FOFA 的通用语法
1、同IP端站:ip="192.168.0.1"
2、C段:ip="192.168.0.0/24"
3.子域名:domain=""
4.标题/关键字:title="百度"
5.如果需要将结果缩小到某个城市,可以拼接语句
title="百度" && region="北京"
17.扫描敏感目录/文件
扫描敏感目录需要强大的字典,需要平时积累。 拥有强大的词典可以更高效地查明网站的管理后台。 常见的敏感文件如.git文件泄露,.svn文件泄露,phpinfo泄露等,这一步就成功了一半,各种扫描器就够了。 在域名中输入目标站点,选择对应的词典类型,即可开始扫描,非常方便。
17.1. 御剑
17.2. 7kbstorm
17.3. 扫描仪
在已经安装pip的前提下,可以直接:
<p style="margin-top: 0px;margin-bottom: 0px;">pip install -r requirements.txt</p>
用法示例:
扫描单个 Web 服务
python BBScan.py --host
扫描下其他主机
python BBScan.py --host --network 28
扫描txt文件中的所有主机
蟒蛇 BBScan.py -f .txt
从文件夹中导入所有主机并扫描
python BBScan.py -d 目标/
--network参数用于设置子网掩码,小公司设置为28~30,中型公司设置为26~28,大公司设置为24~26
当然,尽量避免设置为24,扫描太耗时,除非你想在每个src中多扫描几个漏洞。
这个插件是从内部扫描器中提取的,感谢 Jekkay Hu
如果你有非常有用的规则,请找几个网站验证测试一下,然后pull request
脚本也会优化,接下来的事情:
添加有用的规则,更好地分类规则,细化
然后,您可以直接从 rules\request 文件夹中导入 HTTP_request
优化扫描逻辑
17.4. 目录映射
<p style="margin-top: 0px;margin-bottom: 0px;">pip install -r requirement.txt<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />https://github.com/H4ckForJob/dirmap</p>
单一目标
<p style="margin-top: 0px;margin-bottom: 0px;">python3 dirmap.py -i https://target.com -lcf</p>
多个目标
<p style="margin-top: 0px;margin-bottom: 0px;">python3 dirmap.py -iF urls.txt -lcf</p>
17.5。 直接搜索
解压目录搜索.zip
python3 dirsearch.py -u -e *
17.6. *敏*感*词*
<p style="margin-top: 0px;margin-bottom: 0px;">sudo apt-get install gobuster<br style="outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />gobuster dir -u https://www.servyou.com.cn/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php -t 50</p>
dir -u URL w dictionary -x 指定后缀 -t 线程数
<p style="margin-top: 0px;margin-bottom: 0px;">dir -u https://www.servyou.com.cn/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x "php,html,rar,zip" -d --wildcard -o servyou.log | grep ^"3402"</p>
17.7. 网站文件
机器人.txt
跨域.xml
站点地图.xml
后台目录
网站安装包
网站上传目录
mysql管理页面
php信息
网站文本编辑器
测试文件
网站备份文件(.rar、zip、.7z、.tar.gz、.bak)
DS_Store 文件
vim 编辑器备份文件 (.swp)
WEB—INF/web.xml 文件
15.git
16.svn
18.扫描网页备份
例如
配置.php
配置.php~
配置.php.bak
配置.php.swp
配置.php.rar
配置文件.php.tar.gz
19.网站头部信息采集
1.中间件:web服务【Web Servers】apache iis7 iis7.5 iis8 nginx WebLogic tomcat
2.网站组件:js组件jquery、vue页面布局bootstrap
通过浏览器访问
Firefox 插件 Wappalyzer
curl命令查询头部信息
卷曲-i
20. 敏感文件搜索 20.1. GitHub 搜索
in:name test #仓库标题搜索收录关键字test
in:descripton test #仓库描述搜索收录关键字
in:readme test #Readme文件搜索收录关键字
搜索某些系统的密码
++密码+3306&type=密码
github关键词监控
谷歌搜索
站点:sa 密码
站点:root密码
站点:用户;密码
网站:inurl:sql
SVN信息采集
站点:svn
站点:svn 用户名
站点:svn密码
站点:svn 用户名密码
综合信息采集
站点:密码
站点:ftp ftppassword
站点:密码
网站:内部
+&类型=代码
20.2. 谷歌黑客
站点:域名
inurl:url中存在的关键字网页
intext:网页正文中的关键词
filetype:指定文件类型
20.3。 乌云漏洞库
20.4。 网盘搜索
凌云搜索
潘多多:
泛搜索搜索:
泛搜索:
20.5。 社会工作图书馆
姓名/常用id/邮箱/密码/手机登录网盘网站邮箱查找敏感信息
机器人
20.6. 网站注册信息
查询网站注册信息
它通常与社会工程库一起使用。
20.7。 js敏感信息
20.7.1。 搜索器
python3 JSFinder.py -u
python3 JSFinder.py -u -d
python3 JSFinder.py -u -d -ou mi_url.txt -os mi_subdomain.txt
当你想获取更多信息时,可以使用-d进行深度爬取获取更多内容,使用命令-ou、-os指定子域保存的URL和文件名
批量指定url和js链接,获取里面的url。
指定网址:
python JSFinder.py -f 文本.txt
指定JS:
python JSFinder.py -f 文本.txt -j
20.7.2。 加壳模糊器
找到网站交互界面授权密钥
随着WEB前端打包工具的普及,你在日常的渗透测试和安全服务中是否遇到越来越多以Webpack packager为代表的网站? 这类打包器会将整个站点的API和API参数打包在一起进行集中web调用,也方便我们快速发现网站的功能和API列表,但是往往这些打包器生成的JS文件数量异常庞大且总是 JS 代码量极其庞大(高达数万行),给我们手动测试带来了极大的不便,于是 Packer Fuzzer 软件应运而生。
本工具支持自动模糊提取目标站点对应的API和API对应的参数内容,支持模糊高效模糊高效检测七大漏洞:未授权访问、敏感信息泄露、CORS、SQL注入、横向越权访问、弱口令、任意文件上传快速检测。 扫描结束后,该工具还支持自动生成扫描报告,可以选择便于分析的HTML版本,也可以选择比较正规的doc、pdf、txt版本。
sudo apt-get 安装 nodejs && sudo apt-get 安装 npm
混帐克隆
pip3 install -r requirements.txt
python3 PackerFuzzer.py -u
20.7.3。 秘密发现者
一个基于Python脚本的JavaScript敏感信息搜索工具
python3 SecretFinder.py -i -e
cms识别
采集网站信息后,应对网站进行指纹识别。 通过识别指纹,可以确定目标的cms和version,方便下一步测试计划的制定。 可以使用public poc或者自己积累相应的方法进行正式的渗透测试。
21.1. 云溪
21.2. 潮汐指纹
21.3。 CMS指纹识别
确认
21.4。 什么cms
21.5。 御cms识别
22. 非常规作业
1、如果找到了目标的某项资产,却无从下手搜集目标的其他资产,可以查看网站正文中是否有目标的特征,然后使用网络空间搜索引擎(如fofa , 等)特征进行搜索,如:body=”XX公司”或body=”baidu”等。
这种方式一般适用于特征明显、资产数量多的标的,效果往往比较突出。
2、通过以上方式找到特征后,再次搜索body,再搜索,此时fofa上显示的ip,大概率是真实ip。
3.如果需要针对政府网站,可以在批量获取网站首页的时候使用
然后可以结合上一步的方法进行进一步的信息采集。
23、SSL/TLS证书查询
SSL/TLS 证书通常收录域名、子域名和电子邮件地址等信息。 结合证书中的信息,您可以更快地定位到目标资产,获取目标资产的更多信息。
SSL证书搜索引擎:
%。
GetDomainsBySSL.py
24.找到厂商的ip段
25. 移动资产采集 25.1. 微信小程序 支付宝小程序