渗透测试之进行信息收集方法

 渗透测试之进行信息收集方法linux

攻击的重要阶段之一就是信息收集。为了可以实施攻击,咱们须要收集关于目标的基本信息。咱们得到的信息越多,攻击成功的几率就越高。ios

  1.1 服务枚举web

在这个中,咱们将会展现一些服务枚举的小技巧。枚举是咱们从网络收集信息的过程。安全

咱们将要研究DNS枚举和SNMP枚举技术。DNS枚举是定位某个组织的全部DNS服务器和DNS条目的过程。DNS枚举容许咱们收集有关该组织的重要信息,例如用户名、计算机名称、IP地址以及其它。为了完成这些任务咱们会使用DNSenum。对于SNMP枚举,咱们会使用叫作SnmpEnum的工具,它是一个强大的SNMP枚举工具,容许咱们分析网络上的SNMP流量。服务器

操做步骤网络

让咱们以DNS枚举做为开始:dom

  1. 咱们使用DNSenum进行DNS枚举。为了开始DNS枚举,打开Gnome终端,而且输入以ssh

下命令:tcp

cd /usr/binide

./dnsenum --enum adomainnameontheinternet.com

请不要在不属于你的公共网站或者不是你本身的服务器上运行这个工具。这里咱们

将 adomainnameontheinternet.com 做为一个例子,你应该替换掉这个目标。要小心!

  2. 咱们须要获取信息输出,例如主机、名称服务器、邮件服务器,若是幸运的话还能够得

到区域转换:

  3. 咱们可使用一些额外的选项来运行DNSenum,它们包括这些东西:

-- threads [number] 容许你设置一次所运行的线程数量。

-r 容许你开启递归查找。

-d 容许你设置在WHOIS请求之间的时间延迟,单位为秒。

-o 容许咱们制定输出位置。

-w 容许咱们开启WHOIS查询。

更多WHOIS上的例子,请见WHOIS的维基百科。

  4. 咱们可使用另外一个命令 snmpwalk 来检测Windows主机。Snmpwalk是一个使用SNMP

GETNEXT请求在网络实体中查询信息树的SNMP应用。在命令行中键入下列命令:

snmpwalk -c public 192.168.10.200 -v 2c

  5. 咱们也能够枚举安装的软件:

snmpwalk -c public 192.168.10.200 -v 1 | grep hrSWInstalledName

HOST-RESOURCES-MIB::hrSWInstalledName.1 = STRING: "VMware Tools"

HOST-RESOURCES-MIB::hrSWInstalledName.2 = STRING: "WebFldrs"

  6. 以及使用相同工具枚举开放的TCP端口:

58snmpwalk -c public 192.168.10.200 -v 1 | grep tcpConnState | cut -d"." -f6 | sort

–nu 21 25 80 443

  7. 另外一个经过SNMP收集信息的工具叫作 snmpcheck :

cd /usr/bin

snmpcheck -t 192.168.10.200

  8. 为了使用fierce(一个尝试多种技术来寻找全部目标所用的IP地址和域名的工具)进行域

名扫描,咱们能够键入如下命令:

cd /usr/bin

fierce -dns adomainnameontheinternet.com

请不要在不属于你的公共网站或者不是你本身的服务器上运行这个工具。这里咱们

将 adomainnameontheinternet.com 做为一个例子,你应该替换掉这个目标。要小心!

  9. 为了以指定的词语列表进行相同的操做,键入如下命令:

fierce -dns adomainnameontheinternet.com -wordlist hosts.txt -file /tmp/output.tx

t

  10. 为了在SMTP服务器上启动用户的SMTP枚举,键入如下命令:

smtp-user-enum -M VRFY -U /tmp/users.txt -t 192.168.10.200

  11. 咱们如今能够记录所得到的结果了。

  1.2 判断网络范围

使用上一节中咱们所收集的信息,咱们就能着眼于判断目标网络的IP地址范围。在这个中咱们将要探索完成它所用的工具。操做步骤

让咱们经过打开终端窗口来开始判断网络范围:

  1. 打开新的终端窗口,而且键入如下命令:

 

