渗透前置知识
行业术语
肉鸡与木马
肉鸡
肉鸡是一种形象的比喻,指的是那些可以随意被我们控制的电脑。
可以是Windows系统,也可以是UNIX/LINUX系统。
可以是普通的个人电脑,也可以是大型的服务器。
我们可以像操作自己的电脑那样来操作它们,而不被对方所发觉。
木马
木马是那些表面上伪装成了正常的程序,但当这些程序运行时,就会获取被控制电脑的控制权。
木马程序能够允许控制者在不被对方发觉的情况下,远程操作被控制的电脑。
被控制的电脑叫做被控端,而控制者使用的电脑叫做主控端。
被控端电脑可以被主控端像操作自己的电脑那样来操作,而对方是不知道的。
网页木马
表面伪装成普通的网页文件或将自己的代码插入到正常文件中,当有人访问时,网页木马就会利用对方系统或者浏览器漏洞自动将配置好的木马下载到访问者电脑上自动执行
黑页
一些计算机被入侵后,入侵者为了证明自己的存在,对网站主页进行改写,从而公布入侵者留下的信息,这样的网页通常称为黑页
挂马
在别人的网站文件投放木马
大马
功能强大的网页后门,能执行命令,操作文件,连接数据库
小马
比较单一的网页后门,一般是上传保存大马,asp小马,asp旁注小马
一句话后门
一段很小的网页代码后门,可以用客户端连接,对网站进行控制,如中国菜刀服务端是一句话后门
ASP
<%eval requestr("sb")%>
<%execute request("sb")%>
<%execute (request("sb"))%>
<%' <% Loop <%:%><%execute request("sb")%>
后门
一种比喻,攻击者利用某些方法获取控制目标主机后可以在对方系统中植入特定程序,或者修改某些设置,这些改动表面上是很那被发觉的,但是攻击者可以使用相应的程序或者方法来轻易的与这台电脑建立连接,重新控制这台电脑,好像是攻击者偷偷配了一把主人房间的钥匙,随时都可以进出而不被主人发现,通常大多数特洛伊木马程序都可以被攻击者用于制作后门
拖库
从数据库中导出数据,黑客入侵数据库后会把数据库数据导出
社工库
黑客与大数据方式结合的产物,黑客们将泄露的用户数据整合分析,然后集中归档
撞库
黑客通过收集互联网信息,生成对应的字典表,尝试批量登陆其他网站后,得到一系列可以登录的用户,很多用户在不同网站使用的是相同的账号密码,因此黑客可以通过获取用户在A网站的账户从而尝试登录B网址,就可以理解为撞库攻击
提权
提高自己在服务器中的权限,比如在windows中登录的用户是guest,然后通过提权变为超级管理员,拥有windows所有权限,这个名词一般用于网站入侵和系统入侵
网络钓鱼
Phishing 是Fishing和Phone的结合,黑客最初以电话作案,所以ph取代f 然后当今为了钓鱼攻击利用欺骗性电子邮件和伪造的Web站点来进行诈骗活动,受骗者会泄露自己的财务数据,如信用卡号,账户用户名,口令和社保编号等内容
社会工程学攻击
通过被攻击者新浪弱电,本能反应,好奇心,信任,贪婪等心理陷阱所采取点诸如欺骗,伤害等危害手段获取自身利益点手法,黑客社会工程学攻击啥将黑客入侵手段进行最大化,不仅能够利用系统弱点进行入侵,还通过人性弱点进行入侵,
rookit
攻击者用来隐藏自己的行踪和保留root权限访问权限的工具,攻击者通过远程攻击的方式获得root访问权限,或者使用密码猜解方式获取对系统都普通访问权限,进入系统后,通过对方系统内存在的安全漏洞获得系统的root权限,然后攻击者会在对方系统安装rookit达到自己长久控制对方的目的,rookit与前面提到的木马和后门类似,但比他们隐蔽,黑客守卫者啥典型的rookit
IPC$
共享命名管道的资源,为了让进程间通信而开放的命名管道,可以通过验证用户名和密码获得相应权限,在远程管理计算机和查看计算机共享资源时使用
弱口令
强度不够 容易被猜测的密码
默认共享
默认共享啥WINDOWS2000、XP 2003系统开启共享服务自动开启所有硬盘共享,因为加了$符号,看不到共享的托手图标,也成为隐藏共享

shell
命令执行环境,如windows中cmd 通常使用远程溢出程序成功溢出远程电脑后得到那个用于执行命令的环境就是对方的shell
交互式shell
交互式shell就是等待你的输入,并且执行你提交的命令,这种模式被称作交互式啥因为shell与用户进行交互
webshell
webshell是以asp,php,jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做是一种网页后门,黑客在黑掉网站后,通常会将这些asp或php后门文件与网站服务器WEB目录下正常的网页文件混在一起,然后就可以使用浏览器访问这些asp和php后门,得到一个命令执行环境,达到控制网站服务器的目的,可以上传下载文件,查看数据库,执行任务
溢出
缓冲区溢出,程序对接受的输入数据没有执行有效检测而导致错误,可能是造成程序崩溃或者执行攻击者的命令 分为堆溢出和栈溢出
注入
用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想知的数据,就是SQLinjection SQL注入
注入点
能够实行注入的地方,通常是一个访问数据库的连接,根据注入点数据库的运行账号权限不同,得到的权限也不同

