Free YouTube Transcribe

Video transcript

i need your help.

John Hammond · 3,804 words · 18 min read

WhatsAppTelegramX

Want to search this transcript, jump the video from any line, or download it as TXT, SRT, or VTT?

Open in the transcript tool

Full transcript

0:00I need your help because I don't know a

0:01whole lot about this Minecraft hacks or

0:04Minecraft modding community. And people

0:06keep saying words like fabric, hypixel,

0:08chat triggers, and I got to be honest, I

0:11don't know what any of that stuff means.

0:12So, please, I need your help. Help me

0:14learn, school me, educate me. Let me

0:17know in the comments what this whole

0:18wild world is. I did find

0:21chattriggers.com

0:22that explains everything is in

0:24JavaScript. You can get started with

0:26Slate and here's some documentation, but

0:29I don't know a whole lot more other than

0:31this thing exists. Presumably, you can

0:33look for different modules with this

0:35link here and that will help you get

0:38different things. But these are mods,

0:41right? These are modifications to

0:43Minecraft in the game. Oh, this is a RZ

0:45notifier. It notifies you when RZ

0:47appears anywhere in chat. Drop RZ in the

0:50comments. Anyway, someone sent me this

0:52email. It says Minecraft chat triggers

0:55module malware. Hello. Recently, I came

0:57across this file. It's a chat triggers

0:59module which seems innocent, but after

1:01checking the files, I found two links to

1:03malicious code. Note, there could be

1:05more that I haven't found. The first one

1:06is at this file and line number. The

1:08other one is just beneath it. And they

1:10give a link. It seems to read code from

1:13hst.sh.

1:15I don't really understand JavaScript

1:16code, but from what I could find, it's

1:17definitely malicious according to this

1:20individual. Thanks so much for sending

1:21me malware. Looks like they provided

1:23sample.zip. And let's go ahead and

1:25download that. Now, I'm going to be

1:26working inside of my Windows 11 virtual

1:29machine, and I really recommend you do

1:30the same. Operate inside of a virtual

1:32machine if you're working with malware

1:34or just strange, sketchy, suspicious

1:37files and software. So, inside of the

1:39zip archive, we have a folder called

1:41Bye-Bye Golder. We can go ahead and

1:43extract this. I actually want to use

1:44sevenzip. So, I'm going to shift

1:46rightclick and then extract to that

1:48sample. Now, inside of that directory,

1:50we have that by Golder folder. And let's

1:53see what's in there. In all reality,

1:55since there are a lot of files here, it

1:56might just be better for us to open up

1:58that entire directory inside of a text

2:00editor. I like to use Sublime Text. So,

2:02let me make this full screen and open up

2:04this folder for us. Now, I'm going to be

2:06honest with you. I did get a chance to

2:08take a peek at this stuff before I

2:10started recording. And I really wanted

2:11to show you this one because it's kind

2:14of hysterical. Let me turn word rap on

2:16so you can see. But honestly, you know,

2:17I like, oh, when things are obfuscated,

2:20when things try to hide or mask their

2:22operations, so it's some code puzzle

2:24piece that you just get to unravel. But

2:26in this case, there's really not a whole

2:27lot to have to rip apart or deobuscate.

2:31It's kind of all in the clear.

2:32Apparently, this mod chat trigger

2:34module, I'm assuming, I hope, let me

2:36know in the comments, is named by

2:39Goldor. And if we try to go look for

2:41that, search for it or find it on the

2:43chat triggers module page. I haven't

2:45found it. Not going to lie, I don't

2:47think it's here. Maybe it was served at

2:49one point but is no longer. Maybe it was

2:51taken down because it was determined to

2:52be malicious, but no modules found. I

2:55don't know how this individual got this

2:56file. That's fine. To be honest, I'm

2:58more interested in showing you the code.

3:01So, let's look at the entry point

3:03index.js, JS, which obviously is all of

3:06the stuff that's usual for boilerplate

3:09setup, importing libraries, modules, and

3:11doing some of this stuff here. Some of

3:14the lines, note messages. Oh, you're put

3:15in the sky block lobby. Uh, and there's

3:18not a whole lot else to this file. Only

3:2162 lines, mostly imports, but we'll find

3:25where is the malicious component?

3:27Imports config, of course. Not a whole

3:29lot more here. Thankfully, our friend in

3:32the email gave us a clue as to what file

3:34we might look at because obviously there

3:37is a lot in this zip archive for us to