59dmitry -wnspb targethost.com -o /root/Desktop/dmitry-result

  2. 完成以后,咱们应该在桌面上获得了一个文本文件,名称为 dmitry-result.txt ,含有收

集到的目标信息:

  3. 键入如下命令来执行ICMP netmask请求:

netmask -s targethost.com

  4. 使用scapy,咱们就能够执行并行路由跟踪。键入如下命令来启动它:

scapy

  5. scapy启动以后,咱们如今能够输入如下函数:

ans,unans=sr(IP(dst="www.targethost.com/30", ttl=(1,6))/TCP()

  6. 咱们能够输入如下函数来将结果展现为表格:

ans.make_table( lambda (s,r): (s.dst, s.ttl, r.src) )

结果以下:

 

60216.27.130.162 216.27.130.163 216.27.130.164 216.27.130.165

1 192.168.10.1 192.168.10.1 192.168.10.1 192.168.10.1

2 51.37.219.254 51.37.219.254 51.37.219.254 51.37.219.254

3 223.243.1.254 223.243.1.254 223.243.1.254 223.243.1.254

4 223.243.2.6 223.243.2.6 223.243.2.6 223.243.2.6

5 192.251.251.1 192.251.251.80 192.251.251.1 192.251.251.80

  7. 咱们须要键入如下函数来使用scapy得到TCP路由踪影:

res,unans=traceroute(["www.google.com","www.Kali- linux.org","www.targethost.com"]

,dport=[80,443],maxttl=20, retry=-2)

  8. 咱们只须要键入如下函数来将结果展现为图片:

res.graph()

  9. 保存图片只须要下列命令:

res.graph(target="> /tmp/graph.svg")

  10. 咱们能够生成3D展现的图片,经过键入下列函数来实现:

res.trace3D()

  11. 键入如下命令来退出scapy:

exit()

  12. 在得到结果以后,咱们如今能够对其作记录。

工做原理

在步骤1中,咱们使用了 dmitry 来获取目标信息。参数 -wnspub 容许咱们在域名上执行

WHOIS查询,检索 Netcraft.com 的信息,搜索可能的子域名,以及扫描TCP端口。选

项 -o 容许咱们将结果保存到文本文件中。在步骤3中,咱们创建了一个简单的ICMP netmask请求,带有 -s 选项,来输出IP地址和子网掩码。接下来,咱们使用scapy来执行目标上的并行路由跟踪,并在表格中展现结果。在步骤7中,咱们在不一样主机的80和443端口上执行了61TCP路由跟踪,而且将最大TTL设置为20来中止这个过程。在得到结果以后,咱们建立了它的图片表示,将它保存到临时目录中,同时建立了相同结果的3D表示。最后,咱们退出了scapy。

  1.3 识别活动主机

在尝试渗透以前,咱们首先须要识别目标网络范围内的活动主机。一个简单的方法就是对目标网络执行 ping 操做。固然,这能够被主机拒绝或忽略,这不是我

们但愿的。操做步骤让咱们打开终端窗口,开始定位活动主机:

  1. 咱们可使用Nmap来判断某个主机是否打开或关闭,像下面这样:

nmap -sP 216.27.130.162

Starting Nmap 5.61TEST4 ( http://nmap.org ) at 2012-04-27 23:30 CDT

Nmap scan report for test-target.net (216.27.130.162)

Host is up (0.00058s latency).

Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds

  2. 咱们也可使用Nping(Nmap组件),它提供给咱们更详细的结果:

nping --echo-client "public" echo.nmap.org

  3. 咱们也能够向指定端口发送一些十六进制数据:

nping -tcp -p 445 –data AF56A43D 216.27.130.162

 

  1.1 寻找开放端口

在了解目标网络范围和活动主机以后,咱们须要执行端口扫描操做来检索开放的TCP和UDP

端口和接入点。

准备完成这个须要启动Apache Web服务器。

操做步骤

让咱们经过打开终端窗口,开始寻找开放端口:

  1. 运行终端窗口并输入下列命令做为开始:

nmap 192.168.56.101

  2. 咱们也能够显式指定要扫描的端口(这里咱们指定了1000个端口):

nmap -p 1-1000 192.168.56.101

 

  3. 或指定Nmap来扫描某个组织全部网络的TCP 22端口:

nmap -p 22 192.168.56.*

 

  1. 或者以特定格式输出结果:

nmap -p 22 192.168.10.* -oG /tmp/nmap-targethost-tcp445.tx

工做原理

这个中,咱们使用Nmap来扫描咱们网络上的目标主机,并判断开放了哪一个端口。

更多

Nmap的GUI版本叫作Zenmap,它能够经过在终端上执行 zenmap 命令,或者访

问 Applications | Kali Linux | Information Gathering | Network Scanners | zenmap 来启动。1.5 操做系统指纹识别

到信息收集的这个步骤,咱们应该记录了一些IP地址,活动主机,以及所识别的目标组织的开放端口。下一步就是判断活动主机上运行的操做系统,以便了解咱们所渗透的系统类型。

准备须要用到Wireshark捕获文件来完成这个的步骤2。

操做步骤

让咱们在终端窗口中进行OS指纹识别:

  1. 咱们可使用Nmap执行下列命令,带有 -O 命令来开启OS检测功能:

nmap -O 192.168.56.102

  2. 使用 p0f 来分析Wireshark捕获文件:

p0f -s /tmp/targethost.pcap -o p0f-result.log -l

p0f - passive os fingerprinting utility, version 2.0.8

(C) M. Zalewski <lcamtuf@dione.cc>, W. Stearns

<wstearns@pobox.com>

p0f: listening (SYN) on 'targethost.pcap', 230 sigs (16 generic), rule: 'all'.

[+] End of input file.

  1.6 服务指纹识别

判断运行在特定端口上的服务是目标网络上成功渗透的保障。它也会排除任何由OS指纹之别产生的疑惑。

操做步骤

让咱们经过开始终端窗口来进行服务指纹识别:

  1. 打开终端窗口并键入如下命令:

 

68nmap -sV 192.168.10.200

Starting Nmap 5.61TEST4 ( http://nmap.org ) at 2012-03-28 05:10 CDT

Interesting ports on 192.168.10.200:

Not shown: 1665 closed ports

PORT STATE SERVICE VERSION

21/tcp open ftp Microsoft ftpd 5.0

25/tcp open smtp Microsoft ESMTP 5.0.2195.6713

80/tcp open http Microsoft IIS webserver 5.0

119/tcp open nntp Microsoft NNTP Service 5.0.2195.6702 (posting ok)

135/tcp open msrpc Microsoft Windows RPC

139/tcp open netbios-ssn

443/tcp open https?

445/tcp open microsoft-ds Microsoft Windows 2000 microsoft-ds

1025/tcp open mstask Microsoft mstask

1026/tcp open msrpc Microsoft Windows RPC

1027/tcp open msrpc Microsoft Windows RPC

1755/tcp open wms?

3372/tcp open msdtc?

6666/tcp open nsunicast Microsoft Windows Media Unicast Service (nsum.exe)

MAC Address: 00:50:56:C6:00:01 (VMware)

Service Info: Host: DC; OS: Windows

Nmap finished: 1 IP address (1 host up) scanned in 63.311 seconds

  2. 咱们也可使用 amap 来识别运行在特定端口或端口范围内的应用,好比下面这个例子:

amap -bq 192.168.10.200 200-300

amap v5.1 (www.thc.org/thc-amap) started at 2012-03-28 06:05:30 - MAPPING mode

Protocol on 127.0.0.1:212/tcp matches ssh - banner: SSH-2.0- OpenSSH_3.9p1\n

Protocol on 127.0.0.1:212/tcp matches ssh-openssh - banner: SSH-2.0-OpenSSH_3.9p1

\n

amap v5.0 finished at 2005-07-14 23:02:11

  1.7 Maltego 风险评估

在这个中,咱们将要开始使用Maltego的特殊Kali版本,它能够在信息收集阶段协助我

们,经过将得到的信息以易于理解的形式展现。Maltego是开源的风险评估工具,被设计用来

演示网络上故障单点的复杂性和严重性。它也具备从内部和外部来源聚合信息来提供简洁的

风险图表的能力。

准备须要一个帐号来使用Maltego。访问https://www.paterva.com/web6/community/来注册帐号。

操做步骤

让咱们从启动Maltego开始:

  1. 访问 Applications | Kali Linux | Information Gathering | OSINT Analysis | maltego 来

启动Maltego。

  2. 点击开始向导的 Next 来查看登陆细节:

  3. 点击 Next 来验证咱们的登陆凭证。验证以后,点击 Next 以继续:

  4. 选择transform seed设置,以后点击 Next

  5. 这个向导在跳到下个页面以前会执行屡次操做。完成以后,选

择 Open a blank graph and let me play around 并点击 Finish 。

  6. 最开始,将 Domain 实体从 Palette 组件拖放到 New Graph 标签页中。

  7. 经过点击建立的 Domain 实体来设置目标域名,而且编辑 Property View 中

的 Domain Name 属性。

  8. 目标一旦设置好,咱们就能够开始收集信息了。最开始,右键点击建立的 Domain 实体,

而且选择 Run Transform 来显示可用的选项:

  9. 咱们能够选择查找DNS名称,执行WHOIS查询,得到邮件地址,以及其它。或者咱们还

能够选择运行下面展现的所有转换。

  10. 咱们甚至能够经过在连接的子节点上执行相同操做,来得到更多信息,直到咱们找到了

想要的信息。

工做原理

在这个中,咱们使用Maltego来映射网络。Maltego是一个开源工具,用于信息收集和取证,由Paterva出品。咱们经过完成开始向导来开始这个。以后咱们使用 Domain 实体,经过将它拖到咱们的图表中。最后,咱们让Maltego完成咱们的图表,而且查找各类来源来完成任务。Maltego十分有用,由于咱们能够利用这一自动化的特性来快速收集目标信息,例如收集邮件地址、服务器的信息、执行WHOIS查询,以及其它。社区版只容许咱们在信息收集中使用75个转换。Maltego的完整版须要$650。

更多启用和禁用转换能够经过 Manage 标签栏下方的 Transform Manager 窗口设置:

一些转换首先须要接受才可使用。

  1.8 映射网络

使用前面几个得到的信息,咱们就能够建立该组织网络的蓝图。在这一章的最后一个·秘

籍中,咱们会了解如何使用Maltego CaseFile来可视化地编译和整理所得到的信息。

CaseFile 就像开发者的网站上那样,至关于不带转换的Maltego,但拥有大量特性。多数特性会在这个的“操做步骤”一节中展现。

操做步骤当咱们从启动CaseFile来开始:

  1. 访问 Applications | Kali Linux | Reporting Tools | Evidence Management | casefile 来

启动CaseFile。

  2. 点击CaseFile应用菜单的 New 来建立新的图表:

  3. 就像Maltego那样,咱们将每一个实体从 Palette 组建拖放到图表标签页中。让咱们从拖

放 Domain 实体以及修改 Domain Name 属性来开始。

  4. 将鼠标指针置于实体上方,而且双击注解图标来添加注解。

  5. 让咱们拖放另外一个实体来记录目标的DNS信息:

  6. 连接实体只须要在实体以前拖出一条线:

  7. 按需自定义连接的属性:

  8. 重复步骤5~7来向图中添加更多关于该组织网络的信息。

  9. 最后咱们保存了信息图表。图表的记录能够在以后打开和编辑,若是咱们须要的话,和咱们从已知目标得到更多信息的状况同样。工做原理

咱们使用Maltego CaseFile来映射网络。CaseFile是个可视化的智能应用,可

以用于判断数百个不一样类型信息之间的关系和现实世界的联系。它的本质是离线情报,也就

是说它是个手动的过程。咱们以启动CaseFile而且建立新的图表做为开始。接下来,咱们使用了收集到或已知的目标网络信息,而且开始向图表中添加组件来作一些设置。最后保存图表来结束这个。更多咱们也能够加密图表记录,使它在公众眼里更安全。为了加密图表,须要在保存的时候选择 Encrypt (AES-128) 复选框并提供一个密码。

相关文章
相关标签/搜索