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:
Then you can choose to use Metasploit’s standard msvenom shellcode or choose your own. I just chose the default, msfvenom:
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 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:
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:
A remote session.
Then if we type “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!
~ by D. Dieterle on June 4, 2013.