靶机实战(1):Empire LupinOne

admin 2023年12月8日23:51:40评论14 views字数 4019阅读13分23秒阅读模式

01、靶机名称:Empire: LupinOne

02、靶机网址:https://www.vulnhub.com/entry/empire-lupinone,750/

03、参考文章:大余每日一攻防EMPIRE: LUPINONE(七)

04、文章目录:

  1. 主机发现

  2. 端口发现(服务、组件)

  3. 漏洞发现(获取权限)

    1. 22端口/ssh服务

      1. 组件漏洞

      2. 弱口令漏洞

    2. 80端口/http服务

      1. 组件漏洞

      2. URL发现(目录、文件)

    3. 22端口/ssh服务

      1. 私钥泄露

  4. 提升权限

    1. perm

    2. sudo

    3. sudo


一、主机发现


启动虚拟机,直接就获得了主机的IP地址。

靶机实战(1):Empire LupinOne


二、端口发现(服务、组件)


使用命令sudo nmap 10.58.81.112 -n -Pn -p- --reason -sV -sC -O,获得主机开放的端口、提供的服务、使用的组件、组件的版本。

靶机实战(1):Empire LupinOne

开发的端口

提供的服务

使用的组件

组件的版本

22/tcp

ssh

OpenSSH

8.4p1

80/tcp

http

Apache

httpd 2.4.48

-

-

Linux

4.15 - 5.6


三、漏洞发现(获取权限)


### 22端口/ssh服务

          

#### 01、组件漏洞

          

使用命令searchsploit OpenSSH,未发现OpenSSH 8.4p1组件的Nday漏洞。

靶机实战(1):Empire LupinOne

          

#### 02、弱口令漏洞

          

使用命令hydra -C /usr/share/seclists/Passwords/Default-Credentials/ssh-betterdefaultpasslist.txt 10.58.81.112 ssh,未发现弱口令漏洞。

靶机实战(1):Empire LupinOne    

换一个字典,使用命令hydra -C /usr/share/wordlists/legion/ssh-betterdefaultpasslist.txt 10.58.81.112 ssh,仍未发现弱口令漏洞。

靶机实战(1):Empire LupinOne

          

### 80端口/http服务

          

#### 01、组件漏洞

          

使用命令searchsploit Apache,未发现Apache httpd 2.4.48组件的Nday漏洞。

靶机实战(1):Empire LupinOne

使用命令searchsploit Apache | grep -i httpd,未发现Apache httpd 2.4.48组件的Nday漏洞。

靶机实战(1):Empire LupinOne

          

#### 02、URL发现(目录、文件)

          

1、访问首页http://10.58.81.112/,发现啥也没有,是静态页面,妥妥的CTF风格。    

靶机实战(1):Empire LupinOne

          

2.1、在端口发现(服务、组件)阶段,已经发现存在/robots.txt文件,且暴露了/~myfiles/目录。

靶机实战(1):Empire LupinOne

http://10.58.81.112/robots.txt

靶机实战(1):Empire LupinOne    

访问http://10.58.81.112/~myfiles/目录,发现啥也没有。

靶机实战(1):Empire LupinOne

2.2、使用命令dirb http://10.58.81.112 -r对网站目录和文件进行爆破,未发现新的目录和文件。

靶机实战(1):Empire LupinOne

2.3、使用命令dirb http://10.58.81.112/~myfiles/ -r对/~myfiles/下的目录和文件进行爆破,未发现新的目录和文件。完了,game over了。

靶机实战(1):Empire LupinOne


3.1、因为目录/~myfiles/前面有个~,是常规目录爆破字典里没有的,这可能是目标网站的特性,所以决定尝试爆破~前缀的目录。

使用命令wfuzz -c -z /usr/share/seclists/Discovery/Web-Content/common.txt –hc 404 http://10.58.81.112/~FUZZ进行模糊测试,还真发现了新的目录。    

靶机实战(1):Empire LupinOne

3.2、使用命令dirb http://10.58.81/112/~secret/ -r对/~secret/下的目录和文件进行爆破,发现有个文件/~secret/index.html。

靶机实战(1):Empire LupinOne

访问文件/~secret/index.html,发现提示/~secret/目录下存在“我”的SSH私钥文件,看来目录爆破的强度是不够的,得用模糊测试。

同时还提示了“我”的名字是icex64,看来使用账号“icex64”和SSH私钥文件就能登录SSH服务了。

靶机实战(1):Empire LupinOne

3.3、使用命令wfuzz -c -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-small.txt -z list,".txt"- --hc 403,404 http://10.58.81.112/~secret/FUZZFUZ2Z进行模糊测试,通过无文件后缀和“.txt”文件后缀两种后缀,并未发现SSH私钥文件。    

靶机实战(1):Empire LupinOne

3.4、难道是文件后缀不对?还是文件名字典不行?又或者是文件名要加前缀?是加~前缀吗?既然是SSH私钥文件,那就试试加.前缀吧。

