Red Team 视角的信息收集技术

TODO

  1. 完善 Maltego 部分
  2. 脱敏相关案例 放弃脱敏

信息收集导航页

http://cmcc.ml/
https://navisec.it/
http://tool.leavesongs.com/
http://lu4n.com/security-tools/

信息收集的起点

在渗透测试中,信息收集阶段的起点通常是一个域名或一个公司名称。显然,我们可以通过公司名可以关联到某个域名。

主动侦察

在侦察过程中与目标系统进行直接交互(主动侦察过程中可能被目标记录渗透测试者的IP,即容易留下数字指纹)。

被动侦察

侦察过程中不与目标系统进行直接交互。被动侦察一般不向目标系统发送任何数据包。
基本不遗留直接的数字指纹(digital fingerprint),但仍可能存在某些间接的关系。
比如可以从渗透测试者的PC中提取到google hacking的浏览历史记录。
可以考虑用 Web Archive - Internet Archive 做被动侦查。

总结

介绍主动侦察与被动侦察的目的是希望 Red Team 的渗透测试者有关于数字指纹的概念,并且在执行渗透测试过程中尽可能减少数字指纹的产生。
需要明确的是,主动侦察和被动侦察的界限并不是完全清晰的,被动侦察并不是绝对的,区别在于留下的痕迹是否显眼,是否容易获取。这里有必要提一下法庭科学(Forensic Science)中的罗卡定律,凡有接触,必留痕迹(Every contact leaves a trace)。有很多案例可以证明,比如在入室盗窃案中,在砸坏的玻璃碎片中,发现嫌疑人所穿衣服的同种材质的纤维; 又或者,嫌疑人口供中否认到达过案发现场所在的公园,但在嫌疑人裤脚中发现案发时间处于花季的该公园所有的独特植物的种子。在数字世界中则是与目标服务器的每次交互留下的访问日志。尤其在以机器学习为代表数据科学逐步整合到防御体系中的大环境下,渗透测试者的访问行为与普通用户的访问行为存在显著的区别,这种区别可能会逐步地更容易被目标系统所感知。因此,显而易见,在未来环境下渗透测试者必须集中更多精力来减少痕迹的产生。

信息收集的常见目的

目标组织架构基本信息
目标邮件服务器与邮件列表信息,便于后期社会工程学利用。
域名,关联域名(同一注册人名下的其他域名),子域名,
IP信息,目标IP所在的C段主机情况,IP所在的地理位置,IP对应的主机的端口开放情况,OS指纹。
目标网站的技术栈信息, 服务器类型版本,常用建站技术。
目标网络架构信息,路由器,交换机相关信息。
收集目标防御措施信息,防火墙,WAF,IDS,蜜罐,杀毒软件,用户行为审计系统(User Behavior Auditing)。

前渗透阶段信息收集基本流程

实际上,在渗透的每一个阶段都要注意对信息收集,这些信息会对进一步扩大影响面,寻找高价值目标提供帮助。不过本文侧重前渗透阶段的信息收集。

  1. 域名子域名信息(枚举工具+DNSDB+5118)
  2. robots.txt
  3. crossdomain.xml (如果有的话)
  4. whois 包括(注册邮箱/注册人姓名/联系电话)关联域名 (5118,站长之家,微步在线)
  5. Netcraft
  6. IP(是否属于某些云服务或者CDN服务商,同IP是否有其他网站)
  7. 是否存在WAF,WAF类型
  8. Web技术栈架构,Web服务器容器
  9. 网络路由情况(tracert)

目的驱动的信息收集

组织架构基本信息

企查查,启信宝,天眼查
了解企业基本信息。
顺带观察一下企业相关的招聘信息,确定企业技术栈。
社交网站的员工信息挖掘(用爬虫抓,二次开发Maltego)
微博,知乎,脉脉,或其他技术社区 v2ex
Twitter, Facebook, LinkedIn
(一个对公司不满的员工被 所发现的潜在后果是内外部威胁的结合)
(一个缺乏安全意识的运维可能会将相关配置文件放在技术社区寻求帮助)

