Creating Remote Shells that Bypass Anti-Virus with “Veil”

Many people think that if they are running an Anti-Virus and a firewall, that they are generally safe from hacker attacks. But the truth is far from that. Meet “Veil” a remote shell payload generator that can bypass most current Anti-Virus programs.

Many Anti-Virus programs work by pattern or signature matching. If a program looks like malware that it has been programed to look for it catches it. If the malicious file has a signature that AV has not seen before, many will dutifully say that the file is clean and not a threat.

If you can change or mask the signature of malware, or a remote shell in this case, then most likely AV will allow it to run and the attacker gets a remote connection to the system.

Veil, a new payload generator created by security expert and Blackhat USA class instructor Chris Truncer, does just that. It takes a standard Metasploit payload and through a menu driven program allows you to create 21 different payloads that most likely will bypass anti-virus.

But how well does it work?

Following the directions on Chris’s page, I downloaded and installed Veil on my Kali (Backtrack) system.

Simply pick what payload you want:

Veil Payload Generator Menu

Then you can choose to use Metasploit’s standard msvenom shellcode or choose your own. I just chose the default, msfvenom:

Veil Options

Next choose the type of payload, I just chose reverse TCP. Then enter the IP address of the Kali system and the port you want to use:

Veil setting remote address

Veil will then create the payload and present you with two options. You can feed the payload into Pyinstaller or Py2Exe to create a Windows executable file.

This is where I got a bit stuck. For some reason Pyinstaller did not want to co-operate on my Kali machine. Fussed with it for a while, then just followed Chris’s instructions for creating the .exe file on a Windows machine and it worked without a hitch.

Basically install Python, Py2exe, and PyCrypto on Windows (all in the same directory). Then just copy over your created payload.py file, the RunMe.bat file and setup.py (found in your Kali Veil directory), into your Windows Python Directory.

Run the Bat file and sit back and watch the magic. When it is done you will have a payload.exe file. Any Windows system that runs it will try to connect out to the Kali system.

Finally start a Metasploit payload handler on your Kali system so the remote shell can connect to you. In Kali at a terminal prompt, type “msfconsole” and then:

Veil Running

Make sure you use the same IP address as LHOST and port as LPORT that you used in creating the payload.

Now, when a Windows system runs the payload.exe file we get this:

Veil Session

A remote session.

Then if we type “shell”:

Veil Shell

This was a fully updated Windows 7 system with a very good Anti-Virus installed and updated with an intrusion detection system running. It didn’t see a thing.

This should prove that you can not trust in your Firewall and AV alone to protect you from online threats. Unfortunately many times your network security depends on your users and what they allow to run. Instruct your users to never run any programs or open any files that they get in an unsolicited e-mail.

Blocking certain file types from entering or leaving your network is also a good idea.

And finally, using a Network Security Monitoring system will help track down what happened and what was compromised if the worst does happen.

For more information on Veil, and other pentesting topics, check out Chris’s training session at Blackhat USA 2013!

8 thoughts on “Creating Remote Shells that Bypass Anti-Virus with “Veil””

  1. Hi Daniel,
    which vulnerability did you exploit? We develop a non-signature based NIDS and would love to take a shot at detecting this exploitation! 🙂

    If you target the SMB/CIFS or RPC network services then we could set up a test…

    Let me know! 😀

    best,
    Damiano

    1. Hi Damiano,

      Didn’t really cover the exploit delivery side. Veil creates an .EXE shell, so you would have to trick a user into running it, probably through social engineering tactics.

      I would like to learn more about your NIDS though, do you have any info you could send me?

      Best,

      Dan
      cyberarms@live.com

  2. Hi !
    Great post i did the same tests and ‘majors’ AV didn’t see a thing..

    For the part: “This is where I got a bit stuck. For some reason Pyinstaller did not want to co-operate on my Kali machine”.
    ==>i found a “setup.sh” script in the install directory of Veil and by executing it no problem for me.

    Bye

    1. Hi Satanas!

      Thank you, yeah, I tried the setup.sh file too. Not sure what the problem is, everything seemed to work fine on my Kali except the Pyinstaller part. One of these days I will try it with a fresh Kali install, and see if that does the trick.

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.