渗透测试
概念
渗透测试在测试过程中广泛使用”黑客“的攻击技术和攻击程序,可以模拟实际网络中的攻击,因此是一种更加直观的测试方法。
渗透测试不仅要例举出被测系统可能存在的漏洞,还要验证这些漏洞。
渗透测试的结果对于一个系统的安全性评估更具有参考价值
WEB渗透测试
对Web应用程序的测试,是对渗透测试的研究热点之一
- Web技术的发展,Web应用程序的功能不断增强,网站的规模不断增大,导致安全隐患不断增多;
- Web网站的访问量巨大,而且用户对网页的和Web应用程序的访问往往绕过了各种安全防护措施,因此容易造成巨大的损失;
测试模型
渗透测试的复杂性使得测试需要依据一定的测试模型来进行;
一个测试模型的优劣直接影响测试的效率,完整性和准确性。
比较有名的测试模型:
- 美国海军实验室的FHM模型
- KSAJ公司的OOM模型
- ISECOM的OSSTMM模型
自动化测试工具
自动化渗透测试工具一直是研究的热点,研究人员试图开发出安全有效的渗透测试工具,以提高测试的效率和准确性,同时降低测试的成本。
目前比较成熟的渗透测试工具(半自动化,仍需人工干预):
- CoreImpact
- Metasploit Framework (MSF)
FHM模型
FHM模型使用的是”缺陷假设方法“对目标系统进行测试,逐一例举目标网络缺陷并测试之。
FHM测试分成四个阶段:
- 缺陷产生:列出怀疑存在的缺陷的清单。
- 缺陷验证:验证每个缺陷是否存在,不存在还是无法测试。
- 缺陷归纳:分析每个被验证的缺陷所具有的安全脆弱性的一般化
- 缺陷消除:修复缺陷或使用额外的控制手段限制残留缺陷的危险性。
后三个阶段循环进行,直到到达渗透测试目标,这种方法实际上就是在研究自然科学常用的”假设,校验“的方式,是最直接的渗透测试方法。
OSSTMM
开放源码安全测试方法模型(OSSTMM)是目前被渗透测试人员广泛采用或者参考的测试模型,分成了6个阶段:
1.信息安全测试 2.过程安全测试 3.互联网安全测试 4.通信安全测试 5.无线安全测试 6.物理安全测试
每个测试又分成若干个模块,各个模块由若干任务组成。每一个任务是对目标系统一项测试。
特点:各个模块之间是有一定顺序性的,每个模块都有输入和输出;输入实质性模块需要用到的信息,而输出是模块各项任务执行完毕后的结果。
一个模块有可能是另一个模块的输入,这样就可以把目标系统的测试有机的组织起来,提高测试的效率。
OMM模型(攻击操作模型)将测试的重点放在目标系统对攻击的繁育能力上,将对目标系统的典型攻击分成了五个阶段:
1.侦查 2.分析和攻击策略生成 3.漏洞攻击 4.开设后门 5.控制目标主机
Cyber killchain
由 Lockheed Martin 开发的 Cyber KillChain®框架是 Intelligence DrivenDefense®模型的一部分,用于预防和识别网络入侵活动。 该模型确定攻击者必须完成什么才能实现其目标。
reconnaissance(侦查)
Harvesting email addresses,conference information,etc.
收集电子邮件地址,会议信息等等
主动的信息搜集
通过直接访问,扫描网站这类流量经过网站的网站行为称为主动方式。
- nessus
- kali
whatweb xxx.cm - zenmap
- IBM security appscan standard
- AWVS
- 弱口令,敏感文件,网站备份,验证码机制,未授权访问
被动的信息搜集
利用第三方服务了解目标,whois查询,漏洞搜索,googlehack。
- whois
- kali
- whois xxxx.com
- zoomeye
- googlehack
- 搜索职员信息,使用社工等
- github,gitee
- 搜索其代码
资产暴露面
工具Wappalyzer,namp,waf00f
weaponization(武器化)
Coupling exploit with backdoor into deliverable payload
联合开发武器,制作可以交付的工具
准备工具
信息搜集工具,漏洞扫描工具,密码相关工具,HTTP代理工具,中间人工具,漏洞利用工具,权限提升工具,远控/后门工具,端口转发工具,清理痕迹工具,隐藏文件工具
漏洞准备
搜集,挖掘,购买
恶意文件准备
同上
恶意服务器准备
域名申请/购买,恶意服务器租赁,已经被黑的服务器
肉鸡准备
用作DDOS的僵尸网络肉鸡,购买已经植入攻击目标的木马,用做跳板/木马的肉鸡。
- 漏洞扫描工具
- recondog,AWVS
- http代理工具,中间人工具
- responder,brupsuite,
- 漏洞利用,权限提升,远控后门
- windows-kernel-exploits-master,cobalt strike,msf
- 恶意软件,服务器,肉鸡准备
- exploit database,cobalt strike
delivery(模拟攻击)
Delivering weaponized bundle to the victim via email,web,USB,etc.
使用邮件,网页,USB等方式将攻击程式发送给受害者
攻击模拟
从一个点,渗透面,随后点面结合的方法获取到最后的目标。
####
- 身份验证
- 用户注册,用户登录,修改密码,密码重置,自动登录功能,用户证书传输,用户锁定功能,其他方式登入
- 会话管理
- cookie属性,cookie重放攻击,会话令牌分析,会话令牌泄露,会话固定攻击,会话结束/超时,session变量重载
- 访问控制
- 功能滥用,垂直权限提升,水平权限提升
- 输入处理
- sql注入,oracle sqli,mysql sqli,sql server sqli,ms access sqli, postgresql sqli,文件上传漏洞,任意文件下载漏洞,Nosql注入,LDAP注入,ORM注入,SOAP注入,XPATH注入,XML注入,服务端包含漏洞,目录穿越漏洞,SSRF漏洞,邮件头部漏洞,命令注入漏洞,本地文件包含漏洞,远程文件包含漏洞,远程命令/代码执行漏洞,HTTP参数污染漏洞,HTTP响应分个漏洞,HTTP请求偷渡漏洞,测试Web服务,测试websocket。
- 加解密
- 测试SSL/TLS协议
- 信息泄露
- error code,stack traces,敏感信息分类。
- 客户端
- 内容欺骗漏洞,XSS,CSRF,js注入漏洞,CSS注入漏洞,html注入漏洞,客户端资源编辑漏洞,客户端跨站资源共享漏洞,测试flash跨站问题,点击劫持漏洞
####
参考书籍 欺骗的艺术
exploitation(漏洞利用)
Exploiting a vulnerability to execute code on victim's system
利用漏洞在受害者系统上执行 代码
installation(安装恶意软件)
Installing malware on the asset
在有价值的设备上安装恶意软件
在实际渗透过程中,我们成功入侵了目标服务器。接着我们想在本机上通过浏览器或者其他客户端软件访问目标机器内部网络中所开放的端口,比如内网的3389端口、内网网站8080端口等等。传统的方法是利用nc、lcx等工具,进行端口转发。
适用端口转发的网络环境有以下几种:
1.服务器处于内网,可以访问外部网络。
2.服务器处于外网,可以访问外部网络,但是服务器安装了防火墙来拒绝敏感端口的连接。
3.服务器处于内网,对外只开放了80端口,并且服务器不能访问外网网络。
对于以上三种情况,lcx可以突破1和2二种,但是第3种就没有办法了,因为lcx在使用中需要访问外部网络。
这里的第3种就可以用到我们今天重点要讲的SOCKS代理。Socks是一种代理服务,可以简单地将一端的系统连接到另外一端。支持多种协议,包括http、ftp请求及其它类型的请求。它分socks 4 和socks 5两种类型,socks 4只支持TCP协议而socks 5支持TCP/UDP协议,还支持各种身份验证机制等协议。其标准端口为1080。
恶意软件:安装后门程序,远控木马
工具
Earthworm · EW 是一套便携式的网络穿透工具
Proxifier是一款非常强大的代理客户端,可以通过指定IP、端口、域名、程序、用户名密码授权等模式设置代理规则,类似于SocksCap。
command & control(远控)
Command channel for remote manipulation of victim
使用命令通道远程操纵受害者
打通通道,权限维持
内网渗透
通过常规web渗透,已经拿到webshell。那么接下来作重要的就是探测系统信息,提权,针对windows想办法开启远程桌面连接,针对linux想办法使用反弹shell来本地连接。
与外网渗透不同,内网渗透需要更多的随机性和突破口,情况较为复杂,遇到障碍,有时可以换种思路突破,很多时候则无奈的只能止步于此。
内部侦查
搜集被入侵主机中的信息
用户和组相关,系统相关,网络相关,进程相关,文件相关,防火墙相关,DOMEX
获取域相关的信息
查询域用户,查询域组名称,查询域管理员,查看域控制器
内网扫描
监听信息
监听局域网中的数据包获取敏感信息,持续监听被入侵主机中的敏感信息
内部渗透
口令攻击
弱口令,社工信息组合的口令,穷举爆破,口令漏洞
漏洞攻击
- web应用漏洞
- 协议漏洞
- kerberos
- smb
- samba
- openssl
数据信道
- windows
- powershell下载文件
- vbs脚本下载文件
- smb文件传输
- nc+telnet传输
- hta下载文件
- linux
- wget文件下载
- ftp下载和上传
- perl,ruby,python文件在下
- tar+ssh上传
- 高级数据传输
- 利用其他协议
- 修改原始数据
- 流量劫持
- 攻击客户端
- 钓鱼攻击
- 邮件
- IM
- 客户端漏洞
- 浏览器
- 浏览器插件
- 办公软件
- 钓鱼攻击
域渗透
信息搜集
当前用户信息 whoami /all
打当前计算机名 hostname
查看域所有用户 net user /domain
查看单个域用户信息 net user xxxx /domain
查看本地管理员组 net localgroup administrators
查看域管理组 net group "Domain Admins" /dimain
定位域控主机 net time,nslookup -type=SRV_ldap_tcp corp,ping net time主机,ifconfig查看dns
权限提升
mimlkatz读取域用户内存明文密码
清楚票据 klist purge
kekeo进行提权
查看共享,获得域控权限
文章评论