3:40try to look through. So, let's speedun

3:42just a little bit. They mentioned the

3:44utils directory has one file called

3:46utils.js that has a malicious line. Now,

3:51you might remember the line number, but

3:53looking at this file, can you find it?

3:55Can you see it? Can you already see the

3:58sketchy stuff? It may or may not stick

4:00out like a sore thumb because amongst

4:02all of these export constant lines at

4:04the very top here, you see lines 33 and

4:0834 that declare a function based off the

4:11file lib module object something using a

4:16method or function called get URL

4:18content passing in a URL https and

4:21hst.sh

4:23just as they mentioned. They reach out

4:25to one endpoint on that site with the

4:28raw prefix presumably to get the full

4:31raw bytes and contents. And then after

4:33that's defined as a function, they call

4:36it with the two opening and closing

4:38parenthesis. Now, let me ask you, have

4:40you heard of hst.sh

4:43before as a website? Let's go take a

4:45look at it. Back in our browser, let's

4:48open up another tab. Let's go to hst.sh.

4:52Ah, presumably haste bin. You might be

4:54able to see down in the bottom left the

4:56about page here. It is basically paste

4:59bin, right? You get to choose any

5:02content, any data, any text, any info,

5:04and just slap it out onto the internet

5:06with a hosting provider like this. Not

5:08to say a hosting provider in its

5:10formality. It goes without saying, a lot

5:12of malware payloads could just as easily

5:14be hosted or served by PayPin. And if

5:16this is an equivalent, okay, it's just

5:18being used and abused, leveraged to put

5:21content out on the internet. So anyone

5:23else or any victim could have it be

5:25pulled down and executed. So let's grab

5:27the URL that they are referencing here

5:29and let's go see what the actual code

5:32that detonates is. Back in the URL bar,

5:35let's go ahead and get to that location.

5:38And we start with that good old Discord

5:43API key and canary it looks like. So

5:46this is what we have to dig into. And

5:48I'm telling you, there are no secrets

5:49here. It's not obuscated. We're going to

5:51have a lot of fun looking through this

5:52code and seeing how it all works. So you

5:54get an understanding of what does

5:56malware in Minecraft malware mods being

6:00used and abused for payloads like this.

6:02What does it do and what does it look

6:03like? But before we do all that, please

6:05let me tell you about the sponsor of

6:06today's video, Cape. It's one thing when

6:09your cell phone gets hacked. It's a

6:11whole another thing when your cell phone

6:12provider gets hacked. Mobile carriers

6:15are in the headlines all too often for

6:17data breaches and surveillance scandals

6:19or even just selling your info. Cape is

6:21a modern mobile carrier that does things

6:24differently. They're privacy first and

6:26privacy focused through and through.

6:28It's an expert-led team with roots in

6:31telecom and security. They don't ask for

6:34your name or your address or social

6:36security number and they don't collect

6:38any data they don't have to. the data

6:40they do have to collect like call

6:42metadata or anything necessary, they

6:44delete it and they'll never sell your

6:46data. They can't. They don't have it in

6:48the first place. Cape has all these

6:50awesome security features. SIM swap

6:53protection, encrypted voicemail, even a

6:55recovery phrase to generate a

6:57cryptographic key pair for a public key

7:00and private key. That cryptographic

7:02approach was actually based on input

7:04from Dan Guido, a friend of mine and a

7:06technical adviser at Cape. You might

7:08know the name from Trail of Bits. And

7:10Cape is vetted by even more of the most

7:13respected names in cyber security like

7:15Dimmitri Alparovich, one of the

7:17co-founders of Crowdstrike and Dne

7:19Stucky, OpenAI's Sizo. And if you love

7:22the security and privacy first carrier,

7:24you can use my code Hammond 33 to get

7:2733% off your first 6 months with Cape.

7:30You can get started with Cape with my

7:32link below in the video description,

7:34jh.live/cape.

7:36Huge thanks to Cape for sponsoring this

7:38video. All right, now that we're back to

7:41it, we've got the first payload that was

7:43being served on haste bin, a paste bin

7:45equivalent. So, let's copy all this and

7:47get it into our text editor so that we

7:48can work with it. We can call this like

7:51payload one, I suppose. Trying to save

7:53that out in another location so we're

7:55not confused with the other files here.

7:57And while we're at it, let's go ahead

7:59and get the other HST.sh

8:03script back up in the URL. We have this.

8:05Let me save that as payload 2.js. Let's

