原创 python病毒

介紹 今天碰到一個有趣的python病毒,在這裏https://github.com/cranklin/Python-Virus/blob/master/pythonvirus.py#L37 源碼 分爲3個部分 1、搜索,搜尋所有的pyth

原创 linux lkm rootkit常用技巧

簡介 蒐集一下linux lkm rootkit中常用的一些技巧 1、劫持系統調用 遍歷地址空間 根據系統調用中的一些導出函數,比如sys_close的地址來尋找 unsigned long ** get_sys_call_table(

原创 Linux的一個後門引發對PAM的探究

轉自http://www.91ri.org/16803.html 1.1   起因 今天在搜索關於Linux下的後門姿勢時,發現一條命令如下:軟鏈接後門: 1 ln -sf /usr/sbin/sshd /tmp/s

原创 HORSE PILL--一種新型的linux rootkit

資料 ppt:https://www.blackhat.com/docs/us-16/materials/us-16-Leibowitz-Horse-Pill-A-New-Type-Of-Linux-Rootkit.pdf github:h

原创 LKM rootkit:Reptile學習

簡介 Reptile是github上一個很火的linux lkm rootkit,最近學習了一些linux rootkit的內容,在這裏記錄一下。 主要是分析reptile的實現 Reptile的使用 安裝命令: sudo ./setup

原创 linux內核鉤子--khook

簡介 本文介紹github上的一個項目khook,一個可以在內核中增加鉤子函數的框架,支持x86。項目地址在這裏:https://github.com/milabs/khook 本文先簡單介紹鉤子函數,分析這個工具的用法,然後再分析代碼,探

原创 USBIP源碼分析

簡介 在普通的電腦上,想使用USB設備,必須將插入到主機。USBIP卻可以通過網絡,讓主機訪問其他主機上的外部設備,而用戶程序完全感知不到區別。 usbip的文章在這裏:https://pdfs.semanticscholar.org/c7

原创 CVE-2018-19985漏洞學習

簡介 4.19.8之前,在Linux內核中,hso_probe()函數中發現了一個缺陷,該函數從USB設備(作爲u8)讀取if_num值,並且不需要對數組進行長度檢查就使用它來索引數組,從而導致在hso_probe()或hso_get_co

原创 CVE-2018-19824漏洞學習

簡介 在Linux內核4.19.6之前,本地用戶可以通過在Sound / USB /card.c.的usb_audio_probe中錯誤處理一個惡意USB聲音設備(沒有接口)來利用ALSA驅動程序中的一個UAF。如果USB聲卡報告0個接口,

原创 CVE-2018-20169漏洞學習

簡介 在4.19.9之前的Linux內核中發現了一個問題。USB子系統在讀取與驅動程序/ USB /core/usb.c中的_usb_get_extra_descriptor相關的額外描述符時錯誤地檢查了大小。 補丁分析 補丁見這裏:htt

原创 USB fuzzing

簡介 最近看一些USB fuzzing方面的東西,總結一下。主要是軟件方面的工作。 vUSBf 文章在這裏:https://www.blackhat.com/docs/eu-14/materials/eu-14-Schumilo-Dont-

原创 CVE-2017-17558漏洞學習

簡介 這是USB core中的一個拒絕服務漏洞。帶有精心設計的描述符的惡意USB設備可以通過在配置描述符中設置過高的bNumInterfaces值來導致內核訪問未分配的內存。雖然在解析期間調整了該值,但是在其中一個錯誤返回路徑中跳過了該調整

原创 USB鍵盤驅動分析

簡介 本文介紹USB驅動程序編寫的流程,分析一個鍵盤的USB程序,基於linux-2.6.39 USB驅動概要 分層 主機層面的USB驅動的整體架構可以分成4層,自頂到下依次是 1、USB設備驅動:本文主要講述的內容,利用USB核心提供的編

原创 CVE-2018-18955漏洞學習

簡介 這是名稱空間的漏洞,文章先介紹user namespaces的簡單只是,然後從補丁入手,分析源碼,找到漏洞出現的原因。因爲對這塊的源碼不是那麼熟悉,所以着重描述源碼分析的部分,其他可以參考末尾的鏈接 本文出現的代碼都基於linux-4

原创 fuzzing學習

1、簡介 1.1 fuzzing   模糊測試(fuzzing)是一種通過向程序提供非預期的輸入並監控輸出中的異常來發現軟件中的故障的方法。   用於模糊測試的模糊測試器(fuzzer)可以按照以下3種方式進行分類: 根據是否從已有輸入衍