HackPluto's Blog

HackPluto's Blog

it's better to burn out than to fade away

ARM路由器调试环境配置
ARM路由器调试环境配置虚拟机环境:Ubuntu 18.04 amd64 本文主要以arm架构为主,MIPS架构的搭建同理 安装与使用qemu12345sudo apt-get install qemu sudo apt-get install qemu-user-staticsudo apt-get install qemu-systemsudo apt-get install uml-utilitiessudo apt-get install bridge-utils 安装交叉编译环境buildroot安装依赖环境1sudo apt-get install libncurses5-...
Netgear路由器ZDI-20-712栈溢出漏洞复现
Netgear R7000路由器ZDI-20-712栈溢出漏洞复现前言本文将分析Netgear R7000路由器ZDI-20-712漏洞,分析其产生的漏洞以及随后的漏洞利用开发过程。 固件分析与提取固件分析有关netgear固件header详细说明以及校验算法,可以看我的另一篇博客 固件提取Netgear的官网提供了R7000的所有固件。可以从该网站下载此博客文章中使用的Netgear R7000版本1.0.9.88固件。 解压固件后,我们将使用binwalk从固件映像中提取root文件系统: 尽管路由器可能具有许多值得分析的服务,但Web服务器通常最有可能包含漏洞。在R7000之类的...
MBR病毒分析与逆向
MBR锁机病毒原理分析与逆向分析本文将介绍MBR相关知识以及MBR病毒原理,并且使用静态与动态两种方式分析一个MBR锁机病毒 MBR相关知识MBR主引导记录中(446 byte)包含了硬盘的一系列参数和一段引导程序。引导程序主要是用来在系统硬件自检完后引导具有激活标志的分区上的操作系统。它执行到最后的是一条JMP指令跳到操作系统的引导程序去。这里往往是引导型病毒的注入点,也是各种多系统引导程序的注入点。但是由于引导程序本身完成的功能比较简单,所以我们可以完全地判断该引导程序的合法性(看JMP指令的合法性),因而也易于修复。 操作系统启动流程 开机; BIOS加电自检(POST—...
麒麟(qiling)框架使用
最近在网上看到了一个很有意思的框架–麒麟 Qiling,在这里介绍一个学习这个框架的心得 网上现有教程: Github 主页 麒麟框架与其他开源模拟器和工具的比较 官方文档 用麒麟框架深入分析实模式二进制文件 使用Qiling IDA插件解密Mirai病毒数据
自己开发编译器(1)
为了对计算机底层有一个更充分的认识,以及对编译原理有更深入对理解,我决定自己动手写一个编译器。在这里记录一下开发的过程和体会。 大致想法: 基于C语言编写 可以实现对自身的编译,也就是可以compile itself 针对真实的硬件平台可以工作,目前想法是针对X86架构和32位ARM 编译器工作的基础编译器的工作是将一种语言(通常是高级语言)的输入转换为不同的输出语言(通常是比输入低的语言)。主要步骤是: 做词法分析 以识别词法要素。 解析输入,即识别输入的语法和结构元素,并确保它们符合语言的语法。 做输入的语义分析,即理解输入的意思。 将输入的含义翻译成另一种语言。在这里,我...
蓝桥杯刷题记录
马上就是蓝桥杯省赛了,冲一波,好好准备一下,记录一下刷的蓝桥杯真题 蓝桥练习系统整商问题水题123456789101112int a,b;int main(){ printf("Please enter the dividend:\n"); cin>>a; printf("Please enter the divisor:\n"); cin>>b; while(b==0){ printf("Error: divisor can not be zero! Please enter a new divis...
使用free-libc,任意切换程序libc版本
free-libcfree-libc是致力于在一个ubuntu环境下实现做各个ubuntu版本环境题目的项目。安装完成后,你可以使用clibc(change libc)指令指定你的程序加载什么样版本的libc,使程序在你的ubuntu环境下以高版本或者低版本的libc库去运行。在做一些ctf pwn的题目时就会很方便,做题的时候就不需要频繁切换虚拟机。 安装1231,git clone https://github.com/dsyzy/free-libc.git2,cd free-libc3,sudo sh ./install gfree-libcgfree-libc是基于free-li...
使用firmware-mod-kit修改路由器固件
firmware-mod-kit 使用教程firmware-mod-kit工具包可用于提取固件中的文件系统,然后进行进行修改,并重新打包成固件。我们可以使用它对固件做定制化的修改,但是也有可能被恶意地用作固件中添加后门等,所以在下载固件时应到官方网站下载,并检查固件是否被修改过。 官方文档 环境配置1sudo apt-get install git build-essential zlib1g-dev liblzma-dev python-magic clone代码1git clone https://github.com/rampageX/firmware-mod-kit.git 编译...
netgear固件分析与后门植入
netgear固件格式分析及重新打包使用binwalk提取固件1binwalk -e R7000-V1.0.9.88_10.2.88.chk 固件由netgear header(0x3A字节) +TRX header(0x1c字节)+linux kernel+squashfs文件系统构成。 netgear header前0x3A字节是netgear自带的header,123456Offset 0 1 2 3 4 5 6 7 8 9 A B C D E F00000000 2A 23 24 5E 00 00 00 3A 01 01 00 03...
python多线程端口扫描器
python多线程端口扫描器Nmap是常用的端口扫描和主机探测工具,但是Nmap在扫描时会去扫描很多和我们最终目的不相关的信息,以及Nmap虽然官方说高版本支持多线程但是具体和操作系统具体匹配效果不一定好,所以我决定自己用python写一个轻量级的主机和端口扫描器。 主机探测我选用IPv4 B网段作为实验网段,IP为:128.16.0.0/20对于主机探测常用的方式是ICMP数据包探测,对于python来说可以scapy库自己构造ICMP包,但是我在这里使用python-nmap,可以直接发送ICMP探测包,同时使用python多线程可以提高探测速度。 gevent并发编程目前有四种方式...
avatar
HackPluto
witness me
FRIENDS
friendA friendB