metasploit渗透测试魔⿁训练营笔记(⼆)第三章情报收集系统(上)
第三章情报搜集系统(上)
3.1 外围信息收集
3.1.1 通过DNS 和IP地址挖掘⽬标的⽹络信息。
1. whois域名注册信息查询
通过whois,我们能够获取到testfire的⼀些基本信息。管理员的email,传真,电话,域名服务器。
whois能截获的信息:Domain、Organization Name(s),Address,Admin Email,
Admin Fax,phone,Tech Name,Name Server,Name Server等
备注:查询的时候把WWW和ftp等去掉。
2. ⽤nslookup与dig查询
Nslookup 能够提供⾮权威的解答,使⽤⽅法
Nslookup [enter]set type=A[enter]testfire || set type=MX能够查看邮件转发服务器,ls -d example命令可以查看所有DNS 记 录,从⽽暴露拓扑结构
Dig 能够提供权威的回答,使⽤⽅法为 Dig @
3.2 主机探测与端⼝扫描
【别忘了好好配置环境】
3.2.1 活跃主机扫描
查看主机是否活跃是⽹络管理员经常做的事情。但是我们到活跃主机的⽅式,除了⽤ping的⽅式之外,还可以⽤metasploit中的主机发现模块。
我们常⽤ :
arp_sweep ⽤ARP请求枚举本地局域⽹中所有活跃主机
udp_sweep⽤发送UDP数据包探查主机是否活跃并发现主机上的UDP服务
这是服务器关闭的状态(关闭了OWASP)
这是服务器开启的状态。
<;关于THREAD设置: 较⼤可以提⾼扫描度,较⼩可以让过程更加隐蔽>
Arp_sweep局限:只能探测同⼀⼦⽹中的活跃主机,对于远程⽹络,只能⽤Nmap
3.2.1.3 Nmap进⾏主机探测
【接下来我们隆重介绍 ⽹络探测的瑞⼠军⼑nmap】
⽤法:
nmap [Scan Type(s)] [Options] {target specification}
{target specification} ⽀持:域名,IP地址和列表,IP⽹段(CIDR⽹段)
[Scan Type(s)]选项:
-sL: 活跃主机发现的简单扫描(arp_sweep)
-sn: 不进⾏端⼝扫描
-s +S +T +A +W+M+U
-p 扫描端⼝
-sV :服务版本探测
-sC :基于脚本扫描
【】书中有⼀个地⽅打错了 P84 应该是 nmap -sn 10.10.10.0/24 作者把 sn打成sh了【】 Internet环境中,推荐⽤-Pn选项,如果要加快速度,可以⽤-sn告诉nmap只要探测存活的主机 探测过程:
```
Starting Nmap 7.60 ( ) at 2017-12-2721:34 CST
Nmap scan report for10.10.10.1
Host is up (0.00011s latency).
MAC Address: 00:50:56:C0:00:08 (VMware)
Nmap scan report for10.10.10.2
Host is up (0.00014s latency).
MAC Address: 00:50:56:F7:46:C4 (VMware)
Nmap scan report for www.dvssc (10.10.10.129)
Host is up (-0.10s latency).
MAC Address: 00:0C:29:34:29:5A (VMware)
Nmap scan report for10.10.10.254
Host is up (0.00024s latency).
MAC Address: 00:0C:29:73:FB:26 (VMware)
Nmap scan report for service.dvssc (10.10.10.130)
Host is up.
```
果然,我们发现了DMZ区中的四台活跃主机,分别是10.10.10.128,129,130。等等254呢? 但是我⽤arp_sweep扫到了这个端⼝呀?⽤ -sh和-PU -sn为啥不到呢?
难道有什么猫腻? 好吧,我们枚举扫描吧
⽤ -v -sh扫描,扫描到了 10.10.10.254
...
Nmap scan report for www.dvssc (10.10.10.129)
Host is up (-0.10s latency).
MAC Address: 00:0C:29:34:29:5A (VMware)
...
Nmap scan report for10.10.10.254
Host is up (-0.10s latency).
MAC Address: 00:0C:29:73:FB:26 (VMware)
Nmap scan report for10.10.10.255 [host down]
Nmap scan report for service.dvssc (10.10.10.130)
Host is up.
Read data files from: /usr/bin/../share/nmap
Nmap done: 256 IP addresses (5 hosts up) scanned in3.98 seconds
Raw packets sent: 510 (14.280KB) | Rcvd: 10 (280B)
这倒是把 254扫描到了。(可能是误判为关闭端⼝)
于是我把所有的虚拟机都打开了。<;之前我就开了服务器>
然后254就⽤-sh扫描到了。<;在打开Linux之后>
[呐噜吼兜…]
3.2.2 操作系统辨识
获取了⽹络的活跃主机之后,我们还想知道这个主机安装了什么系统。从⽽对其进⾏针对性攻击,⽤-O的选项能够到对⽅的操作系统。 命令 nmap -O 10.10.10.129
-A 可以获得更加多的信息
3.2.3 端⼝扫描与服务类型探测
之前我们在探测主机,现在我们来扫描端⼝了。
常见的端⼝扫描技术有 TCP Connect ,TCP SYN, TCP ACK,TCP FIN 还有更加⾼级的端⼝扫描技术,⽐如TCP IDLE (这个是不是空闲扫描啊?)
最愚蠢,最低效but 最精确 TCP Connect 这个相当于我们在python⾥⾯写的try:
1.
Metasploit 中的端⼝扫描器 search portscan可以到这些。
⼤概看下,ftpbounce (好像在测试指南上看到过,应该是名词叫反弹TCP啥啥的)在就的Solaris 和FreeBSD系统上很好⽤。Xmas,嗯没错,看上去很⾼⼤上,隐蔽,可以躲过⾼级TCP标记检测器的过滤。
Starting Nmap 7.60 ( https :// ) at  2017-12-27 22:10 CST
Nmap scan report for  www.dvssc (10.10.10.129)
Host is up (0.00052s latency).
Not shown: 992 closed ports
PORT    STATE SERVICE
21/tcp  open  ftp
22/tcp  open  ssh
80/tcp  open  http
139/tcp  open  netbios-ssn
143/tcp  open  imap
445/tcp  open  microsoft-ds
5001/tcp open  commplex-link
8080/tcp open  http -proxy
ssh工具windowsMAC Address: 00:0C:29:34:29:5A (VMware)
Device type: general purpose
Running: Linux 2.6.X
OS CPE: cpe:/o:linux:linux_kernel:2.6
OS details: Linux 2.6.17 - 2.6.36
Network Distance: 1 hop
(Xmas) > run
[*]  TCP OPEN|FILTERED 10.10.10.129:21
[*]  TCP OPEN|FILTERED 10.10.10.129:22
[*]  TCP OPEN|FILTERED 10.10.10.129:80
[*]  TCP OPEN|FILTERED 10.10.10.129:139
[*]  TCP OPEN|FILTERED 10.10.10.129:143
*你看,xmas就是⽐较细致的
2. Nmap端⼝扫描
端⼝的状态类型 open,closed,filtered,unfiltered,open|filtered,closed|filtered
对于未过滤的端⼝,windows,syn,fin会进⼀步确认。
扫描参数
sT TCP Connect  sF,sX,sN 特殊标志服避开检测扫描
sS TCP SYN  -sP ICMP echo (和ping⼀个原理)  -sU UDP -sA  TCP ACK
扫描选项
-Pn 不要发送ICMP echo来检测是否活跃(⼀般不⽤,毕竟我们在之前的主机检测时候已经确定好了)
-O 查看操作系统类型
-F 快速扫描,只扫描services中列出的端⼝
-p<;端⼝范围> 想要的端⼝如 1~1023(书中错了,应该⽤-⽽不是~)
扫描测试: ⼝令 nmap -sS -Pn 10.10.10.129
Starting Nmap 7.60 ( ) at2017-12-2722:58 CST
Nmap scan report for www.dvssc (10.10.10.129)
Host is up (0.00085s latency).
Not shown: 992 closed ports
PORT    STATE SERVICE
21/tcp  open  ftp
22/tcp  open  ssh
80/tcp  open  http
139/tcp  open  netbios-ssn
143/tcp  open  imap
445/tcp  open  microsoft-ds
5001/tcp open  commplex-link
8080/tcp open  http-proxy
MAC Address: 00:0C:29:34:29:5A (VMware)
备注:-sS SYN模块,块并且不会被记录下来。我们可以加上-sU把UDP端⼝也扫出来。速度会慢⼀些。⽤-sV 可以列出更加详细的信息
3.2.4 Autoscan
Kali(BT5)上有着⾮常⽅便的可视化界⾯Autoscanner 但是没有nmap好⽤,这⾥不多赘述。
3.2.5 探测扫描结果分析(也是作业)
map scan report for service.dvssc (10.10.10.130)
Host is up (0.00051s latency).
Not shown: 985 closed ports
PORT    STATE SERVICE        VERSION
21/tcp  open  ftp            Microsoft ftpd
80/tcp  open  http            Microsoft IIS httpd 6.0
135/tcp  open  msrpc          Microsoft Windows RPC
139/tcp  open  netbios-ssn    Microsoft Windows netbios-ssn
445/tcp  open  microsoft-ds    Microsoft Windows 2003or2008 microsoft-ds
777/tcp  open  multiling-http?
1025/tcp open  msrpc          Microsoft Windows RPC
1026/tcp open  msrpc          Microsoft Windows RPC
1030/tcp open  msrpc          Microsoft Windows RPC
1031/tcp open  msrpc          Microsoft Windows RPC
1521/tcp open  oracle-tns      Oracle TNS Listener 10.2.0.1.0 (for32-bit Windows)
6002/tcp open  http            SafeNet Sentinel Protection Server 7.3
7001/tcp open  afs3-callback?
7002/tcp open  http            SafeNet Sentinel Keys License Monitor httpd 1.0 (Java Console)
8099/tcp open  http            Microsoft IIS httpd 6.0
3.3 服务扫描与查点
通过对特定服务的扫描,我们可以少⾛弯路,直接渗透,通产对端⼝上所有运⾏服务的信息进⾏深⼊挖掘,成为服务查点
在meta的scanner莫魁岸中,有着很多服务扫描与查点的⼯具,这些⼯具常常以[]_version或者[]_login命名;
[]_version 可以遍历⽹络中包含某种服务的主机,并进⼀步确定服务的版本(这就好像我们在搜索活跃的主机)
[]_login 可以对某种服务进⾏⼝令探测攻击
(备注:如果你要SQL 服务的话,应该⽤mssql_ping模块)
3.3.1 常见⽹络服务扫描
1. Telnet扫描
Telnet 是⼀个很不安全的却历史悠久的⽹络服务,现在已经逐渐⽤ssh协议替代它。但是很多交换机,路由器任然在使⽤。这为我们渗透提供了便利。
通过telnet扫描,我们到了10.10.10.254这个玩意⼉(我把Ubuntu重启了⼀下⼜能⽤了)
[+] 10.10.10.254:23 - 10.10.10.254:23 TELNET Ubuntu 8.04\x0ametasploitable login:
2. SSH服务扫描
SSH是类unix系统上最常见的远程管理服务,采⽤安全的机密信息⽅式,但是如果没有其他安全增强的配置,那么只要获得登录⼝令,就可以⽤SSH客户端登录服务器,获得我们梦寐以求的管理员权限了。
[+] 10.10.10.129:22 - SSH server version: SSH-2.0-OpenSSH_5.3p1 Debian-3ubuntu4 ( service.version=5.3p1
opensshment=Debian-3ubuntu4 service.vendor=OpenBSD service.family=OpenSSH service.product=OpenSSH
os.vendor=Ubuntu os.device=General os.family=Linux os.product=Linux os.version=10.04 service.protocol=ssh
fingerprint_db=ssh.banner )
[+] 10.10.10.254:22 - SSH server version: SSH-2.0-OpenSSH_4.7p1 Debian-8ubuntu1 ( service.version=4.7p1
opensshment=Debian-8ubuntu1 service.vendor=OpenBSD service.family=OpenSSH service.product=OpenSSH
os.vendor=Ubuntu os.device=General os.family=Linux os.product=Linux os.version=8.04 service.protocol=ssh
fingerprint_db=ssh.banner )
(备注:最终我到了解决⽅案,10.10.10.254 有时候连不上的话,重启就可以了。我推测是屏幕变暗的问题,但是把熄屏cancel了之后好像并不能解决问题,现在就先将就着了)
很好,我们到了129和254两个服务器与它们的具体版本号。这为我们之后猜SSH⼝令提供了极⼤的便利。