MIT_AI_0x01
What is AI?
给人工智能一个定义
ALGORITHMS enabled by CONSTRAINTS exposed by REPRESENTATON that support MODEL targeted at THINKING + PERCEPTION + ACTION
人工智能是关于算法通过如下呈现的约束条件得以实现针对思维、感知和行动的模型。
GENERATE&TEST(测试生成)
RUMPELSTILTSKIN法则:当对一个事物命名后,就能对它产生影响
trivial&simple,微不足道和简单存在的差别,微不足道代表价值意义小,而简单的事情也可能有很重要的意义。
router_vuln_analysis_skill
路由器漏洞分析技能
D-Link/DIR-605L
修复路由器程序环境
运行程序,定位异常函数
分析函数,编写相同功能函数,伪造流程和数据,封装到新动态库
使用LD_PRELOAD环境变量加载新的动态库来劫持程序中的异常函数,使目标程序执行动态库中的函数
固件分析与调试
固件下载
D-Link官网下载固件,我用IDM下载ftp://ftp2.dlink.com/PRODUCTS/DIR-605L/REVA/DIR-605L_FIRMWARE_1.13.ZIP,解压后可以得到:
~/iot_pwn/D-link/DIR-605L_FIRMWARE_1.13$ lsDIR-605L_FIRMWARE_1.13.zip dir605L_FW_113.bin DIR-605L_RELEASENOTES_1.13B06_EN_US.PDF
文件系统提取
使用binwalk提取文件系统_dir605L_FW_113.bin.extracted;
binwalk -e dir605L_FW_113.bin...~/iot_pwn/D-link/DIR-605L_FIRMWARE_1. ...
router_vuln_environ
必备软件和环境
软件
VMware
不多介绍…
Python
不多介绍…
IDA pro(Linux)
wine
这里没有用wine,直接用了linux版本的IDA Pro;
在Linux中运行Windows环境的IDA pro,需要wine这个模拟器软件,还挺大的,要800M+;
安装;
sudo apt-get install wine
拷贝整个Windows下的IDA Pro目录文件;
编写一个启动脚本,用来快速启动IDA pro;
#!/bin/bashwine pathto/ida.exe
麻烦的是动态链接库的问题,需要把缺失的动态链接库文件放到当前目录下;
plugin
这里从github上下载插件包进行安装;
git clone git://github.com/devttys0/ida.git
下载完毕后,使用如下命令安装;
python ./install.py --install -d /path/to/your/ida/install/directory
环境
binwalk
安装不多介绍…
使用
获取帮助
binwalk -h/--hel ...
router_vuln_basic_knowledge
路由器漏洞基础知识
准备与工具
路由器漏洞分类
路由器具有无线功能,开启Wi-Fi功能后,设备可以通过密码认证的方式连接到路由器上网,加密认证方式通常有三种:
WPA
WPA2
WEP(强度弱逐渐被淘汰)
后来路由器引入了一种叫做WPS的技术,即一键加密键,由Wi-Fi联盟退出的全新Wi-Fi安全防护设定(Wi-Fi Protected Setup)标准,为了解决长久以来无线网络加密认证设定的步骤过于繁杂艰难的问题。通常用户只需要按下WPS按钮,或者输入PIN码,经过简单操作就可以完成无限加密设置,在客户端和路由器见建立一个安全的连接。这个功能可以在Web管理界面设置开关。
问题在于,该路由器的PIN码中最后一位是校验位,可以不必破解计算得出。假设该PIN码为8位,前7位在实施PIN的身份识别时,无线路由器只要找出这个PIN码的前半部分(前4位)和后半部分(后3位)是否正确即可。在第一次PIN认证连接失败后,路由器会向客户端发回一个EAP-NACK信息,通过该信息,客户端可以知道这两部分PIN码是否正确,这就意味着,只需要从中找出一个4位的PIN码和一个3位的PIN码即可。破解的难 ...
CVE-2010-2883
CVE-2010-2883_adobe_sof
环境
工具
环境
操作系统
Windows XP SP3 + Windows 10
虚拟机
VMware 16 pro
反汇编器
IDA pro
调试器
OllyDbg
漏洞软件
Adobe Reader 9.3.4
原理
使用IDA反汇编Adobe Reader目录下的CoolType.dll库,通过Alt+T搜索字符串SING;
.text:0803DC6D sub_803DBF2 push offset aSing ; "SING"
也可以通过shift+F12和ctrl+f来找到该字符串,利用ctrl+x找到引用该字符串的位置;
.rdata:0819DB4C aSing db 'SING',0 ; DATA XREF: sub_8015A91+D2↑o.rdata:0819DB4C ; s ...
wustctf2020_babyfmt
wustctf2020_babyfmt
信息收集
checksec
Arch: amd64-64-little
RELRO: Full RELRO
Stack: Canary found
NX: NX enabled
PIE: PIE enabled
常规的保护基本都开了;
执行程序
$ ./wustctf2020_babyfmt dididada.....tell me the time:132311ok! time is 13:23:111. leak2. fmt_attack3. get_flag4. exit>>
IDA
放到ida64中分析;
main()
int __cdecl __noreturn main(int argc, const char **argv, const char **envp){ int v3; // [rsp+Ch] [rbp-14h] BYREF int v4; // [rsp+10h] [rbp-10h] BYREF unsigned int choice; // [rs ...
pwnable.kr_dragon
dragon
信息收集
checksec
[*] '/home/klose/ctf/pwn/file/buuctf/pwnable_dragon/dragon' Arch: i386-32-little RELRO: Partial RELRO Stack: Canary found NX: NX enabled PIE: No PIE (0x8048000)
32位程序,开了canary和NX;
程序执行
$ ./dragon Welcome to Dragon Hunter!Choose Your Hero[ 1 ] Priest[ 2 ] Knight
IDA
放到ida32里分析,程序的执行流程大概如下:
int main(){ puts("Welcome to Dragon Hunter!"); PlayGame(); return 0;}int PlayGame(){ int result; // eax// ... ...
pwnable.kr_wtf
wtf
信息收集
checksec
Arch: amd64-64-littleRELRO: Partial RELROStack: No canary foundNX: NX enabledPIE: No PIE (0x400000)
程序执行
$ ./wtf klose
输入一个字符串,程序就退出了;
IDA
放到ida64里分析;
main
int __cdecl main(int argc, const char **argv, const char **envp){ char str[44]; // [rsp+10h] [rbp-30h] BYREF int input; // [rsp+3Ch] [rbp-4h] BYREF __isoc99_scanf("%d", &input); if ( input > 32 ) { puts("preventing buffer overflow"); input = 32; } my ...
CVE-2017-5123
CVE-2017-5123 waitid syscall
漏洞来自Chris Salls’s blog;
该漏洞由Chris Salls发现,利用该漏洞可以实现权限提升,突破SEMP、SMAP、Chrome sandbox的机制;
环境
kernel verison: 4.13
知识储备
简单理解
在进程进行系统调用的时候,内核需要具备对该进程内存的读写能力,因此就有了copy_from_user或者put_user等等交互函数,用于在内核和用户之间传输数据;
put_user大致的内容如下:
put_user(x, void __user *ptr) if (access_ok(VERIFY_WRITE, ptr, sizeof(*ptr))) return -EFAULT user_access_begin() *ptr = x user_access_end()
其中access_ok的功能适用于检测当前的指针*ptr是否位于用户区而非内核内存区域,如果通过了检测,就会调用user_access_begin()关闭SMAP,允许内核访问用 ...
CVE-2021-3156
CVE-2021-3156 字符串转义的堆溢出
环境
sudo版本
all legacy versions from 1.8.2 to 1.8.31p2all stable versions from 1.9.0 to 1.9.5p1
这里用的是1.9.5p1
ubuntu环境
ubuntu-20.10
简介
官方的文章
This vulnerability:- is exploitable by any local user (normal users and system users, sudoers and non-sudoers), without authentication (i.e., the attacker does not need to know the user's password);We developed three different exploits for this vulnerability, andobtained full root privileges on Ubuntu 20.04 (Sudo 1.8.31), Debian ...