本地提权是指攻击者利用漏洞或其他手段获取本地系统的管理员权限或其他高权限,从而能够执行更多的操作,例如访问、修改、删除系统文件、安装恶意软件、窃取敏感信息等。 常见的提权思路有: 1. 服务配置错误 2. 文件或服务权限漏洞 3. 内核漏洞 4. 高权限运行的服务漏洞 5. 敏感信息泄漏 6. 总是在执行二进制文件之前提升特权的系统设置 7. 脚本中包含硬编码的凭证,以及许多其他内容 手动枚举 枚举用户账号 whoami #通用 id who w #Linux 查看用户组 net user <USERNAME> #Windows id who #Linux 查看其他账号 net user #Windows cat /etc/pas…
PE文件检测 PE(Portable Executable)可执行文件,该文件酱油Windows加载器执行代码、引用库、导入和导出API表等 检测方法一般如下 1. 基于字符特征的检测方法(静态) 2. 启发式检测方法(单步跟踪/静态分析) 3. 基于行为的检测方法(动态) AV(Anti Virus)躲避技术 一般来说分磁盘/内存两种 磁盘 打包(修改特征码、减小体积) 混淆(花指令、重组等) 加密Crypters(改变可执行代码,在内存中执行加密文件) 软件保护(反逆向、反调试、虚拟机检测) 内存 一般流程如下 1. 利用Windows API向正常PE进程注入攻击代码 2. 获得目标进程Handle并分配空间 3. 将恶意代码注入到新分…
传输文件一般发生在后渗透测试阶段,即已经突破边界并在目标主机上获取初始低权限账户 一般的任务有: 1. 权限提升 2. 权限维持 3. 横向渗透 FTP 以pure-ftpd为例,安装并设置用户权限 apt install pure-ftpd groupadd ftpgroup useradd -g ftpgroup -d /dev/null-s /etc ftpuser pure-pw useradd offsec -u ftpuser -d /ftphome #这里的offsec是ftp账号,映射到系统账号ftpuser,并设置密码 pure-pw mkdb cd /etc/pure-ftpd/auth/ ln -s ../conf/Pu…
EXP搜索 可以通过一些联网数据库获得 Exploit-DB已知漏洞及POC等 Sync开源漏洞数据库 也可以通过kali自带的searchsploit查找(Exploit-db离线版) searchsploit <NAME> <VERSION> msf里面也有 msfconsole search <NAME> EXP利用 在msf/exploit-db中有一些ruby/python/lua/c的exp,使用之前需要修改、查看文件了解功能,更改参数 有可能存在同一漏洞、不同版本不同系统的EXP EXP修复 缓存区溢出 需要注意的有文件路径、IP地址、端口、URL、偏移量、返回地址、跳转指令 对于不同系统的E…
客户端攻击即攻击客户端软件、邮件 例如:浏览器、PDF、OFFICE、邮件附件、恶意链接 Fingerprintjs Fingerprintjs是一个浏览器指纹库,它可以查询浏览器的属性,并从中计算出一个哈希的访问者标识符。与Cookie和本地存储不同,指纹在隐私模式下和浏览器数据被清除时仍然保持不变。 Github-Fingerprintjs <script> // Initialize the agent at application startup. const fpPromise = import('https://openfpcdn.io/fingerprintjs/v3') .then(FingerprintJS =&…
下面以x86架构为例 缓存结构 x86架构的计算机最多可管理4GB内存 堆栈 堆栈内存是以LIFO结构被CPU访问(Last-In,First-Out) 函数返回时需要读取返回地址 会存在堆栈溢出操作 CPU寄存器 x86寄存器指令为32位,4个字节,首个字节为操作符 EBP基指针(访问堆栈)<--一般来说程序访问临时变量就在这里 EIP指令指针(命令跳转)<--覆盖这个指令指针可以执行任意指令 Immunity Debugger 一个二进制程序调试器 可以通过断点等方式,跟踪程序执行过程,利用某些EIP指针实现命令执行 TODO:实操
基本信息收集 在没有明确目标之前可以通过扫描器等形式获取目标相关信息 信息主要如下: 1. 功能 2. 开发语言 3. 服务端软件 Web枚举 识别目标系统技术栈 a. 分析URL b. 浏览器信息 c. 分析路由信息 d. 相应头 选择对应技术栈的攻击载荷 a. 编程语言和框架 b. Web服务器软件 c. 数据库软件 d. 服务器操作系统 路径枚举 dirb内建字典,默认递归发现隐藏路径 dirb <{URL}/{FILE}> [-r非递归] [-z {TIME_MS}延时] [-X {.TYPE}枚举指定后缀] dirsearch查找隐藏文件和目录 python3 dirsearch.py -u <URL> -e…
被动信息收集 Whois信息 域名公开信息 whois [HOST] #信息查询 whois [IP] #IP反查 Web查询 站长之家 搜索引擎过滤器 Google Hacking Database site:[HOST] filetype:<TYPE> ext:<TYPE> intitle:"<NAME>" DNS信息搜索服务 Netcraft英国互联网公司 微步在线 Recon-ng信息收集框架 命令行聚合信息收集框架,KEY需要自己设置 recon-ng marketplace search github marketplace info [MODULE] marketplace install […
NATCAT(NC) TCP/UDP连接和数据传输工具 nc [-nv连接-nvlp监听] [-e '/bin/bash'/'cmd.exe'远程shell] [HOST] [-p {PORT}监听] -l:监听模式,用于创建一个服务器端口并等待客户端连接。 -u:使用UDP协议而不是TCP协议。 -z:扫描模式,只扫描开放的端口,不发送任何数据。 -v:详细模式,显示更多的信息。 -w:超时时间,设置连接或读写操作的超时时间(秒)。 -n:不进行DNS解析,直接使用IP地址。 -e:执行命令,将输入和输出重定向到指定的命令。 -p:源端口号,指定本地主机的源端口号。 -s:源IP地址,指定本地主机的源IP地址。 Socat 加密shell,…
查询指令的若干方法 tldr too long don't read tldr [command] tldr --update man系统手册 man [-k]/[N] [command] which/whereis/whatis/locate 查询指令所在目录,如果不存在可以先执行 ```updatedb```更新文件目录 systemctl 启用或关闭系统服务 systemctl start/enable/stop/disable [service] 列出所有服务 systemctl list-unit-files ss 查询所有tcp套接字 ss -anltp ENV $SHELL #使用的shell类型 $USER #当前用户 $PW…