自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小黑话不多

生命不息,折腾不止

  • 博客(46)
  • 收藏
  • 关注

原创 ExploitExercises_Nebula_Level14

/home/flag14/flag14是一个加密程序,输入加-e参数,该程序将对输入数据加密后输出到终端:level14@nebula:~$ /home/flag14/flag14 -e12345613579; 逆向加密算法: v12 = *MK_FP(__GS__, 20); v8 = 0; if ( argc <= 1 ) goto LABEL_17;

2016-12-30 16:10:39 1023

原创 ExploitExercises_Nebula_Level13

题目源码中省略了token的计算过程:#include #include #include #include #include #define FAKEUID 1000int main(int argc, char **argv, char **envp){ int c; char token[256]; if(getuid() != FAKEUID) {

2016-12-30 15:12:28 706

原创 ExploitExercises_Nebula_Level12

程序源码为lua脚本:local socket = require("socket")local server = assert(socket.bind("127.0.0.1", 50001))function hash(password) prog = io.popen("echo "..password.." | sha1sum", "r") data = prog:read

2016-12-30 14:55:18 471

原创 ExploitExercises_Nebula_Level10

题目源码:#include #include #include #include #include #include #include #include #include int main(int argc, char **argv){ char *file; char *host; if(argc < 3) { printf("%s file

2016-12-30 11:53:19 605

原创 ExploitExercises_Nebula_Level09