8:08get into that in a moment. Let's get

8:10word rap back on. But obviously the very

8:12start is defining a variable for a web

8:14hook URL. Needless to say that is a

8:17Discord web hook. We could probably do

8:19some shenanigans with that whether we

8:21send it messages or delete the web hook.

8:23You could do you know whatever you want

8:25since that key is present there. And

8:26beneath that is a send function that

8:29uses this web hook URL too and simply

8:32sends data to that web hook. Nothing

8:34fancy there. Paste is another function

8:36that looks like a convenience just to be

8:38able to slap anything else onto Haste

8:41bin. You see that URL there? That all

8:43looks like regular boilerplate code, but

8:45when we get a little bit further down,

8:46we start to see more Minecraft specific

8:49things and much more malware specific

8:51functionality. One thing that I have

8:53been learning, again, please school me

8:55in the comments here, but there are

8:56these Minecraft functions that are

8:59defined or based off of I think whatever

9:01version that you're up against, whether

9:03it's Minecraft Forge or some of the

9:05toolkits and frameworks to be able to

9:06make mods similar to this. So

9:08funk_110432

9:11capital i148254_d

9:15are all specific to the game. But we can

9:17get different functions or different

9:19fields and go figure out what those

9:20actually mean because that is relatively

9:24obfuscated and that we can't tell what

9:25it does just based off that string of

9:27numbers. And again, please let me be

9:29fully upfront. I've got a lot to learn

9:31here. So genuinely, anything I'm really

9:32asking, I need your help. Let me know in

9:35the comments what all this is supposed

9:36to do. if this is right. Are there other

9:38resources? I apparently got to get smart

9:41on the Minecraft mod and Minecraft

9:44hacking community. But you can see in

9:46resources like this, some function names

9:48or other field names would refer to

9:50based off of the numeric key and letter

9:53that follows what actual function

9:56purpose or better read name should be.

10:00Like funk 700062B

10:03is set current item or armor. And this

10:05list goes on and on and on. Doing my

10:08homework a little bit more, I found

10:10another repository for Minecraft

10:12deobuscator 3000. Uh, looks like that

10:15had a little bit more or at least

10:16different variations of the version

10:18potential. Uh, or something that could

10:20better match our function names or

10:22numbers cuz I didn't find the ones that

10:24we were looking at in that previous

10:26list. I see another 1.7 that looks to

10:28have more fields, methods, and

10:30parameters again with the seven prefix.

10:33If I go back just a moment, the 1.12

10:37stable mappings seem to have what I was

10:39looking for. Methods here in this file,

10:41I see a couple of the funk

10:44prefix that we're probably up against.

10:46So, I could control F and look inside of

10:49this list. What is actually being called

10:52if we were to use funk_110432_I?

10:58Let me control F for that. Looks like it

11:00is get session H. Question is, can we

11:03get 148254?

11:05Control F for that one. Oh, get token.

11:08Okay, now that's called for something

11:11being set to an SSID, which seems more

11:14like a Wi-Fi for me. Like I think of oh,

11:16your broadcast Wi-Fi network name. Not

11:18positive. Maybe that tracks again.

11:20School me. Other objects, other types

11:22brought in environment variables that

11:24have their data retrieved like your app

11:26data or your local app data directory on

11:28your computer. Let's see what the M

11:30folder one is pulling with that function

11:32name or field. I'd presume that that is

11:36like your Minecraft folder. Let's

11:38control F for that. Oh, dang. I can't

11:40find that one. Okay, 71. So, again,

11:42let's hop back and use a different

11:44mapping. I'm sure one of these tools

11:46probably like does this all for you. I

11:48can't find that one. So, I'm trying to

11:50track this one down, but um is there a

11:54better resource for these things? Am I

11:56not doing this the right way, the smart

11:58way? Let me know. Googling around, it's

12:00funny to see some of the high pixel

12:01shenanigans of is is this a rat? Is this

12:03legitimate? Is this malware? Uh maybe

12:05there's another mapping here. Can I

12:07control F for that? Give me just that

12:09field name. Yeah, public final file.

12:12Okay, I don't want to fall down the

12:13rabbit hole too much. I'm assuming

12:15that's just your Minecraft folder, hence

12:17the client get Minecraft field file type

12:20get path. Others here though, looks like

12:22we're trying to retrieve the

12:24accounts.json.

12:25Potentially sensitive info there. Same

12:27thing with the Prism Launcher, Minecraft