从百万员工邮件中察觉内部安全威胁 Insider Threats Email Scout
上文中提到的Scout系统利用NLP技术,通过对Email文本的分析判断员工的异常倾向,以便快速缩小内部威胁的嫌疑名单。
那么,类似的NLP挖掘算法显然也可以用来挖掘公开的社交网络信息,帮助Red Team来寻找潜在的合作目标。关于中文语境的负面情绪数据挖掘,显然各大于情检测软件开发商是专家(人民网舆情监测室、拓尔思TRS等)。

常见社交网站

通过社交网站发现一些心怀不满的员工,和前雇员,这些人是一个不错的切入点通过这些不满的员工获取重要的信息还是比较靠谱的。以及关注高管或者网络管理员的社交账户发布的信息,可能他会在不经意间透漏一些比如防火墙型号,近期遇见的一些技术问题,这些对我们来说是很有用的。一下我主要贴一些国外的站点国内的大家应该都比较熟悉。

https://twitter.com/
https://vk.com/ (俄罗斯)
http://facebook.com
https://myspace.com/
http://reunion.com
http://weibo.com
http://instagram.com

常见企业组织架构

it 技术支持
hr 人事
bd 商务拓展
pr 公关
marketing 市场推广

常见内部系统
bi
crm
edm
jenkins
wiki

常见求职网站

通过求职网站查询现在就职或者曾经就职的员工进行,信息搜集。
并且可以通过员工招聘了解公司技术栈信息。

http://linkedin.com
http://plaxo.com

拉勾网
智联招聘
boss直聘
大街网

查人网站

可以通过查人网站查询一些详细的个人信息资料,这些网站可以查询到,家庭电话号码,家庭地址,社会保障号,信用记录等。掌握这些信息对apt攻击很有用。

AMiner https://cn.aminer.org/
Background Checks & Public Records https://www.beenverified.com/
Tracking the entire world http://www.nndb.com/
Corporation Wiki - Find Connections between People and Companies https://www.corporationwiki.com/
Free People Search https://www.yatedo.com/

邮箱信息收集

除了从搜索引擎的来源外 (TheHarvester)
另一个不错的思路是从 google group里找信息。
https://groups.google.com/forum/#!search/@thaiairways.com

Web Archive

规模较大的网站一般都会爬行。
https://web.archive.org/

crossdomain.xml

举个例子 http://www.163.com/crossdomain.xml

crossdomain.xml 文件作用是设置对主域名flash文件访问权限控制,文件里面会记录主域名下的子域名。

robots.txt

主域名下的robots.txt,虽然通常并没有有价值的信息,但可以看一看,了解一部分敏感路径。

整站HTML源码下载 (没什么卵用,不如 Web Archive)

如果要对整站HTML源码进行下载可以参考 HTTrack 和 一些其他云端爬虫软件或服务。
其目的是,在本地访问目标网站可以减少与目标服务器的网络交互。不过考虑到下载整站所需的巨大时间、网络流量的代价,离线浏览产生的效益微乎其微。这种操作是不合理的,这里保留说明仅作为思路参考。

nslookup

DNS的作用就是把主机映射为ip地址,或者是把ip地址映射为主机名的分布式数据库.。

nslookup 命令基础参数解析

nslookup -type=ptr 8.8.8.8 #查询一个IP地址对应的域名

nslookup -type=ns http://baidu.com #查询http://baidu.com使用的DNS服务器名称

nslookup #进入交互式shell

server http://ns2.baidu.com #Server设定查询将要使用的DNS服务器

ls http://baidu.com #ls命令列出某个域中的所有域名
MX记录 电子邮件交换记录,记录一个邮件域名对应的IP地址,比如my[at]http://seclines.com
后面的部分seclinescom,邮件服务器对应的IP地址
NS记录 域名服务器记录 ,记录该域名由哪台域名服务器解析
PTR记录 反向记录,也即从IP地址到域名的一条记录
TXT记录 记录域名的相关文本信息

nslookup获取DNS服务器

http://thaicatgo.com为例使用

1
2
3
4
5
6
7
8
9
localhost:~ root# nslookup //执行nslooup命令
> set type=ns //设置查询类型
> http://thaicargo.com //设置要查询的网站
Server: 202.106.195.68Non-authoritative answer:
http://thaicargo.com nameserver = ns-1708.awsdns-21.co.uk. //dns服务器
http://thaicargo.com nameserver = ns-1015.awsdns-62.net.
http://thaicargo.com nameserver = ns-75.awsdns-09.com.
http://thaicargo.com nameserver = ns-1306.awsdns-35.org.

