Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
1
00:00:00,920 --> 00:00:03,000
Hello everyone. Welcome back to another
2
00:00:03,000 --> 00:00:05,280
video. In today's video, we will be
3
00:00:05,280 --> 00:00:07,680
showcasing this GitHub repository,
4
00:00:07,680 --> 00:00:10,640
IronPE, to bypass the latest Windows
5
00:00:10,640 --> 00:00:12,720
Defender running on a Windows 11
6
00:00:12,720 --> 00:00:14,800
machine. Before we begin, please note
7
00:00:14,800 --> 00:00:16,640
that this video is created strictly for
8
00:00:16,640 --> 00:00:18,720
educational and cybersecurity awareness
9
00:00:18,720 --> 00:00:20,560
purposes. All demonstrations are
10
00:00:20,560 --> 00:00:22,440
conducted within a simulated virtual
11
00:00:22,440 --> 00:00:24,240
environment using systems that are
12
00:00:24,240 --> 00:00:26,480
owned, authorized, or intentionally
13
00:00:26,480 --> 00:00:28,200
configured for security research and
14
00:00:28,200 --> 00:00:30,240
training. The techniques, tools, and
15
00:00:30,240 --> 00:00:32,000
methodologies discussed are widely
16
00:00:32,000 --> 00:00:33,640
documented within the cybersecurity
17
00:00:33,640 --> 00:00:35,160
industry and are presented to help
18
00:00:35,160 --> 00:00:37,360
security professionals, students, and
19
00:00:37,360 --> 00:00:39,360
organizations better understand how
20
00:00:39,360 --> 00:00:41,200
attacks work so they can defend against
21
00:00:41,200 --> 00:00:43,120
them. This content does not promote,
22
00:00:43,120 --> 00:00:45,320
encourage, or support unauthorized
23
00:00:45,320 --> 00:00:48,000
access, hacking, or illegal activities
24
00:00:48,000 --> 00:00:50,160
of any kind. Any attempt to use the
25
00:00:50,160 --> 00:00:51,840
information provided in this video
26
00:00:51,840 --> 00:00:53,880
against systems without explicit written
27
00:00:53,880 --> 00:00:56,680
authorization is illegal and unethical.
28
00:00:56,680 --> 00:00:58,560
The creator of this channel assumes no
29
00:00:58,560 --> 00:01:00,680
responsibility or liability for any
30
00:01:00,680 --> 00:01:02,640
misuse or damage caused by the
31
00:01:02,640 --> 00:01:04,480
information presented. By watching this
32
00:01:04,480 --> 00:01:05,960
content, you acknowledge that the
33
00:01:05,960 --> 00:01:07,840
material is intended solely for
34
00:01:07,840 --> 00:01:09,800
legitimate cybersecurity education,
35
00:01:09,800 --> 00:01:11,560
defensive research, and professional
36
00:01:11,560 --> 00:01:12,240
development.
37
00:01:12,240 --> 00:01:14,640
>> Let's get started. So, this is a minimal
38
00:01:14,640 --> 00:01:17,120
PE loader that is written in Rust to
39
00:01:17,120 --> 00:01:19,120
load and execute Windows portable
40
00:01:19,120 --> 00:01:21,920
executable files on Windows. Feel free
41
00:01:21,920 --> 00:01:23,760
to read more about this project on your
42
00:01:23,760 --> 00:01:25,960
own. We will not be wasting time reading
43
00:01:25,960 --> 00:01:28,160
off word by word. Let's jump right into
44
00:01:28,160 --> 00:01:31,120
demonstration.
45
00:01:37,760 --> 00:01:39,720
Let's hop over to our Kali machine and
46
00:01:39,720 --> 00:01:43,280
get clone the repository.
47
00:01:48,440 --> 00:01:50,240
The project is built for Windows
48
00:01:50,240 --> 00:01:52,920
compilation. We can simply do a cross
49
00:01:52,920 --> 00:01:55,240
compilation on our Kali machine to
50
00:01:55,240 --> 00:02:00,320
produce a Windows EXE binary with Rust.
51
00:02:04,320 --> 00:02:05,880
Let's install whatever that is
52
00:02:05,880 --> 00:02:08,160
necessary. I don't think I have Rust
53
00:02:08,160 --> 00:02:10,920
installed on my Kali machine yet. Once
54
00:02:10,920 --> 00:02:12,840
installation is done, we should be able
55
00:02:12,840 --> 00:02:14,920
to cross compile this project without
56
00:02:14,920 --> 00:02:17,880
any issues.
57
00:02:36,240 --> 00:02:38,800
Nice. The compiled EXE binary should be
58
00:02:38,800 --> 00:02:43,280
in the Windows release folder over here.
59
00:02:50,440 --> 00:02:52,440
The loader itself does not contain any
60
00:02:52,440 --> 00:02:54,680
malicious payload, so I don't think
61
00:02:54,680 --> 00:02:58,800
Windows Defender is going to pick it up.
62
00:03:17,920 --> 00:03:19,960
Awesome. No detection so far on the
63
00:03:19,960 --> 00:03:22,520
loader.
64
00:03:37,440 --> 00:03:38,800
If you are paying attention, you should
65
00:03:38,800 --> 00:03:40,920
notice there is a limitation here on
66
00:03:40,920 --> 00:03:43,680
this loader. It only takes in a local
67
00:03:43,680 --> 00:03:45,840
file parameter. This means that most
68
00:03:45,840 --> 00:03:47,800
likely the payload will have to be on
69
00:03:47,800 --> 00:03:50,680
the victim machine as well.
70
00:03:50,680 --> 00:03:53,320
Let's generate a EXE meterpreter reverse
71
00:03:53,320 --> 00:03:56,800
shell payload on our Kali.
72
00:04:20,560 --> 00:04:22,240
Now, if we were to transfer the
73
00:04:22,240 --> 00:04:24,560
meterpreter EXE over to our Windows
74
00:04:24,560 --> 00:04:27,080
machine for the loader, obviously, this
75
00:04:27,080 --> 00:04:29,120
is going to trigger Windows Defender on
76
00:04:29,120 --> 00:04:32,960
the meterpreter EXE payload.
77
00:04:46,080 --> 00:04:48,360
So, what can we do in order to
78
00:04:48,360 --> 00:04:52,240
circumvent this loader's limitation?
79
00:04:52,240 --> 00:04:54,480
It's pretty easy. We can implement a
80
00:04:54,480 --> 00:04:57,400
feature to load the EXE payload remotely
81
00:04:57,400 --> 00:05:00,120
over a HTTP endpoint instead. Let's
82
00:05:00,120 --> 00:05:02,040
locate the file read function in the
83
00:05:02,040 --> 00:05:05,080
source code first.
84
00:05:05,760 --> 00:05:08,240
This should be the read file function
85
00:05:08,240 --> 00:05:09,240
here.
86
00:05:09,240 --> 00:05:11,160
Now, let's copy and paste this into
87
00:05:11,160 --> 00:05:13,560
ChatGPT and ask it to implement the
88
00:05:13,560 --> 00:05:18,240
fetching of payload remotely over HTTP.
89
00:05:23,720 --> 00:05:25,600
Let's be as detailed as possible and
90
00:05:25,600 --> 00:05:27,400
paste in the loader help menu for
91
00:05:27,400 --> 00:05:30,920
ChatGPT to refer.
92
00:05:40,640 --> 00:05:42,720
Awesome. Let's follow the instructions
93
00:05:42,720 --> 00:05:45,200
and add in the HTTP request dependency
94
00:05:45,200 --> 00:05:47,640
first.
95
00:05:57,240 --> 00:06:00,000
Let's copy in the use FS and use path
96
00:06:00,000 --> 00:06:03,200
statements here as well.
97
00:06:08,800 --> 00:06:11,520
FS is already here. So, let's just use
98
00:06:11,520 --> 00:06:14,000
path.
99
00:06:18,160 --> 00:06:20,080
Now, let's copy the entire file read
100
00:06:20,080 --> 00:06:22,800
function and overwrite the existing one.
101
00:06:22,800 --> 00:06:24,520
This contains the remote payload
102
00:06:24,520 --> 00:06:28,480
fetching over HTTP logic.
103
00:06:34,680 --> 00:06:36,640
This should do it. Now, let's recompile
104
00:06:36,640 --> 00:06:39,800
the project to produce a new IronPE.exe
105
00:06:39,800 --> 00:06:41,760
loader, which contains our new
106
00:06:41,760 --> 00:06:44,760
implementation.
107
00:06:51,800 --> 00:06:54,080
This looks good. Let's transfer the new
108
00:06:54,080 --> 00:06:58,400
IronPE loader to our Windows machine.
109
00:07:15,360 --> 00:07:17,440
Let's spin up a web server using Python
110
00:07:17,440 --> 00:07:20,760
to host our payload.
111
00:07:28,280 --> 00:07:30,560
All right. Moment of truth here. Let's
112
00:07:30,560 --> 00:07:33,040
execute the IronPE loader and fetch our
113
00:07:33,040 --> 00:07:36,080
payload remotely via HTTP. This looks
114
00:07:36,080 --> 00:07:38,480
good.
115
00:07:45,240 --> 00:07:47,480
Nice. We did it. We were able to
116
00:07:47,480 --> 00:07:48,985
successfully bypass Windows Defender
117
00:07:48,985 --> 00:07:50,840
[music] and establish a functional
118
00:07:50,840 --> 00:07:54,240
meterpreter reverse shell.
119
00:08:58,440 --> 00:09:00,200
All right, all. This is it to this
120
00:09:00,200 --> 00:09:01,920
video. A quick and straightforward
121
00:09:01,920 --> 00:09:04,120
knowledge and tool sharing video without
122
00:09:04,120 --> 00:09:05,760
all the fluff. I hope you have found the
123
00:09:05,760 --> 00:09:08,120
video to be useful. I have started a
124
00:09:08,120 --> 00:09:10,000
membership on my YouTube channel for
125
00:09:10,000 --> 00:09:11,680
people who would like to support the
126
00:09:11,680 --> 00:09:13,880
channel. Else, please help to like the
127
00:09:13,880 --> 00:09:15,720
video and subscribe to the channel. It
128
00:09:15,720 --> 00:09:17,760
will really help out the channel a lot.
129
00:09:17,760 --> 00:09:19,520
Thanks all. I appreciate it, and I will
130
00:09:19,520 --> 00:09:23,960
see you all soon in the next one. Bye.8931
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.