Foundstone终极黑客培训实记

新加坡国家图书馆管理局-傅梦(CISSP,CCNP,MCSE)

2004年11月我参加了Foundstone在新加坡举办的终极黑客实战培训。
培训前据老师介绍,这是Foundstone第一次在新加坡举办这样高级别的黑客攻防培训,而本次培训的主要对象是新加坡警察部队,电脑局,电信局等这类国家级重点信息机构,所以这次对外招生只准备了很少的几个照顾班,也主要是针对大型企业的安全管理人员。由于Foundstone终极黑客培训的实战性极强,所以新加坡政府要求前来参加培训的所有学员不仅必须是电脑安全行业的正式员工,而且还需要提供所有个人详细资料备案。不过,即便是这么苛刻的条件,前来报名要参加培训的人还是络绎不绝。

这次培训除了可以让自己有机会系统性的学习黑客技术,我还从讲师那里得知该培训可以为我的CISSP认证增加32个教育学分(要知道,到目前位置还没有别的什么培训可以象Ultimate Hacking这样一次性给CISSP加那么多教育分的),更是开心不已。

Foundstone的终极黑客实战培训在安全界应该是最有富有盛名的,除了那套被黑客们称为Bible的Hacking Exposed系列丛书是他们编写的,另外,光是那一长串他们为其做长期安全顾问和培训的机构名单就不得不让人刮目相看,如: CIA, Dept of Defense(USA),FBI, NASA, National Security Agency(USA), AT&T, Cisco, IBM, ISS, 等等

Foundstone的终极黑客培训提供根据实际情况而配置在不同网络环境下的20多台服务器,这些服务器装备了各种各样的操作系统,配合Cisco的路由器以及Cisco IOS防火墙,能够模拟极其复杂的网络环境供学员练习。此外,在学员用机方面,Foundstone终极黑客培训为每个学员特别配置了一台 Windows/Linux的双系统,多启动的笔记本电脑上机练习,这样做的目的是为了让学员可以同时使用和掌握不同系统中使用的黑客工具。(所有设备从美国空运) Foundstone终极黑客培训的讲师是从美国Foundstone本部派来的富有经验的专家。就是这样的条件,才可以确保每个学员在这短短的五天内充分的学习到各种具有实战意思的攻防技术和了解到安全防护中的漏洞和盲点。

下面我大致介绍一下5天的Foundstone Ultimate Hacking课程的内容,在为期5天的课程中,有超过30个以上的密集实战练习,包含了入侵Unix、NT/2000、网络设备等层面的练习。

第1 天 – 概论与基础建立

主要学习和重新认识一些入侵渗透的相关基础知识,这些知识点以前都知道,但是这次是通过黑客的眼光来看重新认识他们。

Internet footprinting
Reviewing publicly available information
Network and domain enumeration
"whois" lookups
ARIN lookups
DNS interrogation
Zone transfers
Network reconnaissance
扫描/发现目标 Scanning / Landscape Discovery:
PING sweeps
Port scanning
Banner grabbing
OS guessing
目标信息搜集Lab
第一天应该算是一道开胃菜,这天我们利用课程所教授的工具与技巧来搜集、扫描由Foundstone精心设计的Footprinting模拟网络。逐一在其网络环境中发现了多种设备与主机 (Windows, Red Hat, Solaris, HP-UP, AIX, etc.)。每一次的主机鉴定都是一次不小的胜利。通过不懈的努力,大家都熟练的掌握了各种扫描技术的运用,其中包括了公开的互联网查询服务和局域网的扫描工具。

第2 天 – Windows NT/2000 系统安全

第二天课程的重点主要在Windows NT 与 Windows 2000。从基本的NT/2000 安全开始教起, 接着学习入侵与防护NT/2000 系统。在一整天的Windows服务器攻击的课程中我们主要学习了以下技术:

Hacking Windows NT/2000
NT/2000 security overview
SIDs and RIDs
LSASS
SAM
ACLs
Domain and network relationships
Footprint / scan
Identify OSs
Identify services
Enumerate
Computer roles
Users and groups
Discovering Network Topology
Services and pipes
Hardware
LDAP
Penetrate
NT passwords
Password guessing
Password sniffing
Password cracking
Escalate
NT4 and Win2K attacks
Named Pipes prediction attack
Pillage
Auditing
Log cleaning
Grabbing the SAM
NT password cracking
Syskey
Important registry keys
Finding "hidden" plaintext passwords
Get interactive
remote.exe
netcat shells
Expand influence
BO2K
netbus
SubSeven
VNC
NT/2000 Lab
在第2天课程的下午,我们对4部仿真用主机进行了实作攻击演练,在攻击过程中需要充分利用这两天所学的方法与工具。通过一系列的练习,Windows服务器攻击的神秘面纱逐一的被我们完全揭开了。其中一个“Capture the Flag攻占山头”的实际练习更是重中之重,因其难度,整个攻击过程花费了我们不少的时间,最后终于依靠我们学员间的团队合作精神来共同达成了。从第二天的攻击实践中,我们发现了不少过去以为靠打补丁和关闭一些不必要的服务进程就可以有效加强系统安全的盲点。现在回过头来看,要强化一台Windows服务器,要做的事情还有很多很多。