获取邮件服务器

邮件服务器大都是在防火墙所在的系统,就算不是和防火墙在同一个系统最起码和目标网络也在同一个网络中。我们可以使用nslookup和host命令来获取邮件服务器地址。
nslookup命令

root# nslookup

set type=mx //设置要查询的类型
http://thaicargo.com //设置目标网站
Server: 202.106.195.68
Address: 202.106.195.68#53
Non-authoritative answer:

http://thaicargo.com mail exchanger = 10 http://mx1-us1.ppe-hosted.com //对应的邮箱服务器.

http://thaicargo.com mail exchanger = 10 http://mx2-us1.ppe-hosted.com //对应的邮箱服务器.

host命令

1
host http://thaicargo.com

SPF记录

spf全称为Sender Policy Framework,它的作用是防止别人伪造你来发邮件,反伪造性邮件的解决方案.当你定义了你的domain name也就是授权的地址。(域名txt记录也就是spf记录))之后,接收邮件的一方根据定义的spf记录来确定ip地址受否包含在spf里面,包含在内的话就是正常邮件反之就是伪造的.所以在spf里面会添加一些自己的ip地址,在此我们也可获取到一些目标的ip段。以阿里为例来看一下
localhost:~ root# nslookup

set type=txt
http://aliyun.com

错误页面发现

所有 seed 可以考虑利用 site:domain.com 获取。
通过整站爬行来发掘潜在的错误页面。
错误页面可以提供很多有价值信息,比如DBMS类型与版本,服务器类型与版本,以及部署绝对路径。

常用目录枚举工具
AWVS
御剑, 阿D 等上古工具的字典也可以参考。
OpenDoor
https://github.com/stanislav-web/OpenDoor
URL Fuzzer
https://pentest-tools.com/website-vulnerability-scanning/discover-hidden-directories-and-files

Google Hacking 基础

https://pentest-tools.com/information-gathering/google-hacking

基本搜索语法

1、逻辑运算:+ - OR
含“充值”、“支付”的信息;
+充值 +支付
含“充值”无“支付”的信息;
+充值 -支付
含“支付”或“充值”的信息;
充值 OR 支付
2、筛选过滤
北京的电子商务公司
北京 intitle:电子商务 intext:法人 intext:电话
阿里网站中的北京公司
北京 site:alibaba.com inurl:contact
法国的支付相关页面
payment site:fr
塞班司法案的PDF文档
SOX filetype:pdf

更多内容参阅参考资料1。
注意访问快照可以减少直接痕迹。

常用关键字

  1. site:domain.com
  2. inurl:id=
  3. intitle: “后台”
  4. inurl: “admin login”
  5. allintitle: “admin”
  6. intext: “管理系统”
  7. filetype:pdf xls xlsx doc docx ppt pptx txt md
  8. cache:domain.com
  9. site:domain.com intitle:index.of # 列目录漏洞
  10. site:domain.com ext:xml | ext:conf | ext:cnf | ext:reg | ext:inf | ext:rdp | ext:cfg | ext:txt | ext:ora | ext:ini # 配置文件泄漏
  11. site:domain.com ext:sql | ext:dbf | ext:mdb # 数据库文件泄漏
  12. site:domain.com ext:log # 日志文件泄漏
  13. site:domain.com ext:bkf | ext:bkp | ext:bak | ext:old | ext:backup # 备份文件泄漏
  14. site:domain.com inurl:login # 潜在后台探索
  15. site:domain.com intext:”sql syntax near” | intext:”syntax error has occurred” | intext:”incorrect syntax near” | intext:”unexpected end of SQL command” | intext:”Warning: mysql_connect()” | intext:”Warning: mysql_query()” | intext:”Warning: pg_connect()” # 数据库错误页面
  16. site:toutiao.com ext:doc | ext:docx | ext:odt | ext:pdf | ext:rtf | ext:sxw | ext:psw | ext:ppt | ext:pptx | ext:pps | ext:csv # 常见文档
  17. site:bytedance.com ext:php intitle:phpinfo “published by the PHP Group” # phpinfo
  18. site:domain.com inurl:php/asp/aspx/jsp/action 确定网站技术栈
  19. site:domain.com inurl:id 寻找潜在注入点

