渗透测试—信息搜集初识
一. 外围信息搜集方式
- 使用whois 进行域名注册信息查询
whois [域名]
注:使用whois查询时需要去掉www,ftp等前缀
- 使用nslookup与dig查询域名注册信息
1. nslookup
2. set type=A //(参数A表示查询IP地址,MX表示邮件转发)
set [域名]
1. dig @[DNS服务器][待查询域名]
注:nslookup和dig的区别在于:nslookup得到的是DNS解析服务器保存在Cache中的非权威解答,而dig则是可以指定DNS解析服务器向官方权威DNS服务器进行查询
- 使用IP2Location进行地理位置查询,网站信息查询,反查域名等
一些网站提供IP地址到地理位置的查询服务,网站的信息查询等服务,可以进行信息的搜集。对于一些虚拟主机,可以通过域名反查来获取信息。
-
使用搜索引擎进行信息搜集
- 使用Google Hacking技术,以及一些自动化工具来进行查询,如SiteDigger和Search Diggity
- 通过在Google中输入parent directory site:[域名]来查询网站的目录
- 通过在Google中输入site:[域名] filetype:[文件类型名]来查询特定的文件
- 通过使用Metasploit中的辅助模块search_email_collector来进行邮件地址搜集
- 通过在Google中输入site:[域名] inurl:[关键字]来查询易存在SQL注入点的页面
二. 主机探测与端口扫描
1. ICMP Ping命令
ping [域名或IP地址]
2. Metasploit的主机发现模块
Metasploit中提供了一些辅助模块用于发现活跃的主机,位于Metasploit的modules/auxiliary/scanner/discovery/目录下。其中arp_sweep与udp_sweep两个模块最常用
3. 使用Nmap进行主机探测及系统识别
nmap [扫描选项][扫描目标地址] //可以扫描单个地址或者是一个地址段
nmap -o [目标IP地址] -A //-o参数可以识别目标地址的系统类型,-A可以得到更加详细信息
4. 端口扫描与服务类型探测
-
Metasploit中的端口扫描器,Metasploit中的auxiliary/scanner/portscan/中提供了多种端口扫描器
1. ack: 通过ack扫描的方式对防火墙上未被屏蔽的端口进行探测 2. ftpbounce: 通过ftp bounce攻击的原理对TCP服务进行枚举 3. syn: 使用发送TCP SYN标志的方式探测开放端口 4. tcp: 通过一次完整的TCP链接过程来探测端口是否开放,准确度最高,但速度很慢 5. xmans: 一种更为隐秘的扫描方式,通过发送FIN,PSH和URG标志,能够躲避一些TCP标记检测器的过滤
-
nmap端口扫描:
nmap [扫描参数] [扫描选项] [扫描地址] 1)常见扫描参数: 1. -sT:Tcp connect 扫描,类似于Metasploit中的tcp扫描模块 2. -sS:TCP SYN扫描,类似于Metasploit中的syn扫描模块 3. -sF/-sX/-sN:通过发送一些特殊的标记位来避开一些设备或者软件的监测 4. -sP:通过发送ICMP echo请求探测主机是否存活,原理同ping 5. -sU:探测目标主机开放了哪些UDP端口 6. -sA:TCP ACK扫描,类似于Metasploit中的ack扫描模块 7. -sV:获取更加详细的服务版本等信息 2)常见扫描选项: -Pn:在扫描之前不发送ICMP echo测试目标是否活跃 -O:启用对于TCP/IP协议栈的指纹特征扫描以获得远程主机的操作系统类型等信息 -F:快速扫描模式,只扫描在nmap-services中列出的端口 -p[端口范围]:可以使用这个参数指定希望扫描的端口
三. 服务扫描与查点
1. Telnet服务扫描
Metasploit中提供了Telnet服务扫描的模块,该模块位于auxiliary/scanner/telnet/telnet_version,可以通过该模块探查目标主机的telnet版本
2. SHH服务扫描
Metasploit同样提供了对于SSH服务的扫描木块,该模块位于auxiliary/scanner/ssh/ssh_version。
3. Oracle数据库查点
Metasploit提供对于Oracle数据库的扫描,该模块位于auxiliary/scanner/oracle/tnslsnr_version。
4. 开放代理与利用
Metasploit提供用于隐藏自己地址的代理服务,该模块位于auxiliary/scanner/http/open_proxy,可以使用该模块设置自己的代理服务
5. 口令猜测和嗅探
1. SSH口令猜测:Metasploit提供了用于猜测SSH口令的模块,通过设置高质量的密码字典可以有效的破解弱口令密码,该模块位于auxiliary/scanner/ssh/ssh_login
2. psnuffle口令嗅探:Metasploit提供了一个用于口令嗅探的工具,可以截获常见协议的身份认证过程,并记录用户名和口令,该模块位于auxiliary/sniffer/psnuffle
三. 网络漏洞扫描
1. 使用Nessus
Nessus提供完整的电脑端漏洞扫描服务,并会及时更新漏洞数据库。同时不同于传统的漏洞扫描工具,Nessus提供同时在本机和远程端上得控制,在命令行的基础上也提供图形化操作界面。
1. 启动Nessus
nessusd start 2. 激活Nessus nessus -fetch --register [激活码] 3. 添加用户 nessus -add user
2. 使用OpenVAS
OpenVAS常用来评估目标主机上得漏洞,是Nessus项目的一个分支,提供完全免费的服务。
1. 配置OpenVAS
openvas-mkcert
2. 同步OpenVAS NVT数据库
openvas-nvt-sync
3. 创建客户端证书库
openvas-mkcert-client -n [用户名] -i
4. 重建数据库
openvasmd -rebuild
5. 启动openvas并加载插件
openvassd
6. 创建数据库备份
openvasmd -backup
7. 创建管理账户
openvasad -c 'add_user' -n [账户名] -r Admin
8. 创建普通账户
openvasad -adduser
9. 为openvas配置端口
openvasmd -p [端口号] -a [IP地址]