owasp Amass
介绍amass是由owasp维护的,帮助用户收集目标企业的外网资产
功能- 根据组织名搜索组织的 自治号
- 根据whois信息关联组织其他主域名
- 根据主域名枚举子域名
- 有专门owasp小组进行维护
- 在持续的更新
- 官方宣称 将会持续开发新的检测技术 和修复已知bug
- 开源也许是最大优势
- 可以比较两次扫描结果的差异, 形成新增子域名的报警机制
- 支持lua脚本模式
- intel发现根域名 只有根据whois,貌似没有看到中国独有的域名备案信息? 还需要继续确认
- 子域名发现,如果域名是cname解析,不会显示cname,直接显示ip,这样没有办法判断 IP是否为目标企业所有,如 resources\scripts\api\fullhunt.ads 里面的cname没有被保存,所以应该没有办法获取
看到这里,无论你是渗透测试工程师、审计员、安全研究人员、CISO、或者是IT管理员,都值得使用amass评估自己组织所暴露的攻击面
注意一定要在墙外机器访问,因为很多接口是需要翻qiang的
安装centos 7下安装 amass
yum -y install wget screen git
# 安装go
wget -qO- https://raw.githubusercontent.com/zcorky/zgvm/master/install | bash
source ~/.bashrc
zgvm install v1.18
source ~/.zshrc
# 直接安装 在 $GOPATH/bin
go install -v github.com/OWASP/Amass/v3/...@master
# 怎样查看$GOPATH
go env | grep GOPATH
# 查看安装结果
which amass
# 源代码 安装 可以进行调试
# 在GOPATH文件夹中新建 bin、pkg、src 3个文件夹
# 下载代码到 src目录 git clone https://github.com/OWASP/Amass
# 进入程序目录
cd Amass
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,https://goproxy.io,direct
# 安装依赖包
go mod init Amass
go mod tidy
go mod vendor
# 编译源码
go build cmd/amass/*.go
# 调试运行 由于main.go函数被分隔成多个文件,因此需要使用*代替main
go run cmd/amass/*.go
# 此时直接修改 当前目录下代码 即可生效 如将format/print.go version变量修改 保存 执行如下命令看到结果
go run cmd/amass/*.go -version
教程
帮助信息
amass -h
amass intel -help
intel功能
情报收集功能,可以搜索组织信息, 比如域名whois关联到更多主域名 ,组织的IP段, IP地址开放的端口
amass intel -list #显示所有使用的数据源
amass intel -active -whois -d rong360.com -o whois-amass-ip.txt -ip -src #基于whois进行信息搜集 ,存在误报情况,因此搜索出来域名后,建议解析域名和查询域名的备案号(公司主体)进一步确认是否与目标组织是一致的 为什么没有ip显示呢
amass intel -active -whois -d rong360.com # 直接将结果输出到控制台 便于web层的封装
amass intel -org Facebook 查询组织ip段 没有成功过
二次开发
amass intel
amass enum -active -v -src -ip -d rong360.com -json new-amass-rong360.com.json -dir rong360.com
https://viewdns.info/reversewhois/?q=rong360 根据whois查询域名
amass enum -passive -d owasp.org -src 被动模式查询,更快,但是不准确
amass enum -active -v -src -ip -brute -min-for-recursive 2 -d rong360.com -json new-amass-rong360.com.json -dir rong360.com 遍历子域名 -src显示源 -ip 获得ip -brute暴力破解 -json 输出格式 -dir 保存数据在特定目录下 amass viz -d3 -d rong360.com 会在当前目录下生成一个d3格式的html文件 展示域名关系
amass track -config /root/amass/config.ini -dir amass4owasp -d owasp.org -last 2 比较最后两次扫描的差异
amass track -history -d rong360.com 比较两次查询结果是否相同
amass 脚本编写 扩展
来源信息
代码浅析amass intel -list
在main.go看到是intel子命令 在
cmd\amass\intel.go
进行响应 在line 181 调用 main.go的 GetAllSourceInfo 进行处理,其中 datasrcs.GetAllSources 实现代码 在 datasrcs\sources.go 的GetAllSources 实现的 只有几个数据源是使用 go代码实现的 ,其他数据源 在 sys.Config().AcquireScripts() (datasrcs\scripting\script.go) 调用 resources 目录下内置lua脚本进行实现的 。 在 datasrcs\scripting\script.go 的 dispatch 实现了不同的类型 对应lua的不同函数 如 requests.WhoisRequest 对应 Horizontal
参考文献GB/T 24363-2009 信息安全技术 信息安全应急响应计划规范 GB/T 28827.3-2012 信息技术服务 运行维护 第3部分:应急响应规范 GB/Z 20986-2007 信息安全技术 信息安全事件分类分级指南 owasp ASVS应用安全验证标准 4.0.3 中文版 owasp 无服务器应用安全风险 TOP 10 2019年翻译