IP相关

同IP网站查询

Reverse IP Lookup
http://www.sameip.org/

IP限定 google hacking
http://cn.bing.com/search?q=ip:31.220.110.42&count=50%27

自治系统(AS)

根据AS号查询IP地址范围

自治系统号码自治系统:autonomous system。在互联网中,一个自治系统(AS)是一个有权自主地决定在本系统中应采用何种路由协议的小型单位。这个网络单位可以是一个简单的网络也可以是一个由一个或多个普通的网络管理员来控制的网络群体,它是一个单独的可管理的网络单元(例如一所大学,一个企业或者一个公司个体)。一个自治系统有时也被称为是一个路由选择域(routing domain)。一个自治系统将会分配一个全局的唯一的16位号码,有时我们把这个号码叫做自治系统号(ASN)。利用AS号来寻找IP的方式

$ dig +short 32.http://152.112.17.origin.asn.shadowserver.org TXT
dig +short 117.http://122.213.158.peer.asn.shadowserver.org TXT //根据ip查询as号
whois -h http://whois.cymru.com 117.122.213.158 //根据ip查询as号
whois -h http://asn.shadowserver.org prefix 8075 //根基as查询ip段

关于 AS/ASN 号查询ip范围参考文档
AS号码查询,ASN查询, Autonomous System Number (ASN) 查询, BGP查询,网络路由查询
Shadowserver Foundation - Services - IP-BGP

通过IP和AS自治系统号判断数据中心是几线BGP接入-数据中心-华为企业互动社区
http://support.huawei.com/huaweiconnect/enterprise/thread-320955-1-1.html
【转】网络中的AS自治域 - myLittleGarden - 博客园
http://www.cnblogs.com/sunada2005/p/3152155.html
Shadowserver Foundation - Services - IP-BGP
http://www.shadowserver.org/wiki/pmwiki.php/Services/IP-BGP

AS cidr报告
http://www.cidr-report.org/cgi-bin/as-report?as=AS23724

Whois 反查确定关联域名

利用域名注册时提供的邮箱信息,或注册人姓名寻找关联域名。
不过这里有一个问题,如果注册人启用邮箱隐私保护,可能就缺乏进一步的线索了。

http://whois.chinaz.com/
http://whois.aizhan.com/reverse-whois/
http://www.5118.com/seo/whois/

whois 关联查询
https://x.threatbook.cn/

Netcraft report

http://toolbar.netcraft.com/site_report
Netcraft 提供的信息中较为有价值的部分是一些历史部署信息。
例如 历史服务器 Banner 。

子域名(二级域名)信息收集

The Art of Subdomain Enumeration
https://blog.sweepatic.com/art-of-subdomain-enumeration/

子域名搜集思路与技巧梳理 龙哥 网易安全应急响应中心 微信
https://mp.weixin.qq.com/s?__biz=MzIxNDI0MDAxNg==&mid=2247483684&idx=1&sn=dbc58596968b2203262c6cc71d89795a&chksm=97abdf5ba0dc564d84a1ddbeaaef49f2aa905a227d616637d9cef5583552e88c2e46a5da9b37&mpshare=1&scene=1&srcid=0503z6kktJQGJUUkQ99nkSN5&pass_ticket=E0daJOiVzzAWl1dMr00WKKFRo5ZVxucq%2BspNoGBqqT8%3D#rd

https://github.com/ring04h/wydomain

https://dnsdumpster.com/
http://www.ip138.com/
https://www.apnic.net/
爱站网

子域名的信息可以从两个角度获取。
方法一对目标域名的DNS服务器进行枚举;
方法二是基于现有的搜索引擎进行 google hacking;
方法三是对整个互联网的域名信息数据进行更进一步的挖掘整理,统计所有经过的URL的域名信息,就像搜索引擎蜘蛛一样漫游全网统计相关信息(相当于自己开发一个小型的搜索引擎爬虫)。
方法四使用网络历史DNS解析数据。

方法一