第三天 – UNIX 系统安全

第三天的课程着重在Unix 安全方面的问题,在现场,我们将运用本日所学的技能针对Linux 与Solaris 主机进行实战练习。其中一些重要的技能如下:

Hacking UNIX
UNIX landscape discovery
UNIX host enumeration
Remote attacks
Brute force attacks
Remote buffer overflows
Input validation attacks
Creating back channels
Common remote attacks
Local attacks
UNIX passwords
UNIX password cracking
Symlink attacks
Race condition attacks
Local buffer overflows
File and directory permission attacks
Beyond root
Network mapping
Rootkits
Trojans
Backdoors
Sniffers
Loadable kernel modules
UNIX Lab
由于不是所有的人都熟悉UNIX操作系统,所以第三天的进度比较慢,但是在老师的细心讲解和不厌其烦的答疑,最后几乎所有的学员都能按照要求对其环境中的4 部Unix 主机进行正确的攻击。(Unix & Linux)。这也充分体验了攻击是不分操作系统的,只要合理的运用学到的技能进行有系统的分析和鉴定,要成功的攻击一台陌生的服务器也不是一件真正的难事。这一天的结果也充分让我们意识到了安全的跨平台性。只要是一个系统,不管熟悉它的人有多少,都完全有必要彻底的做好其安全巩固工作,决不能寄幻想于用户的水平不够就视而不管。

第四天 – 网络入侵与网站入侵Network Hacking & Web Hacking

第四天所教授的内容并不直接针对特定的操作系统,而是将重点放在路由器与防火墙的弱点与漏洞入侵方面。在实作的部分,我们针对了port redirection通讯端口重导转移进行了大量的练习。此外,在Web Hacking 网站入侵的部分,我们还讨论了如何入侵web-based的应用程序并探讨Foundstone 专家所提供的eCommerce Application电子商务应用程序安全的检查方法,以及复习在前3日的课程中进行攻击实践时在目标主机上所留下的记录文件。本日覆盖的重要知识技能如下:

Network Hacking
Router issues
Vulnerabilities
Services
Passwords
Routing issues
Path integrity
IP spoofing
Denial of service
Firewall architectures
Firewall attack scenarios
Insider
Vulnerable services
Firewall identification and enumeration
Banner grabbing
ACL enumeration
Port identification
Liberal ACLs
Port redirection
datapipe
fpipe
Web Hacking
E-commerce primer
Information gathering
Port scanning
Web reconnaissance
Enumeration
Vulnerability checking
Site duplication
Source sifting
Key field enumeration
Viewing source
Active server pages
Common gateway interface
Cold fusion
File system traversal
Dot dot bugs
Dot listings
Tilde usage
CIM
Input validation
Metacharacters
Field overflows
Application buffer overflows
Server side includes
Hidden tags
IIS Unicode
Local command execution
Impersonation
State tracking
Cookies
在下午的攻击实践中,我们真正领略到了网站攻击的威力。只要具有正确的思维和必要的技能,一个哪怕是只存在一个安全漏洞的网站服务器都会成为攻击者的牺牲品。同时我们也发现了互联网上存在着许多有着显著安全漏洞的网站,值得一提的是,有相当多的网站还是电子商务网站,有经验的攻击者完全可以对这些网站进行攻击以完全免费代价享受网站所提供的各种收费服务甚至是购买价值不菲的实物。

这也不得不让我们所有的安全专家提高警惕:在实践中对这样的系统进行安全加固时,不仅要保证其主机系统的安全,还有必要对在其基础上所运行的网站程序进行系统和长期的漏洞检测与管理。当然还需要对程序员进行有效的安全编程教育和培训。只有通过建议一个可控制的系统的风险管理机制,才可以让企业内的网络管理员和程序开发人员掌握到必要的安全信息和漏洞情况,才能让各部门正确的承担自己的责任,让企业尽可能的降低程序的漏洞和被攻击的风险。

第5天举行Ultimate Lab实战大挑战

最后一天是针对学员这前四天所学习的技能进行一次全面的演练。我们将利用这一整天的时间对由路由器、防火墙、NT/2000、Unix 及Web网站组成的综合目标进行最后的攻击。由于其最终目标的实现极具挑战性,老师明确要求了我们必须以团队合作的方式来完成数小时的实战演练。在最后的攻击演练中要求我们运用的技能包括了以下方面:

