ARM的GCC下内联汇编的基本使用手册

简要

突然不知道怎么的想踩这个坑。然后rootkit隐藏文件就咕咕咕了。不过还好,这个坑踩完了,接下来就能滚回去填坑了。

汇编不难,蛋疼的是各种稀奇古怪又十分蛋疼的调用约定和很麻烦的调试

x64下,基本寄存器和win32没啥区别,可以更具我之前的一篇汇编基础文章来看。

文章地址:汇编学习笔记

arm下是强制使用fastcall,也就是说前四个参数是强制使用寄存器传参的,所以在调用之前一定要记得push。

同时AT&T的语法是从左到右,而intel的语法是从又到左。

同时,GCC内联汇编的语法和win也不怎么一样,调用怎么说呢,说简单也不简单,说麻烦也不麻烦

详情可以参考基本文档:GCC内联汇编

以及几种常用的寻址方式

(1) 直接寻址

movl ADDRESS, %eax

ADDRESS其实就相当于"地址或偏移"里的地址,反正就是一个数字。

(2)寄存器寻址

其实上面的例子也包括了寄存器寻址,顾名思义%eax就是寄存器寻址,代表对这个寄存器本身的写入或读出。

(3)立即寻址

movl $2, %ebx

我一直觉得立即寻址算不算寻址,反正它的意思就是把2这个数字写入%eax寄存器,$2就是立即寻址,其实就是立即数。

(4)间接寻址

movl (%eax), %ebx

(%eax)就是间接寻址了,意思就是访问eax寄存器里的数值所代表的地址。相当于通用公式里的%基址或偏移量寄存器。

(5)索引寻址(变址寻址)

movl 0xFFFF0000(,%eax,4), %ebx

0xFFFF0000(,%eax,4)就是索引寻址,意思是从0xFFFF0000地址开始,加上%eax * 4作为索引的最终地址。请自行匹配上面的通用公式。

(6)基址寻址

movl 4(%eax), %ebx

4(%eax)就是基址寻址,意思是以eax寄存器里的数值作为基址,加上4得到最终地址。也可以匹配到上面的通用公式,而且这个是很常用的寻址方式

接下来就是代码实现

阅读全文...

Tags: 汇编, arm, linux

linux下的进程/文件隐藏

起因

Linux机器下,获取到哪怕一次shell权限,都是十分致命的。

因为获取之后,在黑黑的命令框下,你基本不怎么容易发现木马/后门的存在。

没有云,没有主动防御。也没有什么所谓的“360”(虽然他有但是对比他在windows下的功能简直就是笑话)

在Linux下,比起二进制文件会需要不同平台而导致软件的无法执行,脚本文件反而可以突破这层障碍,海量的库导致程序编写的更加容易以及等等。

然而缺点也很明显,那就是通俗易懂的代码不只对你,对系统管理员来说也是如此,而且必须需要宿主程序持续的运行以及后台上面的那个丑丑的黑框框。

所以我们得目的也就很简单,隐藏进程and隐藏文件。

这样就能让我们得脚本,为所欲为了。

然后,下面是我收集得一些资料。

  1. linux加载LKM简单例子
  2. LKM可加载内核模块简单实例编写
  3. Linux Rootkit系列一:LKM的基础编写及隐藏
  4. 看我如何通过Linux Rootkit实现文件隐藏
  5. rootkit:在隐藏模块的基础上隐藏进程
  6. 动态连接的诀窍:使用 LD_PRELOAD 去欺骗、注入特性和研究程序
  7. Linux 遭入侵,挖矿进程被隐藏案例分析
  8. Linux-4.4-x86_64 内核配置选项简介

少女研究中。。。

阅读全文...

Tags: none

简单的启动项保护的绕过实现

这次是真的毫无技术含量了,基本就是在水

原理就是读取启动项,然后把启动项指向的文件替换成我们的二进制同时启动原程序

大部分的杀软都没有对这个进行检测。

所以只需要看看文件是否在关键目录下,一旦不在我们就可以下手了。

代码懒得写了,咕了。

不过这个方法并不推荐在“正式场合”(比如APT攻击中的server端)中实现。

实现难度太大,假设是新系统没有启动项or启动项都是系统关键文件or有些文件自带检测。

引出弹窗就得不偿失了。

Tags: none