此处还会涉及DNS域传送漏洞,该漏洞产生的主要原因是DNS服务器管理员未定义ACL(访问控制列表)来限制DNS记录在域名服务器之间的区域传送,DNS域传送漏洞的手工利用方法可参考此文

subDomainsBrute
https://github.com/lijiejie/subDomainsBrute
啸天犬
https://github.com/xindongzhuaizhuai/hound.git
DNSenum
https://github.com/fwaeytens/dnsenum
fierce
https://github.com/mschwager/fierce
Layer子域名挖掘机
http://www.cnseay.com/3590/comment-page-1/
SubDomainSniper 1.0 (7kbScan)
http://www.7kb.org/1021.html

关于子域名枚举字典

显而易见,子域名字典不是越大越好,需要兼顾效率和覆盖能力。(就常用的subDomainsBrute而言,10线程,遍历6W的字典需要约4000s)
可以考虑对全网DNS子域名做一下统计,选出 Top 1000, Top 10000, 和 Top 50000(或者根据实际渗透测经验进行合理筛选)。
根据测试环境的不同,合理选择字典size。

方法二

site:domain.com
用 TheHarvester 提取搜索引擎结果中的子域名信息。

方法三

白帽汇 (收费)

Nosec 资产收集
https://nosec.org

http://subdomain.chaxun.la/
http://tool.chinaz.com/subdomain/
http://www.5118.com/seo/subdomains/

方法四

DNSDB
https://dnsdb.io/zh-cn/

或者其他国外 DNS 历史数据查询服务

历史DNS解析
http://site.ip138.com/dianrong.com/

域名威胁信息查询服务

https://x.threatbook.cn/

CDN 检测

17CE 多地ping
https://www.17ce.com/

http://i.links.cn/

whichCDN (CDN服务商确定工具)
https://github.com/Nitr4x/whichCDN

多地ping 测速找CDN真实IP
https://github.com/HatBashBR/HatCloud
http畸形头

绕过CDN探索真实IP的常见思路

过CDN查找网站真实IP方法收集
http://www.cnblogs.com/jsq16/p/5948849.html

http://3xp10it.cc/web/2016/11/05/%E5%B0%9D%E8%AF%95%E8%8E%B7%E5%8F%96cdn%E8%83%8C%E5%90%8E%E7%9A%84%E7%9C%9F%E5%AE%9Eip/

  1. 针对邮件服务器,通过退信或其他邮件,获得邮件服务器真实ip,扫描邮件服务器所在网段。
  2. 利用网站命令执行漏洞(拿到shell),直接ipconfig。
  3. 这个方法是,通过查找其他子域名的IP,然后在同一个C段扫描。可能找到使用CDN的域名真实服务器IP。这个方法在没有云服务器的时代,是行得通,成功率大的,因为机房分配IP,都是连续的,或者相近的。
    但现在,哪怕都是同一个区,云服务器供应商也不一定会提供连续的IP地址。此法只能作为一种尝试。
  4. 利用Nmap全网扫描,寻找特殊banner信息。或者利用现成的搜索引擎 Zoomeye, Shadon 或 Fofa等.
  5. 历史DNS解析记录,查询 DNSDB .

针对 CloudFlare 的几个案例

http://www.crimeflare.com/cfs.html

http://www.freebuf.com/articles/web/41533.html

元数据信息收集

尤其是Office文件,其修改记录亦可暴露大量信息。

MetaGooFil

https://github.com/opsdisk/metagoofil

命令示例

1
./metagoofil.py -d syngress.com -f all -o results -t files

网络路由情况(tracert)

网络侦查用到windows下tracert命令,liunx下traceroute命令追踪路由查看整个网络的拓扑用windows来实例演示下。

1
2
3
4
5
6
7
C:\>tracert http://seclines.com
Tracert to http://seclines.com (10.10.10.1),30 hops max,40byte packets
1 gate2 (192.168.10.1) 5.391ms 5.107ms 5.559ms
2 http://rtr1.bigisp.net (10.10.12.13) 33.374ms 33.443ms 33.137ms
3 http://rtr2.bigisp.net (10.10.12.14) 35.100ms 34.427ms 34.813ms
4 http://hssitrt.bigisp.net (10.11.31.14) 43.030ms 43.941ms 43.244ms
5 http://seclines.com(10.10.10.1) 43.803ms 44.041ms 47.835ms

