1.伪造ip
https://blog.csdn.net/wu_tongtong/article/details/124630153学姐赛高
题目描述
这道题目主要考查的是如何伪造HTTP请求头中的IP信息,这里我们推荐使用firefox自带的simple-modify-headers插件来伪造IP;当然你也可以选择使用其他工具来伪造HTTP请求头中的IP信息。
提示:先找到有效的登录信息,然后再伪造IP。如果你要使用simple-modify-headers插件,首先更新firefox浏览器,否则不能正确下载插件。
给了一个插件操作的文件
安装插件 安装完后重启生效
所谓“找到有效登陆信息” 就是要找插件里要添加的ip地址 在浏览器里先登陆靶机ip 在html源码中找到账号名称与密码进行登陆,看到它所接收的ip头。
配置好以后save 右上角start
(我的去靶机ip登陆仍未生效 重启浏览器后生效)
2.利用计划任务获取flag
https://blog.csdn.net/wu_tongtong/article/details/123920421?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167938714916800225565717%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=167938714916800225565717&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-1-123920421-null-null.142v74wechat,201v4add_ask,239v2insert_chatgpt&utm_term=%E9%9D%B6%E6%9C%BA%E7%8E%AF%E5%A2%83%E4%B8%AD%E9%85%8D%E7%BD%AE%E4%BA%86%E4%B8%80%E4%B8%AA%E4%BB%85%E6%9C%89root%E8%BF%90%E8%A1%8C%E6%9D%83%E9%99%90%E7%9A%84%E5%AE%9A%E6%97%B6%E8%84%9A%E6%9C%ACwritable.sh%EF%BC%8C%E8%84%9A%E6%9C%AC%E5%8A%9F%E8%83%BD%E5%88%86%E6%9E%90%E4%BB%A3%E7%A0%81%E5%8F%AF%E5%BE%97%E3%80%82%20%20%E4%B8%8E%E6%AD%A4%E5%90%8C%E6%97%B6%EF%BC%8C%E9%9D%B6%E6%9C%BA%E7%8E%AF%E5%A2%83%E4%B8%AD%2Froot%E6%96%87%E4%BB%B6%E4%B8%8B%E9%85%8D%E7%BD%AE%E4%BA%86%E4%B8%80%E4%B8%AA%E5%8F%AF%E6%89%A7%E8%A1%8C%E6%96%87%E4%BB%B6getflag%EF%BC%8C%E5%8D%B3%2Froot%2Fgetflag%EF%BC%8C%E7%94%A8%E4%BB%A5%E8%8E%B7%E5%8F%96flag%E3%80%82&spm=1018.2226.3001.4187
题目描述
在操作机中通过ssh连接靶机,账号test、密码123,进行后续的操作。(靶机IP地址见题目中拓扑图)。
靶机环境中配置了一个仅有root运行权限的定时脚本writable.sh,脚本功能分析代码可得。
与此同时,靶机环境中/root文件下配置了一个可执行文件getflag,即/root/getflag,用以获取flag。
请分析并利用该定时任务,获取flag。
Keyword:shell脚本执行方式,输出重定向
ssh登陆 @后面是靶机ip 之后输入密码就能成功登陆
ssh test@192.168.0.1
能看到shell脚本内容
#!/bin/sh
for i in /home/test/test/* ; do(ulimit -t 5; bash -x "$i")rm -f "$i"
done
ulimit用来限制每个用户可使用的资源,如CPU、内存、句柄等
ulimit -t:每个进程可以使用CPU的最大时间
执行/home/test/test文件夹中文件然后删除
尝试直接运行getflag文件,可以发现Permission Deny
实际上,root文件夹只用root权限才能操作,只能去依靠所给shell去执行getflag(有root运行权限)
进行重定向
学姐在test里建了一个tmp文件夹 然后新建hack文件内容是把getflag重定向到tmp的ans文件夹里
给hack 755的权限 然后把hack复制到 /home/test/test下 查看ans中内容 多次执行猜测是因为还没来得及执行脚本及hack内容
cd /home/test/tmp
vi hack/root/getflag > /home/test/tmp/anschmod 755 hack
cp hack /home/test/test
cat /home/test/tmp/ans
我在做的时候直接在/home/test/test中新建了hack文件 赋予755权限 查看ans内容成功
755权限:chmod是Linux下设置文件夹权限的命令,后面一般跟三个数据,代表不用用户群体在这个文件夹上的权限设置:一般是三个数字,chmod 750 dir_wzg
第一个数字表示文件所有者的权限
第二个数字表示文件所有者同属一个用户组的其他用户在该文件上的权限
第三个数字表示其他用户组在该文件夹上的权限。
权限分为三种:读(r=4),写(w=2),执行(x=1)。结合起来还有:
可读+可执行(rx=5=4+1)对应数字5,
可读+可写(rw=6=4+2)等,对应数字6。
可读+可写+可执行(rwx=7=4+2+1)对应数字7.
所以,chmod 755设置用户的权限为:
1.文件所有者的权限 可读可写可执行 模式7
2.与文件所有者同属一个用户组的其他用户 可读可执行 模式5
3.其他用户组 可读可执行 模式5
3.寻找特权程序
https://blog.csdn.net/wu_tongtong/article/details/124205998
题目描述
靶机配置了ssh,可以账号test、密码123通过ssh登录到靶机进行攻击。(靶机IP地址见题目中网络拓扑图)
在Linux系统中文件的权限是很重要的一部分,通常的权限由读、写、执行三位组成,对每个文件都指定了文件所有者、同用户组的权限和其它非本用户组的权限。同时Linux中还有特殊的suid、sgid权限。设置了suid/sgid权限的文件,任何用户在执行该文件时,都将拥有文件属主/属组账号对应的权限。
在靶机环境中,设置有一个属于root用户,同时设置了suid权限的文件,只需要找到它并执行即可获取flag。
ssh test@靶机ip登陆
find / -type f -perm -04000 -o -perm -02000查找suid程序
寻找suid 查到的:
find / -type f ( -perm -04000 -o -perm -02000 ) -exec ls -lg {} (查找SUID/SGID程序)
find / -perm -u=s -type f 2>/dev/null
https://blog.51cto.com/yttitan/6046179这个写得最好:
搜索肯定要用到find命令,这是Linux中的一个比较复杂的命令,当然功能也非常强大。find命令之所以复杂,原因之一就是拥有众多选项。我们这里按文件权限查找,需要用到它的-perm选项。
-perm选项的基本用法很简单,格式为“-perm mode”,其中mode为所要匹配的权限。
我们通常见到的权限数字组合都是类似于755或644这种形式,其实完整的权限数字组合应该是四位数,左侧最高位就是用于表示特殊权限。只不过特殊权限并不常用,所以我们平常见到的才主要是三位数字组合。
我们现在要查找的是SUID这种特殊权限,所以要使用的必然是四位数字组合。SUID对应的权限数字是4,特殊权限被放在数字组合左侧最高位,所以mode通常用4000表示。
注意,数字0表示忽略相应位置的权限,也就是说不考虑rwx权限,所以4000就表示查找被设置了SUID权限的文件,至于其它的rwx权限则根本不考虑。
执行“find / -perm -4000”就可以查找出系统中所有被设置了SUID权限的文件。下面所使用的命令中2> /dev/null,表示屏蔽错误信息。因为find命令在执行过程中可能会出现一些错误信息,加上这个功能可以让显示结果更加清晰。
另外执行“find / -perm -u=s”命令也可以实现同样的效果,“u”代表所有者,“s”代表suid,所以“u=s”同样表示查找所有者被设置了suid权限的文件。
另外再解释一下为什么要在权限4000或u=s之前加上“-”?
如果不加“-”,表示精确匹配,也就是查找的文件权限就是“4000”,除了suid权限之外,其它的rwx权限通通没有,这明显不符合要求。
加“-”表示模糊匹配,此时对于没有指定的权限就不予考虑,所以“4000”就表示不考虑rwx权限。
模糊匹配除了可以使用“-”表示之外,还可以使用“/”,当然它们之间也是有区别的,这里就不再进一步展开说明了。
出现的一长串中有一个特别的/etc/super
/etc/super即可执行得到flag
如果直接输入super会提示,super不是一个指令
其实这就是在提示你,/etc/super是一个没有加入PATH可执行文件(排除了系统已有的命令),需要指定路径名运行。