web安全之信息收集篇
信息收集
1、网络信息
网络信息就包括网站的厂商、运营商,网站的外网出口、后台、OA。
2、域名信息
通过域名可以查洵网站的所有人、注册商、邮箱等信息 --->Whois
第三方查询,查询子域网如 --->DNSdumpster
不安全因素有:
网站中有相当多的信息,网站本身、各项安全策略、设置等都可能暴露出一些信息。
网站本身的交互通常不囿于单个域名,会和其他子域交互。对于这种情况,可以通过爬取网站,收集站点中的其他子域信息。这些信息通常出现在JavaScript文件、资源文件链接等位置。通过域名可以进行子域名爆破,来寻找脆弱的网站来进行下一步计划。
3、端口信息
-
- FTP (21/TCP)
-
- 默认用户名密码
anonymous:anonymous
- 暴力破解密码
- VSFTP某版本后门
- 默认用户名密码
- SSH (22/TCP)
-
- 部分版本SSH存在漏洞可枚举用户名
- 暴力破解密码
- Telent (23/TCP)
-
- 暴力破解密码
- 嗅探抓取明文密码
- SMTP (25/TCP)
-
- 无认证时可伪造发件人
- DNS (53/UDP)
-
- 域传送漏洞
- DNS劫持
- DNS缓存投毒
- DNS欺骗
- SPF / DMARC Check
- DDoS
-
- DNS Query Flood
- DNS 反弹
- DNS 隧道
- DHCP 67/68
-
- 劫持/欺骗
- TFTP (69/TCP)
- HTTP (80/TCP)
- Kerberos (88/TCP)
-
- 主要用于监听KDC的票据请求
- 用于进行黄金票据和白银票据的伪造
- POP3 (110/TCP)
-
- 爆破
- RPC (135/TCP)
-
- wmic 服务利用
- NetBIOS (137/UDP & 138/UDP)
-
- 未授权访问
- 弱口令
- NetBIOS / Samba (139/TCP)
-
- 未授权访问
- 弱口令
- SNMP (161/TCP)
-
- Public 弱口令
- LDAP (389/TCP)
-
- 用于域上的权限验证服务
- 匿名访问
- 注入
- HTTPS (443/TCP)
- SMB (445/TCP)
-
- Windows 协议簇,主要功能为文件共享服务
net use \\192.168.1.1 /user:xxx\username password
- Linux Rexec (512/TCP & 513/TCP & 514/TCP)
-
- 弱口令
- Rsync (873/TCP)
-
- 未授权访问
- RPC (1025/TCP)
-
- NFS匿名访问
- Java RMI (1090/TCP & 1099/TCP)
-
- 反序列化远程命令执行漏洞
- MSSQL (1433/TCP)
-
- 弱密码
- 差异备份 GetShell
- SA 提权
- Oracle (1521/TCP)
-
- 弱密码
- NFS (2049/TCP)
-
- 权限设置不当
showmount <host>
- ZooKeeper (2171/TCP & 2375/TCP)
-
- 无身份认证
- Docker Remote API (2375/TCP)
-
- 未限制IP / 未启用TLS身份认证
http://docker.addr:2375/version
- MySQL (3306/TCP)
-
- 弱密码
- 日志写WebShell
- UDF提权
- MOF提权
- RDP / Terminal Services (3389/TCP)
-
- 弱密码
- Postgres (5432/TCP)
-
- 弱密码
- 执行系统命令
- VNC (5900/TCP)
-
- 弱密码
- CouchDB (5984/TCP)
-
- 未授权访问
- WinRM (5985/TCP)
-
- Windows对WS-Management的实现
- 在Vista上需要手动启动,在Windows Server 2008中服务是默认开启的
- Redis (6379/TCP)
-
- 无密码或弱密码
- 绝对路径写 WebShell
- 计划任务反弹 Shell
- 写 SSH 公钥
- 主从复制 RCE
- Windows 写启动项
- Kubernetes API Server (6443/TCP && 10250/TCP)
-
https://Kubernetes:10250/pods
- JDWP (8000/TCP)
-
- 远程命令执行
- ActiveMQ (8061/TCP)
- Jenkin (8080/TCP)
-
- 未授权访问
- Elasticsearch (9200/TCP)
-
- 代码执行
http://es.addr:9200/_plugin/head/
http://es.addr:9200/_nodes
- Memcached (11211/TCP)
-
- 未授权访问
- RabbitMQ (15672/TCP & 15692/TCP & 25672/TCP)
- MongoDB (27017/TCP)
-
- 无密码或弱密码
- Hadoop (50070/TCP & 50075/TCP)
-
- 未授权访问
4、站点信息
4.1 判断网站的操作系统
如果敏感大小写 -->linux
如果不敏感大小写 -->windows
4.2 判断网站所用语言
php/java/python通过后缀php/jsp/asp来判断
4.3 判断网站框架
PHP框架:ThinkPHP、Yii、Laravel、CakePHP、ZendFramework
Python框架:Djiango、Diesel、Flask、Cubes
java web框架:Spring、STRUCTS、Hibernate
4.4 判断中间件
如Apache、Nginx、IIS等,主要从报错和默认界面来判断
4.5 判断Web容器
如Tomcat / Jboss / Weblogic等
4.6 判断网站后台框架
例如wp-admin 就是WordPress
4.7 扫描敏感文件
通过敏感文件扫描器,发现例如备份、mdb、robots.txt等敏感信息。推荐扫描器 -->Dirsearch
5、资产收集(搜索引擎)
通过资产收集来寻找更多的目标站点
搜索引擎有:fofa、Google、shodan、钟馗之眼、360quake
6、社会工程学
通过相关人员信息来生成密码字典进行爆破
钓鱼来获得账号密码等重要信息