看命令执行结果数据到达目标需要经过5跳才能到达,中间没有UDP分组的丢失,而到达目标之前的第四跳很可能是主机http://seclines.com的边界路由设备,也有可能是太防火墙这个现在无法确定。通过执行tracert可以对整个网络之间有一个大体的了解。

判断是否存在防火墙

如果存在防火墙又怎么知道呢?下面还是用一个例子说明吧:

1
2
3
4
5
6
7
8
C:\>tracert 10.10.13.5
Tracert to (10.10.13.5),30 hops max,40byte packets
1 xss2(192.168.10.1) 5.391ms 5.107ms 5.559ms
2 http://r1.net (10.10.13.13) 33.374ms 33.443ms 33.137ms
3 http://r2.net (10.10.13.14) 35.100ms 34.427ms 34.813ms
4 http://sss.wome.net (10.11.31.14) 43.030ms 43.941ms 43.244ms
5 * * *
6 * * *

可以看出,缺省的5,6跳 UDP数据包被防火墙拦截了。

开源项目平台(主要指github)敏感信息泄漏挖掘

本章节未作深入探索,需要自行评价以下工具与思路。

码云 http://code.taobao.org/
coding https://coding.net/
开源中国 https://www.oschina.net/project/zh
github
gitbucket

Git信息泄露搜索

乌云案例
漏洞标题: github-hacker之TCL一万五千多名员工信息泄漏(git泄密新场景)
http://wooyun.tangscan.cn/static/bugs/wooyun-2015-0141726.html
漏洞标题: 咕咚网github信息泄露
http://wooyun.tangscan.cn/static/bugs/wooyun-2016-0177720.html

宜人贷 github 敏感文件扫描系统

https://www.yanxiuer.com/githubscan.html

GithubLeakAlert

https://github.com/misterch0c/GithubLeakAlert

GitPrey

https://github.com/repoog/GitPrey

GitMiner

https://github.com/UnkL4b/GitMiner

Gitleaks

https://hackernoon.com/we-are-resuming-gitleaks-com-d93cf73824e3

http://gitleaks.com/

Gitem

https://github.com/mschwager/gitem

Git hound

https://github.com/ezekg/git-hound

truffeHog

https://github.com/dxa4481/truffleHog

githubscan
https://github.com/mrwei0323/githubscan

Google Github bigquery

https://cloud.google.com/bigquery/public-data/github

Nosec (收费)
https://nosec.org

额外思路

DS_Store文件泄漏利用工具
http://www.lijiejie.com/ds_store_exp_ds_store_file_disclosure_exploit/

zoomeye & fofa & shadon

  1. Shodan https://www.shodan.io/
  2. Censys https://www.censys.io/
  3. Zoomeye http://www.zoomeye.org/
  4. Fofa https://fofa.so/
  5. 傻蛋 https://www.oshadan.com/
  6. IVRE — Network recon framework https://ivre.rocks/

参考 网络空间搜索引擎全方位评测

Website Fingerprinter (服务器指纹探测)

手动推断服务器指纹的方法是观察 HTTP Response 响应头的各项字段,以及特殊的cookie字段,观察网页HTML源码等。

举例,例如 HTTP Response Header 中的 Server 字段(服务器 banner) 和 X-Powered-By 字段

1
2
Server:Apache/2.2.19 (FreeBSD) DAV/2 PHP/4.4.9 with Suhosin-Patch mod_ssl/2.2.19 OpenSSL/0.9.8zh-freebsd
X-Powered-By:PHP/4.4.9

不过需要注意的是,有较强安全意识的运维可能会重新编译服务器源码,修改 Server 的 banner 以隐藏版本信息。
有了这些版本信息以后可以查询 exploit-db 来寻找服务器是否受已有漏洞影响。

常见指纹探测工具

CMS判断
fofa zoomeye IVRE https://ivre.rocks/
国产工具 破晓团队 天蝎指纹库 (和fofa zoomeye相比还有较大差距)
https://zhuanlan.zhihu.com/p/27056398
http://www.secbug.org:8080/
http://www.secbug.org:8080/change.x?mark=index

whatweb

https://github.com/urbanadventurer/WhatWeb

wappalyzer

