1.nmap扫描网段找出靶机,靶机ip:192.168.224.133
2.namp -A 192.168.224.133全面扫描靶机
开启的端口有21,22,80,111,445,2049,2121。其中21对应的ftp服务允许匿名登录,22对应的ssh连接是以ssh-key方式验证的,2121对应ftp也可以匿名登录
尝试顺序:21,2121,80,445,22。
3.进入ftp
权限太低,没思路
4.连接2121端口
貌似和21是一样的
5.连接80端口,查看http网页
一个静态网页,扫下目录看看
看似扫到5个,其实都是重复的,只有index.html和readme.txt
打开readme.txt的到了一个不知道谁的密码,
6.smbmap -H 192.168.224.133 查看目标主机smb服务
共享目录smbdata有读写权限,匿名登录smbdata,并且下载secure
secure里有一些用户和组的创建信息
其中有一个用户名为smbuser,密码更改过,之前在readme.txt中得到的密码rootroot1很可能就是smbuser的密码
7.用smbuser/rootroot1进入ftp
在smbuser的家路径,可以通过ssh-keygen生成公私钥进行ssh免密登录
通过ssh-keygen -t rsa命令生成公私钥(在用户家目录下的.ssh中)
把id_rsa.pub上传到smbuser的.ssh/authorized_keys,即可实现ssh免密登录
用ssh连接,成功连上
权限不够,得提权
靶机内核是3.10的,利用kali自带的本地漏洞库搜索提权exp
随便找几个试试,用searchsploit -m 40616,把对应的exp下载到本地
打开exp,大概用法是把exp传到服务器,gcc 40616.c -o cowroot -pthread,然后./cowroot
提权成功,也成功拿到flag,但是好像这个exp不怎么好用,过一会就自动断开连接了。
ssh-keygen
ssh-keygen是生成公私钥的工具,默认保存在~/.ssh中,私钥为id_rsa,公钥为id_rsa.pub
参数:
-t,指定生成密钥类型(rsa,dsa),默认rsa
-f,指定存放密钥的路径,默认~/.ssh
-P,指定私钥的密码
-C,备注
ssh免密登录
1.在客户端用ssh-keygen生成公私钥
2.将公钥追加到服务器的authorized_keys文件中(一般在用户家目录的.ssh下)
3.客户端通过ssh对服务器发起请求,并把公钥传递到服务器
4.服务器检索authorized_keys,确认公钥是否存在
5.如果存在,生成随机数R,并用公钥加密
6.将密文传输到客户端
7.客户端用私钥解密密文,得到R
8.服务端和客户端通信会产生一个会话id(SessionKey),客户端用md5对R和SessionKey加密生成密文
9.客户端将md5密文传给服务器
10.服务器端同样生成md5(R,SessionKey)
11.如果两个密文匹配,则认证成功
from linux上ssh免密登录原理及实现 – 知乎 (zhihu.com)
searchsploit
searchsploit是集成在kali中的命令。kali中有一个本地漏洞库,可以searchsploit命令进行漏洞查询,查询成功后可以看到对应的exp
searchsploit的简单使用:
查找centos7的漏洞: searchsploit centos 7
查找linux内核版本3.1的漏洞: searchsploit linux kernel 3.1
配合grep查找内核3.1的提权漏洞: searchsploit linux kernel 3.1 | grep 'Privilge Escalation'
假如exp为40616.c,将其拷贝到当前目录 searchsploit -m 40616