题目给出一段PHP代码:<?phpfunction spam($email){ $email = preg_replace("/\./", " dot ", $email); $email = preg_replace("/@/", " AT ", $email); return $email;}function markup($filename, $use_me

2016-12-29 10:15:05 471

原创 ExploitExercises_Nebula_Level08

题目提供了一个capture.pcap文件:可以看到password部分输入,其中包括几处0x7F,查询ascii表,该值对应删除操作。还原删除过程,最终得到密码:bacjd00Rmatesu - flag08尝试登陆,成功。

2016-12-28 21:13:59 447

原创 ExploitExercises_Nebula_Level07

题目源码为一段perl脚本:#!/usr/bin/perluse CGI qw{param};print "Content-type: text/html\n\n";sub ping { $host = $_[0]; print("Ping results"); @output = `ping -c 3 $host 2>&1`; foreach $line (@

2016-12-28 21:13:43 1052

原创 ExploitExercises_Nebula_Level06

题目如下:The flag06 account credentials came from a legacy unix system.To do this level, log in as the level06 account with the password level06. Files for this level can be found in /home/flag06.

2016-12-26 17:31:40 422

原创 ExploitExercises_Nebula_Level05

题目如下:Check the flag05 home directory. You are looking for weak directory permissionsTo do this level, log in as the level05 account with the password level05. Files for this level can be found i

2016-12-26 17:28:14 513

原创 ExploitExercises_Nebula_Level04

题目余源码如下:#include #include #include #include #include #include int main(int argc, char **argv, char **envp){ char buf[1024]; int fd, rc; if(argc == 1) { printf("%s [file to read]

2016-12-26 16:26:36 632

原创 ExploitExercises_Nebula_Level03

题目设置定时任务,定时执行/home/flag03/writable.sh脚本:#!/bin/shfor i in /home/flag03/writable.d/* ; do (ulimit -t 5; bash -x "$i") rm -f "$i"done可以看到,该脚本去执行writable.d目录下的程序。获取shell过程如下:1.

2016-12-26 15:41:43 819

原创 ExploitExercises_Nebula_Level02

题目源代码:#include #include #include #include #include int main(int argc, char **argv, char **envp){ char *buffer; gid_t gid; uid_t uid; gid = getegid(); uid = geteuid(); setresgid

2016-12-26 13:33:44 445

原创 ExploitExercises_Nebula_Level01

题目源码如下:#include #include #include #include #include int main(int argc, char **argv, char **envp){ gid_t gid; uid_t uid; gid = getegid(); uid = geteuid(); setresgid(gid, gid, gid);

2016-12-26 13:32:33 1377

原创 Exploit_Nubula_Level00

题目如下:This level requires you to find a Set User ID program that will run as the “flag00” account. You could also find this by carefully looking in top level directories in / for suspicious looking d

2016-12-25 22:51:10 1028

原创 Openssl RSA操作

生成key对:openssl genrsa -aes128 -out pv.key 1024上面使用aes-128保护key,执行命令后要求输入密码,在导入key的时候需要输入密码。若不需要密码保护,则确定密码保护选项:openssl genrsa -out pv.key 1024从私钥中提取公钥:openssl rsa -in pv.key -pubout -out pb

2016-12-07 21:22:01 827

原创 Windows增加删除右键新建项

Windows下,鼠标右键新建默认有文本文档、Word等,若需要增加新的,比如ps, py等,则需要修改注册表。注册表HKEY_CLASSES_ROOT下有一系列.xx项,记录不同类型的文件扩展名,若存在子项ShellNew,则可以通过右键新建直接创建;相反,若需要删除新建项,则删除.xx项下的ShellNew子项。例如,要增加.py文件新建项,可以新建一个.reg,里面写入一下内容:

2016-11-26 11:17:09 6850

原创 傀儡进程原理及调试

傀儡进程创建过程:(1) CreateProcess一个进程,并挂起,即向dwCreationFlags 参数传入CREATE_SUSPENDED;(2) GetThreadContext获取挂起进程CONTEXT,其中,EAX为进程入口点地址,EBX指向进程PEB;(3) ZwUnmapViewOfSection卸载挂起进程内存空间数据;(4) VirtualAllo

2016-08-11 17:16:08 3259 1

原创 Ubuntu 16.04网络配置

安装完Ubuntu 16.04后,配置静态网络:vim /etc/network/interfacesauto eth0iface eth0address x.x.x.xmask x.x.x.xgateway x.x.x.x配置完成,重启网络服务:/etc/init.d/networking restart启动后,发现只有lo,查看日志,发现没有找到eth0设备。原来Ubunt

2016-07-18 14:48:10 50227 6

原创 脱壳基础

1.     定位OEP1.1  ESP定律(栈平衡)使用UPX对计算器calc.exe进行加壳。OD载入,如下:第一条指令PUSHAD表示将所有通用寄存器值压栈,这些值即代表原程序加壳前的值,在壳运行完成后,需要借助栈恢复这些值,程序转到OEP,原程序才能正常执行。F8向下走一步,此时ESP的值为压栈后的值:对该ESP值下硬件断点:HW 0007F

2016-07-13 10:22:27 944

原创 使用pefile解析PE文件格式

pefile用于解析PE文件格式,github提供下载使用,并给出了使用范例。https://github.com/erocarrera/pefileimport pefilepe = pefile.PE('notepad.exe')AddressOfEntryPoint = hex(pe.OPTIONAL_HEADER.AddressOfEntryPoint)ImageBa

2016-07-06 17:04:21 3443

原创 HTTPS原理

HTTPS  = HTTP + SSL/TLS,现在一般都使用TLS.HTTPS工作过程如下:1. 浏览器向服务器发送HTTPS请求,该请求中包含一个密文族,该族即为浏览器所支持的加密算法清单;2. 服务器从该清单中选择一种非对称加密算法,如RSA算法。3. 服务器向客户端传送证书,该证书包含2中非对称加密算法的公钥,也包括颁发机构、有效期等信息。服务器可以选择自己制作证书,也

2016-07-04 16:47:05 378

原创 加密解密之RSA

1. RSA加密解密key可以由generate生成,或者由construct构造,或者由importkey导入;2. RSA可以加密的单段数据长度受key的长度所限制,大量数据需分段加密;3. 目前推荐使用PKCS1_OAEP加密,PKCS1_V1_5可用于兼容老代码,但已不推荐使用;4. 根据RFC3447描述,若使用PKCS1_OAEP加密,单独数据最大长度为下图红框标识。例如,

2016-07-01 16:58:57 2932

原创 加密解密之AES算法

AES加密的数据块长度为128(16字节),密码长度可以为16,24,32字节。from Crypto.Cipher import AESfrom Crypto import Randombs = AES.block_sizepad = lambda s: s + (bs - (len(s) % bs)) * chr(bs - len(s) % bs)unpad = lambda s

2016-07-01 16:00:02 1641 1

转载 脱壳的常用方法

什么是壳大家应该先明白“壳”的概念。在自然界中,我想大家对"壳"这东西应该都不会陌生了,植物用它来保护种子,动物用它来保护身体等等。同样,在一些计算机软件里也有一段专门负责保护软件不被非法修改或反编译的程序。它们一般都是先于程序运行,拿到控制权,然后完成它们保护软件的任务。就像动植物的壳一般都是在身体外面一样理所当然(当然后来也出现了所谓的“壳中带籽”的壳)。由于这段程序和自然界的壳在功能

2016-06-29 09:47:49 505

原创 VS生成请求以管理员身份运行的程序

在程序开发中,有些程序由于特殊性,需要以管理员权限运行,若用户直接点击运行,则无法正常执行。为了在程序运行时通知用户授予程序管理员权限,需要在VS编译中进行设置:项目属性 -> 配置属性 -> 连接器 -> 清单文件,将“UAC执行级别”的值设置为“requireAdministrator (/level='requireAdministrator')”。

2016-06-24 17:35:57 892

原创 使用了 C++ 异常处理程序,但未启用展开语义。请指定 /EHsc

指定当编译器使用的异常处理类型、何时优化掉异常检查以及是否销毁由于异常而超出范围的 C++ 对象。 如果未指定/EH,则编译器将同时捕获异步结构化异常和 C++ 异常,但不会销毁由于异步异常超出范围的 C++ 对象。当出现如标题所示错误时,需要修改VS项目属性配置来解决:项目->属性->配置属性->C/C++->代码生成->启用C++异常,将值设置为“是 (/EHsc)”。具体

2016-06-24 14:53:38 11742 3

转载 使用inf文件安装文件系统驱动程序的三种方式

After you have created an INF file, you can use it to install, upgrade, and uninstall your file system filter driver. You can use the INF file alone or together with a batch file or a user-mode setup

2016-06-23 15:34:00 7078

转载 使用C++产生32位随机数

提到生成随机数,大多数人想到的是调用C++中的rand()函数,但是这里有个问题,rand()只能产生0~RAND_MAX(如在Visual Studio 2010上面最大为0x7FFF,即32767), 如果需要产生的随机数范围是0~232-1,则rand()函数会力不从心,需要使用其他更有效的方法来实现32位随机数的生成。   本文采用三种方法,分别为Mersenne twister算

2016-06-07 12:01:02 3393

原创 Android Apktool安装及使用

Android应用程序逆向过程中,Apktool无疑是使用最为广泛的工具之一。其安装也是非常简单。Apktool最新官方地址为:http://ibotpeaches.github.io/Apktool/官方给出了在Windows、Linux、Mac OS平台上的安装方式:http://ibotpeaches.github.io/Apktool/install/本文在Window

2016-06-05 16:53:18 1226

原创 Windows获取磁盘信息

Windows下磁盘相关操作:1. 使用FindFirstVolume, FindNextVolume查询所有磁盘;2. QueryDosDevice获取设备名称;3. GetVolumePathNamesForVolumeName获取路径信息,如C:, D:;4. GetDriveType获取磁盘类型,不同返回值代表的类型如下图:#include #include #

2016-05-27 14:36:14 2430

原创 Windows获取时间

在Windows下获取时间常用的API有:GetLocalTime(), GetSystemTime(), GetTickCount(),以下说明三者的用法及差别。(1) GetLocalTime该函数用于获取本地时间,精确到毫秒级。函数声明如下:void WINAPI GetLocalTime( _Out_ LPSYSTEMTIME lpSystemTime);函数将获取到的时

2016-05-24 15:10:28 1555

原创 Windows驱动开发蓝屏(代码:0x0000007f)

刚开始做驱动开发,编译了一个微软官方的例子,使用.inf安装驱动后,使用net start xx启动服务,但是却出现蓝屏。最终发现是因为兼容性原因,使用VS 2015、WDK 10编译的是时候默认生成windows 10驱动,由于我在Win7下测试,从而导致蓝屏。解决方法如下:项目属性 -> Deriver Settings -> General -> Target OS Versio

2016-05-05 21:43:26 2187

原创 无法定位程序输入点xxx于动态链接库kernel32.dll

程序运行中出现如标题所示的错误,通常来讲,这是由于系统平台不兼容导致,比如在Win7系统上开发过程中使用了Win8以后才支持的API。比如,我在win7上使用了UnmapViewOfFileEx这个函数,然后程序运行后就出现了“无法定位程序输入点UnmapViewOfFileEx于动态链接库kernel32.dll”的错误提示。查询MSDN,发现该API使用平台要求为Win8及以上,因此无

2016-05-03 18:05:55 35088

原创 警告被视为错误 - 没有生成“object”文件

在使用vs编译程序的时候碰到如标题所示的错误提示,网上找的方法都不好使,后来发现就是简单的函数返回值不匹配问题。举例如下:HANDLE PsGetProcessId( _In_ PEPROCESS Process);PsGetProcessId返回值应该为HANDLE,若是在调用的时候将其赋值给其他类型的变量,如int,将导致该类错误。int pid = PsGetProce

2016-05-03 15:21:59 1523

原创 Windows遍历目录文件

可以使用FindFirstFile, FindNextFile, FindClose遍历指定目录下的目录和文件。以下函数遍历并打印指定路径path下的所有文件和目录:#include #include #include #include #include void FileTraverse(TCHAR *path){ //_tprintf(TEXT("\nPath: %s

2016-04-27 15:07:59 891

原创 Python 获取本机ip地址

通过socket.gethostbyname(socket.gethostname())的方式只能获取到自环网地址127.0.0.1,要获取到其他网卡(如eth0)ip地址,需通过ioctl实现:import socketimport fcntlimport structdef getip(ifname): try: s = socket.socket(sock

2016-04-19 22:42:29 788

原创 Python浅拷贝和和深拷贝

Python提供了copy模块,用于对象的拷贝操作,包括copy和deepcopy两个函数,分别用于浅拷贝和深拷贝,以下分析两者的差异:1. 父对象中包含可变对象首先给出一个例子:import copya = [1,2,3,['abc','def']]b = a #对象引用c = copy.copy(a) #浅拷贝d =

2016-04-17 17:48:40 372

原创 安全类技术博客收集

持续关注具有价值的安全技术网站、技术博客,不但能获取第一手的安全资讯,还能通过技术分析文章提升技能。本文收集了部分高价值技术网站,并持续更新中。。。https://blogs.sophos.com/http://www.malware-traffic-analysis.net/http://nagareshwar.securityxploded.com/http://www.blee

2016-04-14 21:39:59 477

原创 解决VS“无法解析的外部命令”

在使用VS编译的时候通常碰到“无法解析的外部命令”或者“无法解析的外部符号”等错误提示,这是因为使用了外部库的原因,解决方法如下:(1) 添加#pragma comment(lib, "libName")(2) 项目属性 -> 链接器 -> 输入 -> 附加依赖项,添加所需lib文件名。

2016-04-12 15:51:40 15525

原创 Windows Dll注入与API HOOK

DLL注入:1.      使用注册表注入dllHKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Windows\AppInit_DLLsAppInit_Dlls中设置待注入的dll绝对路径LoadAppInit_Dlls值设为12.      使用Windows挂钩注入dll需要使用SetWind

2016-04-11 17:07:59 2932

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除