12:30launcher profiles, Microsoft account,

12:32etc., etc., feather and then they check

12:36their IP address using check IP from

12:39Amazon AWS. If they find Prism, then

12:42they will retrieve out the accounts from

12:44there. And then they paste all of this,

12:47hence the paste function above that ends

12:50up creating a new paste bin entry.

12:53Remember this paste function just above?

12:55So obviously they're exfiltrating that

12:57data out as you are infected,

12:59compromised, and hit with malware like

13:01this. And because they're able to

13:02retrieve your name, the payload that

13:04they end up creating, they literally

13:06make a title, you got ratted with the

13:09URL for, I'm assuming, sky pixel

13:12something, uh, username or profile,

13:14right? Static color, an author that's

13:17hard-coded, SSID. Okay, that seems to be

13:19it, right? Username, UU ID, and IP

13:21address are all added. And then it puts

13:23in all the links for the haste bin

13:26entries that it has just made because

13:28remember that is returned from the paste

13:31function but then it sends it to discord

13:34with the send function above which is

13:37using that web hook. So stupid silly

13:40again not obuscated immediately obvious

13:42and egregious info stealer right now. I

13:45don't play Minecraft but I can only

13:47assume a lot of the things that are

13:49present in the accounts.json JSON files

13:52are probably sensitive. Now, let's look

13:54at payload 2. This is the blurb that was

13:57the second call to the haste bin paste

14:00bin site just following the original

14:02one. And that looks like it adds

14:05honestly persistence. Is that fair to

14:07say? Let me know. Again, please tell me

14:09here because they get the modules

14:11directory, then they use Bloom Core

14:14dungeons as a directory for that. They

14:16make those directories if they don't

14:17exist and they end up staging what would

14:19eventually become dungeon.js. They even

14:22create a flag file like a little

14:24placeholder or marker to say, "Hey, this

14:26host, this computer, this victim has

14:29already been compromised. The injection

14:31is done." And that's what they create as

14:32a file. current context means reading

14:35from that file and they inject another

14:39function style function parenthesis file

14:42lib get URL content of once again

14:45another HST or hast bin site heyload we

14:48could pull down. So let's copy that so

14:50we can take a look and while all of this

14:52is just defined created as variables

14:54here then they actually do it in the if

14:56statement to check if the flag file

14:58doesn't exist. So if this is a new

14:59victim and if it doesn't already include

15:02okay this prompt to pull down and

15:04execute a new payload write it put it

15:06there then it displays injection

15:08completed at that date and time.

15:11But now we have a third payload correct

15:14we have another HST or paste bin

15:17presented file and script that we can go

15:20take a look at. So let me go to that

15:23page see if it's still live and it looks

15:25like it is. Oh, it's so obvious. Okay,

15:30let me copy all this and get into our

15:32text editor. Payload 3.js.

15:36Okay. Um, obviously you can see some

15:40sketchy stuff from just these variable

15:42names, right? Couple utilities here. Oh,

15:44a little message printer, debug log, log

15:47error. But then they create a key that

15:50looks like B 64, but that's very likely

15:52if we were to decode it. And I say B 64

15:54encoding as another representation of

15:56data. Uh uh trailing equal sign helps

15:59give away the padding there and this the

16:01random uppercase and lowercase number

16:04smattering does clue us in. But that's

16:07probably just raw byes because they have

16:09an encrypt function here and a decrypt

16:11function that looks like it's doing some

16:13as crypto magic to be able to encrypt

16:16and decrypt data. But then they have a

16:20C2 present alive and well naked outright

16:24and dangling with the IP address and

16:27port number. Obviously a convenience

16:29function send to C2 where it takes in

16:32some data as an argument noting the

16:34endpoint that's provided and encrypts

16:37all that data. Okay, cool. Kind of smart

16:40even if all this you know payload code

16:42isn't obuscated or encrypted. The

16:44command execution though is just what

16:45you would expect. This is the real RAT

16:47or remote access Trojan remote access

16:49toolkit present here because it's using

16:52cmd.exe/

16:54C. So the command prompt and then an

16:56argument to run another command that

16:58follows to do whatever. Copy files,

17:01steal more files. Oh, execute programs,

17:04run more code. Even checks the operating

17:06system, which is kind of neat. I

17:07appreciate all the comments here that

17:08let us know of that. So if it's Windows,

17:11then they'll use that. Otherwise, maybe

17:13Linux, they'll use SH. And you see the

