Analysing a Firefox Malware browserassist.dll - FLARE-On 2018

Поделиться
HTML-код
  • Опубликовано: 4 ноя 2024

Комментарии • 365

  • @liteoner
    @liteoner 5 лет назад +1107

    5:48 when a Mac/Linux user first encounters modern IE

    • @PwnFunction
      @PwnFunction 5 лет назад +21

      LOL

    • @firefish111
      @firefish111 5 лет назад +22

      I send a smile, not a frown.

    • @liteoner
      @liteoner 5 лет назад +8

      @@Anti-i25 Microsoft does this in many products, including Office

    • @TimLF
      @TimLF 5 лет назад +5

      Firefox had the smile feature for a long time...

    • @k1ngjulien_
      @k1ngjulien_ 5 лет назад +44

      windows users too, noone opens IE on purpose :D

  • @aumpalosa
    @aumpalosa 5 лет назад +269

    Man, I don't know, but something in the way you explain things, the way you organize your thoughts, or maybe the way you confidently talk, makes your videos fun to watch.
    Not to mention the actual great information that you learn from them.
    Keep it up. You are really up for something great.

    • @CarlvanEijk
      @CarlvanEijk 3 года назад +1

      man, I was thinking exactly the same thing!!

  • @bumbixp
    @bumbixp 5 лет назад +61

    The funniest thing about that IE smiley is the keyboard shortcut for sending a frowny face.

  • @Hans5958
    @Hans5958 5 лет назад +608

    Linux user being paranoid on Internet Explorer

    • @kirschitz64
      @kirschitz64 3 года назад +9

      stop WINEing

    • @zombie_pigdragon
      @zombie_pigdragon 3 года назад +8

      @Alfie Yes, though it's just a program, not an apt package (apt does package it though).

    • @gersomwastaken
      @gersomwastaken 3 года назад

      :eyes:

  • @rootabeta9015
    @rootabeta9015 5 лет назад +132

    5:51
    LiveOverflow: "Is this a virus?"

  • @cy8berpunk831
    @cy8berpunk831 5 лет назад +103

    "I decided to approach it again with logic" 😂👍

  • @chylex
    @chylex 5 лет назад +261

    Maybe it was an NPAPI plugin, those stopped being supported in FF 52.

    • @oisins.6066
      @oisins.6066 5 лет назад +26

      All new addons have to use the WebExtensionsApi now, which is quite limiting in some ways, so they probably wrote the addon on the old api

    • @samfoxman7046
      @samfoxman7046 5 лет назад +16

      For some reason, the malware prevents itself from running if firefox is newer than version 55. Probably, the developers wanted to make the challenge more difficult.

  • @richardp7412
    @richardp7412 5 лет назад +26

    It would be amazing if you started a 0 to hero series explaining the basics of reverse engineering malware, as someone who also enjoys malware I find your videos fascinating but I would always love to learn more from you.

    • @TB-tv2zf
      @TB-tv2zf 5 лет назад

      Vouch

    • @martysh1226
      @martysh1226 2 года назад +2

      a bit late, but check out his binary exploitation videos. this should get you started.

  • @zecekobold2140
    @zecekobold2140 5 лет назад +11

    Well... This is neat. Not entirely sure why youtube decided this is my jam, but I do appreciate a good explanation and seeing someone put a lot of effort towards something.

  • @zanidd
    @zanidd 5 лет назад +26

    wow, didn't know about flare vm! Might get into analysing malware soon as well! thanks for the great video, as always!

  • @lonelycount1
    @lonelycount1 5 лет назад +10

    I dont understand shit here but i feel a lot smarter now, thanks @LiveOverflow.

  • @adfadff6361
    @adfadff6361 5 лет назад +7

    There is a function to get version of ur firefox in that .dll file. Btw, ur way to solve this challenge is awesomeeeee =]] i never imagine u can solve this challenge in ur way =]]]] amazing video

  • @justfaysou738
    @justfaysou738 5 лет назад +72

    This is very complex but interesting, ty for your contents

    • @RobinObinray
      @RobinObinray 5 лет назад +1

      Ty😠
      LEECHERS!!!!!

    • @asafcohen3562
      @asafcohen3562 5 лет назад +5

      This not that complicated look at his other stuff

  • @kiritsu9582
    @kiritsu9582 3 года назад

    i have little to no idea what youre talking about but im loving every second of it

  • @anishagrawal7068
    @anishagrawal7068 5 лет назад +21

    ur videos are amazingggg!!Thanks for bringing such quality content

  • @alfoncejean8826
    @alfoncejean8826 5 лет назад +40

    6:00
    *open IE
    *see the smile thing
    *OK this actually exist!

  • @mal-nr3ym
    @mal-nr3ym 5 лет назад +6

    firefox changed the way they deal with addons in quantum, including dropping support for (i believe) dll/native code based plugins (java, flash, etc.)

  • @strategyoracle
    @strategyoracle 5 лет назад +143

    What was the mechanism by which the browserassist.dll got loaded into the Firefox process? Did I miss something?

    • @LiveOverflow
      @LiveOverflow  5 лет назад +103

      I have no clue 🤷‍♀️

    • @strategyoracle
      @strategyoracle 5 лет назад +159

      @@LiveOverflow SPOILER ALERT:
      blog.attify.com/flare-on-5-writeup-part2/
      "This method adds browserassist.dll to the AppInit_DLLs registry key. The AppInit_DLLs are a set of Dynamic Linked Libraries (DLL) that are loaded upon startup into the address space of every executable that links with user32.dll. Essentially, this means everytime a GUI application is run, browserassist.dll"

    • @alexpaww
      @alexpaww 5 лет назад +20

      It's like LD_PRELOAD on Linux, just using the registry :)

    • @alexpaww
      @alexpaww 5 лет назад +1

      @@tripplefives1402 I was saying that it's the same principle. It both instructs the dynamic linker to load certain modules, no matter the scope

    • @yellowcrescent
      @yellowcrescent 5 лет назад +4

      @@tripplefives1402 There is a similar feature on Linux that works globally-- /etc/ld.so.preload -- I've seen Linux malware utilize this to hide themselves from process and file listings.

  • @Zooiest
    @Zooiest 5 лет назад +5

    You can try shutdown -a when you boot the VM. Also Ctrl + Alt + Del when shutting down and opening task manager from there actually interrupts the shutdown... I found the last one myself testing the very combination on shutdown

  • @IAMFeelings
    @IAMFeelings 5 лет назад +3

    I don't understand most of the things you say but I'm sitting here enjoying your videos hoping one day I do understand.

  • @RicardoUngureanu
    @RicardoUngureanu 5 лет назад +3

    The installer drops the dll and sets a registry key. My educated guess is that newer Firefox versions does not take that registry key into consideration when loading dlls, whereas the older version does.
    I solved the entire challenge statically, it was interesting to bypass a few checks and analyze all the dll requests.
    If I recall correctly, the dll has some checks then it does 2-3 HTTP requests, retrieves some encrypted data and after a few decryption stages and data manipulation it is possible to extract the javascript inserted into the browser alongside the JSON you observed in the stack trace.
    At this point, I manually injected the javascript code into my browser (after deobfuscation), ran the commands and got the flag. :)

    • @ukaszMarianszki
      @ukaszMarianszki 5 лет назад

      The registry key is used by all windows software. (iirc user32.dll injects these dlls from the registry) the dll simply checks the firefox version

    • @shans2408
      @shans2408 5 лет назад

      how can you people check a whole pe file statically? :/ I give up if it is longer than two screen-fulls. teach me, sensei!!

  • @amrojjeh
    @amrojjeh 5 лет назад +13

    Microsoft does the smiley thing with ALL of their windows products (And some open source ones too) as far as I am aware.

    • @citroenboter
      @citroenboter 5 лет назад +1

      Ye I think I saw it in Excel as well. It kind of tickled my virey-sense but apparently it belongs there.

  • @itscarve
    @itscarve 5 лет назад +7

    I'm sure you're busy.. but... You should totally still make your handwriting into a font ❤

  • @mistsu1171
    @mistsu1171 5 лет назад +1

    I watch this video with no knowledge of hacking, but I really feel entertained and educated by your content ;'3

  • @Mindflayer86
    @Mindflayer86 5 лет назад +3

    6:45 Hmm. First thing which came to my mind after I heared that the challenge surrounds around a Firefox maleware was: "Better use an older firefox version for the analysis. They might have patched something"

  • @abgehn7869
    @abgehn7869 4 года назад +1

    This video gave me the missing clue to solve my first CTF (a different one of course) on my own! Thanks a lot! :D

  • @AmaroqStarwind
    @AmaroqStarwind 5 лет назад +6

    I like puzzles. I want to obfuscate a whole bunch of code that, when deobfuscated, literally just congratulations you for solving the puzzle.

  • @TymoteuszCzech
    @TymoteuszCzech 5 лет назад +62

    12:37
    laughed my head off :D

    • @user-vn7ce5ig1z
      @user-vn7ce5ig1z 5 лет назад +5

      Sadly, he's right. Adults ain't got time for solving problems and enjoying the challenge of it; we've got stuff to get done!

  • @longcat666
    @longcat666 5 лет назад +1

    I love this chall, because like in real case technique at banking malware, it will injection with external dll,
    which means it hooking the PR_Write function and this only work at old firefox version, CMIIW

  • @vergil9397
    @vergil9397 5 лет назад +1

    Wow your analysis skill is so good bro

  • @kbhasi
    @kbhasi 5 лет назад +1

    4:45 Oh wow, the old Office 2003 UI kit thing.
    -5:57-- That was there since Windows 8, and I believe Internet Explorer is still in Windows 10 only for backward compatibility with older applications that use the Trident engine (which IE uses) in order to render Web content.- 6:15

  • @mimizdani8194
    @mimizdani8194 5 лет назад

    i am addicted to watching your videos

  • @MasterNoxob
    @MasterNoxob 5 лет назад +1

    your content is great, looking forward to see the next one!

  • @m42d
    @m42d 5 лет назад

    I got such a nostalgic feeling when you opened PEid.

  • @JonJon2040
    @JonJon2040 5 лет назад +4

    I think that if you find what is the vulnerability by analyzing the dll, you can search for something like "dll injection Firefox", etc. And you'll see approximately in what version it was fixed.

  • @danielkrajnik3817
    @danielkrajnik3817 3 года назад +1

    this is such a great content!

  • @KidJV
    @KidJV 5 лет назад

    you deserve more subscribers. subscribed!

  • @FamilienSoelberg
    @FamilienSoelberg 5 лет назад +1

    Flare-on 2018 was so hard. The hardest ever :-0. Took me a month to complete.

  • @_crimson1624
    @_crimson1624 4 года назад +1

    wow! what valuable material 👍👍👍👍

  • @syedumararfeen8146
    @syedumararfeen8146 5 лет назад

    I'm a simple man. I get notification of LiveOverFlow uploading a video. I watch.

  • @redd_cat
    @redd_cat 5 лет назад +1

    A reminder that IE is not broken per se. It's designed like that.

  • @Broughman9
    @Broughman9 5 лет назад

    Really enjoy your videos despite not really getting everything. Guess I need to start learning c#, .net etc. I follow along but I would really get stuck if it was me doing the task.

  • @Retrovergo
    @Retrovergo 5 лет назад

    Great Job man

  • @jazminakarainy
    @jazminakarainy 5 лет назад

    idk w a single thing in this video but they are fun to watch

  • @Masterrunescapeer
    @Masterrunescapeer 5 лет назад

    @LiveOverflow doesn't work in newer FF as web extensions don't allow JS injection (from FF Quantom on-wards). Was actually one of the big motivations of why we moved over.
    Too bad FF Quantum messed up multiple tab handler, it is annoying. We're finally getting it backed in.

  • @HugeDisgrace
    @HugeDisgrace 5 лет назад

    Holy shit that was awesome. There is so much out there that i don't know!

  • @kisame_5331
    @kisame_5331 5 лет назад

    I love your work!

  • @eventhorizon8014
    @eventhorizon8014 4 года назад +1

    10:00 'su' doesnt mean switch user, it means super user (root). The Linux command which switches to the root user. That's why sudo runs a command as root (super user do).

  • @mugundhanbalaji
    @mugundhanbalaji 5 лет назад

    @LiveOverflow you might already know this, to solve complicated key comparisons/generation, we can use Z3

    • @LiveOverflow
      @LiveOverflow  5 лет назад +3

      modelling this in z3 would have taken the at elast the sameamount or longer ;)
      Also: ruclips.net/video/TpdDq56KH1I/видео.html

    • @mugundhanbalaji
      @mugundhanbalaji 5 лет назад

      @@LiveOverflow ok, i was practicing z3 this week, totally forgot about that video, thanks again

  • @xseman
    @xseman 2 года назад

    So if you update your Firefox because of some vulnerability, the old injected code may work on the latest version?
    It sounds like the upgrade should clear the cache every time you upgrade.

  • @stephanodennielpineda6414
    @stephanodennielpineda6414 5 лет назад

    Nice content! Kudos

  • @Mxmnt
    @Mxmnt 5 лет назад

    bit late, but laughed that it uses ConfuserEx to obfuscate the application. Easy to tell by the "ConfusedByAttribute" as well as the decrypting, decompressing method. Also, dnspy is a lot better for reversing .NET applications. It has a clean GUI, stable, gets updated a bit, a IL Viewer; which can be handy in removing anti-debugging calls, such as CheckRemoteDebuggerPresentEx, and more functionality.

  • @h3xad3cimaldev61
    @h3xad3cimaldev61 4 года назад +1

    5:48 me laughing my ass off knowing that I have been using Windows for years

  • @TheoParis
    @TheoParis 5 лет назад

    This was really interesting!

  • @blueelvis2698
    @blueelvis2698 5 лет назад +1

    As I remember the dll hooking some function to inject the javascript. In newer version of firefox those functions don't exist so it failed :)

  • @cocosloan3748
    @cocosloan3748 5 лет назад

    Congrats ! You are one smart puppy :)

  • @Kong_plays
    @Kong_plays 5 лет назад +14

    Dont really understand, but it was interesting :)

  • @elihillman8758
    @elihillman8758 4 года назад +1

    Me, a Firefox user: *I'm in danger*

  • @MoBeigi
    @MoBeigi 5 лет назад

    Off the top of my head, maybe using the latest Firefox version matching any datestamp found inside the binaries/strings?

  • @overratedpancake9034
    @overratedpancake9034 5 лет назад

    That was awesome! I'd love to be able to de this some day, is there a place where I can start learning the basics?

  • @therealb888
    @therealb888 5 лет назад

    Damn that’s such a complex challenge! Feeling dumb :( But at least learnt something. Gong to need a few more attempts to learn this well...

  • @ErikUden
    @ErikUden 5 лет назад +1

    I could imagine someone just had the old Firefox because he didn't use a virtual machine as advised.

  • @ducphanduy534
    @ducphanduy534 5 лет назад

    I don't recall the exact details of the code but the DLL does do version check of Firefox. If I recall correctly, it's any version before or equals to 40 that works. After the check, the DLL downloads the encrypted javascript from a pastebin and decrypts it.

    • @cone16v
      @cone16v 5 лет назад

      1001000 1101111 1110100 1100101 1101100 111111 100000 1010100 1110010 1101001 1110110 1100001 1100111 1101111

  • @spruhspruhknallbummmann9724
    @spruhspruhknallbummmann9724 5 лет назад

    Hey, ich studiere auch an der TU und wollte fragen ob du bei der IT-Sicherheits AG? Jeden Dienstag im TEL-Gebäude. Ich glaube die AG heißt Enoflag. Wäre richtig cool dich zu sehen :D

  • @OthmanAlikhan
    @OthmanAlikhan 5 лет назад

    Thanks for the video =)

  • @Mochi-kane
    @Mochi-kane 5 лет назад

    Very Thanks !!

  • @RogerBarraud
    @RogerBarraud 5 лет назад

    Impressive :-)
    Thanks!

  • @shersanginov1792
    @shersanginov1792 5 лет назад +7

    What are some other websites you guys recommend for challenges like flare-on.com?

  • @NOCTUMSEMPRA
    @NOCTUMSEMPRA 4 года назад

    JAJJAAJAJAJAJ 11:21 "Awghh... F!" so funny. I'm just discovering your videos! All of these things you explain are amazing! Even to devs like with some years on the back! :D Super pedagogical, fun, talking pretty advanced shit (I come from the XSS video series you made, so rad) looks like a pretty deserved subscribe, that material must be assimilated by my mind.
    Greetings from Argentina!

  • @kamilgowacki568
    @kamilgowacki568 5 лет назад +1

    5:16
    >this entry point
    It must be encrypted

  • @Android480
    @Android480 5 лет назад

    This stuff looks really fun, but totally out of my skill level at the moment. Do you have / know of any places to find beginner reverse engineering challenges?

    • @Kenny-xz4gw
      @Kenny-xz4gw 5 лет назад

      vulnhub.com hackthebox.eu are good places to start. Helps to know basic linux commands and a little kali knowledge.

  • @derrickberg2825
    @derrickberg2825 5 лет назад +2

    Do you have a Discord channel? You should definitely make one!

  • @somedudeonyoutubefrfr
    @somedudeonyoutubefrfr 5 лет назад

    Hallöle ^^
    Ich interessiere mich schon seit einigen Jahren für das Thema...
    Nun, da ich jetzt weiß, dass man "einfach" an solchen CTF's teilnehmen kann:
    Könntest du mir "Beginner"-CTF's vorschlagen, um in das Thema noch besser rein zu kommen?
    Mit freundlichen Grüßen,
    R00T

  • @Sollace
    @Sollace 2 года назад

    My guess is they knew you needed to use an older version of Firefox because the malware is installed as an extension and in one of their updates Mozilla removed support for most of the old extension apis.

  • @Menaceirl
    @Menaceirl 5 лет назад +1

    Would you please make a video (or post) at least listing all the software you use? (and preferably what you find them most useful for)

  • @dualappsgamer
    @dualappsgamer 5 лет назад +2

    When the CTF was created the older version was the newest actually so they didn't tell about older versions.

    • @IceHax
      @IceHax 3 года назад +1

      Yeah but if you open browserassist.dll in a disassembler you will find it checks if Firefox version is higher than 55, if it is it just jumps to the end

  • @UrbanaticLemonade
    @UrbanaticLemonade 5 лет назад

    nothing understood, but super cool video

  • @pavelmisik4303
    @pavelmisik4303 5 лет назад

    Nice video....I love your videos...

  • @mircoheitmann
    @mircoheitmann 5 лет назад +5

    what would we do if the web shell didn't have sl

  • @centdemeern1
    @centdemeern1 5 лет назад

    A trainer wants to battle:
    You were challenged by elder Internet Explorer

  • @michaelscofield2652
    @michaelscofield2652 5 лет назад +4

    So if you want to still use this exploit on Firefox just write to the cache.

    • @MrHamsterbacke756
      @MrHamsterbacke756 5 лет назад +3

      Good idea. I wonder it has any mechanism to prevent this. Because if you could just write your js into the cache, no exploit is needed.

  • @LKD70
    @LKD70 5 лет назад

    The smiley face got me LOL

  • @Sollace
    @Sollace 2 года назад

    Weird. I've never seen someone exploring the start menu links with the file explorer before. People normally just use the start menu to look at start menu entries.

  • @chrisw1462
    @chrisw1462 5 лет назад

    You say Character correctly, so why the blank do you use a soft 'ch' for functions NAMED AFTER THAT WORD????

  • @melihcelik9797
    @melihcelik9797 2 года назад

    Can someone explain why the dll was loaded to Firefox's memory map? I mean surely firefox did not request that dll and that dll wasn't even in the firefox folder. How does it get loaded with firefox?

  • @dracenmarx
    @dracenmarx 2 года назад

    Why does Firefox load a DLL that is stored in Internet Explorer's folder?

  • @jamesmadlangtuta3156
    @jamesmadlangtuta3156 5 лет назад

    Can you include all the softwares and tools you used there in the vid description? Thanks a lot 😁

  • @spooles
    @spooles 4 года назад

    The DLL loading behaviour if due to Firefox dropping support for native NPAPI (Netscape) style plugins. You cannot load them anymore since Firefox 52 I think. Browser extensions nowadays are written in JS.

    • @LiEnby
      @LiEnby 3 года назад

      but there is still Adobe Flash capability back then .. so how does that work?

    • @LiEnby
      @LiEnby 3 года назад

      but there is still Adobe Flash capability back then .. so how does that work?

  • @asailijhijr
    @asailijhijr 3 года назад

    Does the requirement for the older version relate to Firefox x64 vs x86 ?

  • @xTunio
    @xTunio 5 лет назад

    15:06 When you have watched entire Taran Van Hemert's BIG TUTORIAL

    • @DarkGT
      @DarkGT 5 лет назад

      He is missing the multiple layers of effects and transitions and his screen looks much cleaner.

  • @TheKanam99
    @TheKanam99 5 лет назад

    About using old version of firefox, just ask yourself a question - would they publish a malicous code that would be harmfull to current version of highly used browser? I think they are not that evil.

    • @LiEnby
      @LiEnby 3 года назад

      well the malware in this case seems pretty harmless- it doesnt steal your bank or anything..

  • @RogerBarraud
    @RogerBarraud 5 лет назад

    .NET isn't necessarily C#... it could be Managed C++, for instance.

  • @Ivo--
    @Ivo-- 5 лет назад +5

    Hi, I recommend the OALabs youtube channel for some great video tutorials on RE!

  • @Calumg89
    @Calumg89 5 лет назад

    Could you have just set the model root to 1 and bypassed the need for reversing the password, or did the dll inject the extra stuff after the password was right?

  • @user-qe3fh9lw5y
    @user-qe3fh9lw5y 4 года назад

    Any good suggestions of a good /r/ for this community?

  • @illford
    @illford 4 года назад

    Dual booting windows and linnux is fun

  • @terragame5836
    @terragame5836 5 лет назад

    Well, I don't know how they found out that it works on old firefoxes, but I just casually use firefox... Around 38, I'm not sure; so that thing would have worked for me, and then, if I saw someone struggling to make it work, I would hint them. I assume this is a possible scenario

  • @270jonp
    @270jonp 5 лет назад

    I cant speak for the .exe as i skipped that during my run. However there was no easy way to figure out the version needed for the .dll other than realizing that it must have been patched. Personally I found twitter to be fairly useful and not really giving away anything.

  • @evertchin
    @evertchin 5 лет назад

    which also beg an important question, should browser update also invalidate the cache

    • @cone16v
      @cone16v 5 лет назад

      1001000 1101111 1110100 1100101 1101100 111111 100000 1010100 1110010 1101001 1110110 1100001 1100111 1101111

  • @xzm996
    @xzm996 3 года назад +1

    Wow! Are you a hacker? 😳