thinkycx.me
RSS Feed

Articles

  • 浅谈甲方基础安全建设 - 办公安全 常见风险与建设思路

  • arp 欺骗实践 in 2024

    背景

    基于各种原因,需要在2024年分析一下古老的arp欺骗,这个教科书级的攻击方式在2024年依然可以利用成功。

    在此分享arp欺骗利用的原理、利用、检测、防御。

  • jndi ldaps 利用复现与检测

    背景

    早在2021年12月份的时候就想研究一下ldaps的利用,各种原因导致delay了。众所周知,putting off an easy thing makes it hard and putting off a hard thing makes it never。看到最近p牛发了,本着完成 > 完美的原则复现一下,没有什么新的东西,但对于绕过NIDS等纯流量检测的安全产品来说,很有意义。

  • 浅谈甲方基础安全建设 - 如何构建可度量的入侵检测(风险感知)体系

    0x01 背景

    过往工作中有时会出现这样的困惑,甲方的入侵检测做了很多年,当传统的安全产品建设看似“成熟”之后,还是各种原因导致没有检出的case,那么问题到底出在哪儿?应该怎么建设?恰巧上周五大家也在讨论这件事,简单谈谈我的看法,权当一家之言,希望对你有帮助。

  • 浅谈Java RMI 攻击面和利用

    背景

    4年前学习过但是工作中几乎用不到已经忘了,基于最近的契机简单重新一下RMI相关的知识点。
    目标:了解攻击面、利用方法、了解原理&利用链的构造、检测方法

  • activemq CVE-2023-46604 简要分析

    背景

    漏洞利用简介:activemq-client中针对openwire协议的处理存在问题,攻击者可以构造一个恶意对象(预期只接受throwable对象)发给broker触发对象反序列化(unmarshal)的过程,实现调用任意类的string参数构造方法,结合spring context 中的ClassPathXmlApplicationContext/FileSystemXmlApplicationContext 完成远程代码执行。参考漏洞官方简介:https://activemq.apache.org/news/cve-2023-46604

    漏洞比较老,基于最近的契机简单分析一下,水一篇文章,没有什么新的东西。

  • 从0到1 搭建xxl-job 环境

    背景

    时间:2024年4月9日 下午7:09:23

    最近收到一个需求需要搭建一下xxl-job环境,如果能docker一键自动化解决就ok了,但需要从头安装,记录一下从源码安装的过程,后续需要研究漏洞时再重新安装一遍,先记录一下给后人留下一点参考。

    注意:官方文档中有的部分在此略过,请主要参考官方文档,遇到问题可以来本文章搜索答案。

  • 《Google 安全白皮书:构建安全、可靠的系统 》读书笔记

    背景 & 目标

    看一线行业前辈经验(沉淀来的东西),比一个人探索的效率要高很多。尤其周围的朋友已经看完&用起来了,因此这本书需要反复精读。

  • 浅谈甲方基础安全建设- 外采WAF落地相关实践经验

    背景

    在大多数情况下,“安全”是一个形容词,安全对企业来说最大的价值是保驾护航。
    保驾护航这一目标具体到执行方法层面,则是风险管理。

    假设给一家企业的安全打分,满分是100分,那么他的安全分 结合外部/内部环境变化也会不断浮动。
    在上述背景下,风险管理细化的要怎么做?拆开看:风险 + 管理。知道有什么风险,通过一系列建设/活动,降低该风险的影响。
    如何评价风险管理做的好不好? 理想一点量化看,安全分 = 100分 - 风险1影响 - 风险2影响 - 风险N影响。

    对于大部分公司来说,由于业务形态、IT基础设施大同小异,面临的风险也会近似。
    因此在企业安全建设过程中,可复用的风险解决方案、以及落地经验我认为是较为宝贵的,值得和同行交流,查漏补缺。

  • 如何在macOS上通过Fusion安装 Catalina虚拟机

    背景

    最早在fusion上用高版本macOS iso镜像安装虚拟机失败了,本文主要参考链接1,记录在在(macOS10.15)上通过VMware Fusion 安装Catalina虚拟机的方法。

  • case解决:blog gitalk 功能恢复

    背景

    周末修复了一下 gitalk评论失败的问题,通过配置nginx代理解决github 接口跨域访问的问题。
    技术上没什么好说的,这篇blog本身更大的意义是仅为了后续类似的问题举一反三,remind自己第一时间解决。

  • 携程安全沙龙分享 - 简记

    背景

    感谢携程沙龙,促进了甲乙方的交流,让知识流动起来,让行业发展更好。

    本水文主要写于会后(现场不建议拍照),主要记录会议内容+少量个人思考,希望对大家有帮助,欢迎行业内的同学一起交流。

  • mweb:合并两个文档库的方法

    本文简单介绍一下 合并两个mweb文档库的方法。

  • 一种轻松扩展ELF可执行内存的方法

    在ELF文件中寻找可执行空间的办法很多,例如:patch无用的代码段、利用.eh_frame、修改PHDR增加一个新的Segment等等。本文介绍一种简单又通用思路:扩展原有的Segment。(注:本方法对与32位程序不适用)

    关键词:ELF、可执行空间扩展。

  • ELFGuard 实现原理介绍

    简介

    ELFGuard是一个针对ELF文件的shellcode执行框架,可以在ELF二进制文件中插入你想要的shellcode,例如:SECCOMP来限制系统调用,reverseshell来留后门。

  • 转载《你尽力了吗》 —— scz

  • Exploring the New World : Remote Exploitation of SQLite and Curl

    简述

    这是Tencent Blade Team在Black Hat USA 2019上的其中一个议题,讲述了他们发现的Sqlite FTS3中的3个漏洞,并利用其中一个结合CAST协议攻破Google Home(Chrome浏览器sandbox内RCE)。也介绍了他们在curl NTLM认证协议中发现的两个整数溢出漏洞,并在实际环境中做了演示(git、php等)。

    客户端的漏洞触发起来没有服务端那么容易,但是利用和挖掘的思路还是值得学习的。
    本文做一个简单的记录,更多的细节请参考PPT和Paper,如有错误还请评论区指正。

  • An awesome reverse shell analysis

    偶然看到了一个看上去简单却又没那么简单的shellcode,但是却隐藏了很多有意思的事情,不妨一起来看一下。

  • Python 简单实现 获取 malicious ip

    最近有一个很简单的需求,今天趁着下班赶紧写一下。

    需求描述如下:log日志中存在ip,url,time三个元素,需要获取 x 秒内访问不同URL超过 max次的恶意ip。

  • IDA 高级功能使用 之 制作signature —— 识别库函数

    本文详细介绍一下IDA中 识别库函数代码的方法。

    如果程序是静态编译的并且去除了符号表,那么使用IDA制作signature可以快速识别出哪些是库函数,大大减小逆向分析的工作量。

  • IDA 高级功能使用 之 Tracing —— 跟踪指令流、函数

    本文详细介绍一下IDA中Tracing功能的用法。

    Tracing字面意思是跟踪。在使用IDA 动态调试时,可以开启Tracing这个功能,开启后,IDA会自动记录执行过的指令流,并且记录执行过程中遇到的需要修改的地方。

  • IDA 高级功能使用 之 创建结构体 —— 加快你的逆向速度

    本文详细介绍一下IDA中和结构体有关的高级用法。

    当源码的函数中使用了结构体类型的变量时,反汇编代码中对于结构体中成员的获取往往都是通过一个指针+offset来获取的。对于反汇编代码的阅读不是很方案,因此就需要创建结构体,让反汇编/反编译的代码更加友好一些。

  • 博客迁移成功 :)

  • 关于反弹shell检测的简单思考

    反弹shell的本质是把bash/zsh等进程的 0 1 2 输入输出重定向到远程socket,由socket中获取输入,重定向 标准输出(1)和错误输出(2)到socket。定位到这个本质后,检测的思路也就有了。本文简单说一下几种检测方法。同样,由于进程通信的复杂性,bash进程的输入输出可能是一个pipe,本文也简单讨论一下这种情况的检测思路。

  • SSH tunnel实现socks5代理

    在getshell内网服务器后,通常需要搭建代理访问内网服务。这里简单介绍一下如何使用SSH tunnel实现socks5代理。其实就是两条命令~

  • CVE-2019-5736 docker escape 漏洞复现

    本文简述CVE-2019-5736 的漏洞信息并记录一下复现过程,最后演示一下实际场景中的RCE利用效果。

  • CVE-2016-5195 dirtycow 部分POC简单复现

  • TSCTF Android Reverse - Open Sesame!

    0x01 简介

    如果掌握Android应用逆向分析这个技能点后,我们在遇到未知软件时就可以了解其内部逻辑。本题是我在TSCTF2019出的一道Android Reverse中等题,本题主要考察选手的知识点有:

  • 如何使用IDA来导入头文件

    本文详细记录一下使用IDA导入头文件的方法,以jni.h为例。

  • TCTF2019公开课 ——安全研究前沿介绍——新技术&新方法

  • Android 实现多个APK打包安装

    最近有这样的一个需求:有多个APK(均为二进制文件),测试人员在使用时需要批量安装和授权。由于授权时需要人工点击多个apk,说是很麻烦。因此需要在不修改APK的情况下,自动完成这些APK的安装和授权。

  • IDA Python 自动化检测格式化字符串漏洞

  • Intel CPU芯片漏洞 meldown 简单分析与复现

  • 树莓派重装系统指南

    本文简单介绍一下如何给一个树莓派重装系统,并开启wifi、ssh等功能。

  • cannary是如何生成的?

    canary是如何生成并且写入TLS中0x28的?

    canary是rbp之前8byte大小的随机区域(最低位为0),从fs:0x28读取并且在函数返回前校验。

    简而言之,在ELF加载到内存后,执行_start函数时,最终会调用security_init()函数来向tcbhead_t.stack_guard中写入canary的值。其中canary的值是内核已经生成好保存在_dl_random中的。glibc仅仅是将其最低位置为0后就存入tcbhead_t.stack_guard中。具体细节如下:

  • AFL新手入门教程:使用AFL来fuzz UPX

    本文首先简单介绍一下AFL的基本使用方法,随后以upx为例记录一下使用AFL来fuzz upx的过程,最后以其中一个典型的crash做简单分析。本文适合对Fuzz感兴趣的同学作为入门读物,希望和对fuzz感兴趣的同学一起交流。

  • 看雪php代码审计系列 easy writeup

    这是看雪web版主写的一个代码审计系列。感觉写的挺好的,可惜后来不更新了。这里简单贴一下writeup。

  • Bash 简单实现 多进程运行 —— 加快for循环执行速度

  • Python 使用 libtmux 快速创建 windows 和 panels

  • DELL server T630系统安装与配置

    有幸可以折腾一下DELL的T630,这是一台很久没人用的server,大概花了两个半天的时间折腾好系统,记录一下,帮助有需要的人。

  • 浅析 house of lore

    条件:控制smallbin中第一个chunk(假设为victm)的bk,bk指向要写的位置。bk->fd要为victim。这时malloc会从smallbin中取出chunk,同时last(bin)就为我们伪造的bk了,下次malloc时就可以得到。同时需要注意下次malloc时,还会检测bk->fd要为victim。

    这个利用条件比较难满足。

  • 如何在vmware中安装macOS High Sierra

  • lldb插件使用初体验 - voltron

    装这个插件的时候一开始特别没耐心,遇到错误来来回回折腾了几次,最后挑个晚上静下心来终于安装好了。

  • a simple shellcode used to reverse a shell in macOS

  • SECCON2016 tinypad - house of einherjar - inuse smallbin/largebin chunk extend

    本文参考ctf-wiki,简述house of einherjar的原理,并简单介绍SECCON2016 tinypad的利用思路,记录写exp时遇到的几个问题。

  • HITCON Training lab13 heapcreator - inuse fastbin chunk extend

    题目来自HITCON-Training@Angelboy,off-by-one 修改inuse的fastbin chunk size,free该chunk获取一个稍微大的的fastbin chunk。再次malloc实现fastbin chunk overlap,从而可以修改关键指针,hjiack got getshell!

  • BCTF2018 Easiest - fastbin attack

    这是BCTF2018中一道关于fastbin attack的简单题,重点阐述一下double free时fastbin attack的利用思路和size的伪造方法。PS:从这篇博客开始,图片如果可以引用raw.githubusercontent.com中的,就不单独上传到博客中了。

  • HITCON2014 stkof -温故知新unlink & fastbin attack

    这题是HITCON2014中一道高分题,放到今天来看也就是考察普通的unlink利用。既然重新做了,就好好的写一下,省的以后再返工。废话不多说,具体来看一下。后续发现fastbin attack也可以做,见文末更新。

  • pwnable.kr toddler - all writeups

    pwnable.kr toddler部分21道关卡的writeup合集。

  • XDCTF2015 bof - ret2dlresolve attack in i386

    本文以XDCTF2015的bof这题为例记录一下利用ret2 dl-runtime resolve来控制程序函数解析,最终getshell的过程。想要实现整个过程,需要非常清楚动态链接的程序调用libc中函数时的解析过程,原理可以参考《程序员的自我修养》chapter7.4和chapter7.5,之后可以继续阅读pediy的文章,见参考[1]。了解原理后,就可以看ctf-wiki或本文的实践过程了。本文所有源码放在https://github.com/thinkycx/pwn/ 中的XDCTF2015文件夹下。

  • RCTF2018 Note4 - heap overflow & hijack .strtab

    利用总结:heap overflow导致可以控制chunk中的指针实现任意地址写,由于dynamic可写,修改.strtab可以劫持还未调用的函数。

  • CVE-2017-8890漏洞分析和利用-概览篇

    最近在忙开题的事情,期间和同学聊了一下这个漏洞。这是一篇概览介绍,更多细节请参考之前发的文章。这个漏洞是我调试的第一个内核漏洞,2018上半年花了很多时间在这个漏洞的调试和利用上面,从三月份开始断断续续调试到八月初才结束,希望可以和对Kernel感兴趣的同学一起交流。原文如下。

  • 如何通过USB to TTL来连接树莓派?

    最近听说可以用USB to TTL这种方式通过串口可以控制智能设备,手头正好有树莓派,花了一点时间研究了一下,记录一下整个过程。

  • CVE-2018-10933 libssh authentication bypass 漏洞浅析

    本月19号和21号看了一下CVE-2018-10933 libssh的authentication bypass这个漏洞,记录一下整个过程。

  • CVE-2017-7533 漏洞分析

    每次我调试内核漏洞的周期实在是太长了(实在是太菜了),那么定期总结一下两三天的收获吧。
    本篇主要是记录一下CVE-2017-7533是什么类型的漏洞,漏洞原理是什么,以及如何触发,又是如何被patch的。此外,进一步思考如果想要从poc到exploit进一步需要做哪些事情?

  • CVE-2017-8890 漏洞利用 (root nexus6p@kernel 3.10)

    由于CVE-2017-8890属于linux kernel 4.10版本之前网络子系统中的问题,因此Android也受影响。hardenedlinux上曾收集了Jeremy Huang的部分exploit,经过测试在nexus6p上可以控制PC指针。本文内容多是别人的经验总结,对该exploit做简单分析并基于该exploit完成后续的利用工作。

  • CVE-2017-8890 漏洞利用(root ubuntu 16.04@kernel 4.10)

    本文主要参考thor的文章,完成了在ubuntu16.04.1@kernel 4.10.0-19 上的root利用。内容主要是总结一下目前的利用思路(ret2user和bypass smep)以及在实践时遇到的一些小问题。

  • CVE-2017-8890 漏洞分析 原理篇

    关于CVE-2017-8890的原理分析已经有好几位前辈分析过了,本文也做一个简单的总结。首先会从补丁分析一下漏洞的成因,其次会从调试的角度验证之前分析的内容。

  • ubuntu 内核双机调试方法

    由于想要学习root的原理,分析linux内核的本地提权漏洞(CVE-2017-8890),因此需要对linux kernel做源码调试。这篇文章主要参考张银奎前辈的三篇文章,主要记录如何下载调试需要的image、vmlinux和source code,以及借助vmware在两个ubuntu之间做linux kernel源码调试的方法。

  • 浅析linux kernel RCU机制

    之前在调试Linux Kernel时遇到了一些oops信息是RCU代码中的,看了几天linux kernel的RCU机制,在此记录。

  • Bash 一键安装zsh脚本

    0x01 背景

    作为一名程序员,免不了要和Linux打交道。在Linux上安装zsh和一些插件可以大大的加快你的工作效率。

    这里分享一下我常用的一键安装zsh的脚本。

  • C 简单实现 遍历指定文件夹下的所有文件

    最近要出一些恶意的代码片段,有一个遍历文件夹的需求。按照要求,所有的恶意行为只能写在一个函数中,且不能有注释。Google到的遍历文件夹的代码全是递归写的。虽然gcc也支持内部函数的编译,但是这样感觉不太优雅,于是稍微修改一下,就有了下面的代码。

  • PGP、GPG、OpenPGP

    简而言之,PGP是商用加密软件,GPG是GNU自由软件基金会支持的开源加密软件,OpenGPG是两者都遵循一种标准。

  • 基于memcached的DRDoS复现

    由于最近某高校的宽带出口被DRDoS了,罪魁祸首是公网上的未授权访问的memcached肉鸡,因此实践一下memcached的DRDoS,学习其中的原理。

  • ELF文件格式简介

    ELF文件格式中比较重要的有:ELF Header、Program Header Table、Section Table、Section Header Table。最重要的概念:section segment。

  • 如何搭建glibc源码调试环境?

  • CVE-2017-13156 Janus签名漏洞分析与复现

    这是在18年初分析的一个漏洞。Android的APK签名方式可以分为V1和V2两种方式。Janus签名漏洞可以做到在Android APK只做了V1签名的情况下,如果在APK原始文件中插入一个恶意伪造的DEX文件,那么APK在安装运行时,Android的虚拟机会直接执行恶意插入的DEX文件。由于没有破坏原有的V1签名,常见的攻击场景是:可以在更新时覆盖掉原有的APK,以原有APK的权限来执行恶意代码。因此,开发者在使用Android Studio给Android APK签名时,最好勾选上V2签名。

    影响:Android5.0-8.0的各个版本和使用安卓V1签名的APK文件

  • 2018 赛博地球杯工业互联网安全大赛

  • TSCTF2017 Pwn writeup

  • Apktool(<=v2.2.2) Directory Traversal 漏洞分析

  • Apktool(<=v2.2.2) XXE 漏洞分析

  • HITB CTF 2017 1000levels writeup

  • pwnable.kr unlink writeup

  • pwnable.kr uaf writeup

  • pwnable.tw dubblesort writeup

  • 一步一步rop writeups 学习笔记

  • 2017-08-06-pwnable.tw-calc

  • tsctf2016 unlink

  • 20170429i春秋线上赛smallest——SROP的利用

  • pwnable.tw orw writeup

  • pwnable.tw start writeup

    与pwnable.kr不同的是,pwnable.tw的题目和目前CTF比赛的题目很贴近,因此转到这里来刷题。

  • Hello world!

    关于这个博客。

  • SQLMAP 基于时间注入判断原理

  • sqlmap payload简单分析(B E T U S)

  • 《wireshark数据包分析实战》 读书笔记

    由头.

    之前读了很多书籍,但是现在回顾的时候,很多内容仅仅是熟悉,而不是真正掌握。所以尝试一种新的方式,将读书时觉得比较重要的,或者是自己还不理解的东西记录下来。达到这本书我已经不需要再去翻,只要看笔记即可的效果。