Ultimate Hacking:Hands On 实战项目

UNIX 系统安全实战部分

Enumerating UNIX hosts
UNIX brute force attacks
Execution of buffer overflow attack
Execution of input validation attack
Attacking SSL servers
Creating back channels using reverse telnets and X-windows
Execution of remote attacks
Abusing nfs
Exploiting X-windows insecurities
Grabbing keystrokes from another machine
Cracking UNIX password files
Hiding TCP traffic in ICMP packets
Perform network sniffing
Perform session hijacking
NT/2000 系统安全实战

Enumerating NT/2000 hosts
Enumerate NT host, group, and hardware information
Determine NT network topology, architecture, and trust relationship
Automated NT password guessing
Escalating privilege from user to Administrator
Wiping NT audit logs
Grabbing NT password hashes
Sniffing NT password hashes
Cracking NT password hashes
Getting remote interactive cmd.exe shells
Hiding tools and files in NTFS (streams)
Using trojans and backdoors (BO2K, netbus, SubSeven, VNC)
Network Hacking 网络入侵实战

Router identification and enumeration
SNMP vulnerabilities
Decrypting Cisco passwords
Port identification
Determining firewall filtering rules
Taking advantage of liberal firewall rules
Using port redirection to bypass firewall and router rules
上午的时候,老师针对这几天的攻防学习做了一个总结,然后对所有的学员进行了一次理论考核后,就让我们对这次实战培训的终极目标发起进攻。我们只得知最后要得手的是一本很“重要”的电话薄。由于攻击环境因为最后一天的终极挑战重新进行了安排。而且可以肯定的是,这次放电话薄的服务器躲在了防火墙后,一些常用端口也被防火墙关闭了。我们唯一可以利用的是80端口,而且该服务器也没有明显的安全漏洞,所以要想成功的拿到电话本,我们就必须想法先攻克同在防火墙后的另外几台漏洞可能比较多的普通服务器。

由于挑战是对个人攻击技能的总测验,同时又不排除每个人可以想尽办法悄悄的“借助”其他学员的攻击成果而提高自己的攻击速度,所以整个过程充满了挑战性和一连串的刺激。在整个攻击过程中,我几乎用到了前几天学到的所有技能。从侦察,嗅探,被动扫描(不要被防火墙发现),系统及用户列举,建立攻击跳板,透过防火墙建立攻击隧道,端口转发,密码破解等。直到快要到下午六点的时候,终于是第一个同时也是唯一的一个按照实战要求成功完成了既定目标,成功的拿到了那分分“分量十足”的电话薄。虽然当时感觉很疲惫,但是心里却是激动不已。因为最后的成功证明了自己这五天的学习没有白费,最后的挑战也证明了自己掌握到了相当的专业攻击技能。通过这些学到的技能,我们可以更好的运用到平时的安全工作中去,比如对自己的所有的系统进行漏洞检测(Penetration Test)。有一点值得一提的是,我们在攻击课中学习了在成功攻击了服务器后如何隐藏自己的攻击记录以不被发现的必要技术。因此从这样的攻击演练中,我们每一个学员都意识到了,安全管理员不能完全依赖安全系统的日志记录,因为这些记录并不是完全可靠的。要做一个合格的安全专家,必须要学会运用各种工具对系统存在的所有信息进行全面,智能的分析才可以确保安全。

除此之外,这五天下来,我们每个参加培训的学员虽然都学会了不少攻击工具的使用,也学到了不少找漏洞的窍门,但是最让我们回味无穷的还是Foundstone在培训中所一直强调的黑客思维体系,因为无论面对的是什么的网络系统环境,对其进行攻击的思路总的来说是不变的。所以,不管新的服务器是什么,新的补丁打到了什么程度,只要能合理运用这种思维方式再结合有效的手段,一定可是找到安全的突破口。

而我自己,作为一名在职的安全专家,通过这次培训,除了让自己彻底了解到了黑客攻击的各个重要环节外,同时也不得不让自己对日常的一些安全防护工作的实施进行必要的检讨以提高警惕性。在我们的日常工作中,有很多重要的安全环节,由于自己的不了解,而简单的忽略掉了。现在有必要结合所学的Ultimate Hacking的攻击技巧重新制定一系列的安全防范措施。只有这样,才可能真正有效的最大限度保护好我们工作生活中各种网络内的重要信息资源。

通过这次培训,真正我深深的体会到,要成为一个合格的安全专家,还真的必须要先学会如何当好合格的“黑客”才可以。感谢Ultimate Hacking!