使用命令wfuzz -c -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-small.txt -z list,".txt"- --hc 403,404 http://10.58.81.112/~secret/.FUZZFUZ2Z进行模式测试,发现SSH私钥文件/~secret/.mysecret.txt。    

靶机实战(1):Empire LupinOne

靶机实战(1):Empire LupinOne

          

### 22端口/ssh服务

          

#### 03、私钥泄露

              

1、一般使用SSH账号和SSH私钥文件就能登录SSH服务了,但这个SSH私钥文件不知道被什么加密或编码了。如果是被加密就没辙了,没有解密算法和密钥。只能碰运气希望是被编码了,最终使用base58解码成功。

靶机实战(1):Empire LupinOne

          

2.1、使用账号“icex64”和SSH私钥文件登录SSH服务,发现因为SSH私钥文件的文件权限是0644,可以被其它用户访问,不够安全,所以SSH服务就自动跳转成SSH密码登录了。使用命令chmod 0600 mysecret删除其它人访问SSH私钥文件的权限。

靶机实战(1):Empire LupinOne

使用账号“icex64”和SSH私钥文件登录SSH服务,发现SSH私钥文件需要解密密钥。各位运维人员,你们看看这是人干的事吗。

靶机实战(1):Empire LupinOne

2.2、使用命令/usr/share/john/ssh2john.py mysecret >  mysecret.john将SSH私钥文件转成John需要的格式。    

靶机实战(1):Empire LupinOne

使用命令john mysecret.john --wordlist=/usr/share/wordlists/fasttrack.txt爆破SSH私钥文件的解密密钥,得到P@55w0rd!。各位运维人员,你们看看这才是人干的事。

靶机实战(1):Empire LupinOne

          

3、使用账号“icex64”、SSH私钥文件、SSH私钥文件的解密密钥P@55w0rd!,最终成功登录SSH服务。

靶机实战(1):Empire LupinOne


四、提升权限


#### 01、perm

          

使用命令find -perm 4000 2>/dev/null查看系统中的特权命令,未发现。

靶机实战(1):Empire LupinOne

          

### 02、sudo

          

1、使用命令sudo -l查看当前用户的特权命令,发现可以免密使用arsene用户的身份执行/usr/bin/python3.9 /home/arsene/heist.py命令。

靶机实战(1):Empire LupinOne

遗憾的是,arsene用户和icex64用户一样,都是普通用户,就算拿到arsened 的用户权限,也只是越权,还不是提权。

靶机实战(1):Empire LupinOne

更遗憾的是,/usr/bin/python3.9和/home/arsene/heist.py命令都没有write权限,无法写入提权命令。

靶机实战(1):Empire LupinOne

2、柳暗花明的是,/home/arsene/heist.py文件中import了webbrowser模块文件。如果有webbrowser.py文件的write权限,写入提权命令也是有效的。

靶机实战(1):Empire LupinOne    

幸运的是,有webbrowser文件的write权限,路径是/usr/lib/python3.9/webbrowser.py。

靶机实战(1):Empire LupinOne

3、在GTFOBins搜索Python提权命令:

靶机实战(1):Empire LupinOne

靶机实战(1):Empire LupinOne

在/usr/lib/python3.9/webbrowser.py文件中写入提权命令。    

靶机实战(1):Empire LupinOne

4、免密使用arsene用户的身份执行/usr/bin/python3.9 /home/arsene/heist.py命令,获得arsene用户的权限,成功越权。

靶机实战(1):Empire LupinOne

          

参考文章:

  1. Python提权文章,发布于2021-06-03:Linux Privilege Escalation: Python Library Hijacking[1]
  2. Python提权文章的中文翻译,发布于2021-06-09 :Linux提权:Python脚本利用劫持的三种方法[2]
  3. 该靶机网址,发布于2021-10-21:Empire: LupinOne[3]
  4. 猜测:靶机作者很有可能参考该Python提权文章,设计了该漏洞。

### 03、sudo

          

1、使用命令sudo -l查看当前用户的特权命令,发现可以免密使用root用户的身份执行/usr/bin/pip命令。

靶机实战(1):Empire LupinOne

2、在GTFOBins搜索pip提权命令:

靶机实战(1):Empire LupinOne

靶机实战(1):Empire LupinOne

3、免密使用root用户的身份执行/usr/bin/pip命令,获得root用户的权限,成功提权。    

靶机实战(1):Empire LupinOne    

参考资料

[1]

Linux Privilege Escalation: Python Library Hijacking: https://www.hackingarticles.in/linux-privilege-escalation-python-library-hijacking/

[2]

Linux提权:Python脚本利用劫持的三种方法: https://www.4hou.com/posts/o8rj

[3]

Empire: LupinOne: https://www.vulnhub.com/entry/empire-lupinone,750/

原文始发于微信公众号(OneMoreThink):靶机实战(1):Empire LupinOne

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月8日23:51:40
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   靶机实战(1):Empire LupinOnehttps://cn-sec.com/archives/2281922.html

发表评论

匿名网友 填写信息