当前位置: 首页 > 工具软件 > Amass > 使用案例 >

owasp amass 子域名枚举神器 功能介绍

田权
2023-12-01

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年翻译

 类似资料: