第三章情报搜集系统 (上)

3.1 外围信息收集

3.1.1 通过DNS 和IP地址挖掘目标的网络信息。
1. whois域名注册信息查询
通过whois,我们能够获取到testfire.net的一些基本信息。管理员的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.net || set type=MX能够查看邮件转发服务器,ls -d example.com命令可以查看所有DNS记 录,从而暴露拓扑结构
Dig 能够提供权威的回答,使用方法为 Dig @

 

3.2 主机探测与端口扫描

【别忘了好好配置环境】

3.2.1 活跃主机扫描
查看主机是否活跃是网络管理员经常做的事情。但是我们找到活跃主机的方式,除了用ping的方式之外,还可以用metasploit中的主机发现模块。
我们常用 :
arp_sweep 用ARP请求枚举本地局域网中所有活跃主机
udp_sweep用发送UDP数据包探查主机是否活跃并发现主机上的UDP服务
metasploit 渗透测试魔鬼训练营 笔记(二) 情报收集系统 (上)-ShaoBaoBaoEr's Blog

这是服务器关闭的状态 (关闭了OWASP)
metasploit 渗透测试魔鬼训练营 笔记(二) 情报收集系统 (上)-ShaoBaoBaoEr's Blog
这是服务器开启的状态。

<关于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 ( https://nmap.org ) at 2017-12-27 21:34 CST
    Nmap scan report for 10.10.10.1
    Host is up (0.00011s latency).
    MAC Address: 00:50:56:C0:00:08 (VMware)
    Nmap scan report for 10.10.10.2
    Host is up (0.00014s latency).
    MAC Address: 00:50:56:F7:46:C4 (VMware)
    Nmap scan report for www.dvssc.com (10.10.10.129)
    Host is up (-0.10s latency).
    MAC Address: 00:0C:29:34:29:5A (VMware)
    Nmap scan report for 10.10.10.254
    Host is up (0.00024s latency).
    MAC Address: 00:0C:29:73:FB:26 (VMware)
    Nmap scan report for service.dvssc.com (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.com (10.10.10.129)
Host is up (-0.10s latency).
MAC Address: 00:0C:29:34:29:5A (VMware)
...
Nmap scan report for 10.10.10.254
Host is up (-0.10s latency).
MAC Address: 00:0C:29:73:FB:26 (VMware)
Nmap scan report for 10.10.10.255 [host down]
Nmap scan report for service.dvssc.com (10.10.10.130)
Host is up.
Read data files from: /usr/bin/../share/nmap
Nmap done: 256 IP addresses (5 hosts up) scanned in 3.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

Starting Nmap 7.60 ( https://nmap.org ) at 2017-12-27 22:10 CST
Nmap scan report for www.dvssc.com (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
MAC 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
-A可以获得更加多的信息

3.2.3 端口扫描与服务类型探测
之前我们在探测主机,现在我们来扫描端口了。
常见的端口扫描技术有 TCP Connect ,TCP SYN, TCP ACK,TCP FIN 还有更加高级的端口扫描技术,比如TCP IDLE (这个是不是空闲扫描啊?)
最愚蠢,最低效but 最精确 TCP Connect 这个相当于我们在python里面写的try:
s.connect()差不多。最容易被主机记录到日志中去了。而SYN,ACK,FIN是用了TCP协议柞的特性,通过发送包含特殊标志位的包来返回端 口,最为高端玩家,还是用这些好。

  1. Metasploit 中的端口扫描器 search portscan可以找到这些。
    metasploit 渗透测试魔鬼训练营 笔记(二) 情报收集系统 (上)-ShaoBaoBaoEr's Blog
    大概看下,ftpbounce (好像在测试指南上看到过,应该是名词叫反弹TCP啥啥的)在就的Solaris 和FreeBSD系统上很好用。Xmas,嗯没错,看上去很高大上,隐蔽,可以躲过高级TCP标记检测器的过滤。
(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 ( https://nmap.org ) at 2017-12-27 22:58 CST
Nmap scan report for www.dvssc.com (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.com (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 2003 or 2008 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 (for 32-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 openssh.comment=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 openssh.comment=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口令提供了极大的便利。

  1. Oracle数据库服务查点
    各种网络数据库的网络端口是漏洞频发的“重灾区”,比如微软SQL服务的1433端口,以及Oracle SQL监听器的1521端口,可以用mssql_ping模块和tnslsnr_version模块查找网络中开放的上述两种服务。
    寻找oracle数据库
    [*] Scanned 101 of 256 hosts (39% complete)
    [+] 10.10.10.130:1521 - 10.10.10.130:1521 Oracle - Version: 32-bit Windows: Version 10.2.0.1.0 - Production
    寻找 MSSQL服务
    (好吧没找到)<其实书上yemeiyou>
  2. 开放代理探测与利用
    为了不让别人知道我们的身份,隐藏自己是很必要。最简单是利用代理服务器。
    在open_proxy模块中,你可以通过配置代理的方法来进行渗透测试。
    这边就不多说open_proxy模块的操作了
    更加geek的方法,应该是在自己控制的主机上架设OPENVPN服务,这些vpn采用加密的方式转发你的渗透测试数据包,无需担心你的攻击发起源被追踪到。

3.3.2 口令猜测与嗅探
1. SSH服务口令猜测
有ssh_login模块,可以帮你暴力破解ssh服务口令。
备注:在原代码里并没有words.txt文件,所以自己瞎写个密码本丢进去吧
暴力猜密码的方法真low,我们来看看别的猜密码的方法。

  1. psnuffle口令嗅探。《在第九章中会有更加高级的嗅探技巧》
    psnuffle是唯一meta自带的口令嗅探工具。
    之后的玩法我们会在第九章中说明

之前的笔记
第二章笔记

笔记序言