旁站入侵
同一个服务器上有多个站点,可以通过入侵一个站点通过提权跨目录访问其他站点
C段渗透
C段下服务器入侵,如同一个网段例如202.202.0.1-202.202.0.254 如果拿下其中一台服务器,通过这台服务器嗅探目标服务器传输上的数据,从而获取这台服务器的权限
工具:cain
内网
局域网,私有地址
外网
直接介入INTERNET ,互联网上任意一台电脑都可以访问,IP地址不是私有地址
中间人攻击
MITM攻击 Man in the middle attack 使用广泛
MITM攻击成为网银、网游。网上交易最有威胁并有破坏性的一种攻击方式
端口
数据传输通道,接受某些数据传输给相应的服务,电脑将数据处理好后,将相应的数据传输给对方,一般每个端口的开放的偶对应来相应的服务,关闭这些端口只需要将对应服务关闭就可以
免杀
通过加壳,加密,修改特征码、加花指令等等技术来修改程序,使其套过杀毒软件的查杀
加壳
利用特殊的算法,将xe可执行程序或者dll动态连接库文件的编码进行改变,达到缩小文件体积或者加密程序编码,甚至躲避杀毒软件查杀,常用的有UPX,ASPack,PePack,PECompact,UPack 免疫007,木马彩衣等
“Web、Crypto、Pwn、Reverse 、Misc”这五种赛题类型,代表了哪些方向?
Web(渗透测试)
一般是指web网站渗透、漏洞利用。
例如:命令注入、 SQL注入、代码审计、 Restful API、Owasp10、BurpSuite。
Crypto(密码学)
主要是针对一些密码学,例如:凯撒密码、莫斯密码、栏栅密码、培根密码、云影密码。
以及一些常见的加密解密算法,例如:Base64、MD5、SHA1、Hex、ASCII等等。
Pwn(二进制漏洞利用)
”Pwn”是一个黑客语法的俚语词 ,是指攻破设备或者系统 。发音类似“砰”,对黑客而言,这就是成功实施黑客攻击的声音——砰的一声,被“黑”的电脑或手机就被你操纵了。
这个主要针对的就是软件应用、硬件、操作系统了,例如:缓冲区溢出、返回到Libc、栈值覆盖、整数溢出、格式化字符串。
在CTF比赛中:PWN题型通常会直接给定一个已经编译好的二进制程序(Windows下的EXE或者Linux下的ELF文件等),然后,参赛选手通过对二进制程序进行逆向分析和调试来找到漏洞,并编写漏洞利用代码,通过远程代码执行来达到溢出攻击的效果,最终拿到目标机器的shell夺取flag。
Reverse(逆向工程)
逆向就不用多说了,只不过细节又可以分为安卓逆向、Windows上的exe逆向等等,都是按操作系统或编程语言来区分的。
逆向一般常用的操作都有:PEtools查壳、Upx脱壳、IDA pro静态反汇编、OllyDbg动态调试。
Misc(杂项)
这里主要就是指“取证、隐写”等 一 些其它的方向。
例如:GIF图片隐写、PDF隐写、流量隐写、二维码复原。
花指令
汇编指令,让汇编语句进行一些跳转,使杀毒软件不能正常判断病毒文件的构造
int main() {
int x = 0;
// 开始花指令
x = x + 1 - 1; // 这行实际上对x没有影响
if (x == 0) { // 检查一个总是为真的条件
x = x * 0; // 对x进行无效操作
}
// 结束花指令
// 实际有用的代码
printf("Hello, World!n");
return 0;
}
汇编语言中的“花指令”通常是指一些特殊的或非标准的指令组合,它们被用来迷惑反汇编工具、增加代码分析难度或是达到某些特殊效果。这些技术在逆向工程和软件保护领域中较为常见。下面我将介绍几种常见的“花指令”,包括各种跳转技巧以及其他一些可能你不太熟悉的指令。
1. 跳转指令
- JMP:无条件跳转。
jmp label直接跳转到标签位置。jmp [eax]使用寄存器间接寻址来跳转。
- CALL:调用函数(也用于创建栈帧)。
call function调用指定函数。call [ebx+4]通过基址加偏移量的方式调用。
- RET:从函数返回。
ret返回到调用点。ret 8返回并从堆栈弹出额外的8字节(常用于清理参数)。
2. 条件跳转
条件跳转基于特定条件执行跳转:
je / jz(Jump if Equal / Zero) 如果等于或零则跳转。jne / jnz(Jump if Not Equal / Not Zero) 如果不等于或非零则跳转。jl(Jump if Less) 如果小于则跳转。jg(Jump if Greater) 如果大于则跳转。- … 更多条件可以参考具体架构文档。
3. 特殊用途的花指令
- NOP (No Operation):空操作,通常用于填充空间。
nop单个字节的空操作。- 多字节NOP序列如
90h, 90h, 90h...也可以使用。
- INT (Interrupt):中断调用。
int 3常见于调试环境中作为断点。
- LEA (Load Effective Address):加载有效地址。
lea eax, [ebx+ecx*4+5]计算表达式的值而不实际读取内存。
- XOR 自清除技术:
xor eax, eax快速清零寄存器。
- SHL/SHR/SAL/SAR 位移操作:
shl eax, 1将EAX左移一位(等同于乘以2)。shr ebx, 2将EBX右移两位(除以4)。
4. 利用未定义行为
- 自修改代码:运行时修改自身代码区域,这在某些情况下可用于混淆目的。
- 利用处理器特性:例如,某些处理器允许在某些条件下执行非标准指令流,这可以通过特定模式触发。
请注意,在实际编程中滥用这些技术可能会导致程序难以理解和维护,并且可能违反现代操作系统安全策略。因此,除非有明确需求,否则建议谨慎使用。此外,随着硬件和软件的发展,许多传统上的“花指令”可能已经不再有效或者被更先进的技术所取代。
TCP/IP
协议
更新: 2025-05-05 12:41:18
原文: https://www.yuque.com/yuhui.net/network/tbazmzyzvbpl60vn

评论(0)
暂无评论