「折腾小记」LInux下的galgame游玩之势and踩坑日记

前言

因为某些不可告人的原因(其实是舍友在不好意思,需要用笔记本玩galgame。然而笔记本是debian,因为配置烂,太麻烦,巨耗电等等原因的因素,不打算用windows,于是就有这篇文章出来啦

这篇文章很简单,主要核心思路就是wine运行galgame,哟系,这个文章到此结束。诶嘿~当然开玩笑的。

这个文章主要是踩坑日记,可以看到博主这神奇的思路运行的过程,各位看官看看就好,看到一些神奇的操作"哇,这个人怎么会这么菜",“哇,这个操作好窒息”,这些因为博主水平和能力有限的,还望各位嘴下流情qwq。

阅读全文...

Tags: galgame, 踩坑

反弹式shell后门

<font color="red" size="10">未完成版</font>
别问我为啥要用红色加粗字体(我只是想试试在博客上的效果hhhh
闲着无聊弄得这个,并没有什么技术含量
其中远程匿名管道是直接调用cmd.exe的,个人推荐不这么做。
最低限度的话也得把cmd复制到其他路径,否则直接请求cmd进程是个很敏感的动作。

TIM截图20180803223453.jpg

目前已完成

  • 自动释放到%WINDIR%目录下
  • 安装服务自启
  • 提升进程权限
  • 双向匿名管道反弹shell

目前未完成

  • 入口点Main改成WinMain,隐藏第一次运行的命令行窗口
  • 修改反弹连接方式,改为触发形连接,目前这套是过不了启发引擎和主动防御的
  • 添加UAC,自动申请UAC权限/bypassUAC
  • 使用之前的一篇文章进行绕过云查杀

代码在这:my.rar

Tags: none

Kali 下arp劫持并且修改数据包实现

最近不知道干啥又突然开始研究起这玩意了emmm。
同时想在修改数据包下自己操作实现,毕竟修改数据包可以复用,不只用于arp劫持,所以就开了这个坑啦。
研究过时技术inghhhhhh

使用设备:

  1. kali linux
  2. windwos XP SP2

使用工具

  1. ettercap
  2. msf/nbtscan(可选)
  3. wireshark

开始

第一阶段,自然就是利用kali自带的工具进行arp劫持啦,比如arpspoof,ettercap什么的。
这里我们选择用ettercap,毕竟有gui

首先使用NBTSCAN扫描内网内的主机,试图从文件名判断目标。
TIM截图20180619171355.png

不过明显看不出来,之后我们可以使用msf使用smb探测主机信息。不过我已经知道目标地址了,所以这一步就跳过,直接显示目标信息
TIM截图20180619171355.png
之后使用ettercap -G,
输入ifconfig查找网关,之后设置target1,target2。之后选择arp 投毒。
TIM截图20180619171355.png
然后在目标机器上输入arp -a 和ipconfig检测投毒效果
TIM截图20180619171355.png

之后在kali启动wireshare,嗅探监听网卡,并且设置ip源为目标机器
TIM截图20180619171355.png

之后目标机器发送ping测试

TIM截图20180619171355.png

TIM截图20180619173917.png

投毒成功

第二阶段

嗅探本地监听到的数据,一旦有下载请求就自动替换为本地的病毒文件。
发现过于简单,并且网络上相关资源很多,有点想怠惰。。
自己写转发又感觉有点麻烦啊_(:з)∠)_
发现了linux下有个Route功能,可以不用自己写转发。emmm但是如何修改这是个问题,研究ing
[更新]
发现iptables+linux的路由转发可以过滤指定的包并且自动帮忙转发其他的包
这样就能省下许多工作量,然后本地网卡嗅探到这些被过滤的包再由我们进行转发就行了。这时候就能进行修改以及插入的动作而不是简单的读取了。
可以参考这篇:iptables转发技术
我们的目的是需要修改特定的数据包,一般是用作与80协议,所以我们可以直接拦截目的地址为目标主机,端口为80的地址
我们假设目标的IP地址为192.168.1.2,iptables的代码如下:

iptables -A PREROUTING -i eth0 -d 192.168.1.2 -j DROP

这时候,需要我们的PY登场,使用pcap监听互联网帧,并且过滤ip地址为192.168.1.2,接下来就是python的事情啦。咕咕咕中
等待更新。

Tags: none