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