https://wappalyzer.com/

WAF 判断

频繁访问之后IP没被封掉,在参数后面加上 and 1=1 没有出现拦截,大概推断

WAF的手工判断方法也是类似的。观察 HTTP 响应头。 另外有部分 WAF 使用了特殊的 HTTP 响应状态码(HTTP Response Status Code)。
例如 WebKnight 会对恶意的请求返回 “999 No Hacking” 的信息。

waf绕过技巧库
http://3xp10it.cc/web/2016/08/12/waf%E7%BB%95%E8%BF%87%E6%8A%80%E5%B7%A7%E5%BA%93/

常用工具

wafw00f
https://github.com/EnableSecurity/wafw00f

sqlmap
https://github.com/sqlmapproject/sqlmap/tree/master/waf

1
python sqlmap.py -u “http://www.victim.org/ex.php?id=1” --identify-waf

wafw00f README
WAF指纹探测及识别技术

WAF bypass

WAFNinja:灵活的WAF自动化Fuzz工具
http://www.freebuf.com/sectool/120816.html

我的WafBypass之道 - 从容
https://xianzhi.aliyun.com/forum/read/349.html

MySQL注入天书
https://xianzhi.aliyun.com/forum/read/314.html?uid=1570598394765470&displayMode=1

社会工程学在信息收集中的应用

快速收集目标组织架构信息与行政管理流程。

夹带私货说一句,现在圈内多数有关社会工程学的文章,大多数实质上与社会工程学毫无关系。他们使用的技巧,私以为,可以称之为人肉搜索,本质上是利用各种公开、半公开信息进行关联,逐步逼近目标,确定目标人物的身份。在下觉得真正的社会工程学还是应该落地到与人的交流,而非查询各种数据库。
关于人肉搜索的技巧可以参考本博客历史博文。

另附几个简单的社会工程学案例,作为开拓思路。

  1. 物理接近。手抱重物(伪),寻求其他人刷门禁。
  2. 常见冷读技巧。故意提供错误的答案以期望得到纠正。
  3. 收集目标组织架构信息,伪装成目标组织员工,向IT支持部门申请重置密码。
  4. USB摆渡攻击。丢U盘;伪装淘宝客服抽奖送U盘,送平板,送手机。
  5. 致电域名服务商客服,修改域名解析。
  6. 根据 TheHarvester 收集的邮箱信息,批量发送钓鱼邮件,内容例如系统升级需要员工回复帐号密码等。

以上案例均不是完全虚构的,据笔者所知,某证券软件上市公司的公司邮箱就曾遭到大规模钓鱼邮件攻击,部分员工回复邮件泄漏密码,以至于该公司至今邮箱登录页仍贴着安全提示。

信息搜集的结果

示例

四个文件

  1. 子域名与域名列表
  2. ip列表
  3. 域名与ip对应关系列表
  4. 员工email列表
  5. 其他杂项(可选)

以虚构域名ht.com举例
子域名列表

1
2
3
4
jira.ht.com
git.ht.com
mail.ht.com
dev.ht.com

ip 列表

1
2
3
4
192.168.1.11
192.168.1.12
192.168.1.13
192.168.1.14

子域名 ip 对应列表

1
2
3
4
jira.ht.com, 192.168.1.11
git.ht.com, 192.168.1.12
mail.ht.com, 192.168.1.13
dev.ht.com, 192.168.1.14

员工/组织email列表

1
2
3
4
5
6
7
8
hr@ht.com
vbd@ht.com
pr@ht.com
bd@ht.com
ad@ht.com
huangyn@ht.com
doucc@ht.com
yangzhao@ht.com

其他杂项
根据招聘信息推断公司技术栈

1
2
3
4
5
Python、Axure、SQL、Excel、PPT、SPSS (数据产品经理)
Hadoop, Mapreduce, Hive, Storm, Spark, scribe, kafka (数据平台)
hive,hbase,pig,scribe,spooq,flume (Hadoop运维)
Python, Flask, MySQL, Redis, Celery, ReactJS (CRM系统)
jQuery/bootstrap Django (前端)

各种常见工具使用备忘录

本段可以直接跳跃选读。

基本系统命令

  1. host
  2. nslookup
  3. dig
  4. ping
  5. whois