17:15usual Java syntax to be able to start a

17:18process, execute a command, and it's

17:20even got the capability to take

17:22screenshots or convenient operations to

17:25work with the file system, list

17:27directories, delete files, but the

17:30screen streaming is the creepy bit,

17:34right? You're owned. Say you had this

17:36mod. Say you installed this some way

17:38somehow. Uh, if it executed, if it ran,

17:41sure. Now it's got that silly stupid

17:43stalkerware stuff to take pictures of

17:46your screen. And then I'm assuming,

17:49yeah, forward that out, send it via the

17:52C2 with a screen stream endpoint based

17:56off the specific player, that victim,

17:58and anyone could watch you doing

18:01whatever you do on your computer or in

18:04the real world with the webcam capture.

18:06You can see all the syntax here. start

18:08webcam stream. Uh, again, this being

18:11sent to C2 based off of a player unique

18:14identifier. So, there's that. Now, we

18:17get to the info stealer component here.

18:18Even more, the account grabber. Again,

18:21we're seeing this uh just as we had

18:23previously. Multimc, lunar, feather,

18:26prism, etc. All these Minecraft things.

18:28Again, I'm not familiar with, so school

18:30me. Let me know in the comments, please.

18:31But here's the more traditional malware

18:34aspect where we're exfiltrating or

18:35extracting data out of your web

18:37browsers. That's info stealer stuff.

18:40Getting everything out of Firefox,

18:42Chrome, Edge, Opera, Brave, etc. And

18:45then ripping through what would be like

18:47SQL or structured query language,

18:49databases or other entries in there to

18:52get specific login, username and

18:54password, oh your cookies, the sessions

18:56that you already have authenticated to

18:58different websites. And they are not shy

19:01about this. Again, you see in all the

19:03actual content of this file of the

19:05script here, it's outright. It's not

19:07obuscated. They're not trying to hide

19:09this. They literally even call this rat

19:11browser in temporary files that they

19:13create. Sketch Discord token grabber. We

19:16don't need to drag us down that rabbit

19:17hole. You know exactly what that is.

19:19Same thing with Steam. We could go on

19:22and on and on for all of the potential

19:25info steeler capabilities uh with

19:28anything. Uh, Epic Games is in here just

19:30as well. So, look, that's the risk.

19:33That's the threat. Obviously, a mod, a

19:35hack, something ripping out Minecraft

19:38specific utility or information here and

19:40there, even the player location. But

19:42really, the sketchy stuff like watching

19:46your screen, monitoring your webcam,

19:48excfiltrating your passwords,

19:49credentials, or using a key logger to

19:52log everything on your keyboard, what

19:55you type in on your computer. It goes

19:57without saying this is malicious. Neat

20:00to kind of see some of the logic to

20:02register with the C2 or command and

20:04control server or framework, their

20:06external location where they're

20:07harvesting and collecting all this data,

20:10all the information about your computer,

20:12your device, files that it might rip out

20:14and exfiltrate along with those

20:16passwords, credentials, etc., etc.

20:18Couple convenience functions here. Self

20:20update. That's neat. Check shutdown.

20:23Handle different commands. Whoa, that's

20:25neat. kind of clues us into the

20:26functionality of what this could do. But

20:29obviously, it's everything that we just

20:31kind of saw, even as though they are

20:33little commands here that could be typed

20:35in. All based off Minecraft, right?

20:39The main loop though obviously is

20:41processing these commands, trying to be

20:43able to understand how this could all be

20:44used. But wow, this is of course how you

20:48actually invoke or interact with all the

20:51functionality that's defined here.

20:53Calling the functions to get your Steam

20:55login to get your Epic Games information

20:57to get all the Minecraft stuff but

21:00details behind the scenes webcam screen

21:02share key logger etc etc. Again, I just

21:06thought this was a fun one to show you

21:07because it is not obuscated whatsoever

21:09and it's just quite a ride. They are so

21:12explicit in all of the raw info of what

21:16this malware does and can do and even

21:19the comments of like, "Oh, wait for

21:21Minecraft to fully load and then use

21:23that as the remote access Trojan."

21:25Bonkers.

More from John Hammond

All 86 transcripts from John Hammond

Recently added transcripts

Browse the whole transcript library Browse all English transcripts

This transcript was generated from the captions YouTube publishes for this video. Get the transcript of any YouTube video atfreeyoutubetranscribe.com, free, unlimited, no sign-up.