多地 ping ip
http://ping.chinaz.com/

HTTrack

HTTrack 是一个整站dump工具。通常下载整站后的目的是便于本地查看目标网站,减少长期访问目标而留下数字指纹。
需要说明的是,HTTrack dump整站时产生的巨大网络流量亦是明显的特征。

1
sudo apt-get install webhttrack

虽然书中推荐了该工具,在实际使用中,dump整站耗费了大量时间,对规避数字痕迹亦没有明显帮助。

云端dump(爬虫SaaS)

考虑到本地dump全站显而易见的缺点,可以考虑使用某些云爬虫服务(提供IP池,验证码处理等配套措施)以避免IP暴露风险。

国内典型代表
火车头
八爪鱼
集搜客
神箭手云爬虫

国外典型代表
Import.io
Octoparse
Visual Web Ripper
Content Grabber
Mozenda

参考 国内外十大主流采集软件盘点

the Harvester

https://github.com/laramies/theHarvester

通过搜索引擎与社交网络获取目标域名的邮箱和子域名信息。

命令实例

1
./theHarvester.py -d abc.com -l 10 -b baidu

DMSenum

https://github.com/fwaeytens/dnsenum

命令实例

1
./dnsenum.pl -enum domain.com

Recon-ng

http://www.freebuf.com/articles/web/7385.html

对于Recon-ng并没有做较为深入的探索,直觉上是对常用信息收集工具做了胶水整合。
可以参考一下DefCon和Blackhat或kali社区论坛,看看是否有详细的相关介绍。

SEAT 搜索引擎评估工具

http://www.midnightresearch.com

Search Engine Assessment Tool

由于年代久远,项目似乎已被废弃,此处保留仅作为参考意义。

直觉上与之对标国内产品是“虫部落快搜”
http://search.chongbuluo.com/

Maltego

信息收集过程中的重要工具,可以用来做可视化结果展示。
简单上手的话大概只要20分钟,Youtube官方频道有教程,另外i春秋也有翻译hak5的Maltego教程。

http://mtg-bi.com/ Social Links 有很多关于 Facebook, Instagram 社交关系挖掘的案例值得参考。

举个例子

toutiao.com

IP高精度定位

OpenGPS
http://opengps.cn/

百度高精度IP定位 API
http://lbsyun.baidu.com/index.php?title=webapi/high-acc-ip

参考资料

[1] Defcon 13 - Google Hacking for Penetration Testers - Jonny Long

[2] [Syngress Book] Google Hacking for Penetration Testers

[3] [Book] 渗透测试实践指南 必知必会的工具与方法

[4] 黑白之道 公众号 《渗透测试实践指南》 入门笔记 第2章

[5] 信息收集杂谈 安全文库

[6] 大型目标渗透-01入侵信息搜集 安全线 知乎专栏

[5] Kali 工具箱 中文文档

[6] MST安全 飞龙 Kali教程

[7] MST 白帽培训讲义

[8] Hackone Web hacking 101 翻译

[9] Kali Linux Cookbook 翻译

[10] Kali Linux Web Penetration Testing Cookbook 翻译

[11] Kali Linux Wireless Penetration Testing: Beginner’s Guide 翻译

[12] CTF 领域指南 翻译

[13] MSF手册 翻译

[14] Kali Linux Network Scanning Cookbook Kali Linux 网络扫描秘籍 中文版

[15] 雪城大学计算机与网络安全讲义(CIS643&644)

[16] Android 渗透测试学习手册 翻译

[17] Android Security (and Not) Internals 深入浅出Android安全

彩蛋

关于主动侦察的痕迹规避

在主动侦察中使用 proxy 是必然的选择。但如果长期使用同一 ip 作为 proxy,要考虑proxy被标记的可能性;要考虑 proxy 服务器被入侵的可能性,溯源者可以通过检查log获取真实ip;要考虑 proxy 服务商主动合作提供数据的可能性。因此,要重视对proxy服务器的加固与防御(比如使用CDN服务)。

详细参考
我的安全防护之道 匿名人 边界安全
如何隐藏你的踪迹 编程随想

案例

某中小型安全公司

待脱敏

某独角兽公司

待脱敏

速查指导

ping, nslookup 和 dig 可以再参考原书